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