Rango IP a CIDR
Convertir rango IP a notación CIDR
Convertir un rango de IP a bloques CIDR encuentra el conjunto minimo de notaciones CIDR que cubren exactamente un rango de IP dado de inicio a fin — esencial para reglas de firewall y ACLs.
Que es la conversion de rango a CIDR?
La conversion de rango a CIDR toma una direccion IP de inicio y una direccion IP de fin y produce el conjunto minimo de bloques CIDR que cubren exactamente cada direccion en ese rango — ni mas, ni menos. Esta es la operacion inversa de la expansion de CIDR a rango: en lugar de ir de 192.168.1.0/24 a un rango de 256 direcciones, se va de un rango de vuelta a notacion CIDR.
Esta conversion es esencial porque la mayoria de la infraestructura de red — firewalls, routers, grupos de seguridad en la nube y listas de control de acceso — opera con bloques CIDR, no con rangos de IP arbitrarios. Cuando un proveedor proporciona un rango de IP (por ejemplo, “nuestros servidores usan de 203.0.113.10 a 203.0.113.50”), necesitas expresar ese rango como uno o mas bloques CIDR para configurar tu infraestructura.
Si el rango coincide perfectamente con un limite CIDR (por ejemplo, 192.168.1.0 a 192.168.1.255), el resultado es un unico bloque. Pero en la practica, los rangos arbitrarios raramente se alinean de forma limpia, y la conversion produce multiples bloques de diferentes tamanos.
Por que los rangos no alineados necesitan multiples CIDRs
Los bloques CIDR siguen reglas matematicas estrictas. Un bloque /n debe comenzar en una direccion que sea multiplo de 2^(32-n). Por ejemplo, un bloque /24 (256 direcciones) debe comenzar en una direccion donde el ultimo octeto sea 0 (como 192.168.1.0). Un bloque /25 (128 direcciones) debe comenzar en 0 o 128.
Cuando un rango comienza en una direccion que no es un limite CIDR valido, ningun bloque unico puede representarlo. El algoritmo debe descomponer el rango en los bloques alineados mas grandes posibles, trabajando desde ambos extremos hacia el centro.
Consideremos el rango 10.0.0.5 a 10.0.0.19 (15 direcciones):
- Inicio en 10.0.0.5: El bloque alineado mas grande que comienza en .5 es un
/32(una sola direccion). Como .5 es impar, solo podemos comenzar con 10.0.0.5/32. - Siguiente, 10.0.0.6: Esta direccion esta alineada a un
/31(2 direcciones), lo que nos da 10.0.0.6/31 (cubre .6 y .7). - Siguiente, 10.0.0.8: Esto esta alineado a un
/29(8 direcciones), lo que nos da 10.0.0.8/29 (cubre .8 a .15). - Siguiente, 10.0.0.16: Un
/30cubriria .16 a .19, lo que nos da 10.0.0.16/30 (cubre .16 a .19).
Resultado: 4 bloques CIDR en lugar de uno. El algoritmo siempre encuentra el numero minimo de bloques, pero los rangos no alineados inherentemente requieren mas entradas.
El algoritmo en resumen
El enfoque estandar funciona de la siguiente manera:
- Convertir ambas direcciones de inicio y fin a enteros de 32 bits
- Encontrar el bloque de potencia de dos mas grande que comience en la direccion actual y no exceda la direccion final
- Registrar ese bloque CIDR y avanzar la direccion actual mas alla de el
- Repetir hasta cubrir todo el rango
Este algoritmo voraz esta garantizado de producir el conjunto minimo de bloques CIDR para cualquier rango dado.
Usos practicos
La conversion de rango a CIDR aparece en muchos escenarios del mundo real:
- Configuracion de firewalls: Cuando un servicio de terceros publica un rango de IP para incluir en lista blanca (por ejemplo, “nuestros servidores de webhook usan de 198.51.100.32 a 198.51.100.63”), necesitas bloques CIDR para tus reglas de firewall. En este caso, el rango se mapea convenientemente a 198.51.100.32/27.
- Grupos de seguridad en la nube: Los Security Groups de AWS, los NSG de Azure y las reglas de firewall de GCP requieren notacion CIDR. Si un proveedor te da un rango de IP simple, debes convertirlo antes de poder agregar la regla.
- Bases de datos de geolocalizacion IP: Los Registros Regionales de Internet (RIRs) publican asignaciones de IP como rangos. Las herramientas que consumen estos datos a menudo convierten rangos a CIDR para una coincidencia eficiente de prefijos usando algoritmos de coincidencia de prefijo mas largo.
- Optimizacion de rutas BGP: Ingenieros de red que convierten asignaciones de IP de clientes de rangos a bloques CIDR para su anuncio via BGP. Menos bloques y mas grandes reducen el tamano de la tabla de enrutamiento global.
- Auditoria de ACLs: Al comparar dos versiones de una lista de control de acceso, convertir rangos a CIDR proporciona una forma normalizada que hace que las diferencias sean significativas y legibles por humanos.
- Planificacion de migraciones: Al mover cargas de trabajo entre centros de datos o proveedores de nube, la conversion de rango de IP a CIDR ayuda a planificar el nuevo esquema de direccionamiento y verificar que no haya superposicion de direcciones con asignaciones existentes.
Comprender esta conversion asegura que tus reglas de red sean tanto precisas (cubriendo exactamente las direcciones que pretendes) como eficientes (usando la menor cantidad posible de entradas CIDR).
Prueba estos ejemplos
Este rango esta perfectamente alineado con un limite /24, por lo que se mapea a un unico bloque CIDR: 192.168.1.0/24. La direccion de inicio tiene todos los bits de host en 0 y la direccion final tiene todos los bits de host en 1.
192.168.1.0-192.168.1.255 Este rango no comienza ni termina en un limite de potencia de dos, por lo que requiere multiples bloques CIDR: 192.168.1.1/32, 192.168.1.2/31, 192.168.1.4/31, 192.168.1.6/32. Se necesitan cuatro bloques para cubrir exactamente 6 direcciones.
192.168.1.1-192.168.1.6