Artículo original escrito por Kris Koishigawa
Artículo original Subnet Cheat Sheet – 24 Subnet Mask, 30, 26, 27, 29, and other IP Address CIDR Network References
Traducido y adaptado por Gibrán Pelayo

Como desarrollador o ingeniero de redes, es posible que necesites buscar de vez en cuando los valores de las máscaras de subred y averiguar qué significan.

Para hacerte la vida más fácil, la comunidad de freeCodeCamp ha creado esta sencilla hoja de trucos. Solo desplaza o usa Ctrl/Cmd + f para encontrar el valor que estás buscando.

Aquí están las tablas, seguidas de algunas explicaciones de lo que significan.

CIDRMÁSCARA DE SUBREDMÁSCARA COMODÍN# OF DIRECCIONES IP# DE DIRECCIONES IP UTILIZABLES
/32255.255.255.2550.0.0.011
/31255.255.255.2540.0.0.122*
/30255.255.255.2520.0.0.342
/29255.255.255.2480.0.0.786
/28255.255.255.2400.0.0.151614
/27255.255.255.2240.0.0.313230
/26255.255.255.1920.0.0.636462
/25255.255.255.1280.0.0.127128126
/24255.255.255.00.0.0.255256254
/23255.255.254.00.0.1.255512510
/22255.255.252.00.0.3.2551,0241,022
/21255.255.248.00.0.7.2552,0482,046
/20255.255.240.00.0.15.2554,0964,094
/19255.255.224.00.0.31.2558,1928,190
/18255.255.192.00.0.63.25516,38416,382
/17255.255.128.00.0.127.25532,76832,766
/16255.255.0.00.0.255.25565,53665,534
/15255.254.0.00.1.255.255131,072131,070
/14255.252.0.00.3.255.255262,144262,142
/13255.248.0.00.7.255.255524,288524,286
/12255.240.0.00.15.255.2551,048,5761,048,574
/11255.224.0.00.31.255.2552,097,1522,097,150
/10255.192.0.00.63.255.2554,194,3044,194,302
/9255.128.0.00.127.255.2558,388,6088,388,606
/8255.0.0.00.255.255.25516,777,21616,777,214
/7254.0.0.01.255.255.25533,554,43233,554,430
/6252.0.0.03.255.255.25567,108,86467,108,862
/5248.0.0.07.255.255.255134,217,728134,217,726
/4240.0.0.015.255.255.255268,435,456268,435,454
/3224.0.0.031.255.255.255536,870,912536,870,910
/2192.0.0.063.255.255.2551,073,741,8241,073,741,822
/1128.0.0.0127.255.255.2552,147,483,6482,147,483,646
/00.0.0.0255.255.255.2554,294,967,2964,294,967,294

* /31 es un caso especial detallado en la RFC 3021 donde las redes con este tipo de máscara de subred pueden asignar dos direcciones IP como un enlace punto-a-punto.

Y aquí está la tabla de las conversiones decimal a binario para las máscaras de subred y los octetos comodín:

MÁSCARA DE SUBREDCOMODÍN
00000000025511111111
1281000000012701111111
192110000006300111111
224111000003100011111
240111100001500001111
24811111000700000111
25211111100300000011
25411111110100000001
25511111111000000000

Toma en cuenta que el comodín es solo el inverso de la máscara de subred.

Finalmente, esta hoja de trucos y el resto del artículo está enfocado en direcciones IPv4, y no en el más reciente protocolo IPv6. Si quieres aprender más acerca de IPv6, consulta el artículo anterior sobre redes de computadoras.

¿Cómo funcionan los bloques de dirección IP?

Las direcciones IPv4 como 192.168.0.1 son realmente solo representaciones decimales de cuatro bloques binarios.

Cada bloque consta de 8 bits, y representa números del rango 0-255. Debido a que los bloques son grupos de 8 bits, cada bloque es conocido como un octeto. Y como hay cuatro bloques de 8 bits, cada dirección IPv4 es de 32 bits.

Por ejemplo, así es como luce la dirección IP 172.16.254.1 en binario:

1125px-Ipv4_address
Source: IPv4

Para convertir una dirección IP entre sus formas decimal y binaria, puedes usar esta tabla:

1286432168421
xxxxxxxx

La tabla de arriba representa un octeto (8 bits).

Ahora digamos que quieres convertir la dirección IP 168.210.225.206. Todo lo que necesitas es separar la dirección en cuatro bloques (168, 210, 225, y 206), y convertir cada uno a binario usando la tabla de arriba.

Recuerda que en binario, 1 es el equivalente a "encendido" y 0 es "apagado". Así que para convertir el primer bloque, 168, a binario, solo comienza al inicio de la tabla y coloca un 1 o 0 en esa celda hasta que obtengas una suma de 168.

Por ejemplo:

1286432168421
10101000

128 + 32 + 8 = 168, que en binario es 10101000.

Si haces esto para el resto de los bloques, obtendrás 10101000.11010010.11100001.11001110.

¿Qué es la división en Subredes (subnetting)?

Si miras la tabla de arriba, pareciera como si el número de direcciones IP fuera prácticamente ilimitado. Después de todo, hay casi 4.2 mil millones de posibles direcciones IPv4 disponibles.

Pero si piensas en cuánto ha crecido el internet, y cuántos dispositivos más están conectados en estos tiempos, puede que no te sorprendas saber que ya hay una escasez de direcciones IPv4.

Debido a que la escasez fue reconocida hace años, los desarrolladores idearon una forma de dividir una dirección IP en redes más pequeñas llamadas subredes.  

Este proceso, llamado división en subredes (subnetting), usa la sección host de la dirección IP para descomponerla en esas redes más pequeñas o subredes.

Generalmente, una dirección IP está compuesta por bits de red y bits de host:

network-and-host-bits
Source: What is IPv4

Por lo general, la división en subredes hace dos cosas: nos brinda una manera de dividir las redes en subredes, y permite que los dispositivos determinen si otro dispositivo/dirección IP está en la misma red local o no.

Una buena manera de pensar en la división de subredes es imaginar tu red doméstica inalámbrica.

Sin la división en subredes, cada dispositivo conectado a internet necesitaría su propia dirección IP única.

Pero como tienes un enrutador inalámbrico, tan solo necesitas una dirección IP para tu enrutador. Esta dirección IP externa o pública es usualmente manejada de manera automática, y es asignada por tu proveedor de servicios de internet (ISP, por sus siglas en inglés, Internet Service Provider).

Luego, cada dispositivo conectado a ese enrutador tiene su propia dirección IP privada o interna:

home-network-diagram
Source: What Is My IP Address?

Ahora, si tu dispositivo con la dirección IP interna192.168.1.101 quiere comunicarse con otro dispositivo, usará la dirección IP del otro dispositivo y la máscara de subred.

La combinación de las direcciones IP y la máscara de subred permite que el dispositivo en 192.168.1.101 averigüe si el otro dispositivo está en la misma red  (como el dispositivo en 192.168.1.103), o en una red completamente diferente en algún otro lugar en línea.

Curiosamente, la dirección IP externa asignada a tu enrutador por tu Proveedor de Servicio de Internet (ISP) es probablemente parte de una subred, la cual podría incluir muchas otras direcciones IP para casas o negocios cercanos. Y justo como las direcciones IP internas, también necesita una máscara de subred para funcionar.

Cómo funcionan las máscaras de subred

Las máscaras de subred funcionan como una especie de filtro para una dirección IP. Con una máscara de subred, los dispositivos pueden mirar una dirección IP y determinar cuáles partes son los bits de red y cuáles son los bits de host.

Luego usando esas cosas, se puede determinar la mejor manera de comunicarse para esos dispositivos.

Si has estado hurgando en la configuración de red de tu enrutador o computadora, es probable que hayas visto este número:255.255.255.0.

Si así fue, has visto una máscara de subred muy común para redes domésticas simples.

Tal como las direcciones IPv4, las máscaras de subred son de 32 bits. Y justo como se convierte una dirección IP a binario, puedes hacer lo mismo con una máscara de subred.

Por ejemplo, aquí está nuestra tabla de antes:

1286432168421
xxxxxxxx

Ahora convirtamos el primero octeto, 255:

1286432168421
11111111

Muy fácil, ¿cierto? Así que cualquier octeto que es 255 es solo 11111111 en binario. Esto significa que 255.255.255.0 es en realidad 11111111.11111111.11111111.00000000 en binario.

Ahora veamos la máscara de subred y la dirección IP juntas y calculemos cuáles partes de la dirección IP son los bits de red y los bits de host.

Aquí están las dos en decimal y binario:

TIPODECIMALBINARIO
Dirección IP192.168.0.10111000000.10101000.00000000.01100101
Máscara de subred255.255.255.011111111.11111111.11111111.00000000

Con las dos dispuestas de esta forma, es fácil separar 192.168.0.101 en bits de red y bits de host.

Cada que un bit en una máscara de subred binaria es 1, entonces el mismo bit en una dirección IP binaria pertenece a la red, no al host.

Como el octeto 255 es 11111111 en binario, todo ese octeto en la dirección IP es parte de la red. Así que los primeros tres octetos, 192.168.0, son la porción de red de la dirección IP, y 101 es la porción de host.

En otras palabras, si el dispositivo en 192.168.0.101 quiere comunicarse con otro dispositivo, usando la máscara de subred sabe que cualquier cosa con la dirección IP 192.168.0.xxx se encuentra en la misma red local.

Otra manera de expresar esto es con un ID de red, que es solo la porción de red de la dirección IP. Así que el ID de red de la dirección 192.168.0.101 con la máscara de subred 255.255.255.0 es 192.168.0.0.

Y es lo mismo para los otros dispositivos en la red local (192.168.0.102, 192.168.0.103, y así).

¿Qué Significa CIDR y Qué es la Notación CIDR?

CIDR son las siglas en inglés de Classless Inter-Domain Routing, Enrutamiento Entre Dominios Sin Clases, y es usado en IPv4, y más recientemente, en enrutamiento IPv6.

1920px-IP_Address_Match.svg
Source: Classless Inter-Domain Routing

CIDR fue introducido en 1993 como una manera de ralentizar el uso de direcciones IPv4, las cuales se estaban acabando rápidamente bajo el viejo sistema de direccionamiento IP con clase  sobre el que se construyó internet por primera vez.

CIDR abarca un par de conceptos importantes.

El primero es el Subenmascaramiento de Longitud Variable (Variable Length SubMasking, VLSM, por sus siglas en inglés), que básicamente permitió a los ingenieros de redes crear subredes dentro de subredes. Y esas subredes  podían ser de diferentes tamaños, por lo que habrían pocas direcciones IP sin usar.

El segundo concepto importante que CIDR introdujo fue la notación CIDR.

La notación CIDR es en realidad solo una abreviatura de la máscara de subred , y representa el número de bits disponibles para la dirección IP. Por ejemplo, el /24 en 192.168.0.101/24 es equivalente a la dirección IP 192.168.0.101 y la máscara de subred 255.255.255.0.

Cómo Calcular la Notación CIDR

Para determinar la notación CIDR para una máscara de subred dada, todo lo que necesitas es convertir la máscara de subred a binario, y luego contar los unos o dígitos en "encendido". Por ejemplo:

TIPODECIMALBINARIO
Máscara de subred255.255.255.011111111.11111111.11111111.00000000

Debido a que hay tres octetos de unos, hay 24 bits en "encendido", lo que significa que la notación CIDR es /24.

Puedes escribirlo de cualquier manera, pero estarás de acuerdo  que /24 es mucho más fácil de escribir que 255.255.255.0.

Esto generalmente se hace con una dirección IP, así que demos un vistazo a la misma máscara de subred con una dirección IP:

TIPODECIMALBINARIO
Dirección IP192.168.0.10111000000.10101000.00000000.01100101
Máscara de subred255.255.255.011111111.11111111.11111111.00000000

Los primeros tres octetos de la máscara de subred son todos bits de "encendido", lo que significa que los mismos tres octetos en la dirección IP son todos bits de red.

Echemos un vistazo al último cuarto octeto con más detalle:

TIPODECIMALBINARIO
Dirección IP10101100101
Máscara de subred000000000

En este caso, debido a que todos los bits para este octeto en la máscara de subred están en "apagado", podemos estar seguros de que todos los bits correspondientes a este octeto en la dirección IP son parte del host.

Cuando escribes en notación CIDR es común hacerlo con la ID de red. Por lo que la notación CIDR para la dirección IP 192.168.0.101 con una máscara de subred 255.255.255.0 es 192.168.0.0/24.

Direccionamiento IP Con Clase

Ahora que ya hemos repasado algunos ejemplos básicos de división en subredes y CIDR, veamos lo que es conocido como direccionamiento IP con clase.

Antes de que la división en subredes fuera desarrollada, todas las direcciones IP caían dentro de una clase en particular:

Fuente: Subnetting for dummies
Source: Subnetting for dummies

Toma en cuenta que hay direcciones IP de clase D y E, pero entraremos a detalle en eso más adelante.

Las direcciones IP con clase dieron a los ingenieros de redes una manera de proveer un rango de direcciones IP válidas a diferentes organizaciones.

Hubo muchos problemas con este enfoque que eventualmente llevó a la división en subredes. Pero antes de llegar ahí, veamos de manera más cercana a las diferentes clases.

Direcciones IP de Clase A

Para las direcciones IP de Clase A, el primer octeto (8 bits / 1 byte) representa el ID de red, y los tres octetos restantes (24 bits / 3 bytes) son el ID de host.

Las direcciones IP de Clase A van desde 1.0.0.0 hasta 127.255.255.255, con una máscara predeterminada 255.0.0.0 (u /8 en CIDR).

Esto significa que el direccionamiento Clase A puede tener un total de 128 (27) redes y 16,777,214 (224-2) direcciones utilizables por red.

Además, toma en cuenta que el rango desde 127.0.0.0 al 127.255.255.255 dentro del rango de la Clase A, está reservado para la dirección de bucle invertido del host (vea RFC5735).

Direcciones IP de Clase B

Para las direcciones IP de Clase B, los primeros dos octetos (16 bits / 2 bytes) representan el ID de red y los dos octetos restantes (16 bits / 2 bytes) son el ID de host.

Las direcciones IP de Clase B van desde 128.0.0.0 hasta 191.255.255.255, con una máscara predeterminada 255.255.0.0 (o /16 en CIDR).

El direccionamiento Clase B puede tener 16,384 (214) direcciones de red y 65,534 (216) direcciones utilizables por red.

Direcciones IP de Clase C

Para direcciones IP de Clase C, los primeros tres octetos (24 bits / 3 bytes) representan el ID de red, y el último octeto (8 bits / 1 bytes) es el ID de host.

Las direcciones IP de Clase C van desde 192.0.0.0 hasta 223.255.255.255, con una máscara predeterminada 255.255.255.0 (o /24 en CIDR).

La Clase C se traduce a 2,097,152 (221) redes y 254 (28-2) direcciones utilizables por red.

Direcciones IP de Clase D y Clase E

Las últimas dos clases son la Clase D y la Clase E.

Las direcciones IP de Clase D están reservadas para multidifusiones. Ellas ocupan el rango desde 224.0.0.0 hasta 239.255.255.255.

Las direcciones IP de Clase E son experimentales, y son cualquiera arriba de 240.0.0.0.

El Problema de las Direcciones IP Con Clase

El problema principal con las direcciones IP con clase es que no fue algo eficiente, y llevaba a tener muchas direcciones IP desperdiciadas.

Por ejemplo, imagina que eres parte de una organización grande en aquel entonces. Tu compañía tiene 1,000 empleados, lo que significa que caería dentro de la clase B.

Pero si miras arriba, verás que una red de clase B puede soportar hasta 65,534 direcciones utilizables. Eso es mucho más de lo que tu organización necesitaría, incluso si cada empleado tuviera múltiples dispositivos con una dirección única.

Y no había manera de que tu organización volviera a la clase C - no habría suficientes direcciones IP utilizables.

Así que mientras las direcciones IP con clase fueron usadas en el momento en el que las direcciones IPv4 se volvieron una norma, rápidamente se hizo evidente que sería necesario un mejor sistema para garantizar que no usaríamos todas las ~4.200 millones de direcciones utilizables.

Las direcciones IP con clase no han sido usadas desde que fueron reemplazadas por CIDR en 1993, y son mayormente estudiadas para entender la arquitectura temprana de internet, y el por qué la división en subredes es importante.

Espero que esta hoja de trucos te haya sido una referencia útil

Si así lo fue, por favor compártelo con tus amigos, para que más gente pueda beneficiarse de ella.

Además, siéntete libre de contactarme en Twitter y déjame saber lo que piensas.