Do que se trata o artigo:

Neste artigo serão apresentadas as principais características do protocolo IPv6, bem como os novos recursos e melhorias introduzidas em relação à versão anterior. Serão descritos os diferentes tipos de endereços especificados, suas representações e os mecanismos de autoconfiguração implementados. Também será contextualizado um panorama atual da adoção do IPv6, além dos principais fatores que tornam morosa sua aceitação. Por fim, serão expostas as técnicas de transição, a coexistência entre a nova versão do protocolo e o seu antecessor, as ferramentas de segurança e os aspectos de mobilidade.


Para que serve:

A Internet continua a expandir-se vertiginosamente. O protocolo IPv4 se apresenta como grande limitador deste crescimento, pois não será possível alocar um endereço válido para todos os dispositivos que necessitam se conectar a rede. A única alternativa para evitar este colapso é a implantação maciça do protocolo IPv6. Desta forma, este artigo tem por objetivo descrever as principais características do novo protocolo, conscientizar os leitores sobre a importância do tema e fornecer a fundamentação teórica para o debate e o planejamento de sua adoção pelas organizações e usuários.


Em que situação o tema é útil:

Os pontos destacados neste artigo serão úteis para a compreensão do panorama atual da implementação do IPv6, bem como de suas principais diferenças quando comparado ao IPv4. Os conceitos expostos também permitirão a contenda e o aprofundamento técnico do tema pelos profissionais e usuários da área de infraestrutura de tecnologia da informação.

O IPv6 (Internet Protocol version 6) representa a nova geração do protocolo Internet. Impulsionado pelas constantes demandas das indústrias de comunicação de dados e tecnologia da informação, o IPv6 procura tratar algumas das lacunas de seu antecessor, o protocolo IPv4 (Internet Protocol version 4), entre elas: maior número de endereços lógicos, expansão da tabela de roteamento, melhor suporte à qualidade de serviço (QoS – Quality of Service), mais segurança e autoconfiguração.

Para a compreensão destas deficiências e das novas características incorporadas, é importante analisar historicamente a evolução do protocolo Internet e suas limitações de crescimento, bem como descrever seu funcionamento básico, detalhes do cabeçalho, representação e tipos de endereços. Este artigo detalhará também os mecanismos de autoconfiguração stateless e stateful (responsáveis pela alocação dinâmica de endereços aos dispositivos conectados à rede), as principais técnicas concebidas para a transição, a coexistência entre a nova versão do protocolo IP e a sua antecessora, os novos recursos de segurança e a mobilidade para os usuários.

Origem da Internet e do protocolo IPv4

As redes nasceram a partir da necessidade da troca de dados entre as pessoas e os computadores, possibilitando o acesso a documentos, imagens, planilhas, arquivos de áudio e vídeo, entre outros, armazenados fisicamente em locais diferentes daqueles onde as pessoas se encontravam. As redes de computadores também permitiram a integração entre os sistemas, pois as informações podiam ser facilmente localizadas, coletadas, armazenadas e processadas.

A Internet originou-se de um projeto patrocinado pelo governo estadunidense (EUA) no final dos anos 1960, época da Guerra Fria, por intermédio da Agência de Projetos de Pesquisa Avançada de Defesa (DARPA – Defense Advanced Research Projects Agency), que visava o estabelecimento da comunicação entre os computadores dos centros militares e os de pesquisa. Seu objetivo principal era formar uma rede robusta que pudesse, mesmo com a indisponibilidade de alguns de seus dispositivos (também chamados nós), manter operacional a troca de dados entre os componentes restantes.

Os primeiros nós desta rede, a qual recebeu o nome ARPANET, foram instalados em 1969 em SRI (Stanford Research Institute), UCLA (University of California at Los Angeles), UCSB (University of California at Santa Barbara) e UTAH (University of Utah). A ARPANET cresceu rapidamente com a associação de organizações militares, acadêmicas e de pesquisas. O conjunto de protocolos TCP/IP (Transmission Control Protocol/Internet Protocol) foi consolidado em 1978 e, em 1983, passou a ser requerido para conexão à rede da DARPA, permitindo seu crescimento ordenado e resolvendo as restrições dos protocolos anteriores.

A especificação do IPv4 foi publicada em setembro de 1981 e sua popularização se deu quando passou a ser distribuído pelo Berkeley Software Distribution UNIX (BSD Unix), versão 4.2c, em 1983. O célere crescimento da Internet acentuou-se ainda mais com sua utilização comercial, a partir de 1993, com a criação do protocolo HTTP (HyperText Transfer Protocol), que iniciou a era WWW (World Wide Web). O Hobbes' Internet Timeline, de Robert H. Zakon, apresentado na Figura 1, ilustra o crescimento do número de hosts (clientes e servidores) conectados à Internet desde dezembro/1969 até maio/2010.

Figura 1. Número de hosts conectados à Internet desde dezembro/1969 até maio/2010.

O protocolo IPv4 mostrou-se fácil de ser implantado, interoperável e robusto, sendo ainda hoje extensivamente utilizado. Porém, com o crescimento dos dispositivos conectados à Internet, foi possível observar que o número de endereços IPv4 (aqueles que identificam unicamente cada cliente ou servidor ligado à rede) seria insuficiente, pois, como são formados por 32 bits (4 bytes), tornam possível somente um total de 232 endereços (pouco mais de 4 bilhões).

Os bytes do endereço IPv4, para facilitar sua representação, comumente são escritos na forma decimal (0 a 255) e separados por pontos, ao invés da notação binária, conforme ilustrado na Figura 2.

Figura 2. Representação do endereço IPv4.

O conjunto total de endereços IPv4 (232 combinações) foi dividido em cinco diferentes faixas, para atender às necessidades das redes de computadores com diferentes tamanhos, conforme descrito na Tabela 1. Assim, um endereço de classe A, pode ser usado por organizações com grande número de hosts em sua rede, embora atenda somente 126 distintas; já os endereços de classe B podem ser empregados em até 16.384 redes, com até 65.534 hosts. A classe C satisfaz 2.097.152 empresas com poucos hosts (até 254) e por fim, as classes D e E foram reservadas para aplicações específicas, como transmissões multicast e pesquisas, respectivamente.

Faixa

End. início

End. término

Redes

Hosts

Classe A

1.0.0.0

126.255.255.255

126

16.777.214

Classe B

128.0.0.0

191.255.255.255

16.384

65.534

Classe C

192.0.0.0

223.255.255.255

2.097.152

254

Classe D

224.0.0.0

239.255.255.255

Reservado para multicast

Classe E

240.0.0.0

255.255.255.255

Uso experimental

Tabela 1. Faixas de endereçamento IPv4.

É preciso destacar ainda que algumas faixas de endereços foram reservadas, ou seja, não podem ser utilizadas para comunicação na Internet (Tabela 2). As faixas reservadas para uso interno nas organizações (redes privadas) são detalhadas na RFC 1918 – veja a Nota DevMan 1.

Faixa

End. início

End. término

Reserva

Classe A

0.0.0.0

0.255.255.255

Não utilizável (rede local)

Classe A

10.0.0.0

10.255.255.255

Uso em redes privadas

Classe A

127.0.0.0

127.255.255.255

Testes (loopback)

Classe B

172.16.0.0

172.31.255.255

Uso em redes privadas

Classe C

192.168.0.0.

192.168.255.255

Uso em redes privadas

Tabela 2. Endereços IPv4 reservados.

Nota DevMan 1. RFC

RFC – Request for Comments – é um conjunto de documentos de referência junto à comunidade da Internet que descreve, especifica, padroniza e debate a maioria das normas, padrões, tecnologias e protocolos ligados às redes.

Com o passar do tempo, a criação das faixas de endereços IPv4 mostrou-se ineficiente: a classe A atendia a um número pequeno de redes e consumia 50% de todos os endereços disponíveis. Inicialmente, faixas desta classe foram atribuídas às grandes empresas, como IBM, Xerox, HP, entre outras. Para redes com cerca de 5.000 hosts, era necessário utilizar faixas de classe B, desperdiçando mais de 60.000 endereços; já os 254 endereços possíveis na classe C não supriam a maior parte das redes das organizações.

Diante deste cenário, verificou-se a necessidade de soluções para o esgotamento do endereçamento IPv4. Porém, antes da resolução definitiva, algumas alternativas paliativas foram adotadas, a fim de se racionalizar a forma como os endereços eram alocados e reduzir a demanda pelos mesmos. Estas opções serão relacionadas na próxima seção.

Alternativas para evitar o esgotamento do endereçamento IPv4

A seguir, estão descritas as principais alternativas adotadas para evitar o esgotamento dos endereços IPv4:

1. Endereçamento privado: conforme apresentado na seção anterior, existem três faixas de endereços privados (RFC 1918) que podem ser empregadas nas redes locais (Nota DevMan 2), evitando a atribuição de um endereço IPv4 público (também conhecido como endereço válido) para cada host;

2. NAT (Network Address Translation): deve ser utilizado conjuntamente com o endereçamento privado para possibilitar a conexão à Internet por meio de um número menor de endereços IPv4 válidos (no melhor caso, somente um único é necessário). Na rede local, cada host recebe um endereço privado utilizado nas comunicações internas. Quando um host necessita de acesso à Internet, este é traduzido em um endereço IPv4 público; vários hosts distintos podem utilizar o mesmo endereço. Tipicamente equipamentos como firewalls e roteadores são os responsáveis pela implementação desta funcionalidade. Assim, uma organização com 200 hosts pode atribuir endereços privados a cada um destes e utilizar um único endereço IPv4 válido para que todos acessem a Internet. O uso do NAT resulta em diversas limitações, pois altera o modelo fim-a-fim da Internet, não permitindo conexões diretas entre os hosts, dificultando o funcionamento de aplicações de voz, segurança, entre outras. Além disso, possui baixa escalabilidade, pois existe a restrição no número de conexões simultâneas;

3. CIDR (Classless Inter Domain Routing): eliminou as classes de endereços IPv4, permitindo a alocação de faixas com tamanho arbitrário, conforme a necessidade; deste modo, possibilitou o uso racional dos endereços disponíveis. Também viabilizou a agregação da informação nas tabelas de roteamento (veja a Nota DevMan 3), que cresciam exageradamente, contribuindo para suportar a expansão da Internet;

4. DHCP (Dynamic Host Configuration Protocol): protocolo que tornou possível a alocação dinâmica de endereços IPv4, por meio de sua reutilização, visto que os hosts não estão todo o tempo conectados à rede. Este recurso é particularmente útil para provedores de acesso à Internet, pois são alocados endereços IPv4 temporários a seus clientes vinculados.

Nota DevMan 2. LAN

Redes locais ou LAN (Local Area Network) são interconexões de hosts localizados em uma mesma sala ou em um mesmo prédio.

Nota DevMan 3. Tabela de Roteamento

Tabelas de roteamento são registros de endereços de destino e como chegar até eles.

Estas alternativas reduziram o consumo de endereços IPv4, enquanto era especificada sua nova versão. Todavia, como efeito colateral, também contribuíram para morosidade de sua adoção. A Figura 3 apresenta um interessante gráfico do Núcleo de Informação e Coordenação do ponto BR (NIC.br) onde era esperado um crescimento acentuado na implantação do protocolo IPv6 concomitantemente à redução dos endereços IPv4 disponíveis. Porém, conforme observado na Figura 4, o ritmo de adoção do IPv6 ficou muito aquém da previsão inicial.

Figura 3. Expectativa inicial de implantação do IPv6.

Figura 4. Situação atual da implantação do IPv6.

Além das alternativas desenvolvidas para adiar o esgotamento dos endereços IPv4, também contribuíram para a morosidade da adoção do IPv6: a necessidade de investimentos na infraestrutura (software e hardware) dos provedores de acesso à Internet, as mudanças conceituais em sua operação que demandam treinamento e capacitação da equipe técnica, a dificuldade de implementação das estratégias de transição, entre outras.

Na próxima seção serão descritas as principais características técnicas do IPv6. Assim, será possível a compreensão do contexto envolvido e da situação atual da implantação deste protocolo.

IPv6: Características gerais

O protocolo IPv6, além de solucionar a questão da quantidade de endereços disponíveis, oferece novos serviços e benefícios. Segundo a RFC 2460, as principais mudanças em relação ao IPv4 são:

Simplificação do formato do cabeçalho: diversos campos do cabeçalho IPv4 foram excluídos ou tornados opcionais, gerando um cabeçalho simplificado. Desta forma, foi reduzido o custo do processamento dos pacotes nos roteadores;

Capacidade para identificação do fluxo: o remetente de um determinado fluxo pode solicitar seu tratamento especial, como qualidade de serviço diferenciada (QoS) ou transmissão em tempo real;

Suporte para campos opcionais e extensões: os campos opcionais possuem menos restrições quanto ao seu tamanho e há maior flexibilidade para a introdução de novas extensões no futuro;

Capacidade de autenticação e privacidade: foram especificadas extensões para a autenticação, integridade e confidencialidade dos dados;

Capacidade de endereçamento expandida: cada endereço IPv6 utiliza 128 bits, ou seja, existem 2128 combinações distintas (3,4028 x 1038 ou 79 octilhões de vezes a quantidade disponível no IPv4). Para ilustrar a grandeza deste valor, supondo que a área do planeta Terra é 510.065.500 x 1012 mm2, teríamos 6,6713 x 1017 endereços IPv6 por mm2. Porém, como existem faixas reservadas, ou seja, nem todos os endereços são possíveis, vamos supor que efetivamente sejam utilizados 64 bits dos 128 bits, ainda assim, existiriam mais de 36.000 endereços IPv6 por m2. Esta expansão da capacidade do endereçamento proporciona a identificação de mais hosts conectados à rede e simplifica a implementação de mecanismos de autoconfiguração, além de suportar níveis mais específicos de hierarquização dos endereços.

O cabeçalho do protocolo IPv6 tem tamanho determinado (40 bytes) e possui 8 campos obrigatórios, diferentemente do IPv4, cujo tamanho é variável (ente 20 e 60 bytes) e contém 12 campos fixos (pode conter também campos opcionais). A Figura 5 ilustra estas diferenças, apresentando os campos que foram mantidos (cor laranja), os descartados (cor rosa), aqueles que sofreram alterações em seu nome e posicionamento (cor azul) e um novo campo adicionado (cor verde).

Figura 5. Comparação entre os cabeçalhos dos protocolos IPv4 e IPv6.

A lista a seguir descreve brevemente os campos do protocolo IPv6:

Version (versão) – 4 bits: versão do protocolo Internet;

Traffic class (classe de tráfego) – 8 bits: utilizado para permitir a diferenciação de tráfego (classes de tráfego) e os mecanismos de prioridade, para que os roteadores possam prover tratamento apropriado em cada caso;

Flow label (identificador de fluxo) – 20 bits: possibilita que a origem atribua uma identificação (padronizada) a um fluxo, para que este receba tratamento especial por um roteador (qualidade de serviço – QoS, tráfego de tempo real, reserva de banda, entre outros);

Payload length (tamanho dos dados) – 16 bits: tamanho (em bytes) dos dados enviados junto ao cabeçalho IPv6. É importante notar que os cabeçalhos de extensão também são incluídos no cálculo do tamanho;

Next header (próximo cabeçalho) – 8 bits: identifica o próximo cabeçalho que se segue ao do IPv6;

Hop limit (limite de encaminhamento) – 8 bits: número máximo de roteadores que o pacote pode passar antes de ser descartado;

Source address (endereço de origem) – 128 bits: endereço lógico do remetente do pacote;

Destination address (endereço de destino) – 128 bits: endereço lógico do destinatário do pacote.

É interessante observar que, mesmo utilizando endereços com 128 bits (quatro vezes maior que os 32 bits do IPv4), o IPv6 tem o cabeçalho apenas duas vezes o tamanho mínimo de seu antecessor.

Em relação ao suporte para campos opcionais e extensões, este é tratado por meio do extension header (cabeçalho de extensão), que possui tamanho variável (necessariamente múltiplo de 64 bits). A Figura 6 apresenta a estrutura de um pacote IPv6. Este pode ter um ou mais campos de extensão, desde que indicado no next header (Figura 7). Geralmente, somente o destinatário processará os extension headers, que devem ser analisados exatamente na ordem em que aparecem. A lista abaixo enumera todos os tipos que devem ser suportados por nós IPv6:

Hop-by-hop options (opções hop-a-hop): informações gerais que devem ser processadas por todos os nós ao longo do caminho do pacote. Por exemplo, uma opção já especificada é o suporte aos pacotes maiores que 64kB, também conhecidos como jumbogramas;

Routing – type 2 (roteamento – tipo 2): empregado para suporte a mobilidade em IPv6;

Fragment (fragmento): utilizado quando o pacote a ser enviado é maior que o MTU (Maximum Transmission Unit), para gerenciar sua fragmentação;

Destination options (opções de destino): também usado para suporte à mobilidade em IPv6;

Authentication (autenticação): habilita a autenticação dos pacotes;

Encapsulating security payload (encapsulamento de segurança dos dados): garante confidencialidade e integridade aos pacotes.

Figura 6. Estrutura de um pacote IPv6.

Figura 7. Exemplos de IPv6 extension headers.

Para evitar que todos os nós tenham que percorrer a cadeia de cabeçalhos de extensão, estes devem respeitar uma determinada ordem. Ou seja, aqueles que são importantes para todos os nós envolvidos no roteamento devem ser colocados em primeiro lugar; já os cabeçalhos relevantes apenas para o destinatário final são posicionados ao final da cadeia. Desta maneira, a sequência recomendada é apresentada abaixo:

1. Hop-by-Hop options;

2. Routing – type 2;

3. Fragment;

4. Authentication;

5. Encapsulating Security Payload;

6. Destination Options.

O endereço de 128 bits do IPv6 é composto por oito conjuntos de números hexadecimais (16 bits cada) separados por dois pontos, conforme ilustrado na Figura 8.

Figura 8. Exemplo de um endereço IPv6 (representação completa).

É importante notar algumas regras em sua representação:

• Podem ser utilizados caracteres maiúsculos ou minúsculos (Figura 9);

• Sequências contínuas de zeros podem ser representadas por “::” (sem aspas), uma única vez em cada endereço, para não gerar ambiguidade (Figura 10);

• Os zeros à esquerda podem ser omitidos (Figura 11).

Figura 9. Representação do endereço IPv6 com caracteres maiúsculos e minúsculos.

Figura 10. Representação do endereço IPv6 com supressão de sequências contínuas de zeros (parte inicial e parte final).

Figura 11. Representação do endereço IPv6 com supressão de sequências contínuas de zeros (parte inicial e parte final) e omissão de zeros à esquerda.

A representação de um prefixo IPv6 é similar à notação CIDR utilizada no IPv4, ou seja, endereço “IPv6/prefixo” (sem aspas), conforme apresentado na Figura 12. Note que um mesmo endereço pode ser representado de formas diferentes, seguindo as regras descritas anteriormente.

Figura 12. Diferentes representações de um prefixo IPv6.

Na arquitetura do protocolo IPv6 foram especificados somente três tipos de endereços, a saber:

Anycast: endereço atribuído a mais de uma interface de rede, sendo que um pacote enviado a esse endereço será entregue à interface mais próxima, de acordo com os protocolos de roteamento;

Multicast: também é um endereço alocado a mais de uma interface de rede, porém, os pacotes serão entregues a todas as interfaces associadas a este endereço;

Unicast: endereço de uma única interface de rede. Um pacote enviado a esse endereço será entregue somente a esta interface.

O conceito do endereço de broadcast (pacotes enviados a todos os nós de um mesmo domínio) foi removido.

Os endereços unicast IPv6 são, ainda, decompostos em subtipos. Os mais relevantes são:

Global Unicast: endereço que será globalmente utilizado na Internet, similar ao endereço público IPv4. Atualmente, a alocação de endereços é feita a partir da faixa 2000::/3, ou seja, dos endereços de 2000:: a 3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff (cerca de 13% do total de endereços);

Unspecified Address: sinaliza a ausência de um endereço. É definido como 0:0:0:0:0:0:0:0 ou “::” (sem aspas). Usado como endereço de origem em estações que ainda não obtiveram um endereço IPv6 – aquelas que não foram inicializadas;

Loopback Address: utilizado quando um nó envia um pacote para si mesmo (função semelhante em IPv4). Representado por 0:0:0:0:0:0:0:1 ou “::1” (sem aspas);

Unique-Local: suporta apenas comunicações locais, com alta probabilidade de ser globalmente único. Sua função é similar aos endereços privados IPv4 (RFC 1918). Identificado pelo prefixo FC00::/7 seguido por 64 bits derivados a partir do endereço físico da interface (MAC Address), segundo o formato IEEE EUI-64 (veja a seguir);

Link-Local: definido para uso interno apenas no enlace específico onde a interface está conectada para funções como autoconfiguração, descoberta de vizinho, entre outras. Utiliza o prefixo FE80::/64 e também deriva os demais 64 bits a partir do endereço físico da interface (MAC Address), segundo o formato IEEE EUI-64.

Para formar o endereço IEEE EUI-64, basta efetuar a operação complemento de 1 para o sétimo bit mais à esquerda (se for 0, trocá-lo por 1 e vice-versa) e inserir os caracteres hexadecimais FF-FE na parte central do endereço, como apresentado na Figura 13.

Figura 13. Formação do endereço EUI-64 a partir do MAC Address.

Para finalizar, é importante observar que, a uma interface de rede, podem ser atribuídos múltiplos endereços, independentemente do seu tipo (anycast, multicast ou unicast) ou subtipo (unique-local, loopback, global, entre outros).

A próxima seção apresentará os mecanismos de autoconfiguração do IPv6, mostrando como um host obtém de forma automática um endereço unicast.

Auto-configuração do IPv6

O IPv6 oferece suporte à autoconfiguração, mecanismo que possibilita a alocação automática de endereços unicast aos nós IPv6. Basicamente esta atribuição dinâmica pode ser implementada por meio de duas abordagens:

Autoconfiguração stateless: possibilita a configuração automática dos endereços IPv6 unicast sem a necessidade de servidores DHCP. Para tanto, o host utiliza seu endereço link local (FE80::/64) para enviar uma mensagem multicast RS (Router Solicitation) para todos os roteadores do segmento – esta é parte do Neighbor Discovery Protocol (NDP). Desta maneira, é solicitado o prefixo IPv6 e o endereço a ser configurado como default gateway. O roteador responde às informações requisitadas em uma mensagem RA (Router Advertisement) – ver Nota DevMan 4. A seguir, o host combina o prefixo recebido com o endereço físico de sua interface (MAC Address), segundo o formato IEEE EUI-64. A Figura 14 ilustra o processo de autoconfiguração stateless;

Nota DevMan 4. Router Solicitation e Router Advertisement

Router Solicitation, ou RS, é utilizada por hosts para solicitar aos roteadores o envio imediato de mensagens router advertisement.

Router Advertisement, ou RA, é enviada ciclicamente ou em resposta a uma RS. É utilizada pelos roteadores para anunciar sua presença no enlace; contém diversas informações referentes à configuração da rede.

Figura 14. Mecanismo de auto-configuração stateless.

Autoconfiguração stateful: técnica opcional à stateless que utiliza o protocolo DHCPv6 para obtenção do endereço IPv6, default gateway, servidores DNS (Domain Name System), NTP (Network Time Protocol), entre outros parâmetros para configuração da interface de rede. Os hosts clientes utilizam seu endereço link local para enviar e receber as mensagens DHCPv6, por intermédio de mensagens multicast.

Por intermédio da autoconfiguração, os hosts IPv6 recebem seu endereço e podem iniciar a transmissão de dados nas redes. Mas, como ocorre a comunicação com hosts executando a versão anterior do protocolo Internet? Pensando nisso, a próxima seção apresentará as formas de transição e a coexistência entre o IPv4 e o IPv6.

Transição e a coexistência entre o IPv4 e IPv6

A implementação do protocolo IPv6 não implica na criação de uma nova Internet, paralela à atual, tampouco, será programado um dia para desativação completa do IPv4. Ambos os protocolos coexistirão nas redes por um período longo e imprevisível. Já existem diversos equipamentos de rede que suportam os protocolos IPv4 e IPv6. As versões mais recentes de vários sistemas operacionais também são compatíveis, como as distribuições Linux e Microsoft Windows.

Durante a criação do IPv6 foram idealizados diversos procedimentos de transição, organizados em três categorias principais:

Pilha dupla (Dual-stack): neste mecanismo, os dispositivos suportam simultaneamente as duas pilhas de protocolos, permitindo que hosts IPv6 se comuniquem com hosts IPv4 e vice-versa (Figura 15). Esta técnica exige duas tabelas de roteamento com funções de administração e gerenciamento similares, sendo que os hosts também possuem dois endereços configurados em sua interface. É muito utilizada, pois, atualmente, grande parte dos hardwares e softwares de rede possuem suporte IPv4 e IPv6. Além disso, permite que a implantação deste último seja feita sem mudanças na arquitetura de redes atual;

Figura 15. Comparação entre a pilha IPv4 e a pilha dupla IPv4/IPv6.

Túneis (Encapsulation): neste método, um pacote IPv6 é transmitido como parte dos dados de um pacote IPv4, criando um túnel entre os nós (Figura 16). No futuro, este túnel também suportará o inverso, ou seja, redes IPv4 conectadas por redes IPv6. É importante notar que, nos dois cenários, os nós nas extremidades do túnel devem ser compatíveis com ambos os protocolos.

Figura 16. IPv6 sobre túnel IPv4.

Traduções: nesta técnica, um dispositivo com suporte aos protocolos IPv4 e IPv6 interage com os demais nós que desejam estabelecer a comunicação, traduzindo os pacotes IPv6 em IPv4 e vice-versa.

A coexistência entre as diferentes versões do IP aumenta ainda mais as preocupações com as questões relacionadas à segurança dos dados, pois, como diversos tipos de transações ocorrem por meio da infraestrutura suportada por estes protocolos, as informações podem ser capturadas e alteradas por usuários mal-intencionados. Assim, a próxima seção apresentará os principais aspectos de segurança em redes IPv6.

Segurança da informação em redes IPv6

Originalmente, o IPv4 visava o estabelecimento da comunicação entre os computadores dos centros militares e os de pesquisa, ou seja, as informações percorriam somente locais seguros e com acesso restrito. Posteriormente, seu uso comercial demandou um nível maior de segurança, que possibilitasse a identificação dos usuários e a privacidade dos dados transmitidos. Neste contexto, o IPSec (IP Security) foi criado para prover os seguintes serviços:

Autenticação: para ratificar a identidade das partes envolvidas na troca de mensagens;

Integridade: garantindo que os dados não fossem alterados durante sua passagem pelos diferentes dispositivos de rede;

Privacidade: restringindo a compreensão da mensagem somente ao emissor e ao destinatário da comunicação por intermédio de técnicas de criptografia;

Não-repúdio: para impedir que as partes envolvidas na comunicação negassem sua participação no evento.

O IPSec, suportado opcionalmente pelo IPv4, foi desenvolvido como parte integrante do IPv6, através dos cabeçalhos de extensão AH (Authentication Header) – usado para autenticar o emissor dos dados e assegurar a integridade dos mesmos – e ESP (Encapsulation Security Payload) – empregado para prover privacidade entre o originador e o receptor dos dados.

Entretanto, para que duas entidades possam se comunicar utilizando o IPSec, é necessário estabelecer uma associação de segurança (AS) para determinar os algoritmos a serem configurados, as chaves criptográficas, o tempo de expiração destas chaves, entre outras especificações. As associações de segurança podem ser estáticas ou dinâmicas: no primeiro caso, os parâmetros são configurados manualmente no emissor e no destinatário; já no segundo, são determinados automaticamente por protocolos como o IKE (Internet Key Exchange).

A seguir são ilustrados dois exemplos de ataques comumente observados em redes IPv4 e a maneira como são mitigados pelo IPv6/IPSec:

IP Spoofing: técnica que consiste no envio de pacotes com o endereço de origem adulterado. Desta maneira, os pacotes de retorno nunca regressam para o falsificador. No IPv6, o cabeçalho de extensão AH obriga o usuário mal-intencionado a calcular um hash (Nota DevMan 5) semelhante àquele que seria gerado entre a entidade falsificada e a vítima; no entanto, para a obtenção deste, seria necessário conhecer os parâmetros da AS, incluindo as chaves criptográficas e os algoritmos. Assim, caso a vítima receba um pacote com o hash incorreto, esta deve descartá-lo;

Sniffing: ataque em que os pacotes são capturados com o objetivo de verificar seu conteúdo, explorando aplicações que não utilizam nenhum tipo de criptografia no envio de seus dados, como FTP (transferência de arquivos), Telnet (acesso/login remoto), entre outras. Para evitar este tipo de ataque, pode-se lançar mão do cabeçalho de extensão ESP, para criptografar os dados e promover a privacidade entre as partes envolvidas na comunicação.

Nota DevMan 5. Função Hash

Uma função hash é uma equação matemática que utiliza dados de entrada para criar um resumo da mensagem (message digest).

É importante destacar que, mesmo suportando nativamente o IPSec, seu uso não é obrigatório. No entanto, utilizar o IPv6 sem este recurso, torna-o vulnerável às mesmas fragilidades de seu antecessor.

Além do IPSec, outras ferramentas de segurança são adicionalmente implementadas pelo protocolo Internet versão 6, a saber:

Cryptographically Generated Address (CGA): segundo a RFC 3972, este tem seus últimos 64 bits (identificação da interface do host) derivados a partir de uma função hash da chave pública do proprietário do endereço;

Estrutura dos endereços: a própria estrutura de endereçamento do IPv6 pode impedir alguns tipos de ataque, pois sua varredura torna-se um procedimento complexo e demorado devido ao grande número de combinações possíveis; também contribuíram as diferentes formas de compor os últimos 64 bits, que dificultam a localização dos endereços efetivamente em uso na rede;

Extensões de privacidade: são complementares ao mecanismo de autoconfiguração stateless e possibilitam a geração de endereços aleatórios e temporários, resultando na ineficiência do rastreamento de dispositivos advindos de redes com suporte a este recurso;

Secure Neighbor Discovery (SEND): extensão de segurança do Neighbor Discovery Protocol (NDP) que impõe o estabelecimento de uma infraestrutura de chaves públicas na rede, com o objetivo de autenticar os dispositivos que possam se anunciar na rede.

A implementação nativa do IPSec, bem como das novas ferramentas de segurança apresentadas, são importantes avanços do IPv6. Comparado a sua versão anterior, este também permitiu diversas melhorias na mobilidade dos dispositivos conectados à Internet, conforme será exposto na próxima seção.

Mobilidade IPv6

A motivação para o desenvolvimento de mecanismos de mobilidade é uma consequência natural da integração de redes wireless (sem fio) à Internet. Até a introdução desta tecnologia, os usuários se limitavam a acessá-la por meio de locais pré-determinados, como por exemplo, em suas residências ou nas empresas onde trabalhavam. As conexões wireless tornaram realidade o uso de laptops, tablets, celulares, entre outros dispositivos, como clientes de acesso à rede.

Desta maneira, foi desenvolvido o MIPv6 (Mobile Internet Protocol version 6), com o objetivo de suportar o deslocamento de um dispositivo móvel de uma rede para outra sem a necessidade da reconfiguração de seu endereço IPv6, tornando esta movimentação transparente às diferentes aplicações.

Para compreensão do MIPv6, é importante conhecer as seguintes terminologias (Figura 17):

Mobile Node (nó móvel) – MN: dispositivo móvel que pode transitar entre diferentes redes sem perder suas conexões estabelecidas, continuando acessível através de seu endereço de origem;

Home Address (endereço de origem) – HoA: endereço permanente alocado ao MN. É por meio deste que o nó móvel se conecta a rede de origem;

Home Network (rede de origem) – HN: rede onde o nó móvel está conectado e que fornece seu endereço de origem;

Home Agent (agente de origem) – HA: roteador localizado na rede de origem do nó móvel e que mantém a associação entre seu endereço de origem e o remoto;

Care of Address (endereço remoto) – CoA: endereço associado ao nó móvel quando este se encontra em uma rede remota;

Foreign network (rede remota) – FN: qualquer rede, diferente da HN, onde o nó móvel se encontra;

Correspondent node (nó correspondente) – CN: nó (móvel ou estático) com o qual o nó móvel se comunica.

Figura 17. Principais componentes do MIPv6.

Os passos a seguir descrevem o funcionamento básico das redes com suporte ao MIPv6:

1. A rede de origem (HN) aloca um endereço HoA para o nó móvel (MN), o qual não será alterado mesmo quando o MN se desloca para uma rede remota (FN);

2. Quando o MN se dirige a uma FN, este recebe um endereço CoA por intermédio de mecanismos de autoconfiguração (stateless ou stateful), constituído por um prefixo válido;

3. O nó móvel associa seu endereço de origem (HoA) ao remoto (CoA) e registra seu novo endereço no agente de origem (HA) enviando uma mensagem Binding Update. O HA confirma a recepção desta por meio da mensagem Binding Acknowledgement (Figura 18). Note que este procedimento assegurará que os pacotes IPv6 destinados ao endereço de origem sejam recebidos pelo nó móvel na rede remota;

Figura 18. Registro do CoA no agente de origem.

4. O agente de origem, ao receber pacotes IPv6 endereçados ao nó móvel, intercepta-os e os envia encapsulados para o endereço remoto através de um túnel. Este mecanismo é conhecido como triangulação (Figura 19);

Figura 19. Triangulação da comunicação entre o MN e o CN.

5. Para otimizar o fluxo de dados, é possível habilitar a comunicação direta entre o nó correspondente (CN) e o nó móvel (MN), ou seja, sem a necessidade de passar através da rede de origem e pelo agente de origem (Figura 20). As mensagens Binding Update, Binding Acknowledgement e Binding Refresh Request são usadas pelo CN para aprender dinamicamente o endereço remoto do nó móvel. É importante observar que neste caso, o CN também deverá suportar a mobilidade IPv6;

Figura 20. Comunicação otimizada entre o MN e o CN.

6. Quando o nó móvel retorna para sua rede, este envia a mensagem Binding Update para informar ao agente de origem que os pacotes não devem mais ser encaminhados ao seu endereço remoto.

A mobilidade utiliza o cabeçalho de extensão Mobility para suportar a troca de mensagens relacionadas ao estabelecimento e ao gerenciamento das associações de endereços. A lista abaixo descreve brevemente seus campos (Figura 21):

Next header (próximo cabeçalho): indica o próximo cabeçalho – atualmente, apenas o valor 59 (em decimal) é implementado, sinalizando que não existe próximo cabeçalho, porém há a possibilidade de uma expansão futura;

Length (tamanho): tamanho do cabeçalho de extensão Mobility, necessariamente múltiplo de 8 bytes;

MH Type (tipo do cabeçalho de mobilidade): identifica o tipo da mensagem de mobilidade: Binding Refresh Request, Binding Update, entre outras;

Checksum (soma de verificação): verifica a integridade dos dados;

Data (dados): mensagem a ser enviada.

Figura 21. Campos do cabeçalho de extensão mobility.

Conclusões

O protocolo IPv6, além de resolver a limitação imposta à expansão da Internet pelo seu antecessor, oferece novos serviços e melhorias, tais como: a simplificação do formato de seu cabeçalho, a identificação dos fluxos de dados, o suporte para campos opcionais e extensões, recursos para autenticação e privacidade, mecanismos de autoconfiguração, entre outros. O espaço total de endereços utilizando 128 bits (quatro vezes maior que os 32 bits da versão anterior) possibilita 3,4028 x 1038 (340.282.366.920.938.463.463.374.607.431.768.211.456) combinações diferentes, número suficientemente grande para atender as demandas atuais e projetadas para o futuro.

Embora sua adoção fosse imprescindível, as alternativas criadas para adiar o esgotamento do IPv4 (endereços privados, NAT, CIDR e DHCP), necessárias para que houvesse tempo hábil para a especificação do novo protocolo, contribuíram para a morosidade de sua disponibilização pelas organizações e usuários. Também cooperaram para esta realidade, a facilidade de implementação, a interoperabilidade e a robustez da versão 4 do protocolo Internet.

Atualmente, algumas barreiras ainda dificultam a aceitação do IPv6, entre elas: a necessidade de investimentos na infraestrutura, pois, muitas vezes, o hardware e o software legados não são compatíveis com a nova versão do protocolo; as mudanças conceituais em sua operação demandam treinamento e capacitação da equipe técnica; por fim, a definição da implantação das estratégias de transição requer um planejamento adequado ao particular cenário onde estão inseridas.

Estes fatores permitiram a sobrevida do protocolo IPv4. Entretanto, não há mais como ignorar a situação atual, pois brevemente os provedores não terão endereços disponíveis para alocar aos seus usuários. Desta forma, a única alternativa para evitar um colapso nas comunicações e a retração no crescimento da Internet é a adoção maciça do protocolo IPv6.

Links

Hobbes' Internet Timeline 10.1 by Robert H. Zakon
http://www.zakon.org/robert/internet/timeline

IPv4 & IPv6 Services
http://www.h3c.com/portal/Products___Solutions/Technology/IPv4___IPv6_Services/

Mobile IPv6
http://www.ibk.tuwien.ac.at/~ipv6/mipl.htm

Apostila “Curso IPv6 básico” do NIC.br
http://curso.ipv6.br

Artigo “IPv4 e IPv6”, escrito por George Marcel M. A. Smetana
http://www.abusar.org.br/ftp/pitanga/Redes/ArtigoIP.pdf

Artigo “Impactos da transição e utilização do IPv6 sobre a segurança de ambientes computacionais”, escrito por Jansen C. Sena, Paulo Lício de Geus e Alessandro Augusto
http://bastion.las.ic.unicamp.br/paulo/papers/2002-WSeg-jansen.sena-Impactos_IPv6.pdf