Implementação do protocolo IPv6 na RedeRio
Escrito por Alexandre Urtado de Assis e Nilton Alves Jr.
6. Operações Básicas
Nesta seção serão abordadas algumas características importantes do IPv6. Estaremos interessados em verificar as operações básicas do novo protocolo IPv6, as suas mudanças em relação ao protocolo IPv4 e algumas funcionalidades. Essas funcionalidades do IPv6 utilizam principalmente o protocolo ICMP –
Internet Control Message Protocol. Desta forma, primeiramente analisaremos o novo protocolo ICMPv6.
6.1 ICMPv6 Packet
As funcionalidades do ICMP em IPv6, definido pela RFC 1885, são similares as do ICMP em IPv4, mensagens de erros gerais como
destination unreachable messages,
echo request messages e
echo reply messages. Além disso, o pacote ICMP em IPv6 é usado para novas funcionalidades como
neighbor discovery process e
path MTU Discovery.
O pacote ICMP é na verdade um cabeçalho de extensão do cabeçalho básico IPv6. Quando o campo
next header está com valor 58, indica que o próximo cabeçalho de extensão será o pacote ICMP.
Dentro do pacote ICMPv6, existem os campos
type e
code, que identificam o tipo de mensagem que será enviada. O campo
checksun possui um valor que é derivado dos outros campos, sendo utilizado para controle de erro. Por fim, o campo data contém o erro ou a informação de diagnóstico relevante ao processo.
Assim com em IPv4, o ICMPv6 também é freqüentemente bloqueado por políticas de segurança através de
firewalls, porque muitas vezes os ataques às redes são baseados em ICMP.Entretanto, o ICMPv6 pode utilizar IPSec, autenticação e encriptação. Desta forma, ataques baseados em ICMPv6 passam a ser menos freqüentes. Abaixo, é apresentada a estrutura do pacote ICMPv6.
Estrutura do Pacote ICMPv6.
6.2 Neighbor Discovery Protocol
O Protocolo
Neighbor Discovery, definido na RFC 1970, é uma das novas funcionalidades do IPv6, sendo importante para dinamizar alguns de seus processos. Ele habilita roteadores e
hosts IPv6 a determinar o
MAC Address de seus vizinhos de mesmo enlace, encontrar roteadores vizinhos e manter uma tabela de vizinhos. O processo
Neighbor Discovery utiliza mensagens ICMPv6, endereços
Multicast do tipo
Solicited-Node, vistos anteriormente, para determinar os endereços MAC e verificar alcançabilidade de algum vizinho. Desta forma, é importante que todos os
hosts IPv6 estejam associados a alguns grupos
Multicast específicos vistos na seção anterior.
O processo
Neighbor Discovery utiliza 2 mecanismos de operação:
Neighbor Solicitation e
Neighbor Advertisement que serão apresentados a seguir. O
Neighbor Solicitation é usado quando um
host precisa determinar o endereço MAC de um vizinho do mesmo enlace. Esta função substitui o protocolo ARP no IPv6 sem utilizar endereços
broadcast. O processo funciona da seguinte forma: o
host origem envia uma mensagem para os seus vizinhos com valor 135, no campo
type do protocolo ICMP. Ele utiliza como endereço de origem um do tipo
Multicast Solicited Node, relativo ao endereço IPv6 do vizinho a ser alcançado. Na área de dados, ele envia o seu endereço MAC e também uma solicitação do endereço MAC do vizinho.
Quando o vizinho recebe a mensagem para o grupo
Multicast, identifica como endereçada a ele e responde o pedido utilizando o
Neighbor Advertisement Message, que nada mais é que uma mensagem de resposta à solicitação feita. Para isso, ele envia uma mensagem com o valor 136 no campo
type do ICMP e no campo data transmite o seu endereço MAC. Abaixo podemos verificar um esquema deste processo.
Processo de Neighbor Discovery.
6.3 Router Discovery
O
Router Discovery é um processo usado para que os
hosts possam descobrir os roteadores existentes em seu enlace. Para isso, ele utiliza as mensagens de
Router Advertisement e
Router Solicitation.
As mensagens de
Router Advertisement são periodicamente enviadas por cada interface de um roteador IPv6 e também é enviada como resposta de uma mensagem de
Router Solicitation. Essas mensagens são enviadas para todos os nós de um mesmo enlace através do endereço
Multicast FF02::1 ou para o endereço
Unicast específico recebido através de uma mensagem de
Router Solicitation.
Para isso, ele utiliza o valor 134 no campo
type do ICMPv6 e tem na área de dados as seguintes informações: prefixo de rede para autoconfiguração, tipo de autoconfiguração, o tempo de vida do prefixo informado e outras informações adicionais, como a MTU. Abaixo mostramos um esquema do
Router Advertisement:
Processo de Router Discovery.
A
Router Solicitation utiliza o valor 133 no campo
type do ICMPv6 e é utilizada pelos
hosts que ainda não têm endereços IPv6 configurados. Desta forma, eles utilizam como endereço de origem um do tipo
Unspecified (
::), e como endereço de destino
FF02::2, grupo
Multicast, que alcança todos os roteadores do enlace.
6.4 Autoconfiguração
O protocolo IPv6 define uma nova característica que não existia em IPv4, a autoconfiguração de endereços sem a necessidade de servidores DHCP –
Dinamic Host Configuration Protocol. Para tal função todos os
hosts IPv6 devem ter endereços do tipo
link-local, que são automaticamente configurados no momento que o
hosts é inicializado, como visto anteriormente (prefixo
FE80::/10 + endereço MAC). Esse tipo de endereço habilita o
host a se comunicar com vizinhos do mesmo enlace e também a configurar-se.
Desta forma, ao receber uma mensagem de
Router Advertisement, vindo do roteador de seu enlace, ele pode automaticamente configurar-se com um endereço
Unicast Global. Como visto acima, a mensagem de
Router Advertisement informa o prefixo da rede e o endereço do roteador, que serão usados na configuração da rota
default. Porém, para que o
host seja capaz de utilizar as informações do
Router Advertisement para autoconfigurar-se é necessário que o prefixo de rede informado seja de 64
bits, caso contrário o
host não poderá executar tal operação.
Outra forma de receber as informações necessárias para a autoconfiguração é o envio, por parte do
host de uma mensagem de
Router Solicitation como visto acima. Abaixo vemos um esquema exemplificando esse processo.
Processo de Autoconfiguração.
Última atualização 17/10/2008 21h25