FlowingDev

CIDR y Subnetting: Rebanando el Internet en Vecindarios

Aprende cómo la notación CIDR y el subnetting dividen el vasto espacio de direcciones IPv4 en redes manejables, definiendo cómo los dispositivos se comunican entre sí en internet.

Probar la herramienta: Calculadora de subredes / CIDR

En una frase

CIDR es la forma que tiene internet de trazar los límites de una propiedad, convirtiendo un campo masivo y caótico de direcciones IP en vecindarios ordenados y manejables donde tus datos pueden encontrar su hogar.

El problema que resuelve

Viaja con tu mente a los inicios de internet en los 80. La vida era simple. Si necesitabas direcciones IP, pedías una "clase" de ellas. Tenías tres opciones principales:

  • Clase A: 16,777,214 direcciones de host. Para los gigantes.
  • Clase B: 65,534 direcciones de host. Para organizaciones grandes.
  • Clase C: 254 direcciones de host. Para los pequeños.

Este sistema "con clases" (classful) era rígido e increíblemente derrochador. Imagina que necesitabas 300 direcciones IP. Una Clase C era muy pequeña, así que tenías que conseguir una Clase B. Felicidades, te acaban de dar 65,534 direcciones y ahora estás desperdiciando 65,234 de ellas. Era como necesitar un scooter y que te obligaran a comprar un camión de 16 ruedas.

A principios de los 90, los expertos vieron un apocalipsis digital en el horizonte: nos íbamos a quedar sin direcciones IP. Las tablas de enrutamiento de internet —la libreta de direcciones global usada por los routers principales— también estaban explotando en tamaño, amenazando con ralentizar todo el sistema hasta casi detenerlo.

En 1993, un grupo de ingenieros introdujo las RFC 1518 y 1519, que definieron el Enrutamiento Interdominios sin Clases (Classless Inter-Domain Routing), o CIDR (pronunciado "sai-der"). CIDR desechó las rígidas clases A/B/C. Introdujo una forma nueva y flexible de definir un bloque de direcciones de cualquier tamaño.

Esto cambió las reglas del juego. Permitió a los Proveedores de Servicios de Internet (ISPs) asignar bloques de direcciones que eran "justo a la medida" para sus clientes, ralentizando drásticamente el agotamiento de direcciones IPv4. También permitió la "agregación de rutas", donde una sola entrada en una tabla de enrutamiento podía representar miles de rutas individuales, salvando a la columna vertebral de internet de colapsar bajo su propio peso.

Cómo funciona por debajo

Para entender CIDR, primero debes aceptar una verdad fundamental: las direcciones IP son para las computadoras, no para los humanos. El formato decimal con puntos (192.168.1.10) es solo una mentira piadosa que nos contamos. La realidad es binaria.

Primero, un repaso rápido de direcciones IP y binario

Una dirección IPv4 es un número de 32 bits. Eso es todo. Treinta y dos unos y ceros. Lo cortamos en cuatro trozos de 8 bits (octetos) y convertimos cada uno a un número decimal (0-255) para hacerlo legible.

Tomemos la dirección 172.20.129.45:

   172   .    20   .    129   .    45
10101100 . 00010100 . 10000001 . 00101101

Todos los cálculos de redes IP, incluyendo CIDR, ocurren a este nivel binario.

La máscara de subred: El anillo decodificador mágico

Cada dirección IP vive una doble vida. Una parte identifica la red a la que pertenece (el nombre de su calle), y la otra parte identifica al host específico en esa red (el número de su casa).

¿Cómo sabe una computadora dónde termina una parte y empieza la otra? Usa una máscara de subred. Una máscara de subred es otro número de 32 bits que actúa como un filtro. Así es como funciona:

  1. La máscara de subred es una serie de 1s consecutivos seguidos de una serie de 0s.
  2. Los 1s corresponden a la porción de red de la dirección.
  3. Los 0s corresponden a la porción de host de la dirección.

Para encontrar la dirección de red, una computadora realiza una operación AND a nivel de bits (bitwise) entre la dirección IP y la máscara de subred.

Digamos que nuestra IP es 172.20.129.45 y nuestra máscara es 255.255.0.0.

Dirección IP:    10101100.00010100.10000001.00101101  (172.20.129.45)
Máscara de Subred: 11111111.11111111.00000000.00000000  (255.255.0.0)
-----------------------------------------------------------------
ID de Red:       10101100.00010100.00000000.00000000  (172.20.0.0)

El resultado, 172.20.0.0, es el "nombre de la calle" para cada dispositivo en esta red.

Y aquí entra CIDR: La abreviatura de la máscara de subred

Escribir 255.255.255.0 es tedioso. La notación CIDR es una abreviatura simple. Es solo la dirección IP, una barra diagonal (/), y el número de 1s iniciales en la máscara de subred. Este número se llama longitud del prefijo (prefix length).

Sufijo CIDR Máscara de Subred Cantidad de 1s Máscara Binaria
/8 255.0.0.0 8 11111111.0000...
/16 255.255.0.0 16 11111111.11111111.0000...
/24 255.255.255.0 24 11111111.11111111.11111111.00000000
/29 255.255.255.248 29 ...11111111.11111000
/32 255.255.255.255 32 Todos 1s (un solo host)

Entonces, 172.20.129.45 con una máscara de 255.255.0.0 se escribe simplemente como 172.20.129.45/16. Pan comido.

Calculando lo bueno

Dada una dirección CIDR como 10.50.84.111/22, podemos descifrar todo sobre su vecindario de red.

  • Prefijo: /22. Esto significa que 22 bits son para la red, y los 32 - 22 = 10 bits restantes son para los hosts.

  • Dirección de red: Es la primera dirección del rango, donde todos los bits de host son 0. La encontramos con la operación AND.

    • IP: 10.50.84.111 -> 00001010.00110010.01010100.01101111
    • Máscara /22: 255.255.252.0 -> 11111111.11111111.11111100.00000000
    • Resultado AND: 00001010.00110010.01010100.00000000 -> 10.50.84.0
    • Así que, la Dirección de Red es 10.50.84.0.
  • Número de Hosts: Tenemos 10 bits de host. El número de direcciones posibles es 2^10 = 1024.

  • Hosts utilizables: Tenemos que restar dos direcciones. ¿Por qué?

    1. La primerísima dirección (todos los bits de host en 0) es la propia Dirección de Red. Es el nombre de la calle, no una casa.
    2. La ultimísima dirección (todos los bits de host en 1) es la Dirección de Broadcast. Enviar un paquete aquí es como gritar "¡Oigan todos!" a cada uno de los dispositivos de la red.
    • Entonces, hosts utilizables = (2^10) - 2 = 1024 - 2 = 1022.
  • Dirección de Broadcast: Es la Dirección de Red con todos los bits de host cambiados a 1.

    • Red: 00001010.00110010.01010100.00000000
    • Broadcast: 00001010.00110010.01010111.11111111 -> 10.50.87.255
  • Rango de Hosts: Las direcciones utilizables son todas las que están entre la dirección de Red y la de Broadcast.

    • Primer host utilizable: 10.50.84.1 (Dirección de red + 1)
    • Último host utilizable: 10.50.87.254 (Dirección de broadcast - 1)

Así que, 10.50.84.111/22 es un host en la red 10.50.84.0, que soporta 1022 dispositivos desde 10.50.84.1 hasta 10.50.87.254.

Historias de la vida real

### La calamidad del costo en la nube

Una nueva startup de moda montó su infraestructura en una nube pública. Ansiosos por empezar a programar, aceptaron la configuración de red por defecto para su Nube Privada Virtual (VPC), que tomó un bloque masivo /16 (65,534 IPs). Unos meses después, consiguieron un cliente enorme que necesitaba una conexión directa y segura entre sus entornos de nube. ¿El problema? El cliente también había usado exactamente el mismo bloque /16 por defecto. Sus espacios de direcciones, 10.10.0.0/16 y 10.10.0.0/16, eran idénticos. No puedes enrutar entre dos lugares que afirman tener la misma dirección. La startup tuvo que pasar una semana frenética reconstruyendo toda su red desde cero en un nuevo rango CIDR que no se solapara.

Lección: Planifica tu espacio de direcciones de red como si estuvieras planificando una ciudad. Incluso si ahora solo necesitas una pequeña aldea, deja espacio para autopistas que se conecten a otras ciudades más tarde. No te limites a aceptar los valores por defecto.

### El misterioso dispositivo desconectado

A un administrador de redes junior se le encargó configurar un nuevo servidor de monitoreo. Le dieron el rango de IP 192.168.100.0/24. Configuró el servidor con la IP 192.168.100.255. La interfaz de red del servidor se activó, pero era un fantasma. No podía hacer ping al gateway, y nada en la red podía hacerle ping. Después de una hora de revisar cables y reinstalar drivers, un ingeniero senior pasó, echó un vistazo a la pantalla por dos segundos y dijo: "Esa es tu dirección de broadcast". Cambiaron la IP a 192.168.100.254 y se conectó al instante.

Lección: La primera y la última dirección de cualquier subred son especiales y no se pueden asignar a un host. Son la identidad de la red y su megáfono, respectivamente.

### La maga del Wi-Fi casero

La red doméstica de una desarrolladora era un desastre. Con laptops, teléfonos, smart TVs, altavoces, focos inteligentes y una tostadora "inteligente", los dispositivos se desconectaban constantemente del Wi-Fi. Al mirar la página de administración de su router, vio que el servidor DHCP estaba configurado para el rango 192.168.1.0/28. Un cálculo rápido le mostró que un /28 solo proporciona (2^(32-28)) - 2 = 14 direcciones IP utilizables. ¡Su familia tenía más de 30 dispositivos! Cambió la máscara de subred de su LAN de 255.255.255.240 (/28) a 255.255.255.0 (/24), ampliando las IPs disponibles a 254. La inestabilidad del Wi-Fi desapareció al instante.

Lección: El subnetting no es solo para data centers. Dicta cuántos dispositivos pueden unirse a tu red local, y una subred mal configurada es una causa común de un "mal Wi-Fi".

Errores y trampas comunes

  • Olvidar las dos reservadas. Un error clásico de "off-by-two". Calculas 2^h y le dices a alguien que tiene esa cantidad de direcciones, pero olvidas restar las direcciones de red y de broadcast. Esto lleva a errores de configuración y a redes que son un poquito más pequeñas de lo necesario.
  • Subredes que se solapan. Como vimos en la historia de la nube, si dos redes que necesitan comunicarse tienen rangos de IP que se solapan, te espera un mundo de sufrimiento. El enrutamiento se vuelve ambiguo y a menudo imposible sin "hacks" feos y complejos de Traducción de Direcciones de Red (NAT). ¡Planifica con antelación!
  • Pensar en decimal. No puedes entender bien el subnetting mirando solo los números decimales. 192.168.0.255 y 192.168.1.0 parecen estar uno al lado del otro. Si estás en una /24, están en redes diferentes. Si estás en una /23, están en la misma red. Todo depende de dónde se encuentre el límite binario.
  • Usar mal una /31. Una /31 tiene 2^(32-31) = 2 direcciones. Las reglas antiguas decían que después de reservar la de red y la de broadcast, esto dejaba cero hosts utilizables. Sin embargo, la RFC 3021 actualizó esto para enlaces especiales punto a punto (por ejemplo, para conectar dos routers), donde no se necesita broadcast. Para una red normal con clientes, no sirve para nada.
  • Error de dedo con el prefijo. Es fácil teclear /23 cuando querías poner /24. Una diferencia de un solo dígito puede ser la diferencia entre una red de 254 hosts y una de 510, cambiando por completo los límites de la red y causando conflictos potenciales. Revisa dos veces tu prefijo.

Por qué debe estar en tu radar

Podrías pensar que esto es solo para ingenieros de redes "hardcore". Te equivocas.

  • Ingenieros Cloud y DevOps: Esto es su pan de cada día. Diseñar VPCs/VNETs en AWS, Azure o GCP es un ejercicio de planificación de CIDR. Equivocarse al principio conduce a migraciones costosas y complejas más adelante.
  • Desarrolladores Backend: ¿No puedes conectarte a tu base de datos? Quizás el servidor de la aplicación está en 10.0.1.0/24 y la BD está en 10.0.2.0/24. Si no hay un router configurado entre ellos, bien podrían estar en planetas diferentes. Entender las subredes es un paso fundamental para depurar problemas.
  • Profesionales de la seguridad: Las reglas del firewall a menudo se basan en bloques CIDR. Para permitir el acceso desde una oficina entera, no agregas 200 IPs individuales; agregas una regla para 10.5.0.0/22. Para bloquear a un actor malicioso conocido, bloqueas su rango CIDR.
  • Cualquiera que ejecute código: Incluso si solo trabajas en localhost, estás usando una red. Saber que 127.0.0.1 es solo un host en el gigantesco bloque de loopback 127.0.0.0/8 ayuda a desmitificar una parte central del desarrollo local.

En un mundo de servicios interconectados, contenedores e infraestructura en la nube, la red ya no es el problema de otra persona. Entender su libreta de direcciones es un superpoder del desarrollador moderno.

Profundiza más

Teoría lista. Hora de ensuciarse las manos — 100% en tu navegador.

Probar la herramienta: Calculadora de subredes / CIDR