IPv6

Geração de documentação sobre IPv6

A geração de documentação envolve três atividades: referenciar fontes de informação disponíveis na Internet, habilitar um diretório com tutoriais e How-To's e a promoção de um mailing-list ou forum para a troca de informações. As fontes de informação disponíveis na Internet primam mais pelos Task Force criados no mundo todo assim como as instituições acadêmicas trabalhando junto com a IETF e outras instituições. Habilitar tutoriais e How-To's permite criar um repositório de dados sobre pesquisas, experiências e estudos feitos sobre IPv6, facilitando assim o treinamento das equipes comprometidas com a implantação do IPv6 em redes acadêmicas e de pesquisa.

voltar à página dos projetos

Projeto de instalação de um servidor web com suporte à IPv6

Graças aos esforços de projetos como KAME e USAGI, a maioria dos daemons para serviços de internet estão sendo atualizados com suporte a IPv6. Esta atualização acompanha a capacidade Dual-Stack presente nos mais diversos OS. Porém, utilização de servidores web v6 ainda é muito pequena por parte dos administradores de sites e ISPs. Isso acontece porque não contabilizaram ainda uma grande mudança por parte dos usuários para o IPv6. Portanto, o panorama é de Web Sites realizando algumas experiências de serviço WWW v6 "nativo" e uma grande maioria utilizando 6to4 ou Tunnel Broker. Uma rápida pesquisa revela que a grande maioria dos grandes Web Sites tem registros AAAA ou A6 associados, o que indica um endereço IPv6 associado.

A consolidação do serviço WWW v6 exige planejamento. Várias soluções estão sendo testadas sendo conveniente citar algumas como base para um maior entendimento. Uma das possibilidades é a utilização de técnicas de Proxy. Ou seja, um servidor Proxy capaz de atender requisições HTTP e FTP, traduzindo e encaminhando requisições para servidores IPv4 quando necessário. Desta maneira, haveria uma "rede separada" com IPv6, conservando simultâneamente os servidores IPv4.

O servidor Apache possui módulos para proxy, caching assim como suporte a IPv6. A versão atual com suporte a v6 é a 2.x.x. Testes bem sucedidos em todo o mundo foram feitos com o Apache 2.0.16.

Paralelamente aos serviços web para servidores, também os navegadores precisam ter suporte a IPv6. Como exemplo, Netscape Navigator 6.x assim como a linha Mozilla foram testados com sucesso. Para indicar o endereço IPv6 a sintaxe muda:

IPv4: 149.76.14.14:80
[3ffe:200:8:1000:250:bbff:fe00:25]:80

Caso procura-se utilizar a tradução de endereço, será necessário ter um DNSv6 funcionando. Em todo caso, a edição (em máquinas Unix-Like) do /etc/hosts permite uma solução local. O exemplo a seguir ilustra uma possibilidade:

no /etc/hosts

::1 exemplo-v6-localhost
3ffe:200:8:1000:250:bbff:fe00:25 exemplo-v6-hostCarlos

A seguir haverá um mapeamento entre os IPs selecionados e seus respectivos alias. Assim estaremos habilitando no navegador o uso de: http://exemplo-v6-localhost/ e também http://exemplo-v6-hostCarlos/

Muitos testes feitos por vários núcleos de pesquisa, assim como empresas de TI não indicam nenhuma maior diferença de desempenho entre servidores WWW v6 e v4. Certamente, as todas as implementações de IPv6 em nível de protocolo ainda não estão concluídas, assim como a estrutura de uma rede v6 ainda não é completa na maioria dos casos, dificultando toda a completa funcionalidade do novo protocolo.

voltar à página dos projetos

O que é

Em 1994, frente a estudos de limitação do IPv4 - como o crescimento exponencial da internet-, iniciou-se o estudo pelo IETF de uma nova versão do protocolo IP, que surgiu a partir de 1995 através da RFC 1883 (DEERING 1995). A nova versão do protocolo IP foi entitulada IPng – IP Next Generation. Como esse nome ficou ambíguo frente aos diversos projetos em paralelo deste protocolo, a nova versão foi chamada de IP versão 6 – IPv6. O motivo para este protocolo não ser IPv5 foi que já existia um projeto de um protocolo experimental chamado ST, que já possuía esse nome (COMER 2001). Em diversos aspectos o protocolo IPv6 (DEERING 1998) assume as mesmas funcionalidades que fizeram o sucesso do IPv4 (INFORMATION 1981).

O que mudou?

Em termos de inovações, estas podem ser agrupadas em 5 categorias (COMER 2001)(DEERING 1998) apresentadas abaixo:

Expansão do espaço de endereçamento: Aumento dos atuais 32 bits que formam o endereçamento IPv4 para 128 bits no IPv6. Adicionalmente, é introduzida a classe "anycast", que objetiva o envio de pacotes a um host pertencente a determinado grupo. Este recurso é muito semelhante a um "broadcast seletivo". O modelo de broadcast convencional não é mais utilizado, sendo substituído pelo multicast.

Simplificação do cabeçalho IP: Alguns campos do header IPv4 foram suprimidos e outros se tornaram opcionais. O objetivo de tal modificação justifica-se pelo menor custo de processamento e a menor utilização da banda.

Cabeçalhos de extensão: Ao contrário do IPv4 que utiliza um formato único de cabeçalho, o IPv6 permite que informações sejam divididas em diversos cabeçalhos. Isso permite que a estrutura de um pacote IPv6 seja formada pelo cabeçalho base, seguida por zero ou mais cabeçalhos de extensão, e ao final seus dados. Isso permite que novas funcionalidades sejam adicionadas ao protocolo conforme as necessidades no futuro. Adicionalmente, há um ganho de performance, já que os nodos intermediários passam a analisar somente o cabeçalho base, que por ser fixo, não necessita de cálculos adicionais.

Tratamento de fluxos diferenciados: Permite que um remetente e receptor possam estabelecer um caminho/tratamento para determinados fluxos de pacotes. Isso permite que aplicações de "tempo real" possam ter um tratamento diferenciado com menos atrasos e/ou variação de caminhos, prejudicando o serviço; ou ainda que determinados pacotes possam ser roteados por um caminho de baixo custo/baixa prioridade.

Segurança com autenticação e privacidade: Fornece extensões que permitem o ticação, integridade de dados e confidencialidade no próprio datagrama IPv6..

Projetos IPv6 no PoP-RS

DNS com Suporte a IPv6

Servidor Web com Suporte a IPv6

Firewall IPv6

Geração de documentação sobre IPv6

Projeto de suporte à IPv6 no DNS 

A importância da migração de IPv4 para IPv6 está justificada nas inúmeras melhorias desenvolvidas no IPv6: maior espaço de endereçamento, mobilidade, segurança, autoconfiguração e QoS (Quality of Service).


A transição deverá ser feita de forma gradual. Atualmente, todos os sistemas operacionais (em versões tanto Desktop como Server) já possuem a pilha de protocolos IPv6 disponível. Experiências de tunelamento (IPv6-over-IPv4, 6to4, etc), assim como algumas aplicações (Apache, FTP) estão utilizando ou podem utilizar IPv6. Como os hosts podem ter endereços IPv4 e IPv6 (por serem Dual-Stack), a configuração de um servidor DNS com suporte a IPv6 torna-se um importante passo em experiências e testes.

DNS com suporte a IPv6 pode ser obtido com o Bind 9.x. Versões mais antigas podem precisar de patches ou não possuírem suporte algum. As referências aqui disponibilizadas foram feitas conforme o Bind 9.3.1

A seguir seguem referências das principais mudanças exigidas em uma configuração de DNSv6. Não é pretensão desenvolver exaustivamente como configurar um DNSv6 para produção, mas sim referenciar as principais mudanças envolvidas.

Dois tipos de consultas feitas em um DNS:

  • Resolução de nomes: name to address lookups (forward lookups)
  • Resolução de endereço reverso: address to name lookups (reverse lookups)

Para Resolução de Nomes (forward lookups) é utilizado o AAAA record.

Para Resolução de Endereço Reverso (reverse lookups) existem dois formatos:

  • Bitstring format: utilizado no domínio ip6.arpa (novo formato)
  • Nibble format: utilizado no domínio ip6.int

Resolução de Nomes utilizando Registros AAAA

Os registros AAAA são paralelos e semelhantes aos Registros A no IPv4. Em um único endereço é possível especificar um endereço IPv6 completo. Por exemplo:

$ORIGIN exemplo.com.
host 3600 IN AAAA 3ffe:8050:201:1860:42::1

 

Resolução de Reverso

Usando o Formato Nibble

ORIGIN 0.6.8.1.1.0.2.0.0.5.0.8.e.f.f.3.ip6.int. 1.0.0.0.0.0.0.0.0.0.0.0.2.4.0.0 14400 IN PTR host.exemplo.com.

Usando o Formato Bitstring Format

$ORIGIN \[x3ffe805002011860/64].ip6.arpa. \[x0042000000000001/64] 14400 IN PTR host.exemplo.com.

 

voltar à página dos projetos