IPv6 - Saindo do armário
Autor: João Lucas B. Macedo | Publicado: 2016-03-27T20:17:00-07:00

IPv6 é a nova versão do protocolo IP, que de novo não tem nada, pois a RFC do protocolo data de 1998! O problema é que houve uma grande procrastinação do IPv4 com as técnicas de mitigação do esgotamento de endereços. O IPv6 elimina o problema da falta de endereços válidos e uso de NAT em redes locais, entre outras novidades. Com 128 bits para endereçamento não faltarão endereços por toda via láctea.
Boa parte da Internet já funciona em IPv6 e a grande maioria dos dispositivos novos vêm com ele habilitado por padrão. Você já está usando IPv6 e e talvez não saiba...
Ele está lá na sua rede, os hosts tentam fechar tuneis IPv6 para atravessar o seu firewall, fazem autoconfiguração e se comunicam por IPv6, tudo debaixo do seu nariz. Então saia do armário e comece a estudar o assunto antes que seja tarde. :-)
Quando se toca no assunto o pessoal fala de lado, olha pro chão. Alguns dizem que é moleza, que basta sair do decimal e estudar números hexadecimais, ou que vai demorar muito até ser implantado. Nada mais ingênuo. O IPv6 é um protocolo totalmente novo e tem muitas diferenças do antecessor. Os endereços IPv4 estão dando os últimos suspiros, e a medida que a rede cresce o uso de NAT deixa tudo exponencialmente mais complexo e caro.




Não pretendo apresentar os detalhes do formato dos novos endereços e como manipulá-los. Esta é a parte mais fácil e você pode achar em qualquer site com documentação básica sobre IPv6. Dê uma olhada em http://ipv6.br e procure pelo curso e-learning.

Para começar veja algumas características importantes:

No IPv6 todas as interfaces recebem vários endereços de acordo com o escopo. Vide os tipos de endereços a seguir.
O conceito de máscara e a notação CIDR permanece, mas a recomendação é que todos os enlaces utilizem prefixos /64.
O novo endereço de loopback é&nbsp;0:0:0:0:0:0:0:1/128, abreviado ::1
Não há endereços de rede ou broadcast, nem mesmo o conceito de broadcast, este agora na forma de endereços multicast.
Autoconfiguração(stateless) aprimorada. Os endereços podem ser aprendidos automaticamente por "router advertisement", assim como default gateway e servidores DNS, sendo o DHCPv6 opcional.
Protocolo ARP foi substituído pelo ICMPv6(neigbour discovery), que agora carrega funções indispensáveis para o funcionamento da rede.

Os endereços IPv6 são divididos basicamente nas faixas:
&nbsp;- Link-local address : FE80:: /10 - Endereços não roteáveis que valem apenas no enlace. Análogos aos endereços IPv4 169.254.0.0/16.
&nbsp;- Unique Local address (ULA): FC00:: /7 - Endereços análogos aos endereços IPv4 privados e podem ser usados em redes privadas livremente.
&nbsp;- Global unicast: 2000::/3 - Endereços globais únicos reservados para a internet.


Você pode quebrar o gelo com um simples IPCONFIG/IFCONFIG e verá que já existe um endereço de escopo "Link-local" atribuído à sua interface na faixa "fe80::/10. Geralmente este endereço é gerado com base no seu endereço MAC, sendo os últimos 64 bits do endereço correspondentes à ele no formato&nbsp;EUI 64:







Repare que na primeira imagem tenho 2 endereços IPv6, um de escopo global e outro Link-local, mas que terminam iguais. Ambos gerados a partir do MAC da interface. Esta implementação pode variar dependendo do sistema operacional.
Naturalmente você pode fazer testes dentro da sua rede acessando outros hosts pelos endereços IPv6 de Link-local, a começar pelo PING:


No Linux com o comando "ping6": &nbsp;$ ping6 fe80::20f:eaff:feae:9044
No Windows usando o parâmetro "-6": &nbsp;&gt; ping -6&nbsp;fe80::20f:eaff:feae:9044


Você pode acessar compartilhamentos no Windows por IPv6 também, mas é um pouco mais complicado. Como os ":" do endereço tornariam o formato UNC inválido você deve substituí-los por traços e adicionar o sufixo ".ipv6-literal.net". Veja os exemplos abaixo:



Acesso pelo endereço de Loopback (::1)



Usando o endereço Link-local

O protocolo ARP foi totalmente substituído pelo ICMPv6 com o protocolo de descoberta de vizinhança(NDP - Neighbour discover protocol). Então o que seria equivalente à um "arp -a" agora é:


No Windows pelo "netsh": &gt;&nbsp;netsh interface ipv6 show neighbors
No Linux: $ ip neigh



netsh interface ipv6 show neighbors




ip neigh


Uma notícia boa é que para o DNS não muda praticamente nada. Para cada consulta IPv4 ao DNS é solicitado um registro tipo "A" e para IPv6 registros tipo "AAAA". Não importa se o seu servidor DNS tem suporte ao IPv6 ou não. Você pode fazer o teste com qualquer domínio usando o comando "NSLookUp"(vale para Windows e Linux) especificando o tipo de "query" com a seguinte sintaxe:



&gt; &nbsp;nslookup [-querytype=&lt;Tipo de registro&gt;] &lt;domínio&gt; [Servidor DNS]



Exemplo: &nbsp;nslookup -querytype=AAAA www.globo.com 8.8.8.8







No Linux, além do nslookup(e o dig), temos o comando "host" que pode trazer resultados mais completos:







Repare que o host "ipv6.google.com" tem apenas endereços IPv6 e obviamente apenas registros tipo "AAAA". Sendo assim você pode continuar usando seus servidores DNS de costume para navegar pela Internet IPv6.&nbsp;



O próximo passo é conseguir conectividade IPv6. O problema começa quando a maioria dos provedores não ofereçe IPv6 aos clientes. As vezes ainda não implementaram na rede ou as CPE's dos assinantes não oferece suporte. A saída mais fácil para estes casos é fazer um túnel com um provedor TunnelBroker. Exemplos são o Freenet 6 e o Hurricane Eletric.
Os links acima têm tutoriais completos. No meu exemplo escolhi o Hurricane por ser mais simples e usar recursos nativos para qualquer sistema operacional(no site da HE tem tutoriais para todos eles), no caso RouterOS. Em seguida, com o túnel fechado no gateway da rede, os hosts serão configurados automaticamente por "router advertisement" e terão conectividade IPv6 de forma rápida.
Basicamente o que deve ser feito é:

Estabelecer o túnel. Lembrando que o pacote IPv6&nbsp;deve estar instalado no RouterOS.
Configurar um endereço de escopo global para a interface de rede interna do roteador no bloco atribuído pelo provedor do túnel.
"Setar" o router advertisement para que os hosts da rede aprendam os endereços segundo o prefixo anunciado.


Feito o cadastro na HE você pode criar a interface do túnel com o seu endereço IPv4 público e o endereço do servidor fornecido:





Vá em "IPv6 &gt; Addresses" e configure o endereço IPv6 da interface do túnel com o endereço fornecido em "Client IPv6 address":




E adicione uma rota default IPv6 com o endereço em "Server IPv6 Address":




Por fim atribua um endereço do bloco "Routed /64"(vide a tabela "Routed IPv6 Prefixes" fornecida no site nas configurações do túnel) para a interface da sua rede interna habilitando&nbsp;o parâmetro "advertise"(para que os outros hosts aprendam a configuração). Este é o bloco designado para a sua rede. São endereços "Global unicast", por isso únicos no mundo. Sua rede será acessível por esta faixa e cada host terá um endereço "válido", eliminando o NAT.




Acesse qualquer host na rede e verá que rapidamente eles terão endereços na faixa anunciada pelo gateway. Faça um teste no site www.test-ipv6.com. Tendo acesso IPv6 você pode começar a praticar o novo protocolo e fazer a configuração do seu firewall e demais serviços.
O único problema de fazer acessos por túnel é o delay. No meu caso o túnel é fechado com um servidor em Maiami, então todo o meu tráfego v6 faz uma grande volta na América antes de chegar aos destinos, sendo em média 230ms a mais!