Transcript
Escola Politécnica da Universidade de São Paulo
IPv6
Renato G. Freitas
nUSP 3680839
São Paulo
Novembro de 2006
1. Introdução
O IPv6 é uma camada de rede do padrão IP usada por dispositivos
eletrônicos para intercâmbio de dados através da comutação de pacotes. Foi
criado para substituir o IPv4 como segunda versão do IP (Internet Protocol)
para ser formalmente adaptado para usos gerais.
A seguir serão exploradas características do protocolo IP e as
motivações para criação de sua segunda versão.
1. O Protocolo IP
O IP (Internet Protocol, ou Protocolo de Internet) é um protocolo
orientado a dados para comunicação através de uma rede de comutação de
pacotes. Como um protocolo de camadas baixas, é encapsulado em uma
camada de ligação (link) de dados, tais como a Ethernet.
Os dados vindos de uma camada superior são encapsulados em um ou mais
pacotes/datagramas (estes termos são sinônimos no IP). Não é necessária
a configuração do circuito quando um dispositivo tenta enviar pacotes
para um outro que ainda não se comunicou, caracterizando assim um
protocolo "connectionless".
O protocolo não oferece garantia quanto à transferência de dados nem
integridade dos pacotes, podendo gerar corrupção dos dados,
desordenação, duplicação ou até mesmo perda dos dados. Em termos de
confiança, a única garantia do IP é a integridade do cabeçalho (header),
assegurada através de um checksum (soma de controle). O motivo para não
se preocupar com a confiabilidade foi aliviar a complexidade dos
roteadores. Desta forma, este trabalho então é passado para as camadas
mais altas da comunicação.
2. Modificações em relação ao Ipv4
2.1 Endereçamento
O IPv4 utiliza endereços de 32 bits (4 bytes), o que limita o espaço a
4.294.967.296 possíveis endereços únicos. Entretanto, muitos são
reservados à propósitos especiais, como redes privadas (18 milhões de
endereços) e endereços multicast (1 milhão de endereços). Isto reduz o
número de endereços que podem ser alocados como públicos. A
representação mais comum dos endereços IPv4 é a notação ponto-decimal,
onde os bytes são escritos na base decimal, separados por pontos (Ex:
192.186.0.1).
A principal melhoria no desenvolvimento do IPv6 é aumentar o número de
endereços disponíveis para os dispositivos de rede, permitindo, por
exemplo, cada telefone celular e dispositivo eletrônico móvel ter um
endereço próprio. O IPv4 suporta algo em torno de 4 bilhões de
endereços, o que é insuficiente para dar um endereço para cada pessoa no
planeta, claramente incapaz de suportar o mercado de dispositivos de
conexão.
O IPv6, por sua vez, suporta suporta 2128 endereços (128 bits, ou 16
bytes), aproximadamente 5 x 1028 endereços por pessoa no planeta. Isso
possibilita a atribuição de um endereço para cada átomo em uma pessoa de
tamanho médio.
Existem também diferenças em relação à notação utilizada. Enquanto a
notação mais utilizada na representação dos endereços IPv4 é a notação
ponto-decimal, os endereços IPv6 normalmente são representados como oito
grupos de quatro dígitos hexadecimais. Por exemplo,
2001:0db8:0000:0000:0000:0000:1428:57ab é um endereço IPv6 válido.
Se um grupo de quatro dígitos é composto por quatro zeros, estes podem
ser omitidos. Zeros no início de um grupo podem também ser omitidos.
Desta forma, o endereço do exemplo acima pode ser abreviado para
2001:db8::1428:57ab.
As redes IPv6 são escritas utilizando a notação CIDR (Class Inter-Domain
Routing), que aumenta a flexibilidade quando divide faixas de endereços
de IP em redes separadas. Uma subrede é denotada pelo primeiro endereço
na rede e o tamanho em bits do prefixo (em decimal), separados por uma
barra. Por exemplo, 2001:0db8:1234::/48 representa uma rede com
endereços de 2001:0db8:1234:0000:0000:0000:0000:0000 até
2001:0db8:1234:FFFF:FFFF:FFFF:FFFF:FFFF. Existem ainda uma série de
endereços com uso especial, como o ::1/28, o endereço de loopback,
semelhante ao 127.0.0.1 no IPv4.
2.2 Estrutura do Pacote
Existem mudanças relevantes nos pacotes enviados pelas versões 4 e 6. O
pacote é divido entre cabeçalho e dados a serem transmitidos. Na versão
IPv4, o cabeçalho é composto por 13 campos, onde 12 são obrigatórios,
enquanto que na versão IPv6 existem 8 campos, todos obrigatórios.
Existe ainda, no IPv6, a possibilidade da utilização de mais de um
cabeçalho, caracterizando uma tecnologia mais atualizável, onde novas
possibilidades podem ser incorporadas. Por exemplo, o campo "protocolo"
do IPv4 foi substituído por um cabeçalho endereçado no "next header".
Abaixo seguem imagens que ilustram os cabeçalhos dos protocolos IPv4 e
IPv6.
Protocolo IPv4
Protocolo IPv6
A fragmentação dos pacotes no IPv6 se dá pelos hosts, ou seja, os
roteadores nunca devem fragmentar os pacotes. Isto é resolvido
utilizando a tecnologia do PMTU (Path Maximum Transmit Unit), que
representa o tamanho do maior pacote que pode passar neste caminho.
3. Inovações do IPv6
3.1 Configuração dos Hosts
Os hosts tem uma configuração automática e stateless. Desta forma, o
host envia uma requisição multicast para seus parâmetros de
configuração, aguardando resposta dos router para uma configuração
adequada. Desta forma pode-se evitar o uso de DHCP, utilizado no IPv4.
3.2 Multicast
O Multicast (multiplexed broadcast) é parte do protocolo base do IPv6,
em oposição ao IPv4, onde era opcional. Desta forma as mensagens podem
ser entregues à um grupo de dispositivos simultaneamente.
3.3 Jumbogramas
No IPv4, os pacotes eram limitados a 64 kB de dados. Quando utilizado
por parceiros que comportem, o IPv6 tem capacidade pra aumentar este
limite, utilizando os chamados jumbogramas. Os jumbogramas aumentam a
performance da transmissão de dados na rede.
3.4 Roteamentos mais rápidos
Por utilizar um cabeçalho mais sistemático e mais simples, o IPv6 pode
melhorar a performance dos roteadores. Por se tratar de menor quantidade
de dados, o roteador pode ser otimizado para maior velocidade.
3.5 Segurança na camada de Rede
No IPv6, o IPsec (IP Security), protocolo para encriptação e
autenticação da camada de rede IP, é uma parte integral da base do
protocolo.
Existem dois modos de operação para o IPsec:
- Modo de Transporte (Transport mode): apenas a mensagem (dados a
transmistir) são encriptados. É roteável, já que o cabeçalho é escrito
em pleno texto, mas não pode atravessar interfaces NAT, pois invalida
seu valor hash. É o método usado para comunicação entre hosts
- Modo de Túnel (Tunnel mode): o pacote inteiro é encriptado. Precisa
então ser encapsulado em um novo roteamento de IP para funcionar. É
utilizado na comunicação entre redes (túneis seguros entre roteadores),
entre hosts, e entre hosts e redes.
4. Mecanismos de Transição
Até que o IPv6 substitua completamente o IPv4, o que não deve acontecer
num futuro tão próximo, existem alguns métodos chamados de mecanismos de
transição, para adaptar os atuais mecanismos IPv4 para atuarem como
mecanismos IPv6, ou mesmo adaptar redes e hosts IPv6 isolados, para se
comunicarem com dispositivos IPv4.
4.1 Dual Stack
Como o IPv6 é uma extensão conservativa do IPv4, é relativamente fácil
escrever uma rede que suporte ambas as tecnologias, compartilhando
grande parte do código. Este método é chamado Dual Stack, e é um dos
mais utilizados nas atuais implementações do IPv6.
4.2 Tunelamento
O método de tunelamento é utilizado para utilização da tecnologia IPv6
através de uma infraestrutura IPv4. Esta técnica consiste em encapsular
os pacotes IPv6 em pacotes IPv4, em efeito utilizando o IPv4 como camada
de ligação (link) para o IPv6.
Existem técnicas para tunelamento automático dos dados, através de uma
infraestrutura de roteadores. O método mais utilizado é chamado
tunelamento 6to4, que usa encapsulamento 41. Desta forma, os endereços
de 32 bits são transformados em endereços 128 bits, com o prefixo 2002
no endereço IPv4. Assim, para um endereço 192.88.99.1, o endereço
correspondente em 6to4 é 2002:c058:6301::.
4.3 Proxying e Tradução
Quando um host IPv6 precisa acessar um serviço IPv4, algum tipo de
tradução é necessária. A única forma disto funcionar realmente é a
utilização de uma camada de aplicação dual-stack, como um web proxy.
5. Implementações de IPv6
O governo dos Estados Unidos determinou que todas as suas agências
federais devem suportar o protocolo IPv6 até 2008. A China, em seu
projeto CNGI (China Next Generation Internet), que é um projeto iniciado
pelo governo chinês para ganhar posição no cyberespaço, pretende
anunciar sua nova rede IPv6 nas Olimpíadas de Pequim, em 2008. Tudo,
desde câmeras de segurança até os táxis e câmeras filmando os eventos,
devem ser ligados em redes IPv6, e os eventos devem ser transmitidos por
streamming ao vivo pela Internet. Além disto, existem implementações
privadas em redes de grandes empresas, que apostam na tecnologia do novo
protocolo.
6. Bibliografia
Wikipedia:
http://en.wikipedia.org/wiki/IPv6
http://pt.wikipedia.org/wiki/IPv6
http://en.wikipedia.org/wiki/IPv4
Force Task Brasileira para IPv6:
http://www.br.ipv6tf.org/