Este documento describe los comandos que puede utilizar para configurar route maps que se aplican con el comando redistribute de los protocolos de ruteo dinámico. Este documento también incluye consejos sobre las funciones route map y recomienda cuándo es más beneficiosa la configuración de route-map.
La función route-map es un mecanismo genérico de la configuración del software Cisco IOS®. Puede aplicarlo a muchas tareas diferentes, por ejemplo, la modificación de la actualización de vecinos del protocolo de gateway fronterizo (BGP) y el routing basado en políticas (PBR). Uno de los usos más comunes de route-maps es aplicarlos a las rutas que se redistribuyen entre los protocolos de ruteo dinámico. Este documento examina las posibilidades de route-maps cuando configura este tipo de redistribución.
No hay requisitos específicos para este documento.
La información en este documento se basa en la versión 12.3 del software del IOS de Cisco.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Esta sección proporciona una descripción general de route-maps en el software Cisco IOS.
Los mapas de ruta tienen muchas funciones en común con las listas de control de acceso (ACL) conocidas. Estos son algunos de los rasgos comunes a ambos mecanismos:
Son una secuencia ordenada de instrucciones individuales, cada una tiene un resultado de permiso o rechazo. La evaluación de ACL o route-maps consiste en un escaneo de la lista, en un orden predeterminado, y una evaluación de los criterios de cada sentencia que coincida. Una vez que se encuentra la primera coincidencia de instrucciones y se realiza una acción asociada a la coincidencia de instrucciones, se anula un análisis de lista.
Son mecanismos genéricos: los criterios de coincidencia y la interpretación de coincidencias están dictados por la forma en que se aplican. El mismo route-map aplicado a tareas diferentes podría interpretarse de manera diferente.
Estas son algunas de las diferencias entre route-maps y ACL:
Los mapas de ruta utilizan frecuentemente ACL como criterios coincidentes.
El resultado principal de la evaluación de una lista de acceso es una respuesta sí o no: una ACL permite o niega los datos de entrada. Aplicada a la redistribución, una ACL determina si una ruta determinada puede redistribuirse (la ruta coincide con la sentencia permit de ACL) o no (coincide con la sentencia deny). Los mapas de ruta típicos no sólo permiten (algunos) rutas redistribuidas, sino que también modifican la información asociada con la ruta, cuando se redistribuye en otro protocolo. Vea la sección Conceptos Básicos de Route-Map de este documento para ver ejemplos de modificación de route-map.
Los mapas de ruta son más flexibles que las ACL y pueden verificar las rutas basándose en criterios que las ACL no pueden verificar. Por ejemplo, un route-map puede verificar si el tipo de ruta es interno o si tiene una etiqueta específica.
Cada ACL termina con una sentencia deny implícita, por convención de diseño; no hay una convención similar para route-maps. Si se alcanza el final de un route-map durante los intentos de coincidencia, el resultado depende de la aplicación específica del route-map. Afortunadamente, los route-maps que se aplican a la redistribución se comportan de la misma manera que las ACL: si la ruta no coincide con ninguna cláusula en un route-map, se niega la redistribución de la ruta, como si la sentencia deny del route-map contuviera al final.
El comando de configuración Dynamic Protocol redistribute le permite aplicar una ACL o un route-map. Las diferencias descritas en esta sección identifican cuándo debe utilizar un route-map durante la redistribución. Los mapas de ruta se prefieren si se pretende modificar la información de ruta durante la redistribución o si se necesita una capacidad de coincidencia más potente que la que puede proporcionar una ACL. Por el contrario, si simplemente necesita permitir selectivamente algunas rutas basándose en su prefijo o máscara, Cisco recomienda que utilice una ACL (o lista de prefijos equivalente) directamente en el comando redistribute. Si utiliza un route-map para permitir selectivamente algunas rutas basándose en su prefijo o máscara, normalmente utiliza más comandos de configuración para lograr el mismo objetivo. Los mapas de ruta siempre se aplican para el tráfico entrante y el route-map no tiene ningún efecto en el tráfico saliente.
Este es un mapa de ruta típico Open Shortest Path First to Enhanced Interior Gateway Routing Protocol (OSPF-to-EIGRP), aplicado en un comando redistribute:
! router eigrp 1 redistribute ospf 1 route-map ospf-to-eigrp default-metric 20000 2000 255 1 1500 !--- Output suppressed. ! route-map ospf-to-eigrp deny 10 match tag 6 match route-type external type-2 ! route-map ospf-to-eigrp permit 20 match ip address prefix-list pfx set metric 40000 1000 255 1 1500 ! route-map ospf-to-eigrp permit 30 set tag 8 !
A partir de este ejemplo, hay varios puntos a tener en cuenta:
Las cláusulas de mapa de ruta están numeradas. En este ejemplo, las cláusulas tienen números de secuencia 10, 20 y 30. Los números de secuencia permiten realizar estas acciones:
Elimine fácilmente una cláusula específica pero no afecte a otras partes del route-map.
Insertar una nueva cláusula entre dos cláusulas existentes.
Cisco recomienda que numere cláusulas en intervalos de 10, para reservar espacio de numeración en caso de que necesite insertar cláusulas en el futuro.
Los route-maps pueden tener cláusulas permit y deny. En route-map ospf-to-eigrp, hay una cláusula deny (con el número de secuencia 10) y dos cláusulas permit. La cláusula deny rechaza las coincidencias de ruta de la redistribución. Por lo tanto, estas reglas se aplican:
Si utiliza una ACL en una cláusula route-map permit, las rutas permitidas por la ACL se redistribuyen.
Si utiliza una ACL en una cláusula deny route-map, las rutas permitidas por la ACL no se redistribuyen.
Si utiliza una ACL en una cláusula deny o permit de route-map y la ACL niega una ruta, no se encuentra la coincidencia de la cláusula route-map y se evalúa la siguiente cláusula route-map.
Cada cláusula route-map tiene dos tipos de comandos:
match: selecciona las rutas a las que se debe aplicar esta cláusula.
set: modifica la información que se redistribuirá en el protocolo de destino.
Para cada ruta que se redistribuye, el router primero evalúa el comando match de una cláusula en el route-map. Si los criterios de coincidencia tienen éxito, la ruta se redistribuye o se rechaza según lo dictado por la cláusula permit o deny, y algunos de sus atributos pueden ser modificados por los comandos set. Si el criterio de coincidencia falla, entonces esta cláusula no se aplica a la ruta y el software Cisco IOS procede a evaluar la ruta con la siguiente cláusula en el route-map. El escaneo del route-map continúa hasta que se encuentra una cláusula cuyos comandos de coincidencia coinciden con la ruta o hasta que se alcanza el final del route-map.
Un comando match o set en cada cláusula puede perderse o repetirse varias veces, si existe una de estas condiciones:
Si varios comandos match están presentes en una cláusula, todos deben tener éxito para una ruta dada para que esa ruta coincida con la cláusula (en otras palabras, el algoritmo AND lógico se aplica para varios comandos match).
Si un comando match hace referencia a varios objetos en un comando, cualquiera de ellos debería coincidir (se aplica el algoritmo OR lógico). Por ejemplo, en el comando match ip address 101 121, se permite una ruta si está permitida por la lista de acceso 101 o la lista de acceso 121.
Si un comando match no está presente, todas las rutas coinciden con la cláusula. En el ejemplo anterior, todas las rutas que alcanzan la cláusula 30 coinciden; por lo tanto, nunca se alcanza el final del route-map.
Si un comando set no está presente en una cláusula route-map permit, entonces la ruta se redistribuye sin modificar sus atributos actuales.
No configure un comando set en una cláusula deny route-map porque la cláusula deny prohíbe la redistribución de ruta; no hay información que modificar.
Una cláusula route-map sin un comando match o set realiza una acción. Una cláusula permit vacía permite una redistribución de las rutas restantes sin modificación. Una cláusula deny vacía no permite una redistribución de otras rutas (esta es la acción predeterminada si un route-map se escanea completamente pero no se encuentra ninguna coincidencia explícita).
Según la información de esta sección, el ejemplo anterior de mapa de ruta OSPF a EIGRP hace lo siguiente:
Prohíbe la redistribución de todas las rutas OSPF externas de tipo 2 con el conjunto de etiqueta 6.
Redistribuye en EIGRP todas las rutas que coinciden con la lista de prefijos pfx, con cinco valores métricos: 40000, 1000, 255, 1 y 1500.
Redistribuye el resto de rutas y establece sus etiquetas en 8 (el valor predeterminado).
Esta sección contiene los siguientes temas:
Configure los Comandos match y set no admitidos en Route-Maps
Naturaleza de dos protocolos de la redistribución del mapa de ruta
Los route-maps son mecanismos genéricos que puede utilizar en muchas configuraciones, incluido el comando previamente descrito redistribute. Por ejemplo, puede configurar el comando match length en un route-map para PBR para especificar que se realiza una acción especial cuando se reenvían los paquetes de una longitud específica. Sin embargo, no usaría el comando match length en route-maps aplicados a la redistribución.
Puede configurar los comandos match y set en un route-map que no se soportan (o no tienen efecto) en un contexto en el que se aplica un route-map (o se pretende que se aplique en una etapa posterior). Un ejemplo de esta situación puede ser el comando match length utilizado en un route-map aplicado a la redistribución. En la redistribución, se aplica un route-map a cada ruta instalada en la tabla de ruteo, por el protocolo especificado en el comando redistribute. Por lo tanto, cuando un router ejecuta un route-map, el router interpreta solamente los comandos que tienen sentido en el contexto de la aplicación route-map. En este ejemplo, el comando match length mencionado en el route-map de redistribución no afecta a la redistribución. Permanece en la configuración del route-map y se puede ver en la configuración en ejecución del router. La redistribución de ruta no se ve afectada, sin embargo, si este comando está presente o no en el route-map.
En conclusión, el router permite la configuración de todos los tipos de comandos match y set, pero deben aplicarse lógicamente a la situación. De lo contrario, la configuración podría ser muy confusa o realizar tareas incorrectas.
No utilice comandos sin ningún efecto en un contexto de route-map, aunque parezcan inofensivos, debido a estos problemas:
Los comandos sin efecto pueden oscurecer lo que desea lograr. Esto hace que la configuración sea muy confusa.
Los comandos que actualmente no son compatibles podrían volverse admitidos en futuras versiones del software Cisco IOS. Por lo tanto, es posible que vea cambios no deseados en el comportamiento del route-map después de futuras actualizaciones de software.
No todos los comandos son completamente inofensivos; por ejemplo, el comando set metric +/-, que especifica el cambio relativo de métrica y que se utiliza con el anuncio de ruta BGP. Puede tomar la métrica actual de una ruta y aumentarla o reducirla en un valor especificado antes de propagarla.
La forma +/- de este comando no se soporta actualmente en los route-maps de redistribución, y en realidad se interpreta como el comando set metric con el signo omitido. Por ejemplo, considere este mapa de ruta:
!--- This redistribution route-map is very dangerous! route-map ospf-to-ospf permit 10 set metric +2 !
Esta configuración parece redistribuir todas las rutas de un proceso OSPF a otro, mientras que aumenta la métrica de todas las rutas en dos. Sin embargo, en realidad establece que la métrica de todas las rutas es la misma, igual a 2, probablemente no lo que podría pensar al examinar la configuración del router.
Este route-map proporciona un efecto aún más contraintuitivo:
!--- This redistribution route-map is even more dangerous! route-map ospf-to-ospf permit 10 set metric -367 !
En lugar de disminuir la métrica de las rutas redistribuidas, esta configuración en realidad establece la métrica en 367 (un valor positivo, porque una métrica negativa no es posible cuando la métrica establecida se interpreta sin el signo).
Los mapas de ruta aplicados a la redistribución funcionan con dos protocolos de ruteo:
El protocolo que proporciona la información de ruteo original
El protocolo al que se redistribuye la información de ruteo
Cada protocolo de ruteo puede soportar su propio conjunto de atributos de ruta.
En la configuración del route-map de redistribución:
Los comandos Route-map match verifican los atributos de una ruta que son soportados por el protocolo que suministró la ruta original para la redistribución.
Los comandos Route-map set modifican los atributos de las rutas que son soportadas por el protocolo al que se redistribuyen las rutas.
La sección Tablas de Soporte de Comandos de este documento enumera los comandos. Están categorizados por los comandos match y set, para resaltar la naturaleza de dos protocolos de los route-maps de redistribución.
Esta sección describe los comandos que se soportan en route-maps adjuntos al comando redistribute. Existen siete protocolos de ruteo desde los cuales se pueden redistribuir las rutas; sin embargo, sólo hay cinco a los que se puede llevar a cabo la redistribución. Las rutas conectadas y estáticas no son protocolos de ruteo dinámicos y sólo pueden proporcionar información para redistribuirse en otros protocolos.
Esta sección no incluye los comandos match y set que se soportan en los route-maps de software IOS versión 12.3 pero que no se aplican en el contexto de redistribución.
El sistema intermedio a sistema intermedio (IS-IS) y el BGP pueden propagar información sobre las rutas del servicio de red sin conexión (CLNS) junto con las rutas IP. Para ser minuciosos, las tablas de esta sección también mencionan comandos relacionados con CLNS, que se pueden utilizar en mapas de ruta de redistribución para estos protocolos.
Puede utilizar Routing Information Protocol (RIP), OSPF, IS-IS y BGP para propagar rutas IPv6; los route-maps de redistribución para estos protocolos pueden contener comandos específicos de IPv6. Los comandos match ip y set ip son específicos para la redistribución de los prefijos IPv4. Los comandos match ipv6 y set ipv6 son específicos para la redistribución de los prefijos IPv6. Puede utilizar los comandos match clns y set clns sólo si utiliza un route-map para redistribuir las rutas CLNS hacia o desde el protocolo de ruteo.
En los cuadros 1 y 2 se utilizan estas convenciones:
Los comandos soportados se marcan con un Yes.
Los comandos no admitidos se marcan con un guión (—).
Los comandos no admitidos que se sabe que realizan una acción (probablemente una acción no deseada) se marcan con un No.
Comando | Soporte de redistribución | ||||||
---|---|---|---|---|---|---|---|
conectado | estática | RIP | EIGRP | OSPF | IS-IS | BGP | |
match clns address | — | Yes | — | — | — | Yes | Yes |
match clns next-hop | — | Yes | — | — | — | Yes | — |
match interface | Yes | Yes | Yes | Yes | Yes | Yes | — |
match ip address | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
match ip address prefix-list | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
match ip next-hop | — | Yes | Yes | Yes | Yes | Yes | Yes |
match ip next-hop prefix-list | — | No | No | No | No | No | No |
match ip route-source | — | — | Yes | Yes | Yes | — | Yes |
match ip route-source prefix-list | — | — | No | No | No | — | No |
match ipv6 address [prefix-list] | Yes | Yes | Yes | — | Yes | Yes | Yes |
match ipv6 next-hop [prefix-list] | — | Yes | Yes | — | — | — | Yes |
match ipv6 route-source [prefix-list] | — | — | Yes | — | — | — | Yes |
match metric | — | — | Yes | Yes | Yes | Yes | Yes |
match policy-list | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
match route-type external | — | — | — | Yes | Yes | Yes | Yes |
match route-type internal | — | — | — | Yes | Yes | — | Yes |
match route-type local | — | — | — | — | — | — | Yes |
match route-type nssa-external | — | — | — | — | Yes | — | — |
match route-type {level-1|level-2} | — | — | — | — | — | Yes | — |
match tag | — | Yes | Yes | Yes | Yes | Yes | Yes |
Comando | Soporte de redistribución | ||||
---|---|---|---|---|---|
RIP | EIGRP | OSPF | IS-IS | BGP | |
set as-path tag | — | — | — | — | Yes |
set community | — | — | — | — | Yes |
set ip next-hop | — | — | — | — | Yes |
set ip next-hop peer-address | — | — | — | — | No |
set ipv6 next-hop | — | — | — | — | Yes |
set level {backbone|stub-area} | — | — | No | — | — |
set level {level-1|level-2|level-1-2} | — | — | — | Yes | — |
set local-preference | — | — | — | — | Yes |
set metric | Yes | — | Yes | Yes | Yes |
set metric +/- | No | — | No | No | No |
set metric eigrp-metric | — | Yes | — | — | — |
set metric +/- eigrp-metric | — | No | — | — | — |
set metric-type internal | — | — | — | Yes | — |
set metric-type external | — | — | — | Yes | — |
set metric-type {type-1|type-2} | — | — | Yes | — | — |
set nlri | — | — | — | — | Yes |
set origin | — | — | — | — | Yes |
set tag | Yes | Yes | Yes | — | — |
set weight | — | — | — | — | Yes |
Los mapas de ruta son herramientas muy poderosas pero complicadas para la redistribución de rutas. Permiten una manipulación muy fina de la información de ruteo cuando se redistribuye entre los protocolos. Sin embargo, pueden ser peligrosas y pueden crear "agujeros negros" o un flujo de tráfico subóptimo en su red. Debe diseñar las redes con mucho cuidado, si va a emplear funciones de redistribución complejas entre varios protocolos de ruteo.