La técnica de subnetting es fundamental para dividir una red en subredes más pequeñas mejorando asi el manejo de la misma. Esta práctica de división de redes se lográ mediante máscaras de red, que permiten definir dos cosas importantes:
La dirección IPv4 consiste en cuatro octetos separados por puntos. Con una longitud máxima de 32 bits.
Cada dirección IPv4 esta definida por rangos de red en los que opera. Estos rangos de red están determinados por un prefijo de red /
.
Ejemplo:
192.168.0.22/24 # En donde `/24` es el prefijo de red
_
En la siguiente tabla se observa un rango de valores para cada rango de direcciones IP, en donde el rango de valores se define por el primer octeto:
Sabemos que una máscara de red tiene bits que corresponden a la red y bits que corresponden a la parte del host.
Para definir qué parte de una dirección IP pertenece a la red y cuál parte pertenece a los hosts dentro de esa red.
Se representan como una secuencia de bits
Una máscara de subred será siempre más pequeña que una máscara de red.
Notación de enrutamiento entre dominios CIDR o sin clase, es una forma de representar direcciones IP más eficiente y flexible.
Para calcular por notación CIDR necesitamos dos cosas:
A continuación un ejemplo general del cálculo por notación CIDR
¿ Cuál es la dirección de red y la máscara de subred (en nominación CIDR) de la subred oculta. Toda la red tiene una dirección de red y una máscara de subred de:
192.168.0.0/23
_
192.168.0.0
❯ echo "$(echo "obase=2; 192" | bc)."
11000000.
❯ echo "$(echo "obase=2; 168" | bc)."
10101000.
192 . 168 . 0 . 0
11000000.10101000.00000000.00000000
# Máscara de Red Clase "C"
255 . 255 . 255 . 0
11111111.11111111.11111111.00000000
# Cálculo prefijo de red "/23"
11111111.11111111.11111110.00000000
255 . 255 . 254 . 0
_
Se comparan los bits de la dirección IP con los de la Máscara de Red.
En donde los bits iguales a 1 son 1 y todos los bits no coincidentes son iguales a 0:
11000000.10101000.00000000.00000000 # (Dirección IP - 192.168.0.0)
11111111.11111111.11111110.00000000 # (Máscara de Red - 255.255.254.0)
-----------------------------------
11000000.10101000.00000000.00000000 # (Resultado AND Network ID - 192.168.0.0 - first ip)
_
Tomamos los bits en cero del prefijo de red y le aplicamos la siguiente fórmula:
2^(n)-2
n
es el número de bits disponibles para el host.-2
se restan las direcciones reservadas al broadcast y a la red.Aplicando la fórmula
2⁹-2
= 510
Los bits correspondientes al host se ponen en uno el resto se queda igual:
192 . 168 . 0 . 0
11000000.10101000.00000000.00000000 # Network ID - first ip
-----------------------------------
11000000.10101000.00000001.11111111 # Broadcast Address - last ip
❯ echo "$(echo "ibase=2;00000001 " | bc)."
1.
❯ echo "$(echo "ibase=2;11111111 " | bc)."
255.
192.168.1.254
192.168.0.0 # Dirección IP
255.255.254.0 # Máscara de Red
192.168.0.0 # Network ID - first IP
192.168.1.254 # Broadcast Address - Last IP
510 # total de hosts