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.
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. na figura 19
19. Estrutura do Pacote ICMPv6
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.
20.
Processo de
Neighbor 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:
21. 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.
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.