Muito se tem falado em IPv6 com o esgotamento do IPv4. Para muitos o IPv6 ainda é um grande enigma pelo fato de ser “novo” e a primeira vista bem diferente do IPv4.
Para auxiliar a calcular sub-redes em IPv6 recentemente conheci uma ferramente que achei muito interessante, e particularmente a adotei para meus estudos e para meu dia a dia no trabalho.
O sipcalc é um projeto livre sobre licença GPL/BSD, que pode ser instalado na maioria dos sistemas operacionais derivados do UNIX, sua versão atual do pacote é 1.1.6.
Você poderá baixar o sipcalc AQUI ou instala-lo via apt-get em sistemas debian com o comando:
#apt-get install sipcalc.
Além do sipcalc também realizar calculo de subnet IPv4 como o conhecido ipcalc ele também disponibiliza de cálculos em IPv6.
Opções para IPv6:
IPv6 options: -e, --v4inv6 IPv4 compatible IPv6 information. -r, --v6rev IPv6 reverse DNS output. -S, --v6split=MASK Split the current network into subnets of MASK size. -t, --v6-standard Standard IPv6. (default)
Visualizando uma classe IPv6
root@jorge:/home/jorge# sipcalc 2001:0DB8::/32 -[ipv6 : 2001:0DB8::/32] - 0 [IPV6 INFO] Expanded Address - 2001:0db8:0000:0000:0000:0000:0000:0000 Compressed address - 2001:db8:: Subnet prefix (masked) - 2001:db8:0:0:0:0:0:0/32 Address ID (masked) - 0:0:0:0:0:0:0:0/32 Prefix address - ffff:ffff:0:0:0:0:0:0 Prefix length - 32 Address type - Aggregatable Global Unicast Addresses Network range - 2001:0db8:0000:0000:0000:0000:0000:0000 - 2001:0db8:ffff:ffff:ffff:ffff:ffff:ffff - root@jorge:/home/jorge#
Dividindo uma classe IPv6
root@jorge:/home/jorge# sipcalc -S /33 2001:0DB8::/32 -[ipv6 : 2001:0DB8::/32] - 0 [Split network] Network - 2001:0db8:0000:0000:0000:0000:0000:0000 - 2001:0db8:7fff:ffff:ffff:ffff:ffff:ffff Network - 2001:0db8:8000:0000:0000:0000:0000:0000 - 2001:0db8:ffff:ffff:ffff:ffff:ffff:ffff - root@jorge:/home/jorge#
Com a opção -S podemos subdividir nossa classe /32 em quantas classes forem necessárias, vejamos o exemplo abaixo:
root@jorge:/home/jorge# sipcalc -S /64 2001:0DB8::/32 -[ipv6 : 2001:0DB8::/32] - 0 [Split network] Network - 2001:0db8:0000:0000:0000:0000:0000:0000 - 2001:0db8:0000:0000:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0001:0000:0000:0000:0000 - 2001:0db8:0000:0001:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0002:0000:0000:0000:0000 - 2001:0db8:0000:0002:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0003:0000:0000:0000:0000 - 2001:0db8:0000:0003:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0004:0000:0000:0000:0000 - 2001:0db8:0000:0004:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0005:0000:0000:0000:0000 - 2001:0db8:0000:0005:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0006:0000:0000:0000:0000 - 2001:0db8:0000:0006:ffff:ffff:ffff:ffff Network - 2001:0db8:0000:0007:0000:0000:0000:0000 - 2001:0db8:0000:0007:ffff:ffff:ffff:ffff
Nesse caso teremos mais de 65 mil classes possíveis contendo mais de 4 Bilhoẽs de endereços ao todo, ou seja um IPv4 todo.
Com esses resultados conseguimos visualizar onde a rede se inicia e termina, lembrando que no IPv6 não existe porção de rede e porção de host.
Podemos também gerar endereços para DNS reverso da seguinte maneira.
root@jorge:/home/jorge# sipcalc -r 2001:0DB8::/32 -[ipv6 : 2001:0DB8::/32] - 0 [IPV6 DNS] Reverse DNS (ip6.arpa) - 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. - root@jorge:/home/jorge#
O sipcalc também disponibiliza opção para integração IPv4 com IPv6 em casos de utilização de tuneis 6to4.
root@jorge:/home/jorge# sipcalc -e 2001:0DB8:: -[ipv6 : 2001:0DB8::] - 0 [V4INV6] Expanded v4inv6 address - 2001:0db8:0000:0000:0000:0000:0.0.0.0 Compr. v4inv6 address - 2001:db8::0.0.0.0 - root@jorge:/home/jorge#
Mais sobre o projeto SIPCALC AQUI
Também não deixe de ler ESSE artigo sobre endereçamento IPv6 disponibilizado pelo ipv6.br