Devido ao surgimento da WWW (World Wide Web), a Internet teve um crescimento acelerado com um número cada vez maior de computadores se comunicando por 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. Além disso, 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 apenas 254 são utilizáveis, visto que são necessários dois endereços IP para a estrutura da própria sub-rede: o endereço de broadcast e o endereço de rede base.
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 que haja 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 um endereço de 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.
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 20.2.2, “Estrutura e tipos de endereços”.
A seguir, há uma lista de algumas outras vantagens do novo protocolo:
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 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.
Apesar disso, se houver um roteador conectado a um switch, ele deverá enviar anúncios periódicos com flags avisando os hosts de uma rede sobre como devem interagir entre si. Para obter mais informações, consulte o RFC 2462 e a página de manual de radvd.conf(5), além do RFC 3315.
O IPv6 torna possível a atribuição de vários endereços a uma interface de rede ao mesmo tempo. Isso permite que os usuários acessem várias redes com facilidade, algo comparável aos serviços de roaming internacional oferecidos por operadoras de telefonia celular: quando você leva seu telefone celular para o exterior, ele se registra automaticamente em um serviço estrangeiro logo que entra na área correspondente, de modo que você possa ser contatado pelo mesmo número em qualquer lugar e ligar para alguém do mesmo modo que faz em sua área de origem.
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 por um túnel seguro, para evitar a intromissão de estranhos na Internet.
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 20.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.
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 gerenciem os hosts por multicast — tratando um número de hosts como partes de um grupo (o que é diferente de gerenciar todos os hosts por broadcast ou cada host individualmente por 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).
Conforme mencionado, o protocolo IP atual está em desvantagem em relação a dois aspectos importantes: os endereços IP estão cada vez mais escassos, e a configuração de rede com manutenção de tabelas de rotina vem se tornando cada vez mais uma tarefa complexa e onerosa. 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:
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.
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.
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. Eles 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, apenas um separador do tipo :: é permitido por endereço. Esse tipo de notação reduzida é mostrado no Exemplo 20.3, “Amostra de endereço IPv6”, em que todas as três linhas representam o mesmo endereço.
Exemplo 20.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 20.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.
O IPv6 conhece vários tipos de prefixos predefinidos. Alguns são mostrados na Tabela 20.4, “Vários prefixos IPv6”.
Tabela 20.4. Vários prefixos IPv6
|
Prefixo (hex) |
Definição |
|---|---|
|
|
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. |
|
|
Endereços unicast globais agregativos. Como no caso do IPv4, uma interface pode ser designada para fazer parte de uma determinada sub-rede. Atualmente, existem os seguintes espaços de endereço: |
|
|
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. |
|
|
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 |
|
|
Esses são endereços multicast. |
Um endereço unicast consiste em três componentes básicos:
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.
A segunda parte contém informações de roteamento sobre a sub-rede à qual o pacote deve ser entregue.
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 durante a primeira inicialização da interface, quando o endereço ainda não pode ser determinado por outros meios.
::1 (loopback) O endereço do dispositivo loopback.
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 20.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.
Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.
Há dois tipos de endereços para uso 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.
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.
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 20.2.2, “Estrutura e tipos de endereços”).
Os hosts IPv6 que estiverem mais ou menos isolados na rede IPv4 (mundial) podem se comunicar por túneis: os pacotes IPv6 são encapsulados como pacotes IPv4 para que sejam transmitidos 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:
Os pacotes IPv6 são automaticamente encapsulados como pacotes IPv4 e enviados por uma rede IPv4 com capacidade multicast. O IPv6 é induzido a considerar a rede inteira (Internet) como uma gigantesca rede local. 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.
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.
Esse método se baseia em servidores especiais que fornecem túneis dedicados para hosts IPv6. É descrito no RFC 3053.
Para configurar o IPv6, normalmente não é necessário fazer mudanças nas estações de trabalho individuais. O IPv6 é habilitado por padrão. Você pode desabilitá-lo durante a instalação na etapa de configuração da rede, descrita na Seção “Network Configuration” (Capítulo 3, Installation with YaST, ↑Guia de Implantação). Para desabilitar ou habilitar o IPv6 em um sistema instalado, use o módulo do YaST. Na guia , marque ou desmarque a opção conforme for necessário. Se desejar habilitá-lo temporariamente até a próxima reinicialização, digite modprobe -i ipv6 enquanto root. Basicamente, é impossível descarregar o módulo ipv6 depois de carregado.
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/quagga para a configuração automática dos dois endereços e para roteamento.
Consulte a página de manual do ifcfg-tunnel (5) para obter informações sobre como configurar vários tipos de túneis usando os arquivos /etc/sysconfig/network.
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:
O ponto de partida para tudo relativo ao IPv6.
Todas as informações necessárias para iniciar sua própria rede IPv6.
A lista de produtos habilitados para IPv6.
Aqui, encontre o Linux IPv6-HOWTO e muitos links relacionados ao tópico.
Informações fundamentais do RFC sobre o IPv6.
Um livro que descreve todos os aspectos importantes do tópico é o IPv6 Essentials de Silvia Hagen (ISBN 0-596-00125-8).