Mobilidade sobre IPv6
Escrito por Dairton Luiz Bassi Filho
Mobile IPv6
Dentro do IP, o Mobile IPv6 é o protocolo que dá suporte à comunicação de dispositivos móveis. Com IPv6 não há mais problemas com a quantidade de endereços, assim cada unidade móvel pode possuir dois ou mais endereços, um estático, o home address, e um ou mais variáveis, os care-of address que são obtidos e usados quando a unidade móvel está fora de sua área de origem.
O caso trivial acontece quando a unidade móvel está na sua região de origem. A unidade móvel recebe diretamente os pacotes destinados a ela. Quando o dispositivo se moveu para uma região que não é sua origem ele necessita de um novo endereço. Este endereço será o seu care-of address, que é um endereço da rede onde ele está, e será através dele que os agentes irão se comunicar com a unidade móvel.
Assim que a unidade móvel adquire o care-of address o home agente é informado para armazená-lo. A partir de então os pacotes endereçados ao home address serão interceptados e redirecionados através da rede fixa, via tunneling, para o care-of address da unidade móvel.
Este funcionamento é transparente para as camadas acima do IP, seja TCP, UDP ou outras aplicações, tudo se passa como se o dispositivo estivesse recebendo os pacotes no seu home address.
Binding
Quando a unidade móvel está fora de sua rede ela adquire um endereço da rede local, e informa a todos que conhecem o home address a respeito do seu novo endereço, o care-of address, para que os dois sejam associados. A associação entre os endereços é chamada de Binding e significa que os dois endereços referenciam a mesma unidade móvel.
Para realizar o Binding, a unidade móvel envia ao home agent uma mensagem do tipo Binding Update informando o seu care-of address. O home agent responde com um Binding Acknownledgment, e a partir deste momento o home agent redirecionará pela rede fixa os pacotes enviados ao home address ao care-of-address. O binding também é realizado em todos os hosts que se comunicam com a unidade móvel, a única diferença é que estes não enviam o Binding Acknownledgment. Caso o Binding update, por algum motivo, não chegue ao host comunicante, este enviará os pacotes endereçados com ao home address, o home agent irá redireciona-los e enviará o binding ao host comunicante.
Estruturas de dados
Para viabilizar os mecanismos de binding e descoberta de agentes nós e agentes mantém algumas informações armazenadas em estruturas de dados bastante simples mas indispensáveis ao funcionamento do protocolo.
Binding cache, cada entrada desta lista possui o home address e o care-of-address de uma unidade móvel. As entradas permanecem no Binding cache até que expire seu tempo de vida ou chegue um pedido de cancelamento do binding, que ocorre quando a unidade móvel volta para sua rede de origem ou muda de rede estrangeira.
Todo host no IPv6 possui o Binding cache, toda vez que ele vai enviar um pacote o binding cache é consultado, se o endereço de destino é encontrado em alguma entrada o host endereça o pacote diretamente para o care-of address.
Binding Update List, também está presente em todos os nós IPv6, armazena a lista dos nós que receberam um binding update e que deverão ser avisados quando a unidade móvel deixar de usar um care-of address. Esta lista contém o endereço do home agent e dos hosts que a unidade móvel mantém ou manteve algum tipo de comunicação e que o binding ainda não tive seu tempo de vida expirado.
Home Agent List, esta lista existe em todos os routers que operam como home agents, ela contém informações a respeito de todos os home agents presentes em uma rede e é transmitida periodicamente entre os agentes.
Prefix List, lista dos prefixos de rede que a unidade conhece.
Essas estruturas permitem que todo nó móvel seja capaz de gerenciar seus bindings e manter-se informado a respeito dos bindings dos hosts com quem ele estabelece alguma comunicação.
Mensagens
Para gerenciar o tráfego na rede o protocolo ICMP foi melhorado e o ICMPv6 não é mais compatível com a versão atual. Ele é responsável por dois tipos de mensagens, de erro e de controle. Cada mensagem possui um campo tipo que contém um código de identificação da mensagem. As mensagens de erro possuem código reservado entre 1 e 127, as mensagens de controle de rede possuem código de 128 a 256. Atualmente a maior parte dos valores está livre para um uso futuro.
As mensagens de erro são apenas 4 e são enviadas quando houve algum problema na transmissão do pacote e o host destino não conseguiu recebe-lo. As mensagens de informação com valores entre 133 e 137 são usadas para procedimentos de autoconfiguração. As mensagens de número 128 e 129 são equivalentes a função ping. As mensagens de 130 a 132 são usadas para procedimentos de membros de grupos multicast.
| Campo tipo |
Mensagem |
| 1 |
Destination Unreachable |
| 2 |
Packet Too Big |
| 3 |
Time Exceeded |
| 4 |
Parameter Problem |
| 128 |
Echo Request |
| 129 |
Echo Reply |
| 130 |
Group Membership Query |
| 131 |
Group Membership Report |
| 132 |
Group Membership Termination |
| 133 |
Router Solicitation |
| 134 |
Router Advertisement |
| 135 |
Neighbor Solicitation |
| 136 |
Neighbot Advertisement |
| 137 |
Redirect |
Última atualização 02/09/2008 17h31