MIPv6 – Mobilidade IPv6
Acessibilidade em
qualquer lugar
O protocolo IPv6 contempla o MIPv6, um novo padrão para comunicação com dispositivos móveis que garante acessibilidade permanente, independentemente da localização atual do usuário. Neste artigo, apresentamos uma visão geral de seus recursos.
por Eric Amberg
I
magine um usuário trabalhan-do em casa com um tablet conectado à rede sem fio. Ele sai de casa rumo ao aeroporto e, enquanto estiver dentro do taxi, o tablet usa o LTE (Long Term Evolution, que é um padrão de redes de comunicação móveis) para conectar-se ao provedor e para que possa verificar se o sistema elétrico de sua casa foi desligado. No aeroporto, o dis-positivo móvel conecta-se auto-maticamente ao Wi-Fi público, onde pode verificar o horário da decolagem e do check-in para o vôo. Enquanto tudo isso aconte-ce, o usuário estava conectado o tempo todo à rede corporativa através de um túnel seguro.Este cenário pode soar como ficção científica, mas é mais real do que podemos imaginar. O IPv6 móvel (MIPv6) torna possível man-ter a acessibilidade em toda a rede com o mesmo endereço e mudar de rede sem interromper conexões. O pré-requisito para tal configuração é uma infraestrutura IPv6.
O problema
do roaming
Quando uma conexão é estabele-cida entre dois nós, é geralmen-te baseada nos endereços IP dos parceiros de comunicação. Se um parceiro altera as redes, inevita-velmente receberá um novo en-dereço IP. Como consequência,
a conexão é interrompida e deve ser restabelecida. No futuro, no entanto, a conexão entre os dois parceiros de comunicação será mantida como uma coisa natu-ral, apesar de uma alteração da conexão de rede. Este princípio é chamado de roaming (figura 1).
Dependendo da tecnologia de transmissão, mudar o link de rede sem perder a conexão já é possível. Este recurso, no entanto, depende das próprias tecnologias de rede. Isto pode ser feito, por exemplo, em redes sem fio, onde o cliente sem fio pode se mover facilmente entre diferentes pontos de acesso (APs). Se a potência recebida de um AP é demasiadamente baixa, o cliente conecta-se automaticamente ao AP mais próximo, sem perder a conexão. Isto também é possível em redes móveis, onde autenticações apropriadas e considerações medi-das garantem a cobrança de rede cruzada (cross-network billing). Uma solução baseada em IP, no entanto, permite a total independência da tecnologia de conexão e é total-mente suportada pelo MIPv6 [1]. O Mobile IP também foi de-finido para o IPv4 [2], mas esta especificação implica em algumas desvantagens em comparação com o IPv6. Por exemplo, o MIPv6 usa
ANÁL
IS
E
Figura 1 O roaming mantém conexões mesmo quando o usuário se move de uma rede para outra.
Em casa
Conectado
via WLAN Conectado via HSDPA/LTE
A conexão é mantida durante todo o percurso
Conectado via WiFi No trânsito
cabeçalhos de extensão flexíveis para evitar problemas com rotea-mento, tornando o roaming mais fácil e mais flexível. Além disso, o MIPv6 basicamente abstrai-se da camada de ligação de dados através da utilização da desco-berta de vizinhança (Neighbor Discovery) – uma tecnologia de camada de rede.
Nós móveis
Um nó móvel é referenciado na terminologia IPv6 móvel como MN. O parceiro de comunica-ção é o nó correspondente (CN) e pode ser fixo (por exemplo, um servidor) ou móvel. O MN possui uma rede doméstica, que é refe-renciada como um link doméstico. Anexado a ela está um roteador, que vincula o endereço fixo do MN como o agente doméstico (HA).
Este endereço fixo é conheci-do como o endereço conheci-doméstico e é um endereço unicast global. O agente doméstico significa que o MN é acessível em qualquer lugar através do endereço doméstico (fi-gura 2). O MN pode residir no link doméstico ou em uma rede diferen-te. Qualquer outra rede é referida como um link externo. Em um link externo, o MN possui um endereço
diferente do endereço doméstico; isto é atribuído pela autoconfigu-ração ou DHCPv6. O endereço atual no link externo é conhecido como endereço de assistência. O MN envia o endereço de assistên-cia atual ao HA. Esta mensagem é conhecida como a atualização de ligação; ela cria uma ligação no HA entre o endereço doméstico e o endereço de assistência.
Como o IPv6
móvel funciona
Enquanto o MN utilizar um prefi-xo normal no link doméstico, este pode ser atingido com mecanismos de encaminhamento padrão, pois o agente doméstico com o endereço
doméstico está baseado localmen-te. Na estrada ou em viagem fora do limite do link doméstico, o MN recebe um endereço adicional (en-dereço de assistência) em qualquer link externo; ele então envia uma mensagem de atualização de vín-culo para o agente doméstico. O agente doméstico envia uma con-firmação de vínculo (ack) e – graças ao processo de vinculação – sabe o endereço de assistência sob o qual MN está atualmente acessível. O nó correspondente sempre usa o endereço doméstico do MN ao se comunicar com outro MN; isto sempre leva ao agente doméstico.
O MN pode comunicar-se de duas maneiras com o nó correspon-dente. No tunelamento bidirecional, os pacotes do CN são enviados para o agente doméstico, que os enca-minha através de um túnel para o MN. O MN envia as respostas através de um túnel reverso para o agente doméstico, que encaminha os dados para o CN. Nenhum su-porte ao IPv6 móvel é necessário ao nó correspondente. Quando a otimização de rotas é habilita-da, qualquer comunicação após a conexão inicial através do agente doméstico é tratada diretamente entre o MN e o CN, sem passar pelo HA. Um cabeçalho de enca-minhamento do tipo 2 é utilizado para este processo. A otimização de rota permite uma comunicação Figura 2 Terminologia IPv6 móvel.
Figura 3 O cabeçalho da mobilidade.
Túnel Bidirecional Otimização de rota Endereço domestico Link domestico Nó móvel Nó correspondente Link estrangeiro Rede IPv6 Túnel de ender eço temporário Endereço temporário
Carga útil (1 byte) Comprimento cabeçalho (1 byte) Tipo MH (1 byte) Reservado (1 byte) Checksum (2 bytes) Dados (variaveis)
Equivalente ao campo Next Header no cabeçalho IPv6 Comprimento de Mobility Header (MH)
em unidades de 8 bytes, sem os 8 primei-ros bytes do tipo de mensagem do Mobility Tipo de mensagem Mobility
Configurado para 0 pelo remetente e ignorado pelo destino Checksum baseado em um pseudo-cabeçalho
mais eficiente, pois o roteamento pode ser otimizado, em vez de fazer um desvio através do HA.
No entanto, esta abordagem requer suporte IPv6 móvel no CN. A otimização de rota é uma das principais vantagens do IPv6 móvel sobre o IPv4 móvel pois o último não permite cabeçalhos de extensão (e, portanto, não possui cabeçalhos de roteamento).
O protocolo
O IPv6 é particularmente flexível graças aos seus cabeçalhos de ex-tensão. Um cabeçalho de extensão separado, o Mobility Header (MH), foi desenvolvido especificamente para o MIPv6. Ele é usado por todas as partes (isto é, o nó móvel, o nó cor-respondente, e o agente doméstico) nas mensagens que têm a ver com a gestão e atualização de vinculações. A figura 3 mostra a configuração do cabeçalho de mobilidade. O cabe-çalho de mobilidade é indicado pelo
valor de 135 do Next Header no ca-beçalho anterior.
O campo Next Header (que atende pelo nome de “Payload Proto”) atualmente possui um valor de 59, para indicar que não há mais dados a seguir. Este campo é reservado para futuros desenvolvimentos, se mais informações forem acrescentadas algum tempo depois. O tamanho do campo de cabeçalho contém o comprimento da mobilidade do cabeçalho em unidades de 8 bytes – os primeiros 8 bytes não são contados. Assim, o MH deverá ter seu tamanho sempre com um valor múltiplo de 8 bytes. O campo do tipo MH contém o tipo de mensagem de mobilidade. Atualmente, 16 tipos de mensagens de mobilidade são definidas, incluindo a atualização obrigatória e vinculação ack. Um campo calcula o checksum com base em um pseudo-cabeçalho e segue as regras estabelecidas na RFC 2460 (IPv6).
Mensagens de mobilidade podem incluir opções que são especificadas no formato TLV (Type-Length-Value). Em particular, a opção de endereço doméstico é relevante porque o nó móvel usa-o aqui para enviar ao nó correspondente uma mensagem que contém o endereço doméstico do nó móvel. Assim, o nó correspondente pode chegar ao nó móvel em qualquer momento. No entanto, este também é um caso especial, porque esta op-ção é enviada em um cabeçalho de destino, ao invés do cabeçalho de mobilidade. Um cabeçalho de des-tino é uma extensão de cabeçalho que só é avaliada pelo alvo.
Um novo cabeçalho de rotea-mento também foi definido para o MIPv6, que permite que o nó mó-vel e o nó correspondente troquem dados diretamente, sem passar pelo agente doméstico. Este cabeçalho de extensão leva o nome de tipo 2 e designa regras especiais que podem ser configuradas em firewalls para
pa-Figura 5 O processo de atualização de vínculo.Eric Amberg.
Figura 4 O cabeçalho da atualização de vínculo.
Nó móvel domésticoAgente
Cabeçalho IPv6
Cabeçalho IPv6 Cabeçalho de destino com opção de endereço doméstico
Cabeçalho de rota tipo 2 ESP ESP Cabeçalho MH móvel tipo 5 Cabeçalho MH móvel tipo 6
Sequência de número
(2 bytes)
Controle de sequência para
vínculo de atualizações e acks.
Termo de endereço temporário móvel não
expirado em unidades de 4 segundos
A =
Acknowledgment flagH =
Home flagL = Compatibilidade de endereço de link local
K = Chave de gerênciamento da capacidade de mobilidade
Opções possíveis:
-Autorização de vínculo de opção de dado -Opção de índice de caso único
-Opção de endereço temporário móvel alternativo
Bandeiras (4bits)
Reservado (12bits)
Opções (variavel)
Tempo de vida (2bytes)
cotes MIPv6. Como a comunicação MIPv6 basicamente utiliza primeiro o agente doméstico e o endereço doméstico, este último é inserido no cabeçalho de roteamento do tipo 2, enquanto o endereço de destino no cabeçalho IPv6 é o endereço de assis-tência para o nó móvel. O nó móvel de recepção remove o cabeçalho de roteamento e substitui o endereço de assistência com o endereço domés-tico para enganar os protocolos da camada superior nas camadas OSI de forma que estes entendam que a comunicação veio através do ende-reço doméstico.
Verificação dos vínculos
Vínculos e seu gerenciamento são peças-chave do MIPv6. Normalmen-te, o vínculo ocorre entre o nó móvel e o agente doméstico. No entanto, também é possível definir vínculos entre o nó móvel e o nó correspon-dente para habilitar a comunicação de roteamento otimizada. Quando um nó móvel deixa o link doméstico e recebe um endereço de assistência a partir de um link externo, ele en-via uma mensagem de atualização de vínculo para o agente doméstico. A mensagem contém o cabeçalho IPv6 e um cabeçalho de destino de opção, no qual a opção de endere-ço doméstico é definida (figura 4). A mensagem é usada para informar ao agente qual endereço doméstico usar, pois ele poderia, teoricamente, utilizar vários deles.A mensagem é transmitida usan-do IPsec em um cabeçalho de en-capsulamento de carga de seguran-ça (ESP) e também contém outro cabeçalho de mobilidade com uma mensagem do tipo 5 (atualização de vínculo) e uma definição da flag de registro doméstico que pede ao destinatário para assumir o papel de agente doméstico. Além disso, a flag de confirmação está definida para solicitar a resposta do agente doméstico. O cabeçalho
de mobilidade também declara um ciclo de vida em unidades de quatro segundos, para determinar a validade do vínculo. Mensagens de atualização de vínculo são en-viadas para atualizar os vínculos existentes ou para fornecer infor-mações sobre um novo endereço de assistência (figura 5).
A resposta do agente domés-tico, sob a forma de um vínculo ack, contém um cabeçalho de encaminhamento de tipo 2 com o endereço doméstico do nó móvel, em vez do cabeçalho de destino. O vínculo ack é uma mensagem de tipo 6 confirmando os detalhes do nó móvel e contendo algumas outras informações administrativas, por exemplo, se o IPsec suporta uma mudança de rede, que deve ser a exceção. O campo de status do vínculo ack indica o estado do vínculo: de 1 a 127 sinaliza uma atualização bem sucedida, ao pas-so que valores de status de 128 em diante indicam alguns proble-mas definidos. Vínculos ack são enviados apenas para confirmar atualizações de vínculo. O agen-te doméstico pode enviar uma mensagem de solicitação de atu-alização de vínculo para solicitar uma atualização da informação na forma de uma atualização de vínculo do nó móvel.
Uma atualização de vínculo tam-bém pode ser enviada diretamente para o nó correspondente, se este suportar MIPv6. No entanto, são necessárias precauções de segurança especiais aqui para prevenir ataques de redirecionamento. Este processo de salvaguarda é chamado de proce-dimento de retorno de roteabilidade e permite que o nó correspondente teste se o nó móvel é realmente acessível tanto pelo endereço de assistência como pelo endereço doméstico. Só então é que as atualizações de vín-culo são aceitas pelo CN. Como os vínculos são criptograficamente
asse-gurados pelo IPsec, informações de autorização são trocadas na forma de tokens criptográficos neste contexto. O gerenciamento de chaves de víncu-lo, por fim, protege as informações.
Recursos do
novo ICMPv6
O IPv6 móvel inclui algumas me-lhorias para ao ICMPv6 no que tange ao fornecimento de recursos adicionais. A descoberta de ende-reço do agente doméstico oferece ao nó móvel a capacidade de de-terminar seu endereço de agente doméstico. Para isso, uma solicita-ção de descoberta de endereço de agente doméstico é enviada para o agente de endereço doméstico anycast em seu link. Este é um en-dereço especial para o qual todos os agentes domésticos respondem. Um agente doméstico responde à solicitação com uma descoberta de endereço do agente doméstico. A repetição contém uma lista de endereços de agentes domésticos, classificadas por suas preferências.
No caso de endereços IPv6 tem-porários, alterações no prefixo da rede doméstica de um nó móvel podem ocorrer. O nó móvel pode determinar esta mudança através de uma mensagem de solicitação de prefixo móvel. Esta mensagem é enviada para o agente doméstico, o qual responde com um prefixo de publicidade móvel. Estes anúncios também podem ser enviados para o endereço de assistência atual do MN sem um pedido anterior, se necessário. Cada nó móvel deve ser capaz de criar uma lista de agen-tes domésticos no link doméstico. Para fazer isso, o nó não precisa apenas dos endereços de link lo-cais de roteadores dos agentes do-mésticos no roteador de anúncios, mas também dos endereços unicast globais. O roteador de anúncio foi modificado para suportar esta
configuração. Ele contém um pa-râmetro R (endereço do roteador); a opção de prefixo não contém exatamente um prefixo mas um endereço global unicast completo do roteador.
Outras mudanças na descoberta de vizinhos relacionam a indicação de endereços de agentes domésticos preferenciais e um intervalo mínimo reduzido de roteadores de anúncios, de modo que nós móveis em links externos podem ser informados o mais rápido possível sobre os no-vos endereços de assistência. Este intervalo foi reduzido dos originais três segundos para 0.03 segundos. Este valor pode ser significativo em roteadores sem fio que são configu-rados apenas para oferecer suporte a dispositivos móveis.
Onde estamos?
O nó móvel deve detectar a conexão tão rapidamente quanto possível que já não está na própria rede, de forma que possa iniciar um novo link. Um processo chamado de detecção de vizinho não alcan-çável (Neighbor Unreachability Detection) suporta esta operação, conhecida como detecção de mo-vimento. Este processo também existe no padrão IPv6 normal no escopo da descoberta do vizinho. Isso envolve a verificação da acessi-bilidade do gateway padrão a partir do nó móvel. Se o padrão não está mais acessível, o nó móvel tenta descobrir um novo roteador padrão, que é comunicado pelo anúncio do roteador. Neste contexto são definidos o prefixo e o endereço de assistência atual. Quando o nó móvel alcança o link domés-tico novamente, ocorre o registro doméstico. Entre outras coisas, trata-se de definir o bit H (registro doméstico) e definir o ciclo de vida para 0. O agente doméstico, então, sabe que não precisa mais enviar os pacotes através do túnel.
E a segurança?
A comunicação entre o nó móvel e o nó correspondente é vulnerável a vá-rios ataques, como man-in-the-middle, sequestro de sessão, negação de servi-ço e assim por diante. Uma medida de segurança essencial é proteger a conexão entre o MN e o HA através de um túnel IPsec com ESP. Isto ga-rante que todas as mensagens entre o nó móvel e o agente doméstico sejam protegidas, incluindo atualizações de vínculos e acks, mensagens de teste doméstico e mensagens ICMPv6. As atualizações de vínculo entre o nó móvel e o nó correspondente não são protegidas pelo IPsec, mas pelo processo de retorno de roteabilidade. No entanto, certas extensões existem aqui para proteger a comunicação, como a opção de autorização de vín-culo de dados.
Como regras ligeiramente tes se aplicam ao IPv6 móvel, diferen-tes RFCs descrevem modificações no IPsec para uso com MIPv6. Elas in-cluem as RFCs 4555 e 4621, que lidam com o uso de IKEv2 nestes cenários, e a RFC 3776, “Como usar o IPsec para proteger o IPv6 móvel de acessar nós móveis e agentes domésticos”. Salvaguardas também existem para redes especiais na forma de RFCs. No entanto, uma discussão completa de todas estas áreas de segurança vai além do escopo deste artigo.
Conclusão
O IPv6 móvel é uma tecnologia voltada para o futuro que poderia tornar-se parte da vida cotidiana no mundo das redes de TI. Provedores oferecem vários pacotes de serviços aos clientes para garantir conexões leves em várias redes – conexão remo-ta com menos quedas (ou nenhuma) temporárias na conexão de rede. Por conta de uma tendência geral para dispositivos móveis – amplificada pela explosão dos tablets – o uso de tais tecnologias é um desenvolvi-mento lógico.
O suporte para MIPv6 tem sido limi-tado até o momento. Sistemas operacio-nais da Microsoft, incluindo o Windows 8 e o Windows Server 2012, não forne-cem suporte completo. O Linux pode ser estendido para acomodar o MIPv6 com o daemon UMIP [3], e sistemas Android atualmente contam com ha-cks para suportar o MIPv6. Além disso, o iOS da Apple não suporta o MIPv6.
No final das contas, o IPv6 terá de ser amplamente disponível para per-mitir a utilização do IPv6 móvel sem tecnologias de migração tais como túneis 6to4. O padrão IPv6 móvel continuará a se desenvolver e, prova-velmente, irá incluir extensões ainda mais interessantes no futuro. Na ver-dade, muitas melhorias para o IPv6 móvel já existem, incluindo NEMO
[4] e IPv6 móvel hierárquico [5]. n
Mais informações
[1] RFC 6275: http://tools.ietf.org/html/rfc6275 [2] RFC 3344: http://tools.ietf.org/html/rfc3344 [3] Projeto do daemon UMIP: http://www.umip.org [4] RFC 3963: http://tools.ietf.org/html/rfc3963
[5] RFC 4140: http://xml2rfc.tools.ietf.org/rfc/rfc4140.txt
Gostou do artigo?
Queremos ouvir sua opinião.
Fale conosco em: cartas@linuxmagazine.com.br