El problema
Un rango como 192.168.1.10 – 192.168.1.100 no corresponde a ningún prefijo único: los bloques CIDR siempre tienen tamaño potencia de 2 y comienzan en un múltiplo de su tamaño. Para expresar el rango exacto, sin dejar afuera ni agregar direcciones, hay que dividirlo en varios bloques.
Algoritmo voraz
- Parta de la dirección inicial.
- Busque el bloque más grande que empiece exactamente ahí (la dirección debe ser múltiplo del tamaño) y que no pase del final del rango.
- Agréguelo a la lista, avance hasta la dirección siguiente al bloque y repita hasta cubrir el final.
Este método produce la cantidad mínima de bloques; es el mismo que usan herramientas como netaddr en Python o ipcalc con la opción de desagregación.
Ejemplo: 192.168.1.10 a 192.168.1.100
| Bloque | Rango | Direcciones |
|---|---|---|
| 192.168.1.10/31 | .10 – .11 | 2 |
| 192.168.1.12/30 | .12 – .15 | 4 |
| 192.168.1.16/28 | .16 – .31 | 16 |
| 192.168.1.32/27 | .32 – .63 | 32 |
| 192.168.1.64/27 | .64 – .95 | 32 |
| 192.168.1.96/30 | .96 – .99 | 4 |
| 192.168.1.100/32 | .100 | 1 |
Siete bloques que suman exactamente 91 direcciones. Note el patrón: los bloques crecen mientras la alineación lo permite y luego decrecen al acercarse al final.
Uso en equipos
! Cisco IOS: prefix-list
ip prefix-list RANGO seq 10 permit 192.168.1.10/31
ip prefix-list RANGO seq 20 permit 192.168.1.12/30
ip prefix-list RANGO seq 30 permit 192.168.1.16/28
...
# Linux nftables
nft add set inet filter rango { type ipv4_addr\; flags interval\; }
nft add element inet filter rango { 192.168.1.10-192.168.1.100 }
# MikroTik: address-list acepta rangos directamente
/ip firewall address-list add list=rango address=192.168.1.10-192.168.1.100
Si su plataforma acepta rangos (nftables, RouterOS, muchos NGFW), úselos; la conversión a CIDR es necesaria en ACL de Cisco y Junos, en prefix-lists de BGP, en iptables sin ipset y en listas de bloqueo de servicios en la nube.
Consejos
- Si el resultado tiene muchos bloques y la precisión no es crítica, evalúe usar un prefijo algo mayor (la calculadora de sumarización muestra cuánto sobra).
- Rangos de proveedores (listas de IPs de nubes, de geolocalización) suelen venir como inicio–fin; convertirlos reduce reglas y uso de TCAM.