IPv6
Protocolo Internet versão 6
Marcos Francisco Linhares, Domênico Sávio G. de Araújo
Departamento de Engenharia de Telecomunicações
Universidade Federal Fluminense (UFF-RJ)
Resumo. IPv6 é um dos melhoramentos dos mais significativos protocolos da
rede e da história da tecnologia. Crescerá rapidamente em sua infra-estrutura
do IPv4 existente e impactará positivamente na sua rede. Lendo este artigo
darar-lhe uma preparação para a etapa seguinte da evolução da tecnologia da
Internet. Os esforços do desenvolvimento e da execução do produto IPv6 já
são uma realidade em todo o mundo. IPv6 é projetado como uma etapa
evolucionária do IPv4. É um incremento natural ao protocolo IPv4, pode ser
instalado como um melhoramento normal do software na maioria dos
dispositivos da Internet, e é interoperável com o atual IPv4.
1. Introdução
Com milhões de usuários em todo o mundo dependendo da Internet como
parte de seu ambiente de trabalho e forma de entretenimento, é de supor que a
Internet seja uma instalação de produção completamente estável. Entre esses
milhões de usuários existem grupos que interconectam suas redes e
descobrem novos meios de aprimorar a tecnologia. Pesquisadores e
engenheiros estão verificando e solucionando novos problemas de conexão de
redes e melhorando os mecanismos básicos de acesso, mantendo a tecnologia
sempre em evolução.
A motivação
Desde o surgimento da ARPANET como uma demanda do governo americano
para desenvolver uma rede robusta para ligar as bases militares espalhadas
pelos Estados Unidos até a rede mundial Internet tal como a conhecemos hoje
existe uma diferença muito grande na motivação e necessidades. Nada mais
natural que mudanças tenham que ser feitas nos protocolos que compõe sua
arquitetura para se adequarem às novas necessidades.
Talvez o grande motivador inicial para uma mudança na versão 4 do protocolo
de redes da arquitetura, o IP – Internet Protocol, tenha sido o crescimento de
máquinas conectadas a Internet. O número de máquinas conectadas à rede
cresceu de algumas centenas na ARPANET a um número literalmente
inestimável, mas que pela própria forma de endereçamento do IPv4 não pode
ultrapassar 232 (aproximadamente 4,3 bilhões) de hosts, sem contar os
endereços reservados e o desperdício ocasionado pela sua má distribuição.
Outro problema sério consiste no crescimento das tabelas de roteamento,
causado principalmente por uma divisão não-planejada dos endereços
disponíveis, fruto do próprio crescimento desordenado da Internet.
Aliado a esse problema de endereçamento e roteamento, novas necessidades
surgiram como o tráfego de aplicações multimídia em tempo real, segurança
para transações comerciais, mobilidade etc.
A versão 4 do Internet Protocol (IPv4) fornece um mecanismo básico de
comunicações interconectando redes do mundo todo. Esta versão permaneceu
inalterada desde o seu início, final da década de 1970. A longa vida deste
protocolo mostra que o projeto original é flexível e poderoso. Mas apesar de
seu projeto sólido, o IPv4 está com seus dias contados. Quando o IPv4 foi
projetado, um espaço de endereço de 32 bits era mais que o suficiente. Apenas
algumas organizações usavam uma rede local e menos ainda dispunham de
uma rede remota associada. Entretanto, hoje em dia, a maioria das
organizações de médio porte dispõe de diversas redes locais e as grandes
companhias têm uma rede remota associada. O atual espaço de endereço de
32 bits não irá suportar a demanda de anos de crescimento exponencial
ininterrupto de hosts. Só para se ter uma idéia, em 1994, um novo host
aparecia a cada 30 segundos, em média. O volume de tráfego na Internet
aumentou mais rápido do que o número de redes. E hoje, diante de um mundo
onde a imagem e o áudio contam muito para vender um produto, para
fechamento de negócios nas organizações, como exemplo, novos aplicativos
foram desenvolvidos para transferir imagens, vídeos e áudio em tempo real,
pacotes de dados estes que geram mais tráfego que a transferência normal de
pacotes de dados de texto.
Em 1990 a IETF começou a trabalhar em uma nova versão do IP, capaz de
impedir que os endereços fossem esgotados e de resolver um série de outros
problemas, além de ser mais flexível e eficiente.[1]
A IETF então convocou os interessados a apresentar suas propostas na RFC
1550. Depois de discutidas e revisadas, foi selecionada uma versão, agora
chamada de SIPP (Simple Internet Protocol Plus), à qual foi atribuída a
designação IPv6 [1].
O objetivo deste trabalho é mostrar em linhas gerais os principais pontos da
nova versão do IP e fazer um comparativo entre o IPv4 e o IPv6, detalhando
um pouco mais sobre o novo formato desse novo protocolo. A seção 2 mostra
as diferenças entre os protocolo IPv4 e IPv6, a seção 3 vamos detalhar a
estrutura do datagrama IPv6, já na seção 4, fala do cabeçalho de extensão. A
seção 5, trata-se do endereçamento do IPv6, que muda bastante a forma de
endereçar em relação ao IPv4. A seção 6, fala da transição do IPv4 para o
IPv6, o que muda de uma rede para outra.
2. As diferenças entre IPv4 e IPv6
O protocolo IPv6 proposto, mantém muitas das características que contribuíram
para o sucesso do IPv4. Os projetistas dotaram o IPv6 de basicamente as
mesmas características do IPv4, com algumas modificações.
O IPv6 introduz um novo formato de cabeçalho, mais enxuto que o anterior
(com menos campos) com tamanho de 40 bytes. Essa mudança visa acelerar
a entrega dos pacotes, uma vez que, diminui bastante o seu tempo de
processamento nos roteadores. Abaixo pode-se observar o cabeçalho IPv4 e o
IPv6:
Figura 1 - Cabeçalho do IPv4
Figura 2 – Cabeçalho do IPv6
Mas mesmo com tantas características semelhantes, o IPv6 muda a maioria
dos detalhes do protocolo:[2]
•
O IPv6 quadruplica o tamanho de um endereço IPv4. Seu tamanho passa
de 32 para 128 bits. O novo tamanho de endereço de 128 bits resolve o
problema de esgotamento do espaço de endereço, tornando disponível o
acesso
de
340.282.366.920.938.463.463.374.607.431.768.211.456
dispositivos a Internet.
•
O IPv6 usa um formato de cabeçalho de datagrama inteiramente novo e
variável. A contrário do IPv4, que usa um cabeçalho de datagrama de
tamanho fixo, onde todos os campos, exceto o de opções, ocupam um
número fixo de octetos, o IPv6 usa um conjunto de cabeçalhos opcionais
(cabeçalhos de extensão);
•
IPv6 inclui novas opções que oferecem recursos adicionais não disponíveis
no IPv4;
•
IPv6 substitui a especificação de tipo de serviço do Ipv4 por um mecanismo
que permite a pré-alocação de recursos de rede;
•
Por fim, a mudança mais significativa no IPv6, talvez seja a capacidade de
adaptação a mudanças no hardware de rede ou a novos aplicativos graças
ao formato de seu cabeçalho completamente modular.
•
O tamanho dos campos de endereço de origem e de destino foi aumentado
para 16 octetos cada;
•
As informações de fragmentação foram retiradas de campos fixos do
cabeçalho básico, para um cabeçalho de extensão;
•
O campo TEMPO DE VIDA foi substituído por um campo LIMITE DE
PASSOS DA ROTA;
•
O campo TIPO DE SERVIÇO foi substituído por um campo RÓTULO DE
FLUXO;
•
O campo PROTOCOLO foi substituído por um campo que especifica o tipo
do próximo cabeçalho.
Podemos notar que vários campos de um cabeçalho básico do IPv6
correspondem diretamente aos campos de um cabeçalho do IPv4, porém com
algumas diferenças. Os campos que constituem o cabeçalho IPv6 são:
[2]:
- VERSION (4 bits) – Versão do IP utilizada. No caso no IPv6, este campo vale
0110. O campo VERS que especifica o protocolo, no IPv4 tem o valor 4.
- PRIORITY (Traffic Class) (8 bits) – Indica a prioridade com a qual o pacote
deve ser tratado.
- PAYLOAD LENGTH (16 bits) – Tamanho, em octetos, dos dados. O campo
de comprimento de cabeçalho foi eliminado e o campo de comprimento de
datagrama foi substituído por um campo COMPRIMENTO DO PAYLOAD;
- NEXT HEADER (8 bits) – Indica o tipo do possível cabeçalho de extensão
(Extension Header) que segue o cabeçalho IPv6. Caso não haja, indica qual o
protocolo da próxima camada (transporte). Este campo substitui o protocolo do
IPv4;
- HOP LIMIT (8 bits) – Antigo TTL (Time to live). Indica o número máximo de
saltos. Esse campo é decrementado a cada passo e o pacote é descartado
quando o seu valor chega a zero.
- SOURCE ADDRESS (128 bits) – Endereço fonte, ou de origem.
- DESTINATION ADDRESS (128 bits) – Endereço destino.
Os campos Priority, também conhecido como Traffic Class, por outros autores,
e Flow Label têm por finalidade facilitar a implementação de aplicações em
tempo real e com Qualidade de Serviço (QoS).
O campo Priority (Traffic Class) determina a prioridade que um pacote tem.
Deve-se utilizar valores de 0 a 7 para dados, que podem sofrer atraso, e
valores de 8 a 15 para aplicações multimídia em tempo real, que não devem
sofrer atrasos.
Já o campo Flow Label permite que dois hosts estabeleçam uma
“pseudoconexão” com características próprias, possibilitando um tratamento
diferenciado para diferentes fluxos. Esse campo pode inclusive servir para
alocação de recursos nos roteadores tendo em vista Qualidade de Serviço.
Estes campos citados acima serão melhores detalhados mais adiante, na
Estrutura do Datagrama IPv6.
Dentre os campos existentes no IPv4 que foram eliminados, dois que merecem
destaque são o Header Checksum e os de controle de fragmentação.
A função do campo Header Checksum era detectar erros no cabeçalho IPv4.
Como os roteadores alteram o campo Time to live do cabeçalho IPv4, esses
precisavam recalcular o Header Checksum antes de reenviá-lo, causando
maior atraso. No IPv6 o tratamento de possíveis erros de transmissão
(chegada de pacotes não endereçados ao host devido a erro no campo IP
destino, por exemplo), foi jogado para as camadas de cima, assim como já
acontecia no tratamento de erros dos dados, conhecidamente um serviço
oferecido pela camada de transporte.
Já o campo para controle de fragmentação sumiu pois se decidiu que pacotes
não seriam mais fragmentados nos roteadores. A MTU do caminho é
estabelecida num primeiro momento e deve então ser respeitada no decorrer
de toda a comunicação. O problema que se apresenta na fragmentação ser
feita unicamente na origem é que, apesar de raro, pode haver mudança de rota
no meio de uma comunicação.
Ambas mudanças têm claramente o objetivo de diminuir o tempo de
processamento nos roteadores, garantindo assim um ganho de performance.
3. A Estrutura do Datagrama IPv6
Na figura 3, mostramos um formato geral de um datagrama IPv6, que tem seu
formato diferente do datagrama IPv4. Um datagrama IPv6 tem um cabeçalho
básico de tamanho fixo seguido de zero, ou mais cabeçalhos de extensão
seguidos de dados.
opcional
Cabeçalho
Básico
Cabeçalho
de Extensão 1
...
Cabeçalho
de Extensão N
DADOS
Figura 3 – Forma geral de um datagrama IPv6 com vários cabeçalhos.
3.1 Cabeçalho Básico
A figura 4, mostra o conteúdo e o formato do cabeçalho básico do IPv6.
0
4
Version
8
16
24
Traffic Class
Payload Lenght
31
Flow Label
Next Header
Hop Limit
Source Address
Destination Address
Figura 4 – Formato de cabeçalho básico de 40 octetos do IPv6
Nos próximos parágrafos para começarmos a nos familiarizar melhor com os
campos do cabeçalho IPv6, teremos que entender como o IPv6 trabalha.
A figura 5 mostra uma visão geral do cabeçalho IPv6. Estes campos serão
discutidos mais detalhados em cada parágrafo abaixo.[5]
Version (4 bits)
6
Versão do protocolo.
Traffic Class
(1 byte)
Usado para distinguir diferentes prioridades dos pacotes IPv6.
Referência: RFC2474 para maiores informações.
Flow Label
(20 bits)
Usado para seqüências de quadros de pacotes que requerem o mesmo
tratamento para maior eficiência de processamento nos roteadores.
Payload Lenght
(2 bytes)
Comprimento de dados acrescidos após cabeçalho do IPv6.
Next Header
(1 byte)
Contém o número de protocolo ou um valor para a extensão do cabeçalho.
Hop Limit
(1 byte)
Número de saltos. Decrementado de um a cada roteador.
Source Address
(16 bytes)
Destination Address
(16 bytes)
Figura 5 – Visão Geral dos campos do cabeçalho IPv6
Version (4 bits)
Este é um campo de 4 bits e contém a versão do protocolo à qual o datagrama
pertence. Incluindo-se a versão do IP em cada datagrama, é possível verificar a
transição entre as versões. A transição entre o IPv4 e o IPv6 já acontece a
anos e não existe previsão de término[1]. No caso do IPv6, é o número 6. A
versão 5 não poderia ser usada porque já havia sido atribuída para um
protocolo experimental (ST2, RFC 1819).[5]
Traffic Class (1 byte)
Este campo substitui o campo tipo de serviço em IPv4. Este campo facilita a
manipulação de dados em tempo real e de todos os outros dados que
requererem uma manipulação especial. Este campo pode ser usado por
roteadores para identificar e distinguir entre classes ou prioridades diferentes
dos pacotes IPv6. Havia um campo destinado a esse propósito no na versão
anterior do IP, mas ele só foi implementado esporadicamente por roteadores.
Agora estão sendo realizadas experiências para definir a melhor maneira de
usá-lo para transmissão multimídia.[1] A RFC 2474, “Definition of Differentiated
Services Field (DS Field) – (Definição do Campo de Serviços Diferenciados –
DS), no cabeçalho do IPv4 e do IPv6 explica como o campo Classe de Tráfego
(Traffic Class) no IPv6 pode ser usado.[5]
Flow Label (20 bits) – Rótulo de Fluxo
Este campo distingue os pacotes que requerem o mesmo tratamento, a fim de
facilitar a manipulação do tráfego em tempo real, permitindo que uma origem e
um destino configurem uma pseudoconexão com propriedades e necessidades
específicas, como, por exemplo, reserva de largura de banda. O mecanismo
funciona da seguinte forma: Um host enviador pode rotular seqüências de
pacotes com um conjunto de opções. Roteadores mantêm a trilha do fluxo e
pode processar pacotes pertencendo ao mesmo fluxo mais eficientemente,
uma vez que, não é necessário reprocessar cada cabeçalho do pacote. Um
fluxo é identificado unicamente pelo rótulo do fluxo (Flow Label), pelo endereço
de origem e pelo endereço de destino.
Cada fluxo é designado pelo endereço de origem, pelo endereço de destino e
pelo número de fluxo. Portanto pode haver muitos fluxos ativos ao mesmo
tempo entre um determinado par de endereços IP, ou diferentes pares de
endereços IP com o mesmo número de fluxo (que são escolhidos ao acaso).
Desta forma, quando dois fluxos enviados por diferentes hosts e com o mesmo
número de fluxo, passarem pelo mesmo roteador, este será capaz de distinguilos usando os endereços de origem e de destino.[1]
Nota: o uso do campo rótulo de fluxo, - Flow Label field, é experimental e ainda
está em discussões na IETF.[5][1]
Payload Length (2 Bytes) – Comprimento do Payload
Este campo especifica o payload - o comprimento de dados carregado após o
cabeçalho do IP. O cálculo na versão IPv6 é diferente do realizado na IPv4. O
campo Comprimento (Length Field), no IPv4 inclui o comprimento do cabeçalho
do IPv4, enquanto que o campo Comprimento do Payload no IPv6 contém
somente dados que acompanham o cabeçalho do IPv6. Cabeçalhos de
extensão são considerados parte do payload e são por isso incluídos no
cálculo. O fato que o campo comprimento do payload ter 2 Bytes limita o
pacote máximo para o tamanho de 64 kB. IPv6 tem um cabeçalho de extensão,
chamados de Jumbogram, que suporta pacotes de dimensões maiores, se
necessário. Jumbogram são relevantes somente quando os nós IPv6 são
tachados para links que tem um link de MTU maior que 64KB. Jumbogram está
especificado na RFC 2675.[5]
Next Header (1 Byte) – Próximo Cabeçalho
No IPv4, este campo é o campo do Tipo de Protocolo. Foi redefinido no IPv6
para refletir a nova organização dos pacotes IP. Se o próximo cabeçalho é
UDP ou TCP, este campo conterá o mesmo número do protocolo como no IPv4
– por exemplo, número 6 para o protocolo TCP ou 17 para UDP. Mas se
cabeçalho de Extensão é usado com IPv6, este campo contém o tipo do
próximo cabeçalho de extensão ou o nome do protocolo.
A tabela 1 lista os possíveis valores para esse campo.
Valor
0
1
2
4
6
8
9
17
41
43
44
45
46
50
51
58
59
60
88
89
108
115
132
134-254
255
Descrição
No cabeçalho IPv4: reservado e não usado
No cabeçalho IPv6: pertence ao cabeçalho opcional passo a passo,
- Hop-by-Hop Option Header follwing
Protocolo de Controle de Mensagem da Internet (ICMPv4) – suporta
IPv4
Protocolo de Gerência de Grupo da Internet (IGMPv4) – suporta
IPv4
IP in IP (encapsulamento)
TCP
Protocolo de Gateway Exterior (EGP)
IGP – (usado pela Cisco para seu IGRP)
UDP
IPv6
Cabeçalho roteado – Routing header
Cabeçalho fragmentado – Fragmentation header
Protocolo de Roteamento Interdomínio – (IDRP)
Protocolo Reservado – Resource Reservation Protocol (RSVP)
Encrypted Security Payload header
Cabeçalho de Autenticação – Authentication header
ICMPv6
Nenhum Próximo Cabeçalho para IPv6, - No Next Header for IPv6
Cabeçalho de destino opcional, - Destination Options header
EIGRP
OSPF
Protocolo de Compressão do Payload IP, - IP Payload Compression
Protocol
Layer 2 Tunneling Protocol (L2TP)
Stream Control Transmission Protocol (SCTP)
Não acessado
Reservado
Tabela 1 – Valores do campo Próximo Cabeçalho (Next Header)
Nota: a lista completa do número dos protocolos pode ser encontrada no site
da IANA, http://www.iana.org/assignments/protocol-numbers. .[5]
Hop Limit (1 Byte)
O campo LIMITE DE PASSOS DA ROTA (HOP LIMIT) no IPv6 correspondente
ao campo TEMPO DE VIDA (TIME TO LIVE) do IPv4 que interpreta um tempo
de vida como uma combinação de contagem de passos da rota e do tempo
máximo, no IPv6 ele interpreta o valor atribuindo limite estrito ao número
máximo de passos da rota que um datagrama pode fazer antes de ser
descartado. [5][1]
Source Address (16 Bytes) – Endereço de Origem
Este campo contém o endereço IP de 16 bytes do host originador.
Destination Address (16 Bytes) – Endereço de Destino
Este campo contém o endereço IP de 16 bytes do host de destino.
4. Cabeçalhos de Extensão.
Para ser totalmente geral, flexível e eficiente, o IPv6 deve incluir mecanismos a
fim de aceitar funções como fragmentação, roteamento de origem e
autenticação. Entretanto, a opção por alocar campos fixos no cabeçalho de
datagrama para todos os mecanismos não é eficaz, porque a maioria dos
datagramas não usa todos os campos. Então a idéia é, além do cabeçalho
básico fixo, o IPv6 ocasionalmente, utilizar o conceito de cabeçalhos de
extensão(opcional), que foram criados com a finalidade de oferecer
informações extras. Assim, o transmissor pode optar em quais cabeçalhos de
extensão incluir em um determinado datagrama e quais omitir.
Analisar um datagrama do IPv6 que tenha apenas um cabeçalho básico e
dados é tão eficiente quanto analisar um datagrama do IPv4, e muitas vezes,
os roteadores intermediários raramente precisam processar todos os
cabeçalhos de extensão.
Atualmente, existem 6 tipos de cabeçalhos de extensão definidos, mostrados
na figura 9. Todos os cabeçalhos são opcionais, mais se houver, eles terão de
aparecer logo após o do cabeçalho fixo, e caso exista mais de um, eles terão
de aparecer de preferência na ordem listada. Alguns desses cabeçalhos têm
formato fixo; outros contém um número variável de campos de comprimento.
Nesses casos, cada item é codificado com parâmetros (Type, Lenght, Value).
Type é um campo de 1 byte que identifica a opção, Lenght também é um
campo de 1 byte que identifica o tamanho do valor, e Value contém todas as
informações obrigatórias com no máximo 255 bytes. [1]
Cabeçalho de Extensão
Hop-by-hop Options
Destination Options
Routing
Fragmentation
Autentication
Encrypetd Securit Payload
Descrição
Informações diversas para os roteadores.
Informações adicionais para o destino.
Lista parcial de roteadores a visitar.
Gerenciamento de fragmentos de datagramas.
Verificar identidade do transmissor.
Informações sobre o conteúdo Criptografado.
Tabela 2 – Tipos de cabeçalhos de extensão.
Cada cabeçalho básico e de extensão contém um campo PRÓXIMO
CABEÇALHO. O software em roteadores que precisa processar o datagrama
deve usar o valor no campo PRÓXIMO CABEÇALHO de cada cabeçalho, para
analisar o datagrama. [2]
A figura 6 mostra os campos PRÓXIMO CABEÇALHO de três datagramas que
contém zero, um e dois cabeçalhos de extensão. [2]
Cabeçalho Básico
PRÓXIMO=TCP
Segmento TCP
(a)
Cabeçalho Básico
PRÓXIMO=ROTA
Cabeçalho de Rota
PRÓXIMO=TCP
Segmento TCP
(b)
Cabeçalho Básico
Cabeçalho de Rota
Cabeçalho de Autoridade
PRÓXIMO=ROTA PRÓXIMO=AUTORIDADE
PRÓXIMO=TCP
Segmento TCP
(c)
Figura 6 – (a) apenas um cabeçalho básico; (b) um cabeçalho básico e um de
extensão; (c) um cabeçalho básico e dois de extensão.
Outra novidade na versão 6 do IP é forma de fragmentação dos pacotes. Como
o IPv4, o IPv6 planeja para que o destino final execute a remontagem do
datagrama. O que difere nas duas versões é a fragmentação. O IPv4 requer
que um roteador intermediário fragmente qualquer datagrama que seja grande
demais para a MTU da rede a qual ela precise viajar. No IPv6, a fragmentação
está restrita a própria origem. Antes de enviar tráfego, uma origem executa
uma técnica de Descoberta de Caminho MTU para identificar a MTU mínima ao
longo do caminho até o destino. Antes de enviar um datagrama, a origem o
fragmenta de tal modo que cada fragmento seja menor do que a MTU mínima
exigida em todo o caminho. Quando a fragmentação é necessária, a origem
insere um cabeçalho de extensão após cada cabeçalho básico de cada
fragmento. [2]
A figura 7 mostra o conteúdo do cabeçalho de extensão de fragmento.
PRÓXIMO CABEÇALHO RESERVADO DESLOCAMENTO DE FRAGMENTO MF
IDENTIFICAÇÃO DO DATAGRAMA
Figura 7 – Campos do cabeçalho Fragmentação
5. Endereçamento
Uma das maiores vantagens apresentadas pelo IPv6 é o fato de o
endereçamento ser feito com 128 bits, em oposição aos 32 bits utilizados no
IPv4.
Isto resolve o problema de falta de endereços, pois com 128 bits é possível
endereçar um total de 2128 (aproximadamente 3,4 x 1038) hosts, a menos dos
endereços reservados. Isto significa, por exemplo, que supondo uma
população de 10 bilhões (1010) de pessoas, há 3,4 x 1028 endereços para cada
habitante do planeta. Podemos perceber então que 128 bits nos fornecem um
número de endereços mais do que suficiente para as próximas décadas.
Esta grande quantidade de endereços possibilita que esses sejam agregados
de acordo com a topologia da rede, utilizando parâmetros como posição
geográfica, provedor de acesso, corporação entre outras. Dessa forma, as
tabelas de roteamento tendem a diminuir, agilizando o roteamento.
Uma outra vantagem é viabilizar o tratamento do problema da mobilidade, tal
como ele é tratado atualmente. Um endereço fixo (home address) é atribuído
para o nó móvel na sua rede padrão e outros endereços são fornecidos
provisoriamente para cada rede visitada. Isso também requer uma quantidade
de endereços bem maior do que atualmente o Ipv4 pode oferecer.
5.1 Notação:
A notação escolhida para representar um endereço IPv6 consiste de agrupar
os 128 bits em oito grupos de 16 bits. Cada grupo é representado por números
hexadecimais de quatro algarismos, sendo os grupos separados entre si pelo
símbolo de dois pontos (":").
Assim, um possível endereço IPv6 é:
FEDC:0034:0000:0000:0000:0012:0ABC:00FF
É de se esperar que, principalmente no início da utilização deste protocolo,
muitos dos bits dos endereços apresentem valor zero, gerando algarismos '0'
no endereço. Convencionou-se então que, dentro de um mesmo grupo, zeros à
direita podem ser eliminados.
O endereço apresentado acima ficaria então FEDC:34:0:0:0:12:ABC:FF.
No entanto, alguns grupos consecutivos podem vir a ser constituídos apenas
por zeros. Quando isto ocorrer, estes grupos podem ser substituídos por "::".
Assim, o exemplo ficaria FEDC:34::12:ABC:FF .
Quanto aos endereços IPv4, estes continuarão válidos. A versão IPv6 desses
endereços será obtida completando todos os 96 bits à esquerda dos 32 bits do
endereço IPv4 com '0'. . A notação utilizada atualmente poderá ser mantida.
Assim, um endereço IPv4 e o seu equivalente IPv6 são:
146.164.47.129
0:0:0:0:0:0:146.164.47.129 ou ::146.164.47.129
5.2 TIPOS DE ENDEREÇO:
Este protocolo apresenta três tipos de endereço: unicast, multicast e anycast.
O tipo Broadcast foi eliminado pois se trata de um caso particular de multicast.
O unicast é o novo nome que se deu ao endereçamento ponto-a-ponto
tradicional. Um pacote destinado a um endereço unicast é entregue apenas
àquela interface que possui o endereço especificado.
O multicast é um tipo de endereçamento que pode ser acrescentado ao IPv4,
mas que já é nativo no IPv6. Um pacote destinado a um endereço multicast é
entregue a todas as interfaces que fazem parte daquele grupo de endereços.
O IPv6 não usa os termos difusão (broadcast) ou difusão direta para se referir à
entrega a todos os computadores de uma rede física ou sub-rede lógica IP. Em
vez disso, usa o termo multicast e trata difusão como uma forma especial de
multicast.
O anycast é um novo tipo de endereçamento, que envia o pacote a um de
vários servidores especificados por dado endereço anycast. O sistema de
roteamento entrega o pacote ao servidor mais “próximo”, de acordo com o
custo de sua rota. Isto é interessante, por exemplo, para servidores DNS.
5.3 Atribuição do espaço de endereço do IPv6 proposto:
A questão de como compartilhar o espaço de endereço tem gerado muita
polêmica. Há dois pontos centrais: como gerenciar a atribuição de endereços e
como mapear os endereços em rotas. O primeiro ponto focaliza o problema
prático de delinear uma hierarquia de autoridade. Ao contrário da Internet atual,
que usa uma hierarquia de 2 níveis (prefixo de rede e sufixo de host), o grande
espaço de endereço no IPv6 permite uma hierarquia de vários níveis ou várias
hierarquias. O segundo ponto focaliza a eficácia computacional.
O grande espaço de endereçamento possibilita a redução das tabelas de
roteamento, desde que a divisão dos endereços seja feita de forma inteligente.
A tabela 3 abaixo mostra uma proposta de atribuição de classes de endereços
para o IPv6:
Prefixo básico
0000 0000
0000 0001
0000 001
0000 010
0000 011
0000 110
0000 100
0000 101
0000 110
0000 111
0001
001
010
011
100
101
110
1110
1111 0
1111 10
1111 110
1111 1110
1111 1111
Tipo de endereço
Reservado (compatível IPv4)
Reservado
Endereços NSAP
Endereços IPX
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Provedor – unicast atribuído
Reservado
Reservado para Geográfico
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Disponível para uso local
Usado para multicast
Parte do espaço de end.
1/256
1/256
1/128
1/128
1/128
1/128
1/128
1/128
1/128
1/128
1/16
1/8
1/8
1/8
1/8
1/8
1/8
1/16
1/32
1/64
1/128
1/256
1/256
Tabela 3 - Tabela extraída de COMER, Douglas [1995], “Internetworking with
TCP/IP”
Mais de 72% do espaço foi reservado para uso futuro, sem incluir a seção
reservada para endereços geográficos. Embora o prefixo 0000 0000 tenha o
rótulo reservado, os projetistas planejam usar nessa seção uma parte de
endereços para codificar endereços de IPv4. Em particular, qualquer endereço
que comece com 80 bits zeros seguidos de 16 bits um ou 16 bits zero contém
um endereço de IPv4 nos 32 bits de ordem baixa.
Abaixo, uma proposta de hierarquia para endereçamento baseada nos
provedores:
Figura 8 – Proposta de hierarquia de endereçamento IPv6
6. TRANSIÇÃO: IPV4 → IPV6
A palavra chave na transição entre as duas versões do protocolo IP é
interoperação. As duas versões devem poder se comunicar entre si sem
problemas já que não se pode fazer a mudança do protocolo em todos os hosts
da Internet de uma só vez.
Para permitir a sua intercomunicação, dois mecanismos foram trabalhados:
Dual-stack: Estabelece que nós IPv6 devem ter internamente as duas pilhas
TCP/IP, a da versão 6 e a da versão 4. Ao receber um pacote, decide qual a
pilha processará o datagrama. Da mesma forma que dependendo com quem
queira se comunicar, utiliza uma das duas pilhas para processar o pacote a ser
enviado. Esse mecanismo permite que nós IPv6 se comuniquem com nós IPv4
e realizem roteamento de pacotes IPv4.
Conversor: Ao invés de ter implementado os dois protocolos, um host pode se
utilizar um conversor para se comunicar com outro host, que não rode a
mesma versão só protocolo IP que a sua. Nesse caso, por exemplo, um
computador IPv6 gera um datagrama que contenha a codificação IPv6 do
endereço destino IPv4 e manda para o conversor, que converte o datagrama
para IPv4 e envia para o destino. O destino responde em IPv4 também para o
conversor, que faz o contrário, traduzindo o datagrama para IPv6 e o reenvia
para o destino final.
Esse método poderia falhar visto que os protocolos de camadas mais altas
verificam a integridade do endereço IP. Em particular, o TCP e o UDP fazem
uma soma de verificação que inclui os endereços IP de origem e de destino.
Assim a mudança de tais endereços poderia alterar esse valor,
comprometendo a integridade aos olhos do TCP ou do UDP. Entretanto, a
codificação escolhida para mapear os endereços IPv4 em IPv6 não altera essa
soma de verificação, enganando-a.
Um outro problema seria a necessidade de enviar pacotes IPv6 por uma rede
IPv4. Nesse caso, os roteadores de borda fariam um tunelamento do IPv6 sob
o IPv4, como explicado abaixo.
Tunneling: esse mecanismo consiste em transmitir um datagrama IPv6 como
parte de dados de um datagrama IPv4, a fim de que dois nós IPv6 possam se
comunicar através de uma rede que só suporte IPv4. A rede IPv4 é vista como
um túnel e o endereço IPv4 do nó da outra extremidade deste túnel consta
como destino do datagrama IPv4. Neste nó, o cabeçalho IPv4 é retirado e o
pacote IPv6 volta a trafegar normalmente a seu destino. Os nós das duas
extremidades do túnel devem, obviamente, ser capazes de falar IPv4 e IPv6 já
que têm uma interface ligada a uma rede IPv4 e outra ligada a uma rede IPv6.
Figura 9 – Exemplo de interoperabilidade de redes IPv6 e IPv4
7. Conclusão
Um esforço para definir a próxima geração do Internet Protocol (IPng) tem
produzido muitas propostas e discussões. Em consenso a proposta conhecida
como Simple IP Plus foi eleita como a nova versão do IPv4, conhecido como
IPv6. O IPv6 mantém muitos conceitos básicos do IPv4, porém seu formato é
completamente diferente. A nova versão do IP utiliza o conceito de cabeçalho
básico e fixo e cabeçalhos de extensão, dando agilidade ao protocolo. Além
disso, com um comprimento de 128 bits, IPv6 resolve o problema de
esgotamento do espaço de endereço, e restringindo a fragmentação a origem,
não exige recursos desnecessários nos nós intermediários da conexão.
Constantemente são mantidos esforços para manter a tecnologia de
transmissão de dados através da Internet em evolução para atender a
expectativa da convergência dos serviços de voz, vídeo e dados em um único
nó da rede, e esta nova versão do IP foca na otimização do protocolo a
garantia para atender a viabilidade de todos esses serviços.
O IPv6 é uma evolução natural de um já antigo protocolo, criado para um
cenário específico diferente de onde vem sendo usado ultimamente. Surge
então a necessidade de adaptá-lo para que seja capaz de responder às novas
necessidades, e algumas novas funcionalidades a serem implementadas na
camada de rede.
O protocolo está condizente com a tendência mundial da Internet de simplificar
cada vez mais todo o processamentos grandes backbones, a fim de agilizar a
comunicação entre os hosts, cabendo a estes então todos os serviços que
exigem mais processamento, que passam a ser implementados então nas
camadas superiores.
A implementação dos cabeçalhos de extensão, além de contribuir com essa
agilidade já que permite implementar determinados serviços apenas quando
necessário diminuindo overhead desnecessários, dá grande flexibilidade e
provavelmente longevidade ao novo protocolo, pois permite que novos serviços
sejam implementados na camada de rede sem a necessidade de se alterar
todo o protocolo.
Por fim, apesar de sua especificação estar completa e consolidada (inclusive
com uma RFC de revisão 3 anos após a primeira especificação), a Internet
ainda está implementada usando IPv4. Isso ocorre principalmente pelo custo
que essa mudança acarretaria sem um fator motivador forte o suficiente para
impulsioná-la. Isso se deve principalmente às soluções de contorno (uso de
endereços falsos através do NAT) dadas ao problema de esgotamento de
endereços.
O mais provável é que em algum momento essa mudança seja forçada pelos
responsáveis dos grandes backbones da Internet através de incentivos como a
priorização dos pacotes utilizando o novo protocolo.
Referências Bibliográficas
[1] TANENBAUM, Andrew S. - Redes de Computadores – Tradução de
Computer Networks - 4° Edição – Elsevier – 2003 - ISBN 85-352-1185-3
[2] COMER, Douglas E. – Interligação em Rede com TCP/IP - Tradução de
Intenetworking with TCP/IP – Campus - Rio de Janeiro, 1998 - ISBN 85-3520270-6.
[3] FERREIRA, Rubem E. – Linux Guia do Administrador do Sistema - Novatec
Editora Ltda.
[4] KLENSIN, John C., A Policy Look at IPv6: A Tutorial Paper, Workshop
Document WSIPv6-3, 16 April 2002.
[5] O´REILLY, Silva Hagen, Integrating IPv6 into Your IPv4 Network – IPv6 ISBN: 0-596-00-125-8
Sites consultados:
• www.cisco.com
• www.ipv6forum.org
• www.ipv6dobrasil.com.br
• www.ietf.org
Download

IPv6 - Universidade Federal Fluminense