Entendiendo los Route-Maps

Este documento se centra en los route-maps. No obstante, antes de analizar su funcionamiento, es fundamental comprender las diferencias entre access-lists, redistribute-lists y prefix-lists, ya que todas pueden intervenir en procesos de redistribución de rutas.

Access-lists

Las access-lists fueron diseñadas originalmente para el filtrado de paquetes, no para el filtrado de rutas. Aunque pueden utilizarse con este propósito, no son la opción más adecuada. Además, sus criterios de coincidencia se evalúan de forma secuencial, de arriba hacia abajo (top-down), lo que limita su eficiencia y flexibilidad.

Redistribute-lists

Una redistribute-list permite utilizar una access-list para filtrar rutas durante un proceso de redistribución. Sin embargo, hereda las mismas limitaciones de las access-lists, ya que la evaluación de las rutas sigue el orden secuencial definido en la lista.

Prefix-lists

A diferencia de las access-lists, las prefix-lists están diseñadas específicamente para el filtrado de rutas. No funcionan de manera secuencial; internamente organizan los prefijos en una estructura tipo árbol binario, lo que hace el proceso de coincidencia más rápido y eficiente. Además, son más simples de crear y mantener, y ofrecen mayor flexibilidad mediante el uso de los operadores le (less than or equal) y ge (greater than or equal).

Route-maps

Los route-maps pueden considerarse access-lists avanzadas. Permiten evaluar múltiples condiciones sobre rutas o paquetes mediante comandos match y, si estas condiciones se cumplen, ejecutar acciones específicas con set, como modificar atributos de una ruta. Los route-maps se utilizan ampliamente en escenarios como:

  • Redistribución de rutas
  • Policy Based Routing (PBR)
  • BGP

Configuración de un route-map

La configuración de un route-map consta de tres pasos fundamentales.

1. Definición del route-map

route-map DEMO permit 10

Un route-map puede permitir o denegar rutas según las condiciones definidas.

Nota: Un route-map puede configurarse para permitir o denegar rutas según las condiciones definidas. En este ejemplo, se está permitiendo la coincidencia.

2. Definir las condiciones (match) y las acciones (set)

ip prefix-list TEST01 permit seq 5 10.10.10.0/24
!
route-map DEMO permit 10
 match ip address prefix-list TEST01
 set metric 10000 10 200 5 100
!
route-map DEMO permit 20

En este caso:
  • Se define una prefix-list llamada TEST01.
  • El route-map DEMO evalúa dicha lista mediante el comando match.
  • Si la condición se cumple, se modifica la métrica de la ruta usando set metric.
La línea final permit 20 indica que, tras evaluar la secuencia 10, cualquier otra ruta será permitida sin que se le aplique ninguna acción. Esto evita que las rutas no coincidentes sean descartadas implícitamente.

3. Aplicación del route-map

router eigrp 10
 redistribute ospf 1 route-map DEMO

Interpretación del route-map

La lógica del route-map anterior puede representarse de la siguiente manera:

If (match TEST01)
   then set metric 10000 10 200 5 100
Else
   no action
  • Se define una condición basada en la prefix-list TEST01.
  • Si una ruta coincide con dicha condición, se modifica su métrica.
  • Si no coincide, la ruta se redistribuye sin cambios.

Ejemplo avanzado de route-map con operadores lógicos

ip prefix-list X permit seq 5 xx.xx.xx.x/xx
ip prefix-list Y permit seq 5 y.y.y.y/yy
ip prefix-list Z permit seq 5 z.z.z.z/zz
ip prefix-list Q permit seq 5 q.q.q.q/qq
!
route-map TEST03 permit 10
 match ip address prefix-list X Y Z
 set B
 set C
!
route-map TEST03 permit 20
 match ip address prefix-list Q
 set R
!
route-map TEST03 permit 30

Lógica de evaluación

La lógica de evaluación del route-map TEST03 es la siguiente:

If {X OR Y OR Z}
   then set B AND C
Else if (Q)
   then set R
Else
   no action

Explicación detallada

  • Múltiples comandos match dentro de la misma secuencia
    • Se evalúan con un operador lógico AND implícito.
      • Todas las condiciones deben cumplirse.
  • Múltiples objetos dentro de un mismo comando match
    • Se evalúan con un operador lógico OR implícito.
      • Basta con que uno coincida.
Por lo tanto:
  • En la secuencia 10, la ruta debe coincidir con A y con al menos uno de X, Y o Z.
  • Si no coincide, se pasa a la secuencia 20, donde se evalúa Q.
  • Si ninguna condición coincide, la secuencia 30 permite la ruta sin modificarla.

Consideraciones importantes al configurar route-maps

  • Los route-maps se procesan de forma secuencial, de menor a mayor número de secuencia.
  • Existe un deny implícito al final del route-map si no se incluye una secuencia permit final.
  • Múltiples match = AND lógico.
  • Múltiples objetos en un match = OR lógico.
  • Es recomendable reutilizar los mismos objetos (prefix-lists, access-lists) para mantener consistencia y facilitar la administración.
  • Un set solo se ejecuta si todas las condiciones match de la secuencia se cumplen.
  • Importante: La lógica AND de la que hablábamos antes solo se activa cuando los tipos de match son distintos. Por ejemplo:

En el caso mostrado en la imagen, al tratarse de los mismos objetos (ACL), estos se agrupan automáticamente y se evalúan utilizando una lógica OR implícita.


Los route-maps son una herramienta extremadamente poderosa para implementar políticas complejas de enrutamiento de forma controlada y predecible.

Comentarios

Entradas más populares de este blog

Reutilizando un Firewall Checkpoint 15600 como Hipervisor: Instalación de VMware ESXi

Transforma tu mini PC en un homelab con Proxmox VE

Uso de banners en Cisco IOS