Si se os da tan mal como a mí el cálculo de subredes o simplemente queréis una herramienta rápida para hacerlo tenéis ipcalc o sipcalc. A través de este comando podremos calcular subredes directamente desde la línea de comandos. La principal diferencia entre ambos es que sipcalc acepta IPV6 y permite subnetting.
Para instalarlos utilizamos los gestores de paquetes correspondientes, apt, yum…
Debian, Ubuntu…
$ sudo apt-get install ipcalc
RHEL, CentOS, Fedora…
$ sudo yum install ipcalc
Nota: en RHEL y CentOS hay que activar el repositorio rpmforge.
En el caso de CentOS y RHEL 6 de 64 bits:
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm # yum install rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm # yum install --enablerepo=rpmforge-extras ipcalc
La utilización es bien sencilla, podemos pasar como parámetro la subred en formato CIDR y nos devuelve toda la información de la misma, máscara, red, nº de hosts, etc:
$ ipcalc 10.0.0.0/24 Address: 10.0.0.0 00001010.00000000.00000000. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 10.0.0.0/24 00001010.00000000.00000000. 00000000 HostMin: 10.0.0.1 00001010.00000000.00000000. 00000001 HostMax: 10.0.0.254 00001010.00000000.00000000. 11111110 Broadcast: 10.0.0.255 00001010.00000000.00000000. 11111111 Hosts/Net: 254 Class A, Private Internet
IPV6 con sipcalc:
$ sipcalc 2001:DB8::/24 -[ipv6 : 2001:DB8::/24] - 0 [IPV6 INFO] Expanded Address - 2001:0db8:0000:0000:0000:0000:0000:0000 Compressed address - 2001:db8:: Subnet prefix (masked) - 2001:d00:0:0:0:0:0:0/24 Address ID (masked) - 0:b8:0:0:0:0:0:0/24 Prefix address - ffff:ff00:0:0:0:0:0:0 Prefix length - 24 Address type - Aggregatable Global Unicast Addresses Network range - 2001:0d00:0000:0000:0000:0000:0000:0000 - 2001:0dff:ffff:ffff:ffff:ffff:ffff:ffff
Otra característica interesante es la posibilidad de sipcalc de especificar una red y hacer subneting con ella, si por ejemplo queremos dividir un /21 en redes /22 o /24:
$ sipcalc -s24 10.0.0.0/21 -[ipv4 : 10.0.0.0/21] - 0 [Split network] Network - 10.0.0.0 - 10.0.0.255 Network - 10.0.1.0 - 10.0.1.255 Network - 10.0.2.0 - 10.0.2.255 Network - 10.0.3.0 - 10.0.3.255 Network - 10.0.4.0 - 10.0.4.255 Network - 10.0.5.0 - 10.0.5.255 Network - 10.0.6.0 - 10.0.6.255 Network - 10.0.7.0 - 10.0.7.255 - $ sipcalc -s22 10.0.0.0/21 -[ipv4 : 10.0.0.0/21] - 0 [Split network] Network - 10.0.0.0 - 10.0.3.255 Network - 10.0.4.0 - 10.0.7.255
Si revisáis la página man del comando encontraréis más información de interés sobre las posibilidades de ambos comandos