Introducción
Este documento describe el método correcto para configurar y mostrar un route-map dentro del modo de configuración, enfatizando particularmente la importancia de especificar la acción (permitir o denegar) y el número de secuencia.
Antecedentes
Se dirige a un comportamiento observado donde una entrada de route-map configurada originalmente con una acción de negación parece haber cambiado para permitir inesperadamente.
Problema
En Cisco IOS® XE, si se ingresa un route-map sin especificar explícitamente una acción (permitir/denegar) y un número de secuencia, la CLI establece de forma predeterminada la acción a permitir. Esto puede alterar inadvertidamente el comportamiento del route-map si los administradores no tienen cuidado con la sintaxis.
Comportamiento observado
Cuando se aplica esta configuración:
router(config)#route-map TEST1 deny 1
router(config-route-map)#match ip address prefix-list PREFIXES
router(config-route-map)#exit
router(config)#route-map TEST1 permit 10
router(config-route-map)#match ip address prefix-list FIX
router(config-route-map)#exit
El resultado esperado es:
router(config)#do sh run | sec TEST1
route-map TEST1 deny 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
Sin embargo, al volver a ingresar route-map TEST1 sin especificar la secuencia o la acción como se muestra:
router(config)#route-map TEST1
router(config-route-map)#do sh run | sec TEST1
El resultado de CLI muestra de forma inesperada:
route-map TEST1 permit 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
Esto indica que la entrada de negación 1 configurada originalmente se ha modificado para permitir 1.
Comportamiento esperado de CLI
· Cuando ingresa el comando router(config)# route-map TEST1 sin especificar una acción (permit o deny) y un número de secuencia, el analizador asume que usted quiso decir 'permit' de forma predeterminada.
· Tan pronto como salga de ese submodo, Cisco IOS XE reescribe la primera secuencia y cambia la acción de denegar a permitir porque no se proporcionó ninguna acción explícita. Simplemente ingresando route-map <name> sin un número de secuencia ingresa la secuencia 10 como permit de forma predeterminada. Este comportamiento a veces puede invalidar entradas anteriores si no se especifica con cuidado.
En otras palabras, el cambio no es accionado por un proceso no visto — es simplemente el manejo predeterminado de CLIs de un comando route-map incompleto.
Para preservar la negación en la primera sentencia, incluya siempre tanto la acción como el número de secuencia, por ejemplo:
router(config)# route-map TEST1 deny 1.
Por qué sucede esto
No se trata de un error, sino de un comportamiento intencionado del analizador CLI de Cisco IOS XE. Se adhiere a estas reglas:
- Si se llama a un route-map sin un número de secuencia, se asume la secuencia 10.
- Si no se especifica ninguna acción, permit es el valor predeterminado.
- Si vuelve a ingresar un route-map existente sin detalles, IOS puede reasignar acciones predeterminadas, modificando involuntariamente entradas anteriores.
Solución
Para conservar el comportamiento esperado de su configuración de route-map, incluya siempre ambos:
- la acción (permitir o denegar)
- y el número de secuencia
router(config)#route-map TEST1 deny 1 >>>>>>>>>>>>>>> This ensures IOS-XE does not override the entry with default values.
router(config-route-map)#do sh run | sec route-map TES
route-map TEST1 deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST1 permit 10
match ip address prefix-list ALL-VPN-FIX
Método Recomendado Para Implementar
Aquí se mencionan las salidas de configuración para referencia. El comportamiento del comando refleja la importancia de los números de secuencia definidos correctamente y cómo el orden de inserción de permit/deny no afecta la disposición ascendente del número de secuencia en la configuración en ejecución.
Ejemplo 1. Uso de CLI incorrecto que conduce al permiso predeterminado
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#$dress prefix-list ALL-PREFIXES
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#route-map TEST permit 10
ASR1002-1(config-route-map)#$dress prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#do sh run | sec TEST
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config)#exit
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST permit 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
Observe cómo deny 1 se convierte en permit 1. En su lugar, incluya la acción junto con el número de secuencia para mantener la configuración correcta de route-map:
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
Ejemplo 2. Orden de secuencia mantenido independientemente del orden de entrada
ASR1001-1(config)#route-map test deny 50
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1(config)#route-map test permit 40
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
Aunque la sentencia deny se ingresó primero, la CLI ordena por número de secuencia ascendente, no por orden de configuración.
Conclusión
Al configurar route-maps en Cisco IOS-XE, defina siempre:
- el número de secuencia
- y la acción
Si no lo hace, puede producirse un comportamiento inesperado debido a los valores predeterminados de CLI. La comprensión de estos matices es esencial para mantener configuraciones precisas de política de ruteo.