Por que o IPv6 existe
O IPv4 tem cerca de 4,3 bilhões de endereços (2^32). Isso parecia inesgotável nos anos 1980 e está agora há muito esgotado nos registros. O IPv6, definido para endereçamento na RFC 4291, alarga o endereço de 32 bits para 128 bits, que são 2^128 endereços, um número grande o bastante para que a escassez deixe de ser a restrição de design. O efeito prático é que as sub-redes se tornam enormes e truques de conservação de endereços como o NAT não são mais necessários para conectividade básica.
A estrutura de 128 bits
Um endereço IPv6 tem 128 bits, escrito como oito grupos de quatro dígitos hexadecimais separados por dois-pontos. Cada grupo é um valor de 16 bits:
2001:0db8:0000:0000:0008:0800:200c:417a
Essa forma totalmente escrita é a representação expandida. Por ser longa e cheia de zeros, a forma de texto tem regras de compressão.
Escrevendo um endereço: as regras de compressão
Duas regras encurtam o texto, e a RFC 5952 torna o resultado canônico (um endereço, uma grafia preferida):
- Suprima zeros à esquerda em cada grupo:
0db8torna-sedb8,0000torna-se0. - Substitua uma sequência de grupos consecutivos todos-zero por
::. O duplo dois-pontos pode aparecer no máximo uma vez, e ele representa um ou mais grupos de 16 bits de zeros. Quando existem várias sequências de igual comprimento, a primeira é comprimida.
Aplicar ambas ao endereço acima dá sua forma canônica:
2001:db8::8:800:200c:417a
A RFC 5952 adiciona algumas regras finais para que as ferramentas concordem: os dígitos hex são minúsculos, e :: não é usado para "comprimir" um único grupo de zeros (isso não encurtaria nada significativo). A ferramenta IPv6 mostra tanto a forma comprimida canônica quanto a forma totalmente expandida lado a lado, para que você possa ver exatamente o que :: representa.
Um caso especial: um endereço pode carregar uma cauda IPv4 embutida em seus últimos 32 bits, escrita em decimal pontilhado. A mais comum é a forma IPv4-mapeada, onde a RFC 5952 recomenda a notação mista ::ffff:192.0.2.128 em vez de hex puro.
Prefixos e aritmética de prefixo
Como o CIDR do IPv4, um prefixo IPv6 é escrito endereço/comprimento, onde o comprimento conta os bits de rede iniciais:
2001:db8::/64
Um /64 significa que os primeiros 64 bits são a rede e os 64 restantes são o identificador de interface. /64 é o tamanho padrão para uma única LAN, e ele sozinho contém 2^64 endereços, cerca de 18 quintilhões. A ferramenta computa o endereço de rede (primeiro), o último endereço, e a contagem para qualquer prefixo que você lhe der, mascarando os bits de host para zero para achar a rede mesmo se você digitou um endereço com bits de host definidos.
Tipos de endereço e escopos
Os bits altos de um endereço o colocam em uma categoria. Os mais importantes, da RFC 4291 e do registro IANA:
- Unicast global (2000::/3) é o espaço público roteável, o equivalente IPv6 de um endereço IPv4 público.
- Único local, ou ULA (fc00::/7) é o espaço de uso privado (RFC 4193), análogo à RFC 1918 no IPv4. Ele não é roteado na internet pública.
- Unicast link-local (fe80::/10) é válido apenas em um único enlace e é configurado automaticamente em toda interface IPv6. Os roteadores nunca o encaminham. Seu escopo é o enlace local.
- Multicast (ff00::/8) endereça um grupo em vez de um único host. Um campo de escopo dentro do endereço diz quão longe ele alcança: interface-local, link-local, admin-local, site-local, organization-local, ou global. Por exemplo
ff02::1é o grupo todos-os-nós link-local. - Loopback (::1/128) é o equivalente IPv6 de 127.0.0.1, e o endereço não especificado (::/128) significa "nenhum endereço", usado como espaço reservado durante a configuração.
- Documentação (2001:db8::/32) é reservado pela RFC 3849 para exemplos e escrita, que é por que quase todo exemplo IPv6 que você vê, incluindo o canônico na própria RFC 4291, o usa.
A ferramenta IPv6 relata o tipo correspondente e o prefixo específico que ela correspondeu, mais o escopo para endereços multicast e link-local.
Identificadores de interface e EUI-64
Em um /64 típico, os 64 bits inferiores são o identificador de interface. Uma forma histórica de construí-lo era o EUI-64 modificado (RFC 4291, Apêndice A): tome o endereço MAC de 48 bits, insira os bytes ff:fe no meio, e inverta o sétimo bit (o bit universal/local). Isso fazia o id de interface derivável do endereço de hardware. Quando a ferramenta vê o revelador ff:fe no meio do id de interface, ela inverte o processo e lhe mostra o MAC original. Sistemas modernos frequentemente preferem identificadores de interface randomizados ou de privacidade em vez disso, precisamente porque derivar o id de um MAC vaza o endereço de hardware.
DNS reverso: ip6.arpa
Buscas reversas (endereço para nome) para IPv6 vivem sob o domínio ip6.arpa. O endereço é expandido aos seus 32 nibbles hex, esses nibbles são invertidos, e cada um torna-se um rótulo. Então 2001:db8::1 torna-se um nome terminando em ...8.b.d.0.1.0.0.2.ip6.arpa. A ferramenta gera esse nome para qualquer endereço, que é o valor exato que você colocaria em um registro PTR.
Uma nota sobre o que a ferramenta faz
A ferramenta IPv6 é uma calculadora determinística e local. Ela analisa, canoniza, classifica, e computa, tudo no seu navegador, sem nenhuma busca contra a rede ao vivo. Ela lhe diz o que um endereço é estruturalmente. Ela não lhe diz se aquele endereço é alcançável, alocado, ou em uso, que são perguntas separadas que requerem consultar a rede ou um registro.