O IPv6

Novembro 2017


O que é o protocolo IP

Os dias do protocolo IP na sua forma atual (IPv4) estão contados. A rede internet foi largamente utilizada pelas universidades, indústrias de alta tecnologia e governos a partir de meados dos anos 90, mas ela 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 o uso da população do computador, das redes, do áudio visual e da indústria de lazer, cada de televisão tornar-se-á um equipamento de acesso à internet, e já permite a mil milhões de indivíduos, praticar, por exemplo, vídeo on demande, televendas ou comércio eletrônico. Nestas circunstâncias, o protocoloIPv6 (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 objetivos principais deste novo protocolo foram: suportar mil milhões de computadores, libertando-se da ineficácia do espaço dos endereços IP atuais, reduzir a dimensão das tabelas de encaminhamento, fornecer uma melhor segurança (autenticação e confidencialidade) que o atual protocolo IP, atribuir mais atenção ao tipo de serviço, e nomeadamente aos serviços associados ao tráfego em tempo real, facilitar a divulgação multi destinatários permitindo especificar a envergadura, dar a possibilidade a um computador de se deslocar sem estar a alterar o seu endereço, permitir ao protocolo uma evolução futura, atribuir ao antigo e ao novo protocolo uma coexistência pacífica.

O que é o endereçamento IPv6

O protocolo IPv6 responde razoavelmente aos objetivos 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).

Características e benefícios do IPv6

A novidade essencial de IPv6 é a utilização de endereços mais longos que o IPv4. Eles 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.

Outra melhoria consiste em oferecer mais flexibilidade às opções. Esta mudança é essencial na 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; ela permite aos 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 uma segurança maior: 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 seja utilizado muito raramente, o crescimento esperado do tráfego multimídia no futuro precisa de sua atenção.

Rubrica básica dos datagramas

Confira o aspecto aproximado de um datagrama IPv6:


<--------------------------- 32 bits --------------------------->
Versão Classe de tráfego Identificador de fluxos
Comprimento dos dados
<td width="120">Rubrica seguinte<td width="120"> Número de quebras

<td width="480">Endereço IP fonte

<td width="480">Endereço IP destino

<td width="480">Dados

Veja o significado dos diferentes campos:

O campo versão é sempre igual a 4 bits no IPv6. Durante o período de transição do IPv4 para o IPv6, os switchs deverão examinar este campo para saber que tipo de datagrama eles encaminham.

O campo classe de tráfego (codificado das 8 bits) é utilizado para distinguir as fontes que devem beneficiar do controle de fluxos dos outro. Prioridades de 0 a 7 são afetadas às fontes capazes de retardar o seu débito em caso de congestão. Os valores 8 a 15 são atribuídos ao tráfego em tempo real (os dados áudio e vídeo fazem parte deste grupo), cujo débito é constante. Esta distinção dos fluxos permite às switchs reagir melhor em caso de congestão. Em cada grupo prioritário, o nível de prioridade mais fraco corresponde aos datagramas menos importantes.

O campo identificador de fluxos contém um número único escolhido pela fonte que tem por objetivo facilitar o trabalho dos switchs e permitir a aplicação das funções de qualidade de serviços como RSVP (Resource reSerVation setup Protocol). Este indicador pode ser considerado como uma marca para um contexto em switchs. Este pode então fazer um tratamento específico: escolha de um caminho, tratamento em tempo real da informação. O campo identificador de fluxos pode ser preenchido com um valor aleatório que servirá para referenciar o contexto. A fonte guardará este valor para todos os pacotes que emitirá para esta aplicação e este destino. O tratamento é otimizado dado que os switchs só tem que consultar cinco campos para determinar a pertença de um pacote. Além disso, se uma extensão de confidencialidade for utilizada, as informações relativas aos números de porta são mascaradas para os switchs intermédios.

O campo comprimento dos dados úteis (em inglês payload) sobre dois bytes, contém apenas a dimensão dos dados úteis, sem ter em conta o comprimento da rubrica. Para pacotes cuja dimensão dos dados seria superior a 65536, este campo vale 0 e a opção ‘jumbograma’ da extensão ‘de parentes em parente’ é utilizada.

O campo rubrica seguinte tem uma função similar ao campo protocolo do pacote IPv4: identifica simplesmente a próxima rubrica (no mesmo datagrama IPv6). Pode tratar-se de um protocolo (de nível superior ICMP, UDP, TCP,…) ou de uma extensão.

O campo número de saltos substitui o campo TTL (Time-to-Live) no IPv4. O seu valor (em 8 bits) é subtraído a cada nó atravessado. Se este valor atingir 0 enquanto que o pacote IPv6 atravessa o switch, será rejeitado com a emissão de uma mensagem ICMPv6 de erro. É utilizado para impedir os datagramas de circular indefinidamente. Desempenha o mesmo papel que o campo Duração de vida do IPv4, e contém um valor que representa o número de saltos ou passos (hops) que é subtraído a cada passagem emswitchs. Em teoria, no IPv4, há uma noção de tempos em segundos, mas como nenhum switchs o utiliza como tal, o nome foi alterado para refletir o uso atual.

Vêm seguidamente os camposendereço fonte e endereço de destino. Após numerosas discussões, decidiu-se que os endereços de comprimento fixo iguais a 16 bytes constituíam um melhor compromisso.

Os primeiros bits do endereço - o prefixo - definem o tipo de endereço. Os endereços que começam por 8 zeros estão reservados para os endereços IPv4. Duas alternativas são suportadas; distinguem-se de acordo com os 16 bits seguintes ( 16 bits a 0 ou a 1).

O endereçamento pelo prefixos

A utilização de prefixos separados para os endereços afetados a um fornecedor e os endereços afetados 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 fraçã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 ‘registro’ se encontra o fornecedor de acesso. Atualmente, três registros estão operacionais, para a América do Norte, a Europa e a Ásia. Até 29 novos registros poderão ser acrescentados interiormente.


Cada registro é 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 atual, 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 links 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 guarda-barreira para proteger a sua rede privada da rede Internet.

Endereço broadcast

Os endereços de divulgação multi destinatá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.

Endereço anycast

Além de suportar o endereçamento ponto a ponto clássico (unicast) e o endereçamento de divulgação multi destinatário (multicast), o IPv6 suporta um novo tipo de endereçamento de divulgação (anycast). Esta técnica é semelhante à difusão multi destinatária 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.

O padrão IPv6

O novo padrã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 otimizaçõ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 seguinteda última rubrica IP de um datagrama determina 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, ao contrário do que se passa com a fragmentação, o switchs 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 controle total já não existe porque o seu cálculo é demasiado redutor de desempenho. Com efeito, a fiabilidade das redes atuais, combinada com o facto de que as camadas ligações de dados e transporte efetuam o seu próprio controle, faz com que o ganho em qualidade de um total de controlo suplementar não valha o preço a pagar para o codificar.

Exrensão

Rubricas de extensão

Esta rubrica fornece uma informação complementar de maneira eficaz. Todas são opcionais. Se mais de uma rubrica estiver presente, elas 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: saltar a opção, destruir o datagrama, devolver uma mensagem ICMP à fonte destruir o datagrama sem reenviar uma mensagem ICMP se se tratar de um datagrama multi destinatário (a fim de evitar um número demasiado importante de relatório ICMP em regresso).

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.

Rubrica passo a passo

A rubrica passo a passo contém informações destinadas a todos os switchs no caminho.

Rubrica Encaminhamento

A rubrica encaminhamento dá a lista de um ou vários switchs que devem ser visitados no trajeto para o destino. Duas formas de encaminhamento são aplicadas de maneira combinada: o encaminhamento estrito (o caminho integral é definida) e o encaminhamento impreciso, 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: o tipo de rubrica seguinte; o tipo de encaminhamento (habitualmente 0); o número de endereços presentes na rubrica (de 1 a 24); um endereço que dá o próximo endereço a visitar. Este último campo começa com o valor 0, é incrementado a cada endereço visitado.

Rubrica fragmentação

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.

Autenticação

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 lê-lo.

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 controle 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.

Opção de destino

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, consulte o RFC 2460 que explica de maneira detalhada o protocolo: RFC 2460 traduzido para o português e RFC 1661 original.

IPv6 protocol
IPv6 protocol
Protocolo IPv6
Protocolo IPv6
Le protocole IPv6
Le protocole IPv6
Il protocollo IPv6
Il protocollo IPv6
Última modificação: 11 de maio de 2017 às 15:32 por ninha25.
Este documento, intitulado 'O IPv6', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.