18.2. IPv6 — A Internet da próxima geração

Devido ao surgimento da WWW (World Wide Web), a Internet teve um crescimento explosivo com um número cada vez maior de computadores se comunicando através de TCP/IP nos últimos quinze anos. Desde que Tim Berners-Lee da CERN (http://public.web.cern.ch) inventou a WWW em 1990, o número de hosts da Internet cresceu de poucos milhares para centenas de milhões deles.

Conforme mencionado, um endereço IPv4 consiste em apenas 32 bits. Da mesma forma, poucos endereços IP são perdidos — eles não podem ser usados devido à forma como as redes são organizadas. O número de endereços disponíveis na sua sub-rede é dois elevado à potência do número de bits, menos dois. Uma sub-rede tem, por exemplo, 2, 6 ou 14 endereços disponíveis. Para conectar 128 hosts à Internet, por exemplo, você precisa de uma sub-rede com 256 endereços IP, dos quais somente 254 são utilizáveis, pois dois endereços IP são necessários para a estrutura da própria sub-rede: o endereço da rede de base e broadcast.

No protocolo IPv4 atual, DHCP ou NAT (Network Address Translation - Conversão de Endereços de Rede) são os mecanismos comuns usados para contornar a grande falta de endereços. Combinado à convenção de manter endereços públicos e privados separados por espaços, esses métodos podem certamente reduzir a falta de endereços. O problema deles está em suas configurações, trabalhosas para configurar e difíceis de manter. Para configurar um host em uma rede IPv4, é preciso haver vários itens de endereços, como o próprio endereço IP do host, a máscara de sub-rede, o endereço de gateway e talvez o endereço do servidor de nomes. Todos esses itens precisam ser conhecidos e não podem ser derivados de outro lugar.

Com o IPv6, tanto a falta de endereços quanto as configurações complicadas passariam a ser problemas do passado. As seções a seguir oferecem mais informações sobre os aprimoramentos e benefícios trazidos pelo IPv6 e sobre a transição do protocolo antigo para o novo.

18.2.1. Vantagens

A melhoria mais importante e visível oferecida pelo novo protocolo é a expansão enorme do espaço disponível para endereços. Um endereço IPv6 é criado com valores de 128 bits em vez dos 32 bits tradicionais. Ele é capaz de fornecer 'quatrilhões' de endereços IP.

Entretanto, os endereços IPv6 não diferem de seus antecessores apenas em relação ao comprimento. Também possuem uma estrutura interna diferente, que pode conter mais informações específicas sobre os sistemas e as redes a que pertencem. Leia mais detalhes sobre eles na Seção 18.2.2, “Estrutura e tipos de endereços”.

A seguir, há uma lista de algumas outras vantagens do novo protocolo:

Configuração automática

O IPv6 torna apto o “plug and play” da rede, o que significa que um sistema recentemente configurado é integrado à rede (local) sem qualquer configuração manual. O novo host usa seu mecanismo de configuração automática para derivar seu próprio endereço a partir das informações disponibilizadas pelos roteadores vizinhos, com base em um protocolo chamado protocolo ND (Neighbor Discovery - Descoberta de Vizinho). Esse método não exige nenhuma intervenção por parte do administrador e não há necessidade de manter um servidor central para alocação de endereços; uma vantagem adicional em relação ao IPv4, cuja alocação automática de endereços exige um servidor DHCP.

Mobilidade

O IPv6 torna possível a designação de vários endereços a uma interface de rede ao mesmo tempo. Isso permite que usuários acessem várias redes facilmente, o que é comparado aos serviços de roaming internacionais oferecidos pelas empresas de celulares: quando você viaja com seu celular, ele automaticamente se conecta a um serviço interurbano, assim que entra na área correspondente. Dessa forma, você pode ser localizado no mesmo número de celular em qualquer lugar e pode fazer ligações como se estivesse em sua cidade.

Comunicação segura

Com o IPv4, a segurança da rede é uma função adicional. O IPv6 inclui IPSec como um de seus recursos principais, permitindo que sistemas se comuniquem através de um túnel seguro, para evitar a intromissão de estranhos na Internet.

Compatibilidade retroativa

De forma realista, seria impossível mudar toda a Internet de IPv4 para IPv6 de uma só vez. Portanto, é essencial que ambos os protocolos sejam capazes de coexistir na Internet, mas também em um sistema. Isso é garantido por endereços compatíveis (endereços IPv4 podem facilmente ser convertidos em endereços IPv6) e através do uso de vários túneis. Consulte a Seção 18.2.3, “Coexistência de IPv4 e IPv6”. Da mesma forma, os sistemas podem se basear em uma técnica IP de pilha dupla para suportar os dois protocolos ao mesmo tempo, significando que possuem duas pilhas de rede completamente separadas, de tal forma que não há interferência entre as duas versões de protocolos.

Serviços adaptados e personalizados através de Multicast

Com o IPv4, alguns serviços, como SMB, precisam transmitir seus pacotes para todos os host na rede local. O IPv6 oferece uma abordagem mais detalhada, permitindo que os servidores enviem hosts através de multicast — determinando um número de hosts como partes de um grupo (o que é diferente de direcionar todos os hosts através de broadcast ou cada host individualmente através de unicast). Os hosts enviados como grupos talvez dependam do aplicativo concreto. É possível enviar todos os servidores de nomes para alguns grupos predefinidos (o grupo multicast de servidores de nomes), por exemplo ou todos os roteadores (o grupo multicast de todos os roteadores).

18.2.2. Estrutura e tipos de endereços

Como mencionado, está faltando no protocolo IP atual dois aspectos importantes: há um aumento de falta de endereços IP e a configuração de rede e manutenção de tabelas de roteamento vêm se tornando tarefas cada vez mais complexas e trabalhosas. O IPv6 soluciona o primeiro problema, expandindo o espaço dos endereços para 128 bits. O segundo problema é contornado com a introdução de uma estrutura hierárquica de endereços, combinada com técnicas sofisticadas para alocar endereços de rede, assim como multihoming (a capacidade de designar vários endereços a um dispositivo, permitindo acesso a diversas redes).

Ao utilizar o IPv6, é útil saber que há três tipos diferentes de endereços:

Unicast

Endereços desse tipo são associados com exatamente uma interface de rede. Pacotes com esse tipo de endereço são entregues em apenas um destino. Da mesma forma, os endereços unicast são usados para transferir pacotes para hosts individuais na rede local ou na Internet.

Multicast

Endereços desse tipo estão relacionados a um grupo de interfaces de rede. Pacotes com esse tipo de endereço são entregues a todos os destinos pertencentes ao grupo. Endereços multicast são usados, principalmente, por certos tipos de serviços de rede para se comunicarem com determinados grupos de host de forma bem direcionada.

Anycast

Endereços desse tipo estão relacionados a um grupo de interfaces. Pacotes com esse tipo de endereço são entregues ao membro do grupo mais próximo do remetente, de acordo com os princípios do protocolo de roteamento subjacente. Endereços anycast são usados para que hosts possam descobrir mais facilmente servidores que oferecem certos serviços na área da rede determinada. Todos os servidores do mesmo tipo possuem o mesmo endereço anycast. Sempre que um host solicita um serviço, ele recebe uma resposta do servidor com o local mais próximo, conforme determinado pelo protocolo de roteamento. Caso ocorra alguma falha com esse servidor, o protocolo selecionará automaticamente o segundo servidor mais próximo ou então o terceiro e assim por diante.

Um endereço IPv6 é constituído de oito campos de quatro dígitos, cada um representando 16 bits, gravados em notação hexadecimal. Também são separados por dois-pontos (:). Quaisquer zero bytes iniciais em um determinado campo podem ser descartados, mas zeros dentro ou no final do campo não podem ser descartados. Outra convenção é a de que mais de quatro zero bytes consecutivos podem retornar como dois-pontos duplos. Entretanto, somente um como :: é permitido em cada endereço. Esse tipo de notação reduzida é mostrado no Exemplo 18.3, “Amostra de endereço IPv6”, em que todas as três linhas representam o mesmo endereço.

Exemplo 18.3. Amostra de endereço IPv6

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4
fe80 :                           : 10 : 1000 : 1a4

Cada parte de um endereço IPv6 possui uma função definida. Os primeiros bytes formam o prefixo e especificam o tipo de endereço. A parte central é a porção do endereço na rede, mas pode não ser utilizada. O final do endereço forma a parte do host. Com o IPv6, a máscara de rede é definida indicando o comprimento do prefixo depois de uma barra no final do endereço. Um endereço, como mostrado no Exemplo 18.4, “Endereço IPv6 especificando o comprimento do prefixo”, contém as informações de que os primeiros 64 bits formam a parte da rede do endereço e que os últimos 64 formam a parte do host. Em outras palavras, 64 significa que a máscara de rede está preenchida com 64 valores de 1 bit a partir da esquerda. Da mesma forma que o IPv4, o endereço IP é combinado com E com os valores da máscara de rede, para determinar se o host está localizado na mesma sub-rede ou em outra.

Exemplo 18.4. Endereço IPv6 especificando o comprimento do prefixo

fe80::10:1000:1a4/64

O IPv6 conhece vários tipos de prefixos predefinidos. Alguns são mostrados na Tabela 18.4, “Vários prefixos IPv6”.

Tabela 18.4. Vários prefixos IPv6

Prefixo (hex)

Definição

00

Endereços IPv4 e endereços de compatibilidade de IPv4 sobre IPv6. Esses são usados para manter a compatibilidade com IPv4. O seu uso ainda exige um roteador capaz de converter pacotes IPv6 em pacotes IPv4. Vários endereços especiais, como o do dispositivo loopback, também possuem esse prefixo.

2 ou 3 como o primeiro dígito

Endereços unicast globais agregativos. Como no caso do IPv4, uma interface pode ser designada para fazer parte de uma determinada sub-rede. Atualmente, há os seguintes espaços de endereços: 2001::/16 (espaço de endereço da qualidade de produção) e 2002::/16 (espaço de endereço 6to4).

fe80::/10

Endereços locais de links. Endereços com esse prefixo não devem ser roteados e, portanto, só devem ser encontrados na mesma sub-rede.

fe80::/10

Endereços locais de sites. Esses podem ser roteados, mas somente na rede da organização a que pertencem. Na verdade, eles são o equivalente IPv6 do espaço de endereço de rede privada atual, como 10.x.x.x.

ff

Esses são endereços multicast.

Um endereço unicast consiste em três componentes básicos:

Topologia pública

A primeira parte (que também contém um dos prefixos mencionados acima) é usada para rotear pacotes através da Internet pública. Ela inclui informações sobre a empresa ou instituição que fornece o acesso à Internet.

Topologia do site

A segunda parte contém informações de roteamento sobre a sub-rede à qual o pacote deve ser entregue.

ID de interface

A terceira parte identifica a interface à qual o pacote deve ser entregue. Isso também permite que o MAC faça parte do endereço. Como MAC é um identificador fixo globalmente exclusivo codificado no dispositivo pelo fabricante do hardware, o procedimento de configuração é bastante simplificado. Na verdade, os primeiros 64 bits de endereço são consolidados para formar o token EUI-64, com os últimos 48 bits obtidos no MAC e os 24 bits restantes contendo informações especiais sobre o tipo de token. Isso também possibilita designar um token EUI-64 a interfaces que não possuem MAC, como aquelas baseadas em PPP ou ISDN.

No topo dessa estrutura básica, o IPv6 faz distinção entre cinco tipos de endereços unicast:

:: (não especificado)

Esse endereço é usado pelo host como seu endereço de origem quando a interface é inicializada pela primeira vez — quando o endereço ainda não pode ser determinado por outros meios.

::1 (loopback)

O endereço do dispositivo loopback.

Endereços compatíveis com o IPv4

O endereço IPv6 é formado pelo endereço IPv4 e um prefixo consistindo em 96 zero bits. Esse tipo de endereço de compatibilidade é usado para um túnel (consulte a Seção 18.2.3, “Coexistência de IPv4 e IPv6”) para permitir que os hosts IPv4 e IPv6 se comuniquem com outros que estejam operando em um ambiente IPv4 puro.

Endereços IPv4 mapeados para IPv6

Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.

Endereços locais

Há dois tipos de endereços para uso local:

link-local

Esse tipo de endereço só pode ser usado na sub-rede local. Pacotes com endereço de origem ou de destino desse tipo não devem ser roteados para a Internet nem para outras sub-redes. Esses endereços contêm um prefixo especial (fe80::/10) e o ID da interface da placa de rede, com a parte do meio consistindo em zero bytes. Endereços desse tipo são usados durante a configuração automática para se comunicarem com outros hosts pertencentes à mesma sub-rede.

site-local

Pacotes com esse tipo de endereço podem ser roteados para outras sub-redes, mas não para a Internet mais ampla. Eles precisam permanecer dentro da própria rede da organização. Tais endereços são usados para intranets e equivalem ao espaço de endereço privado definido pelo IPv4. Eles contêm um prefixo especial (fec0::/10), o ID da interface e um campo de 16 bits especificando o ID da sub-rede. Novamente, o restante é preenchido com zero bytes.

Como um recurso completamente novo, introduzido com o IPv6, cada interface de rede normalmente obtém vários endereços IP, com a vantagem de que várias redes podem ser acessadas através da mesma interface. Uma dessas redes pode ser totalmente configurada automaticamente usando o MAC e um prefixo conhecido, resultando na possibilidade de todos os hosts na rede local serem encontrados assim que o IPv6 for habilitado (usando o endereço link-local). Com o MAC fazendo parte disso, qualquer endereço IP usado no mundo será exclusivo. As únicas partes variáveis do endereço são aquelas que indicam a topologia do site e a topologia pública, dependendo da rede real na qual o host estiver operando no momento.

Para que um host avance e retroceda entre duas redes diferentes ele precisa de, pelo menos, dois endereços. Um deles, o endereço pessoal, contém não só o ID de interface, como também um identificador da rede doméstica a que ele normalmente pertence (e o prefixo correspondente). O endereço pessoal é um endereço estático e, portanto, normalmente não se modifica. Mesmo assim, todos os pacotes destinados ao host móvel podem ser entregues a ele, independentemente de ele operar na rede doméstica ou em outro local externo. Isso é possível devido aos recursos totalmente novos introduzidos com o IPv6, como configuração automática sem estado e descoberta de vizinho. Além do endereço residencial, um host móvel obtém um ou mais endereços adicionais pertencentes às redes interurbanas com roaming. Eles são chamados endereços care-of. A rede doméstica tem um recurso que encaminha qualquer pacote destinado ao host quando ele está em roaming. Em um ambiente IPv6, essa tarefa é executada pelo agente local, que retransmite todos os pacotes destinados ao endereço residencial através de um túnel. Por outro lado, esses pacotes destinados ao endereço care-of são diretamente transferidos para o host móvel sem qualquer desvio especial.

18.2.3. Coexistência de IPv4 e IPv6

A migração de todos os hosts conectados à Internet do IPv4 para o IPv6 é um processo gradual. Os dois protocolos coexistirão durante algum tempo. A coexistência deles em um sistema é garantida onde houver uma implementação de pilha dupla de ambos os protocolos. Ainda resta a dúvida de como um host habilitado do IPv6 deve se comunicar com um host IPv4 e como pacotes do IPv6 devem ser transportados pelas redes atuais, que são predominantemente baseadas no IPv4. As melhores soluções oferecem endereços de compatibilidade e túnel (consulte a Seção 18.2.2, “Estrutura e tipos de endereços”).

Os hosts do IPv6 relativamente isolados na rede IPv4 (mundial) podem se comunicar através de túneis: Pacotes IPv6 são encapsulados como pacotes IPv4 para serem movidos por uma rede IPv4. Tal conexão entre dois hosts IPv4 é chamada de túnel. Para que isso ocorra, os pacotes precisam incluir o endereço de destino do IPv6 (ou o prefixo correspondente), assim como o endereço IPv4 do host remoto no destino final do túnel. Um túnel básico pode ser configurado manualmente, de acordo com um contrato entre os administradores dos hosts. Também é chamado de túnel estático.

Entretanto, a configuração e manutenção de túneis estáticos é normalmente muito trabalhosa para ser usada diariamente em comunicações. Portanto, o IPv6 fornece três métodos de túneis dinâmicos:

6over4

Os pacotes IPv6 são automaticamente encapsulados como pacotes IPv4 e enviados por uma rede IPv4 com capacidade multicast. O IPv6 é induzido a considerar toda a rede (Internet) como uma LAN enorme. Com isso, é possível determinar automaticamente o destino final do túnel IPv4. Entretanto, esse método não faz um dimensionamento muito bom e também é dificultado pelo fato de o multicast IP não ser tão difundido na Internet. Portanto, ele apenas fornece uma solução para redes corporativas ou institucionais menores, em que o multicast pode ser habilitado. As especificações para esse método estão descritas no RFC 2529.

6to4

Com esse método, os endereços IPv4 são automaticamente gerados a partir de endereços IPv6, habilitando a comunicação de hosts IPv6 isolados através de uma rede IPv4. Entretanto, alguns problemas foram relatados no que tange à comunicação entre esses hosts IPv6 isolados e a Internet. O método está descrito no RFC 3056.

Controlador do túnel IPv6

Esse método se baseia em servidores especiais que fornecem túneis dedicados para hosts IPv6. É descrito no RFC 3053.

[Important]A Iniciativa 6bone

Nos principais locais “mais estabelecidos” da Internet, já existe uma rede globalmente distribuída de sub-redes IPv6 conectadas através de túneis. Essa é a rede 6bone (http://www.6bone.net), um ambiente de testes IPv6 que pode ser usado por programadores e provedores da Internet que desejam desenvolver e oferecer serviços baseados no IPv6, a fim de obter a experiência necessária para implementar o novo protocolo. Mais informações podem ser encontradas no site desse projeto na Internet.

18.2.4. Configurando o IPv6

Para configurar o IPv6, normalmente não é necessário fazer mudanças nas estações de trabalho individuais. Entretanto, o suporte do IPv6 precisa ser carregado. Para fazer isso, digite modprobe ipv6 como raiz.

Devido ao conceito de configuração automática do IPv6, um endereço é designado à placa de rede na rede link-local. Normalmente, nenhum gerenciamento de tabela de roteamento é feito em uma estação de trabalho. Os roteadores de rede podem ser consultados pela estação de trabalho, usando o protocolo de anúncios do roteador, para o qual devem ser implementados um prefixo e gateways. O programa radvd pode ser usado para configurar um roteador IPv6. Esse programa informa às estações de trabalho o prefixo que deve ser usado para os endereços IPv6 e os roteadores. Outra opção é usar zebra para a configuração automática dos dois endereços e roteamento.

Consulte a página de manual do ifup(8) para obter informações sobre como configurar vários tipos de túneis usando os arquivos /etc/sysconfig/network.

18.2.5. Mais informações

A visão geral acima não abrange totalmente o tópico do IPv6. Para obter informações mais detalhadas sobre o novo protocolo, consulte os livros e a documentação online a seguir:

http://www.ngnet.it/e/cosa-ipv6.php

Uma série de artigos fornecendo uma introdução explicativa sobre os fundamentos básicos do IPv6. Um bom manual sobre o tópico.

http://www.bieringer.de/linux/IPv6/

Aqui, encontre o Linux IPv6-HOWTO e muitos links relacionados ao tópico.

http://www.6bone.net/

Visite esse site se desejar se juntar a uma rede IPv6 com túnel.

http://www.ipv6.org/

O ponto de partida para tudo relativo ao IPv6.

RFC 2640

Informações fundamentais do RFC sobre o IPv6.

IPv6 Essentials

Um livro que descreve todos os aspectos importantes do tópico é o IPv6 Essentials de Silvia Hagen (ISBN 0-596-00125-8).