CIDR a Rango IP

Convertir notación CIDR a rango IP

Entendiendo Notacion CIDR
TL;DR

La notacion CIDR como 192.168.1.0/24 representa un bloque de direcciones IP. El numero despues de la barra es la longitud del prefijo, que indica cuantas direcciones hay en el bloque.

Que es CIDR?

CIDR (Classless Inter-Domain Routing, pronunciado “saider”) es un metodo para asignar direcciones IP y enrutar paquetes IP. Introducido en 1993 para reemplazar el rigido sistema de direccionamiento por clases, CIDR permite a los administradores de red definir bloques de direcciones de cualquier tamano usando una notacion compacta que combina una direccion IP con una longitud de prefijo.

Un bloque CIDR se escribe como una direccion IP seguida de una barra diagonal y un numero: 192.168.1.0/24. El numero despues de la barra (la longitud del prefijo) indica cuantos bits de la direccion estan fijos como la porcion de red. Los bits restantes identifican hosts individuales dentro de esa red.

Antes de CIDR, las organizaciones tenian que elegir entre una red Clase C (256 direcciones), una red Clase B (65,536 direcciones) o una red Clase A (16.7 millones de direcciones). Una empresa que necesitaba 1,000 direcciones recibia una Clase B completa, desperdiciando mas de 64,000 direcciones. CIDR elimino este desperdicio al permitir bloques de cualquier tamano en potencia de dos.

Como funciona la longitud del prefijo

La longitud del prefijo determina la division entre la porcion de red y la porcion de host de una direccion. Un prefijo mas largo significa que mas bits estan reservados para la red (bloque mas pequeno), mientras que un prefijo mas corto significa menos bits de red (bloque mas grande).

Para IPv4 (direcciones de 32 bits), el prefijo puede variar desde /0 (toda la internet: 4.3 mil millones de direcciones) hasta /32 (un unico host).

El numero de direcciones en un bloque CIDR se calcula como: 2^(32 - longitud_prefijo)

Por ejemplo, un bloque /24 proporciona 2^(32-24) = 2^8 = 256 direcciones. De estas, la primera direccion es la direccion de red (ej., 192.168.1.0) y la ultima es la direccion de broadcast (ej., 192.168.1.255), dejando 254 direcciones de host utilizables.

CIDR /24 Binary Mask Visualization A diagram showing a 32-bit IPv4 address divided into 24 network bits (highlighted) and 8 host bits, with the subnet mask 255.255.255.0 shown below. 192.168.1.0/24 — Binary Mask 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 24 network bits (fixed) 8 host bits Subnet Mask: 255.255.255.0 11111111 11111111 11111111 00000000 255 255 255 0 Network: 192.168.1.0 | Broadcast: 192.168.1.255 Usable range: 192.168.1.1 - 192.168.1.254 (254 hosts) Hosts = 2^(32 - prefix) - 2 = 2^8 - 2 = 254 (subtract network address and broadcast address)

Calculo de rangos de direcciones

Para convertir un bloque CIDR a un rango IP, necesita determinar la direccion de red (primera IP), la direccion de broadcast (ultima IP) y el rango utilizable entre ambas.

Aqui esta el calculo paso a paso para 192.168.1.0/24:

  1. Convertir la IP a binario: 192.168.1.0 = 11000000.10101000.00000001.00000000
  2. Aplicar la mascara: Los primeros 24 bits son la porcion de red (fija). Los 8 bits restantes son la porcion de host (variable).
  3. Direccion de red: Establecer todos los bits de host a 0 = 11000000.10101000.00000001.00000000 = 192.168.1.0
  4. Direccion de broadcast: Establecer todos los bits de host a 1 = 11000000.10101000.00000001.11111111 = 192.168.1.255
  5. Rango utilizable: 192.168.1.1 hasta 192.168.1.254 (254 hosts)

Tabla de referencia rapida

PrefijoMascara de subredTotal de direccionesHosts utilizablesUso tipico
/8255.0.0.016,777,21616,777,214Grandes ISPs, grandes empresas
/16255.255.0.065,53665,534Redes de campus corporativo
/24255.255.255.0256254Segmento LAN estandar
/28255.255.255.2401614Departamento pequeno, DMZ
/30255.255.255.25242Enlace punto a punto entre routers
/32255.255.255.25511Ruta de host unico

El /24 es por mucho el tamano de bloque mas comun en la practica. Proporciona 254 direcciones utilizables, lo cual es suficiente para la mayoria de segmentos LAN, siendo facil de administrar y recordar.

Supernetting y agregacion

CIDR tambien habilita el supernetting (agregacion de rutas), que consiste en combinar multiples bloques mas pequenos en uno solo mas grande para reducir el tamano de las tablas de enrutamiento. Por ejemplo, cuatro bloques contiguos /24 (192.168.0.0/24 a 192.168.3.0/24) pueden agregarse en un unico bloque /22 (192.168.0.0/22).

Esto es lo inverso del subnetting: en lugar de dividir un bloque en piezas mas pequenas, se fusionan bloques adyacentes en uno mas grande. Los ISPs usan el supernetting extensivamente para mantener manejable la tabla de enrutamiento global; sin el, los routers centrales necesitarian millones de entradas adicionales.

Casos de uso comunes

  • Reglas de firewall: Los bloques CIDR definen que rangos IP tienen permitido o denegado el acceso a servicios (ej., permitir 10.0.0.0/8 para trafico interno)
  • Redes en la nube: Las VPCs de AWS, VNets de Azure y VPCs de GCP usan bloques CIDR para definir espacios de direcciones de redes virtuales
  • Planificacion de direcciones IP: Los arquitectos de red usan CIDR para asignar espacio de direcciones eficientemente entre departamentos, centros de datos y regiones
  • Listas de control de acceso: Las ACLs de routers usan CIDR para hacer coincidir trafico de redes especificas para filtrado o politicas de calidad de servicio
  • Enrutamiento BGP: Los proveedores de servicios de internet anuncian bloques CIDR via BGP para declarar los prefijos IP de los que son responsables
  • Listas blancas: Los servicios de API y plataformas SaaS aceptan rangos CIDR para restringir el acceso a redes de clientes conocidas

Prueba estos ejemplos

Red /24 estandar Válido

Un bloque /24 cubre 256 direcciones (192.168.1.0 a 192.168.1.255). Los primeros 24 bits son la porcion de red, dejando 8 bits (2^8 = 256) para direcciones de host. Hosts utilizables: 254 (excluyendo las direcciones de red y broadcast).

192.168.1.0/24
Longitud de prefijo invalida Inválido

Las direcciones IPv4 tienen 32 bits de longitud, por lo que la longitud del prefijo debe estar entre 0 y 32. Un prefijo /33 excede la longitud total de bits y es invalido.

10.0.0.0/33