IPv6: O protocolo que substitui o IPv4 e traz bilhões de endereços
1. IPv6
Clécio Oliveira Pinto
Segurança e Integração em Redes de Computadores para Ambientes Corporativos –
Faculdade de Tecnologia SENAC Goiás
cleciooliveira at gmail com
Abstract. The Internet Protocol version 6 (IPv6) is the result of over a decade
discussion and debate of the Internet Engineering Task Force (IETF). This
new version of the Internet Protocol (IP) was developer to solve unexpected
problems of the IPv4 version. We will discuss these in article problem, the
differences, advantages and disadvantages between the IPv4 and IPv6, its
history, compatibility, and the reason for its developer succinctly.
Resumo. O Protocolo IP versão 6 (IPv6) é resultado de mais de uma década
de discussão e debate da Internet Engineering Task Force (IETF). Esta nova
versão do Internet Protocol (IP) foi desenvolvido para solucionar os
inesperados problemas da versão IPv4. Discutiremos neste artigo esses
problema, as diferenças, vantagens e desvantagens entre o IPv4 e o IPv6, sua
história, compatibilidade e a razão para o seu desenvolvimento de forma
sucinta.
Introdução
O IP versão 4 (IPv4) não foi um fracasso, é a mais popular, com alta
compatibilidade, perspicaz e robustez. Porém, o projeto inicial não previu alguns
possíveis problemas que enfrentamos nos dias atuais:
O crescimento exorbitante da internet.
O esgotamento dos endereços IPv4, obrigando a utilização de Network Address
Translator (NAT).
Capacidade dos equipamentos backbone em manter grande quantidade de tabelas
de roteamento.
Segurança em nível de IP.
Devido a essas e outras complicações a IETF desenvolveu o, IPv6 conhecido
anteriormente como IP – The Next Generation (IPng), com um novo conjunto de
protocolos e padrões que incorpora conceitos e métodos para a atualização do IPv4.
2. IPv6 – História
Criado na década de 70 para substituir o NPC o IP versão 4 (IPv4) é o protocolo
mais popular na Internet.
Os endereços do IPv4 possuem 32 bits, em torno de 4.3 bilhões de endereços.
Ou seja, não existe um para cada habitante do mundo. Devido a esse tipo de problema e
outros que não foram incluídos em seu projeto como: mobilidade, segurança, qualidade
de serviço, iniciou-se estudos em busca de soluções para tais problemas.
O IPv6 a um pouco mais de 10 anos era discutido somente em ambiente
acadêmico, porém devido a necessidade evidente de atualização do IPv4 conclusão
elaborada pelo IETF – Internet Engeeniring Task Force sobre à exaustão dos endereços
IP, um novo protocolo deveria ser desenvolvido.
Vários grupos de trabalhos iniciaram suas pesquisas a fim de desenvolver uma
solução para o problema levantado. No ano de 1993, o IESG – Internet Engineering
Steering Group criou uma nova versão do protocolo IP, o (IPng) IP – The Next
Generation. Com algumas alterações e protocolos adicionados deu origem ao IPv6.
Essa nova versão do Protocolo foi desenvolvido para atualizar o IPv4, mas não
tornar um passo revolucionário como é o fato nos dias atuais. Novas funcionalidades
foram desenvolvidas, outras foram mantidas e até funcionalidades desnecessárias foram
removidas.
A característica mais significativa foi a de espaço de endereçamento que passou
de 32 para 128 bits. Enquanto o cabeçalho foi simplificado, ou seja, o novo cabeçalho
IPv6 é apenas duas vezes maior que o cabeçalho IPv4, embora os endereços IPv6 são
quatro vezes maiores que os endereços IPv4.
Os objetivos propostos pelo Protocolo IP versão 6 são:
Suporte a bilhões de hosts - através da expansão do espaço de endereçamento e
uma hierarquia mais versátil;
Redução da tabela de roteamento;
Protocolo passível de expansão, através do uso de cabeçalhos de extensão;
Simplificação do cabeçalho do protocolo, diminuindo o tempo de processamento
na análise dos cabeçalhos, por parte de roteadores e hosts;
Garantia de mais segurança (autenticação e privacidade) em relação à versão
atual;
Criação de um campo que suporte mecanismos de controle de qualidade de
serviço, gerando maior sensibilidade ao tipo de serviço, como, por exemplo,
serviços de tempo real;
Permissão de multicasting, através da especificação de escopos de
sessões multicasting;
3. Melhorias no roteamento, inclusive no que tange a hosts móveis;
Permissão de máquinas wireless mudarem fisicamente de lugar sem mudança em
seus endereços IP;
Habilitação de máquinas se autoconfigurarem (número IP, servidor de nome...)
ao serem ligadas na rede, operação plug and play;
Um novo tipo de endereço chamado anycast, conceitualmente uma "cruz"
entre unicast e multicast: esse tipo de endereço identifica um conjunto de nodos,
onde um pacote enviado para um endereço anycast será entregue a um destes
nodos;
Coexistência das duas versões do protocolo por um bom tempo, pois não se pode
determinar uma data específica para que todas as máquinas no mundo troquem
seus softwares.
Cabeçalho IPv6
Para manter o mínimo de sobrecarga no cabeçalho IPv6 foi desenvolvido um
novo formato. Foram removidos campos raramente utilizados, movidos campos
opcionais para o campo extensão de cabeçalho que localiza após o cabeçalho IPv6 e
acrescentados campos que oferece melhor suporte para o tráfego.
Os campos do cabeçalho IPv6 são:
Version – Esse campo serve para os roteadores identificar qual é o protocolo do
pacote, contém 4 bits e sempre será seis para o IPv6.
Traffic Class – Serve para identificar se o dado no pacote é uma mídia (vídeo,
som) ou de outro tipo, ou seja, indica o tipo de serviço. Esse campo contém 8
bits.
Flow Label – Contém 20 bits. Esse campo verifica se o pacote pertence a uma
seqüência especial, requerimentos e propriedades particulares entre a origem e o
remetente.
Payload Header – Com 16 bits, este campo indica o tamanho de dados do IPv6.
Next Header – Caso haja alguma extensão de cabeçalho, este campo é que
permite dizer qual é um dos seis cabeçalhos. Este campo possui 8 bits.
Hop Limit – Indica a quantidade de saltos , o número máximo de links antes do
pacote IPv6 ser descartado.
4. Estrutura de um pacote IPv6
Figure 1. Estrutura de um pacote IPv6
Extensões do Cabeçalho
As extensões do cabeçalho são de tamanhos variáveis ao contrário do cabeçalho
que tem tamanho fixo de 40 bytes. Pode conter 0 ou mais extensões de cabeçalho em um
pacote IPv6. O cabeçalho IPv6 e as extensões de cabeçalho substitui as opções do IPv4.
O campo Next Header do IPv6 indica a próximo extensão de cabeçalho. Ao
contrário do cabeçalho IPv4 que inclui todas as opções o cabeçalho IPv6 as opções e
entregas são movidas para as extensões de cabeçalho, que deve ser processado em cada
roteador (Hop-by-Hop), com isso aumenta a velocidade de processamento e melhora o
desempenho de encaminhamento.
Valor (em decimal) Cabeçalho
0 Hop-by-Hop Options Header
6 TCP
17 UDP
41 Encapsulated IPv6 Header
43 Routing Header
44 Fragment Header
46 Resource ReSerVation Protocol
50 Encapsulating Security Payload
51 Authentication Header
58 ICMPv6
59 No next header
60 Destination Options Header
Tabela 1. Valores do campo Next Head
5. A RFC 2460 define os seguintes extensões de cabeçalhos IPv6 suportados por
todos os nós IPv6:
Hop-by-Hop Options header – Especifica o parâmetro de entrega em cada nó no
caminho para entrega.
Destination Options header – Especifica parâmetros que serão examinados pelo
destino final.
Routing header – Especifica uma lista de destino pelo qual o pacote deverá
passar até o seu destino.
Fragment header – Quando a origem necessitar enviar pacotes maiores que o
tamanho máximo pertimido, este cabeçalho para gerenciar os fragmentos do
datagrama, fragmentar e remontar.
Authentication header – Garantir a identidade e integridade dos dados do pacote
e garantia que o pacote capturado não possa ser retransmitido para o pacote IPv6
(anti-replay Protection).
Encapsulating Security Payload header – fornece a confidencialidade e
integridade dos dados.
Endereçamento IPv6
A diferença mais evidente entre o IPv6 e o IPv4 é o sistema de endereçamento
que passa de 32 bits para 128 bits. Enquanto, teoricamente o número de endereços do
IPv4 pode chegar a 4,294,967,296 ou 232 endereços possíveis, o IPv6 pode chegar a 2128
ou 340,282,366,920,938,463,463,374,607,431,768,211,456 (3.41038) de endereços
possíveis.
Tipos de Endereços IPv6
Geralmente o IPv6 define TRE tipos de endereços: Globais, Locais e Locais
Únicos.
Endereços Globais: são equivalentes aos endereços públicos em IPv4.
Geralmente começa com 2000::.
6. Figura 2. Endereço Global ilustrado
Endereços Locais: são equivalentes aos endereços APIPA (Automatic Private IP
Addressing) (169.254.0.0/16) no IPv4. Geralmente começa com fe80::.
Figura 3. Endereço Local ilustrado
Endereços Locais Únicos: são equivalentes aos endereços privados em IPv4.
Geralmente começa com fd65::.
Figura 4. Endereços Locais Únicos
Comparação IPv4 e IPv6
Atraves da tabela 2 podemos mensurar as diferenças e fazer uma comparação
entre o IPv4 e IPv6.
7. IPv4 IPv6
Endereços de 32 bits Endereços de 128 bits
Suporte ao IPsec é opcional Suporte ao IPsec é obrigatório
A fragmentação e feito por ambos A fragmentação não é feita pelos
os roteadores e o encaminhamento roteadores, somente o
também. encaminhamento
Cabeçalho inclui um checksum. Cabeçalho não inclui um checksum.
Opções de cabeçalho Todos dados opcionais são
movidos para a extensão de
cabeçalho
Address Resolution Protocol ARP Request frames are replaced
(ARP) uses broadcast ARP with multicast Neighbor
Request frames to resolve an IPv4 Solicitation messages. For more
address to a link layer address. information, see “Neighbor
Discovery.”
Internet Group Management IGMP is replaced with Multicast
Protocol (IGMP) is used to manage Listener Discovery (MLD)
local subnet group membership. messages. For more information,
see “Multicast Listener Discovery.”
Utilizar endereço de broadcast para Não há endereço de broacast.
enviar o trafego para todos os nós Utiliza um escopo de link-local,
em uma sub-rede endereço de multicast todos os nós
são usados.
Deve ser configurado manualmente Não requer configuração manual
ou por DHCP ou por DHCP
Endereço de host (A) Endereço de host (AAAA)
Deve suportar um tamanho de 576 Deve suportar um 1280 bytes (sem
bytes (fragmentado) fragmentação)
Tabela 2. Diferença entre IPv4 e IPv6
Compatibilidade entre IPv4 e IPv6
Desde o início de 1997 os fabricantes de softwares dos equipamentos de redes
começaram a incluir o novo protocolo em seus equipamentos.
Devido aos mecanismos e recursos para pacotes IPv4 e IPv6 redes IPv4 pode
trafegar pacotes IPv6, e pacotes IPv6 pode trafegar em redes IPv6. Os protocolos IPv4 e
IPv6 podem trabalhar em conjunto e são compatíveis em relação a endereçamento,
roteamento e DNS.
Para maiores detalhes sobre uma implementação IPv4 e IPv6, visite
http://www.ipv6.br/IPV6/ArtigoNovaGeracaoComunicacaoParte08.
8. Protocolo ICMPv6
O IPv6 utiliza o ICMP – Internet Control Message Protocol para relatar erros de
pacotes que não podem ser processados, enviar informações sobre o status da rede e
realizar diagnosticos.
Todas as mensagens ICMPv6 possuem o mesmo formato geral, composto por
tipo, código, checksum e a variável do corpo.
Cabeçalho ICMPv6
Figura 4. Estrutura de mensagem do ICMPv6
Os campos do cabeçalho do ICMPv6, são:
Type – Indica do tipo de mensagem ICMPv6. Campos com 8 bits.
Code – Também com 8 bits, este campo diferencia entre várias mensagens em um
tipo de mensagem.
Checksum – Armazena um checksum da mensagem ICMPv6. Este campo possui
16 bits.
Message body – Contém os dados da mensagem ICMPv6 específica.
Tipos de mensagens ICMPv6
O ICMPv6 é semelhante ao ICMPv4, porém o ICMPv6 apresenta mais recursos
devido a ter absorvido alguns protocolos como o ARP/RAP. Responsável por mais
serviços como descoberta de vizinha e mobilidade IPv6 por exemplo, possui mais
mensagens.
9. As mensagens IPv6 podem ser agrupadas em classes:
Mensagens de Erro – tem um bit 0 na parte superior do campo tipo de
mensagem.
o Destination Ureachable – Indica falhas na entrega do pacote (endereço
ou porta desconhecida) ou problemas na comunicação.
o Packet too big – Indica que o tamanho do pacote é maior que a
Unidade Máxima de Transmissão (MTU).
o Time Exceeded – Indica que o limite o tempo de remontagem do
pacote foi excedido.
o Parameter problem – Indica erro em algum campo de cabeçalho IPv6.
Mensagens de Informação – tem um bit 1 na parte superior do campo tipo de
mensagem.
o Echo request – utilizado pelo comando ping. Enviado ao destino para
solicitar de imediato uma mensagem Echo reply.
o Echo reply – utilizados pelo comando ping. Enviado em resposta ao
recebimento de uma mensagem Echo request.
Protocolo ND – Neighbor Discover Protocol
O protocolo ND que também é utilizado no IPv4 foi aprimorado e expandido no
IPv6. Este protocolo tem a seguinte função:
Encontrar host e roteadores vizinhos.
Divulgar os endereços MAC dos nós da rede.
Detectar endereços duplicados.
Auto-configuração de pacotes.
Determinar prefixo da rede.
Podemos observar que acima estão listadas funções dos protocolos ARP (que foi
incorporado pelo ICMPv6) e DHCP. O ND utiliza o ICMP para desempenhar as funções
de descoberta da rede. Segue abaixo, a lista das mensagens utilizadas pelo ND:
Router Advertisement – Roteadores IPv6 enviam periodicamente ou em resposta
a uma Router Solicitation.
10. Router Solicitation - Enviada pelos hosts IPV6 para descobrir roteadores
presente no link;
Neighbor Solicitation - Mensagem multicast por host IPv6 para determinar o
endereço MAC e a acessibilidade de um vizinho, além de detectar a existência de
endereços duplicados.
Neighbor Advertisement - Enviada por host IPv6 como resposta a uma Neighbor
Solicitation, utilizada também para anunciar a mudança de algum endereço MAC;
Redirect - Utilizada por roteadores IPv6 para informar ao host de origm um
roteador mais indicado para se alcançar um destino.
Conclusão
Vimos que o protocolo IPv6 possui algumas vantagens significativas sobre o seu
antecessor mais famoso, o IPv4. O novo protocolo desenvolvido possui algumas opções
nativas que o fizeram mais robusto.
Referente ao problema de esgotamento de endereços que enfrentamos nos dias
atuais foi possível resolver aumentando a quantidade e organizando hierarquicamente os
endereços maximizando a eficiência nas tabelas de roteamento.
References
Kurose, James F. e Ross, Keith W. (2006), Redes de computadores e a Internet: Uma
abordagem top-down, 3a. edição.
Comer, Douglas S. (2001), Redes de computadores e Internet, 2a edição.
Microsoft, (2011) “IPv6”, http://technet.microsoft.com/en-us/network/bb530961, Maio.
IPv6.br, (2011) “IPv6”, http://www.ipv6.br, Maio.
RFC 2460: “Internet Protocol Version 6”.
RFC 2463: “ICMP for the Internet Protocol Version 6 (Ipv6)”.