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.
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.
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.