Documento escrito por Nico VanHaute
Os dias do protocolo IP na sua forma actual (IPv4) estão contados. A rede Internet era utilizada largamente pelas universidades, as indústrias de alta tecnologia, e o governo a partir de meados dos anos 90, mas a Internet interessa cada vez mais as empresas e as sociedades comerciais - será utilizada por um grande número de indivíduos e sistemas que exprimem uns e outros necessidades diferentes. Por exemplo: com a convergência iminente do computador, das redes, do audiovisual e da indústria dos lazeres, cada posto de televisão tornar-se-á dentro de pouco tempo um equipamento de acesso à Internet que permite a mil milhões de indivíduos praticar, por exemplo, vídeo on demande, televendas ou comércio electrónico. Nestas circunstâncias, o protocolo IPv6 (chamado igualmente IPng para IP new geração) deve oferecer mais flexibilidade e eficácia, resolver qualquer variedade de problemas novos e não deveria nunca entrar em ruptura de endereços.
Os objectivos principais deste novo protocolo foram:
O protocolo IPv6 responde razoavelmente aos objectivos estabelecidos. Mantém as melhores funções de IPv4, afasta ou minimiza as más, e acrescenta novas quando são necessárias.
Em geral, o IPv6 não é compatível com o IPv4, mas é compatível com todos os outros protocolos Internet, como TCP, UDP, ICMP, IGMP, OSPF, BGP e DNS; às vezes, ligeiras modificações são necessárias (nomeadamente para funcionar com longos endereços).
A novidade essencial de IPv6 é a utilização de endereços mais longos que o IPv4.
São codificadas em 16 bytes e permitem resolver o problema que pôs o IPv6 na ordem do dia: oferecer um conjunto de endereços Internet quase ilimitado.
O IPv4 permite dirigir 2^32=4,29.10^9 endereços enquanto o IPv6 permite dirigir 2^128=3,4.10^38 endereços.
A melhoria essencial de IPv6 é a simplificação da rubrica dos datagramas. A rubrica do datagrama básico IPv6 compreende apenas 7 campos (contra 14 para o IPv4). Esta mudança permite aos switchs tratar mais rapidamente os datagramas e melhora globalmente o seu débito.
A terceira melhoria consiste em oferecer mais flexibilidade às opções. Esta mudança é essencial com a nova rubrica, porque os campos obrigatórios da antiga versão são agora opcionais.
Além disso, a forma como as opções são representadas é diferente; permite às switchs ignorar mais simplesmente as opções que não lhes são destinadas. Esta função acelera o tempo de tratamento dos datagramas.
Por outro lado, o IPv6 confere uam maior segurança :
A autenticação e a confidencialidade constituem as funções de segurança essenciais do protocolo IPv6.
Finalmente, foi atribuída mais atenção do que no passado aos tipos de serviços. Embora o campo Tipo de serviço do datagrama IPv4 apenas seja utilizado muito raramente, o crescimento esperado do tráfego multimédia no futuro precisa de lhe prestar atenção.
Eis o aspecto aproximado de um datagrama IPv6:
<--------------------------- 32 bits --------------------------->
| |||
| |||
Eis o significado dos diferentes campos :
A utilização de prefixos separados para os endereços afectados a um fornecedor e os endereços afectados a uma zona geográfica constitui um compromisso entre duas diferentes visões da futura rede Internet. Cada um destes fornecedores dispõe de uma fracção reservada do espaço de endereçamento (1/8 deste espaço). Os 5 primeiros bits que seguem o prefixo 010 são utilizados para indicar em que “registo” se encontra o fornecedor de acesso. Actualmente, três registos estão operacionais, para a América do Norte, a Europa e a Ásia. Até 29 novos registos poderão ser acrescentados ulteriormente.
Cada registo é livre para dividir os 15 bytes restantes como bem o entender. Uma outra possibilidade é utilizar um byte para indicar a nacionalidade do fornecedor e deixar aos bytes total liberdade para definir uma estrutura de endereços específica.
O modelo geográfico é o mesmo que o da rede Internet actual, na qual os fornecedores de acesso não desempenham um grande papel. Neste quadro, Io Pv6 pode gerir 2 tipos de endereços.
Os endereços Unicast Locales (ULA)
utilizam o prefixo FC00::/7, destinam-se ao equivalente dos endereços ip privados IPV4 (RFC1918) .
Os endereços de relações e de sites locais têm apenas uma especificação local. Podem ser reutilizados por outras organizações sem que haja conflito. Não podem ser propagados fora dos limites das organizações, o que os torna bem adaptados às que utilizam guardas-barreira para proteger a sua rede privada da rede Internet.
Os endereços de divulgação multidestinatário dispõem de um campo Bandeira (4 bits) e de um campo Envergadura (4 bits) na sequência do prefixo, seguidamente de um campo Identificador de grupo (112 bits). Um dos bits da bandeira distingue os grupos permanentes dos grupos transitórios.
O campo Envergadura permite uma divulgação limitada numa zona
Além de suportar o endereçamento ponto a ponto clássico (unicast) e o endereçamento de divulgação multidestinatário (multicast), o IPv6 suporta um novo tipo de endereçamento de divulgação (anycast).
Esta técnica é semelhamte à difusão multidestinatário no sentido em que o endereço de destino é um grupo de endereços mas, em vez de enviar o datagrama a todos os membros do grupo, tenta enviá-lo apenas a um membro do grupo, o mais próximo.
Uma nova notação foi definida para descrever os endereços IPv6 de 16 bytes. Compreende 8 grupos de 4 números hexadecimais separados com o símbolo dois-pontos. Por exemplo:
8000:0000:0000:0000:0123:4567:89AB:CDEF
Dado que vários endereços têm numerosos zeros na sua minuta, 3 optimizações foram definidas. Em primeiro lugar, os 1° zero de um grupo podem ser omitidos, como por exemplo 0123 que pode escrever-se 123. Seguidamente, um ou vários grupos de 4 zeros consecutivos podem ser substituídos por um duplo dois-pontos. É assim que o endereço acima passa a ser :
8000::::123:4567:89AB:CDEF
Por último, os endereços IPv4 podem ser escritos utilizando a representação do endereço em notação decimal apontada, precedida de um duplo dois-pontos, como por exemplo:
::192.31.254.46
O campo Protocolo está excluído porque o campo Rubrica seguinte da última rubrica IP de um datagrama precisa o tipo de protocolo (por exemplo,UDP ou TCP).
Todos os campos relativos à fragmentação foram retirados, porque o IPv6 tem uma abordagem diferente da fragmentação.
Para começar, todos os computadores e switchs conformes ao IPv6 devem suportar os datagramas de 576 bytes. Esta regra coloca a fragmentação num papel secundário. Além disso, quando um computador envia um datagrama IPv6 demasiado grande, contrariamente ao que se passa com a fragmentação, o switch que não pode transmiti-lo envia uma mensagem de erro à fonte. Esta mensagem diz ao computador fonte para interromper o envio de novos datagramas para este destino. Ter um computador que transmite imediatamente datagramas de boa dimensão é bem mais eficaz do que ver os switchs fragmentá-los.
Por último, o campo Total de controlo já não existe porque o seu cálculo é demasiado redutor de desempenho. Com efeito, a fiabilidade das redes actuais, combinada com o facto de que as camadas ligações de dados e transporte efectuam o seu próprio controlo, faz com que o ganho em qualidade de um total de controlo suplementar não valha o preço a pagar para o codificar.
Esta rubrica fornece uma informação complementar de maneira eficaz. Cada uma delas é opcional. Se mais de uma rubrica estiverem presentes, devem aparecer imediatamente após a rubrica fixa, preferivelmente na ordem da lista.
Certas rubricas têm um formato fixo; outras contêm um número variável de campos variáveis. Por isso, cada item é codificado sob a forma de um trio (Tipo, Comprimento, Valor). O Tipo é um campo de um byte que precisa a natureza da opção. Os diferentes tipos foram escolhidos de modo a que os 2 primeiros bits dissessem o que fazer aos switchs que não sabem executar a opção.
As escolhas são:
O Comprimento é um campo de um byte. Indica a dimensão do campo Valor (de 0.255) que contém uma informação qualquer dirigida ao destinatário.
A rubrica Passo a Passo contém informações destinadas a todos os switchs no caminho.
A rubrica Encaminhamento dá a lista de um ou vários switchs que devem ser visitados no trajecto para o destino. Duas formas de encaminhamento são aplicadas de maneira combinada: o encaminhamento estrito (a estrada integral é definida) e o encaminhamento impresciso (só os switchs obrigatórios são definidos).
Os 4 primeiros campos da rubrica de extensão Encaminhamento contêm 4 totalidades de um byte:
A rubrica Fragmentação trata da fragmentação de maneira semelhante ao IPv4. A rubrica contém o identificador de datagrama, o número de fragmento e um bit que precisa se houver outros fragmentos a seguir. No IPv6, contrariamente ao IPv4, só o computador fonte pode fragmentar o datagrama. OS switchs no trajeto não o podem. Isto permite ao computador fonte fragmentar o datagrama em partes e utilizar a rubrica Fragmentação para as transmitir.
A rubrica Autenticação fornece um mecanismo que permite ao destinatário de um datagrama assegurar-se da identidade da fonte. No IPv4, nenhuma garantia semelhante é oferecida.
A utilização da codificação dos dados do datagrama (a sua carga útil) reforça a sua segurança; só o verdadeiro destinatário pode ler-o.
Quando um emissor e um receptor querem comunicar em total segurança, devem em primeiro lugar estar de acordo sobre uma ou várias chaves secretas conhecidas unicamente por eles. É atribuído um número chave de 32 bits a cada uma das 2 chaves.
Os números chave são globais de modo que, por exemplo, se A utilizar a chave 4 para comunicar com B, A não pode utilizar esta chave para comunicar com C. Outros parâmetros são associados a cada número chave, como a sua duração de vida, etc.…
Para enviar uma mensagem autenticada, o computador fonte cria primeiramente um datagrama que contém todas as rubricas IP e a carga útil, seguidamente substitui os campos que alteram pouco por zeros (por exemplo: o campo Número máximo de saltos). O datagrama é completado com zeros para ser um múltiplo de 16 bytes. De maneira similar, a chave secreta utilizada também é completada com zeros para ser um múltiplo de 16 bytes. Seguidamente, um total de controlo codificado é calculado após concatenação da chave secreta completa, o datagrama completo e, de novo, a chave secreta completa.
A rubrica Autenticação contém 3 partes. A primeira conta 4 bytes que precisam o número de rubrica seguinte, o comprimento da rubrica de autenticação, e 16 bits a zero. O segundo define o número chave em 32 bits. O terceiro contém o total de controlo codificado (com o algoritmo MD5 ou outro).
O destinatário utiliza o número chave para encontrar a chave secreta. O valor completo da chave secreta é acrescentado antes e após a carga útil própria completada, os campos variáveis da rubrica são esvaziados dos seus zeros, seguidamente o total de controlo codificado é calculado. Se o resultado do cálculo for igual ao total de controlo codificado contido na rubrica Autenticação, o destinatário tem a certeza de que o datagrama vem bem da fonte com a qual partilha a chave secreta. Tem igualmente a certeza de que o datagrama não foi falsificado às escondidas.
Para os datagramas que devem ser enviados secretamente, é necessário utilizar a rubrica de extensão Carga útil codificada. Esta rubrica começa por um número chave de 32 bits, seguido pela carga útil calculada.
A rubrica Opção de destino é utilizada para campos que têm necessidade de ser interpretados e compreendidos apenas pelo computador destinatário. Na versão original de IPv6, a única opção de destino que foi definida foi a opção nula. Permite completar esta rubrica com zeros para obter um múltiplo de 8 bytes. Esta rubrica não será utilizada inicialmente. Foi definida para garantir que os novos softwares de encaminhamento possam tê-la em conta, no caso de alguém um dia pensar em utilizar uma opção de destino.
Para mais informações sobre o protocolo IPv6, é melhor consultar o RFC 2460 que explica de maneira detalhada o protocolo :
Artigo escrito por Nico VanHaute.