O fim está próximo
Este não é um artigo teológico, é uma introdução ao IPv6. Descrevo os motivos que levaram à sua criação, suas características e como começar a implantar o IPv6 na sua empresa, usando um equipamento com GNU/Linux.
Parte 4: Endereçamento IPv6
Um endereço IPv6 contém 8 blocos de números hexadecimais, variando entre 0 e FFFF e separados do ":". Se você achava complicado trabalhar com números binários no IPv4, imagine agora!
Um IPv6 se parece com isso:
Como o endereço IPv6 é enorme e difícil de memorizar, há duas regras para abreviá-lo.
Não é permitido abreviar duas vezes, para não causar dúvidas quanto ao endereço real. Por exemplo:
O endereço acima, poderia ser a abreviação dos dois endereços abaixo:
E:
Outra mudança importante, é na máscara de rede. No IPv4, o endereço 192.168.0.1/16 também pode ser escrito como 192.168.0.0/255.255.0.0. No IPv6, somente a primeira forma é aceita. Como exemplo, o endereço 2001:0db8:0:25e2::/64 está reservando 64 bits para rede e 64 para host.
Aproveitando: para facilitar a compreensão, cada bloco do endereço IPv6 contém 16 bits. Cada número contém 4 bits.
O uso de ":", pode trazer complicações em site, pois no IPv4, a separação do endereço do host e da porta usada pela aplicação é feita com o caractere ":". Por isso, ao acessar um site através do seu endereço IPv6, o endereço deverá estar separado por colchetes e deve se parecer com isso:
→ Endereços Unicast:
Não especificado.
Quando a interface de rede está sem nenhum endereço IPv6. É semelhante ao endereço 0.0.0.0 do IPv4.
→ Loopback:
É semelhante ao loopback do IPv4. Seu endereço é:
→ Link Local:
É usado para a autoconfiguração. Sua função é semelhante ao endereço 169.254.0.0/16 do IPv4. Esse endereçamento é usado nas comunicações locais, principalmente nas descoberta de vizinhança, que veremos mais adiante.
Toda interface de rede deve ter um endereço Link Local. Um endereço Link Local deverá pertencer ao seguinte intervalo:
→ Unique local:
É semelhante aos endereço privados IPv4 (192.168.0.0/16, 172.16.0.0/20, 10.0.0.0/8). Esses endereços não são roteáveis na Internet. Você pode ter VLANs distintas comunicando-se através desses endereços.
Seu uso não é obrigatório, como o Link Local. O intervalo Unique local, é:
→ Global unicast: Semelhante ao endereço público IPv4. É esse endereço que deverá ser usado para navegar na Internet. Por exemplo, o endereço IPv6 do DNS do Google é:
→ IPv4 mapeado:
É usado em técnicas de transição, onde máquina somente IPv4, precisam se comunicar com máquina somente IPv6. O formato do endereço é:
Onde: a.b.c.d, é o endereço IPv4.
→ 6to4:
A rede 6to4 é usada para permitir uma comunicação IPv6 sobre uma rede IPv4. É uma forma de disponibilizar endereços IPv6 para clientes quando estes não possuem IPv6 nativo.
Esses túneis só devem ser usados em casos onde a provedora de Internet não fornece endereços IPv6, pois a latência é grande. O rede IPv6 reservada para isso é:
→ Teredo:
A rede Teredo foi criada pela Microsoft e é usada para disponibilizar endereços IPv6 através de túneis IPv4. O Teredo está habilitado nas estações Windows Vista ou mais recente.
Também sofre uma alta latência. Por isso, quando você disponibiliza um site via IPv6, este poderá parecer mais lento para seus clientes Windows, pois estes passarão a acessá-lo através do túnel Teredo.
* Lembre-se de que o DNS, por padrão, dá preferência aos endereços IPv6.
A rede Teredo possui o seguinte intervalo:
→ Endereço de documentação:
Quando se está escrevendo documentação sobre IPv6, a rede 2001:db8::/32 deverá ser usada como exemplo. Essa rede não é roteada na Internet. Ela é definida em RFC como endereço de documentação.
→ Endereços obsoletos:
→ Endereços Anycast:
Um endereço anycast, é utilizado para identificar um grupo de interfaces, porém, com a característica de que o pacote será enviado apenas para o host que estiver mais próximo da origem. É usado para descobrir serviços na rede, como roteadores e servidores DNS e para redundância e balanceamento de cargas.
Esse endereço deve ser formado pelo prefixo da sub-rede mais uma sequência de zeros. Ex.:
Também foi definido uma rede anycast para suportar a mobilidade IPv6. Neste caso, o endereço terá a seguinte estrutura:
→ Endereços Multicast:
Seu funcionamento é semelhante ao Multicast IPv4. É usado para a comunicação 1 para N, ou seja, quando um pacote deve ser entregue a vários hosts, mas não a todos.
Stream, video conferência e jogos online, são exemplos de aplicações que se beneficiam dessa tecnologia.
Abaixo, listo alguns endereços de Multicast definidos:
A rede destinada para o LACNIC, é 2800::/12. Os ISP recebem no mínimo uma rede /32. O NIC.br recomenda que às empresas, sejam passadas redes /48, e pessoa física receba /56 ou /64.
A rede mínima recomendada é /64, pois vocês verão mais à frente, que a autoconfiguração stateless do IPv6 depende disso.
Quem está entrando agora um mundo IPv6, achará estranho disponibilizar uma rede /64, e ainda mais /56, para usuários domésticos. Com uma rede /64, o usuário poderá ter cerca de 16 quintilhões de dispositivos em sua rede! Isso mesmo, 16 quintilhões!
Ou, se preferir a analogia, cada habitante do mundo terá a sua inteira disposição, o equivalente a 4 bilhões de Internets IPv4. Com um /56, serão 256 redes distintas com 16 quintilhões de endereços IPv6 cada uma, todas para um único usuário!
Exagero? Pode ser, ainda mais quando lembramos de que no começo da Internet várias empresas tinham à sua disposição 16 milhões de endereço, e acabou faltando IPv4. Mas, isso mostra que o IANA está de olho na Internet das coisas, e o IPv6 está pronto para ela.
Um IPv6 se parece com isso:
2001:0DB8:0000:25E2:0000:0000:F0CA:84C1
Como o endereço IPv6 é enorme e difícil de memorizar, há duas regras para abreviá-lo.
- Em cada bloco, os zeros à esquerda podem ser omitidos. O endereço acima ficaria, assim:
- 2001:DB8:0:25E2:0:0:F0CA:84C1
- Uma sequência de zeros pode ser abreviado com "::". Mas isso só pode ser feito uma única vez, para evitar ambiguidades. Por exemplo, o endereço acima pode ser escrito de duas formas:
- 2001:DB8::25E2:0:0:F0CA:84C1
- 2001:DB8:0:25E2::F0CA:84C1
Não é permitido abreviar duas vezes, para não causar dúvidas quanto ao endereço real. Por exemplo:
2001:DB8::25E2::F0CA:84C1
O endereço acima, poderia ser a abreviação dos dois endereços abaixo:
2001:DB8:0:25E2:0:0:F0CA:84C1
E:
2001:DB8:0:0:25E2:0:F0CA:84C1
Outra mudança importante, é na máscara de rede. No IPv4, o endereço 192.168.0.1/16 também pode ser escrito como 192.168.0.0/255.255.0.0. No IPv6, somente a primeira forma é aceita. Como exemplo, o endereço 2001:0db8:0:25e2::/64 está reservando 64 bits para rede e 64 para host.
Aproveitando: para facilitar a compreensão, cada bloco do endereço IPv6 contém 16 bits. Cada número contém 4 bits.
O uso de ":", pode trazer complicações em site, pois no IPv4, a separação do endereço do host e da porta usada pela aplicação é feita com o caractere ":". Por isso, ao acessar um site através do seu endereço IPv6, o endereço deverá estar separado por colchetes e deve se parecer com isso:
- http://[2001:12ff:0:4::22]/index.html
- http://[2001:12ff:0:4::22]:8080
Tipos de endereços
Os endereços IPv6, são classificados em 3 tipos:- Unicast :: usado para a comunicação com um único host.
- Multicast :: usado para a comunicação com vários hosts.
- Anycast :: usado em uma comunicação do tipo um-para-um-de-muitos. É o que mais se assemelha ao broadcast.
→ Endereços Unicast:
Não especificado.
Quando a interface de rede está sem nenhum endereço IPv6. É semelhante ao endereço 0.0.0.0 do IPv4.
::0 (ou somente ::)
→ Loopback:
É semelhante ao loopback do IPv4. Seu endereço é:
::1
→ Link Local:
É usado para a autoconfiguração. Sua função é semelhante ao endereço 169.254.0.0/16 do IPv4. Esse endereçamento é usado nas comunicações locais, principalmente nas descoberta de vizinhança, que veremos mais adiante.
Toda interface de rede deve ter um endereço Link Local. Um endereço Link Local deverá pertencer ao seguinte intervalo:
FE80::/64
→ Unique local:
É semelhante aos endereço privados IPv4 (192.168.0.0/16, 172.16.0.0/20, 10.0.0.0/8). Esses endereços não são roteáveis na Internet. Você pode ter VLANs distintas comunicando-se através desses endereços.
Seu uso não é obrigatório, como o Link Local. O intervalo Unique local, é:
FC00::/7
→ Global unicast: Semelhante ao endereço público IPv4. É esse endereço que deverá ser usado para navegar na Internet. Por exemplo, o endereço IPv6 do DNS do Google é:
2001:4860:4860::8888
→ IPv4 mapeado:
É usado em técnicas de transição, onde máquina somente IPv4, precisam se comunicar com máquina somente IPv6. O formato do endereço é:
::FFFF:a.b.c.d
Onde: a.b.c.d, é o endereço IPv4.
→ 6to4:
A rede 6to4 é usada para permitir uma comunicação IPv6 sobre uma rede IPv4. É uma forma de disponibilizar endereços IPv6 para clientes quando estes não possuem IPv6 nativo.
Esses túneis só devem ser usados em casos onde a provedora de Internet não fornece endereços IPv6, pois a latência é grande. O rede IPv6 reservada para isso é:
2002::/16
→ Teredo:
A rede Teredo foi criada pela Microsoft e é usada para disponibilizar endereços IPv6 através de túneis IPv4. O Teredo está habilitado nas estações Windows Vista ou mais recente.
Também sofre uma alta latência. Por isso, quando você disponibiliza um site via IPv6, este poderá parecer mais lento para seus clientes Windows, pois estes passarão a acessá-lo através do túnel Teredo.
* Lembre-se de que o DNS, por padrão, dá preferência aos endereços IPv6.
A rede Teredo possui o seguinte intervalo:
2001::/32
→ Endereço de documentação:
Quando se está escrevendo documentação sobre IPv6, a rede 2001:db8::/32 deverá ser usada como exemplo. Essa rede não é roteada na Internet. Ela é definida em RFC como endereço de documentação.
→ Endereços obsoletos:
- FEC0::/10 - semelhante ao Unique Local. Não deve ser usado.
- ::wxyz - semelhante ao IPv4 mapeado. Não deve ser usado.
- 3FFE::/16 - testes da rede 6Bone, que foi desativada em 2006. Não deve ser usado.
→ Endereços Anycast:
Um endereço anycast, é utilizado para identificar um grupo de interfaces, porém, com a característica de que o pacote será enviado apenas para o host que estiver mais próximo da origem. É usado para descobrir serviços na rede, como roteadores e servidores DNS e para redundância e balanceamento de cargas.
Esse endereço deve ser formado pelo prefixo da sub-rede mais uma sequência de zeros. Ex.:
2001:DB8:CAFE:DAD0::/64
Também foi definido uma rede anycast para suportar a mobilidade IPv6. Neste caso, o endereço terá a seguinte estrutura:
2001:DB8::DFFF:FFFF:FFFF:FFFE
→ Endereços Multicast:
Seu funcionamento é semelhante ao Multicast IPv4. É usado para a comunicação 1 para N, ou seja, quando um pacote deve ser entregue a vários hosts, mas não a todos.
Stream, video conferência e jogos online, são exemplos de aplicações que se beneficiam dessa tecnologia.
FF00::/8
Abaixo, listo alguns endereços de Multicast definidos:
- FF01::1 - todas as interfaces (all nodes)
- FF01::2 - todos os roteadores (all routers)
- FF02::1 - todos os nós (all nodes)
- FF02::2 - todos os roteadores (all routers)
- FF02::5 - todos os roteadores OSPF
- FF02::6 - todos os roteadores designados
- FF02::9 - todos os roteadores RIP
- FF02::D - todos os roteadores PIM
- FF02::1:2 - agentes DHCP
- FF02::1:FFXX:XXXX - solicited-node
- FF05::2 - todos os roteadores (all-routers)
- FF05::1:3 - servidores DHCP
- FF05::1:4 - agentes DHCP
- FF0X::101 - NTP
Alocação de endereços IPv6
Apenas 13% dos endereços IPv6 foram liberados para uso, de 2000:: até 3FFF::. Cada RIR recebeu do IANA uma rede /12.A rede destinada para o LACNIC, é 2800::/12. Os ISP recebem no mínimo uma rede /32. O NIC.br recomenda que às empresas, sejam passadas redes /48, e pessoa física receba /56 ou /64.
A rede mínima recomendada é /64, pois vocês verão mais à frente, que a autoconfiguração stateless do IPv6 depende disso.
Quem está entrando agora um mundo IPv6, achará estranho disponibilizar uma rede /64, e ainda mais /56, para usuários domésticos. Com uma rede /64, o usuário poderá ter cerca de 16 quintilhões de dispositivos em sua rede! Isso mesmo, 16 quintilhões!
Ou, se preferir a analogia, cada habitante do mundo terá a sua inteira disposição, o equivalente a 4 bilhões de Internets IPv4. Com um /56, serão 256 redes distintas com 16 quintilhões de endereços IPv6 cada uma, todas para um único usuário!
Exagero? Pode ser, ainda mais quando lembramos de que no começo da Internet várias empresas tinham à sua disposição 16 milhões de endereço, e acabou faltando IPv4. Mas, isso mostra que o IANA está de olho na Internet das coisas, e o IPv6 está pronto para ela.
Hilário! :)