Calcula subnetting (IP de red y máscara de subred) con IPv4

Una dirección IP es un número de identificación lógico de un equipo en la red, o de una red o subred. Las direcciones IPv4 tienen 32 bits en formato decimal separado por puntos, no se debe confundir con la dirección MAC que se representa con notación hexadecimal separado por dos puntos o guiones. Las direcciones IP pueden cambiar dinámicamente, tanto a nivel de direccionamiento IP público como privado, aunque también se podría dar el caso de que sea fija. El subnetting es la técnica de dividir una red grande en redes más pequeñas (subredes), para calcular qué máscara de subred necesitaremos utilizar en la nueva red, deberemos calcular diferentes parámetros. Hoy en RedesZone os vamos a enseñar cómo podemos realizar subnetting de una forma fácil y rápida, tanto de forma «manual» como también usando calculadoras IP que nos facilitarán la vida.

 

Qué es el subnetting, tipos y clases de direcciones

El subnetting consiste en dividir una red grande en varias subredes más pequeñas, esto se debe realizar con mucho cuidado y planificación para no desaprovechar direcciones IPv4. Generalmente el subnetting se realiza a nivel local, utilizando el rango de direccionamiento IP privado que tenemos disponible para nuestro uso sin limitaciones, sin embargo, también se puede hacer subnetting de cara al direccionamiento IP público, siempre que trabajes o tengas tu propio operador y tu propio rango de direcciones IP públicas para utilizar. En este tutorial vamos a trabajar específicamente con direccionamiento IP privado en todos los ejemplos.

Existen muchos motivos para querer dividir una red grande en varias redes más pequeñas, como, por ejemplo:

  • Ampliar o reducir el rango de direcciones IP de la red local. Si tenemos una red muy grande, es posible que queramos reducir el número de direcciones IP disponibles, con el objetivo de administrarlas de forma más sencilla.
  • Optimización de la red: una red muy grande podría tener muchísimo tráfico de broadcast, esto hace que la red sea mucho más lenta.
  • Mejorar la organización de toda la red: podremos dividir una red muy grande en subredes más pequeñas, para usar cada subred para un determinado público. Por ejemplo, podríamos crear una subred de gestión, de administración, de equipos de ventas, una subred para invitados etc.
  • Mayor seguridad y control del tráfico: al dividir en subredes pequeñas, podremos segmentar adecuadamente nuestra red en VLANs (nivel 2) y usar diferente direccionamiento IP (nivel 3) para permitir o denegar el tráfico entre los diferentes equipos. Gracias al subneteo o subnetting, los administradores de redes pueden gestionar de manera más sencilla todo el tráfico entrante y saliente.

Una vez que hemos visto qué es el subnetting y todas sus ventajas, vamos a hablar de los diferentes tipos de direcciones IPv4 que existen.

Tipos de direcciones IPv4

En redes IPv4 existen un total de tres tipos de direcciones IP, cada tipo de dirección IP está orientado a una determinada tarea, estas direcciones IP son:

  • Dirección de red: es la dirección IP a la que hace referencia la red o subred. Para calcular la dirección de red es necesario realizar la operación AND entre una dirección IP orientada a los hosts (ordenadores, servidores) y la máscara de subred configurada. La dirección de red es la que incluyen sus routers en sus tablas de enrutamiento, para saber llegar a un determinado destino, y para saber cuál es el origen de un determinado paquete.
  • Dirección de host: son las direcciones IP asignadas a los equipos finales de la red. Un ordenador, una impresora o un smartphone tendrá una dirección IP de host.
  • Dirección de broadcast: es una dirección especial, se utiliza para enviar datos a todos los hosts dentro de una red. La dirección de broadcast dentro de una subred siempre es la última dirección IP. También existe una dirección especial de broadcast cuando no hemos obtenido aún direccionamiento IP por parte del servidor DHCP, o por parte del administrador de red de forma manual, esta dirección especial es la 255.255.255.255.

La mayoría de nosotros en nuestros hogares tenemos un router que tiene la dirección IP 192.168.1.1, y los equipos que se conectan a la red tienen direccionamiento 192.168.1.2 hasta el 192.168.1.254 habitualmente. En todos estos hosts se está utilizando una máscara de subred 255.255.255.0. Todas estas direcciones IP son direcciones de host, la dirección de red la podemos calcular haciendo la operación (192.168.1.1 AND 255.255.255.0), que tiene como resultado 192.168.1.0, por tanto, la dirección de red es la 192.168.1.0. En cuanto a la dirección de broadcast, es la última dirección de la red, por tanto, en este caso la dirección de broadcast es la 192.168.1.255.

La máscara de subred juega un papel fundamental a la hora de hacer subnetting, porque nos va a indicar qué bits pertenecen a la parte de red y cuál pertenece a la parte de hosts. La máscara de subred determina la dirección IP de red, el rango de direcciones IP para los hosts, y también la dirección IP de broadcast. La máscara de subred se puede expresar en binario, en decimal separado por puntos como una dirección IP, y también en notación CIDR. La notación CIDR es básicamente el número de 1 que tenemos de izquierda a derecha en la máscara de subred en notación binaria. En la siguiente tabla podéis todas las máscaras de subred en binario, decimal y notación CIDR, además, también podéis ver el número de host máximo dependiendo de la máscara de subred.

BinarioDecimalNotación CIDR
11111111.11111111.11111111.11111111 255.255.255.255/32
11111111.11111111.11111111.11111110 255.255.255.254/31
11111111.11111111.11111111.11111100 255.255.255.252/30
11111111.11111111.11111111.11111000 255.255.255.248/29
11111111.11111111.11111111.11110000 255.255.255.240/28
11111111.11111111.11111111.11100000 255.255.255.224/27
11111111.11111111.11111111.11000000 255.255.255.192/26
11111111.11111111.11111111.10000000 255255255128/25
11111111.11111111.11111111.00000000 255.255.255.0/24
11111111.11111111.11111110.00000000 255.255.254.0/23
11111111.11111111.11111100.00000000 255.255.252.0/22
11111111.11111111.11111000.00000000 255.255.248.0/21
11111111.11111111.11110000.00000000 255.255.240.0/20
11111111.11111111.11100000.00000000 255.255.224.0/19
11111111.11111111.11000000.00000000 255.255.192.0/18
11111111.11111111.10000000.00000000 255.255.128.0/17
11111111.11111111.00000000.00000000255.255.0.0/16
11111111.11111110.00000000.00000000 255.254.0.0/15
11111111.11111100.00000000.00000000255.252.0.0/14
11111111.11111000.00000000.00000000 255.248.0.0/13
11111111.11110000.00000000.00000000 255.240.0.0/12
11111111.11100000.00000000.00000000 255.224.0.0/11
11111111.11000000.00000000.00000000 255.192.0.0/10
11111111.10000000.00000000.00000000 255.128.0.0/9
11111111.00000000.00000000.00000000 255.0.0.0/8
11111110.00000000.00000000.00000000 254.0.0.0/7
11111100.00000000.00000000.00000000 252.0.0.0/6
11111000.00000000.00000000.00000000 248.0.0.0/5
11110000.00000000.00000000.00000000 240.0.0.0/4
11100000.00000000.00000000.00000000 224.0.0.0/3
11000000.00000000.00000000.00000000192.0.0.0/2
10000000.00000000.00000000.00000000 128.0.0.0/1
00000000.00000000.00000000.000000000./0

Hay determinadas direcciones IPv4 que no pueden asignarse a los hosts, como la dirección IP de red o la dirección IP de broadcast, el sistema operativo directamente nos daría error. También encontramos IPv4 que pueden asignarse a los hosts pero con restricciones en la interacción de dichos hosts dentro de la red.

Clases de direcciones IPv4

En el direccionamiento con IPv4 existen diferentes tipos de redes, estas fueron creadas con el objetivo de crear redes de tamaño grande, mediano y pequeño. Actualmente todos los routers de Internet hacen uso de protocolos de enrutamiento dinámico de pasarela interior (IGP) y también protocolos EGP que son classless, por tanto, estaremos haciendo uso de VLSM (Máscaras de subred de tamaño variable) con el objetivo de ahorrar muchas direcciones IP y no malgastarlas.

Existen direcciones de clase A, B, C que son las más utilizadas, también tenemos las clases E que son las direcciones de Multicast, y las de clase E que son para uso experimental o de pruebas. En la siguiente tabla se puede ver un resumen de las diferentes clases que tenemos:

ClaseABCDE
ClaseRango de direcciones IPA0.0.0.0 a 127.255.255.255B128.0.0.0 a 191.255.255.255C192.0.0.0 a 223.255.255.255D224.0.0.0 a 239.255.255.255E240.0.0.0 a 254.255.255.255
ClaseMáscara de subredA255.0.0.0B255.255.0.0C255.255.255.0DSin definirESin definir
ClaseMáscara de subred CIDRA8B16C24DSin definirESin definir
ClaseDireccionamiento privadoA10.0.0.0 a 10.255.255.255B172.16.0.0 a 172.31.255.255C192.168.0.0 a 192.168.255.255DE

Tal y como podéis ver, tanto en las direcciones de clase A, B y C tenemos un rango de direccionamiento IP privado que podemos utilizar en nuestro hogar o empresa sin problemas, pero siempre de manera local. Este direccionamiento IP privado no es enrutable a través de Internet. También existen otras direcciones IP reservadas, como la 0.0.0.0 para indicar que es una ruta predeterminada, las direcciones IP de loopback que son las 127.0.0.0/8 o las direcciones IP de APIPA que son del rango 169.254.0.0/16.

A la hora de calcular subredes, debemos tener en cuenta qué es lo que queremos calcular: ¿cuántas subredes caben dentro de una red más grande? ¿calcular la subred en función del número máximo de host a introducir dentro de una red?

Calcular máximo número de subredes dentro de una red más grande

En este ejemplo vamos a calcular cuántas subredes caben dentro de una red más grande. Imaginemos que queremos meter un total de 40 redes en la red 192.168.1.0/24, ¿qué máscara de subred deben utilizar los diferentes hosts? ¿qué rango de IP tenemos disponible de cara a los hosts? ¿cuál sería la dirección IP de red y la dirección IP de broadcast? Lo primero que debemos saber es que, para poder hacer este ejercicio, es totalmente necesario reservar un total de 2 bits de cara a los hosts, por tanto, en una red de clase A con máscara /8 tendremos disponibles un total de 22 bits, en una red de clase B con máscara /16 tendremos disponibles un total de 14 bits, y en una red de clase C con máscara /24 tendremos disponibles un total de 6 bits.

Los pasos para realizar el cálculo es el siguiente:

  1. Pasar a binario las 40 redes: Lo primero que tenemos que hacer es pasar el 40 a binario, que es 101000, esto significa que tenemos un total de 6 bits para posteriormente calcular la máscara de subred final.
  2. La máscara de subred predeterminada es /24 o 255.255.255.0, si esta máscara la pasamos a binario tenemos: 11111111.11111111.11111111.00000000.
  3. Reservamos los 6 bits calculados (40 redes) de izquierda a derecha, empezando por el primer 0 que aparezca, por tanto, estaremos trabajando en el cuarto octeto.
  4. La máscara de subred nueva quedaría de la siguiente forma: 11111111.11111111.11111111.11111100; por tanto, estamos ante una máscara de subred /30 o 255.255.255.252. Si la última parte de la máscara (11111100) la pasamos a decimal nos da el número de 252.

Con esta información, para calcular las diferentes subredes que podemos crear dentro de la red 192.168.1.0/24, tenemos que hacer 2 elevado al número de ceros de la máscara de subred que hemos calculado, si nos fijamos, tenemos que la parte final de la máscara es «11111100», tenemos dos ceros, por tanto, 2^2 que es igual a 4. Este 4 es el incremento que debemos usar para calcular las diferentes direcciones de red de las diferentes subredes.

El rango de direccionamiento IP de las subredes calculadas serían las siguientes, lógicamente en todas ellas se usará la máscara de subred /30 o 255.255.255.252 que hemos calculado.

  • 192.168.1.0 – 192.168.1.3; la primera dirección IP es la dirección de red, y la última es la dirección de broadcast. Las direcciones 192.168.1.1 y 192.168.1.2 que están «en el medio» son de cara a los hosts.
  • 192.168.1.4 – 192.168.1.7
  • 192.168.1.8 – 192.168.1.11
  • 192.168.1.12 – 192.168.1.15
  • ….
  • 192.168.1.252 – 192.168.1.255

La última dirección de red, en su último octeto, siempre se corresponde con la máscara de subred calculada en este ejemplo (255.255.255.252)

Calcular subredes en función del máximo número de hosts por subred

En este ejemplo vamos a calcular cuántos hosts caben dentro de una subred que está dentro de una red más grande. En una red 192.168.1.0/24 caben un total de 254 hosts como hemos visto antes, aunque hay 256 direcciones, la primera dirección es la de red y la última la de broadcast, por tanto, no se pueden usar de cara a los hosts.

Imaginemos que queremos meter un total de 40 hosts en una subred, tomando como base la red superior 192.168.1.0/24, ¿qué máscara de subred deben utilizar los diferentes hosts? ¿qué rango de IP tenemos disponible de cara a los hosts? ¿cuál sería la dirección IP de red y la dirección IP de broadcast? Lo primero que debemos saber es que, para poder hacer este ejercicio, siempre van a «sobrar» direcciones IP de los hosts, en este caso, no solamente van a caber 40 hosts en cada subred, sino un total de (2^8)-2.

Los pasos para realizar el cálculo son muy similar al anterior, pero con un cambio muy importante en el paso número tres.

  1. Pasar a binario los 40 hosts: Lo primero que tenemos que hacer es pasar el 40 a binario, que es 101000, esto significa que tenemos un total de 6 bits para posteriormente calcular la máscara de subred final.
  2. La máscara de subred predeterminada es /24 o 255.255.255.0, si esta máscara la pasamos a binario tenemos: 11111111.11111111.11111111.00000000.
  3. Reservamos los 6 bits calculados (40 hosts) de derecha a izquierda poniendo ceros, y lo completaremos con 1 hasta la izquierda del todo.
  4. La máscara de subred nueva quedaría de la siguiente forma: 11111111.11111111.11111111.11000000; por tanto, estamos ante una máscara de subred /26 (tenemos un total de 26 unos) o 255.255.255.192. Si la última parte de la máscara (11000000) la pasamos a decimal nos da el número de 192.

Con esta información, para calcular las diferentes subredes que podemos crear dentro de la red 192.168.1.0/24, tenemos que hacer 2 elevado al número de ceros de la máscara de subred que hemos calculado, si nos fijamos, tenemos que la parte final de la máscara es «11000000», tenemos seis ceros, por tanto, 2^6 que es igual a 64. Este 64 es el incremento que debemos usar para calcular las diferentes direcciones de red de las diferentes subredes.

El rango de direccionamiento IP de las subredes calculadas serían las siguientes, lógicamente en todas ellas se usará la máscara de subred /26 o 255.255.255.192 que hemos calculado.

  • 192.168.1.0 – 192.168.1.63; la primera dirección IP es la dirección de red, y la última es la dirección de broadcast. Las direcciones IP que están «en el medio» son de cara a los hosts.
  • 192.168.1.64 – 192.168.1.127
  • 192.168.1.128 – 192.168.1.191
  • 192.168.1.192 – 192.168.1.255

Si queremos meter 40 hosts por red, tan solo podremos crear un total de cuatro subredes dentro de la red 192.168.1.0/24 tal y como hemos visto.

Esperamos que este tutorial os sirva para calcular vuestras subredes en función del número de redes y del número de hosts que queramos meter dentro de una subred.