EN ESTA PÁGINA
Ejemplo: Configuración de una directiva de enrutamiento para anunciar la mejor ruta externa a pares internos
La especificación del protocolo BGP, tal como se define en RFC 1771, especifica que un par BGP debe anunciar a sus pares internos la ruta externa de preferencia más alta, incluso si esta ruta no es la mejor en general (en otras palabras, incluso si la mejor ruta es una ruta interna). En la práctica, las implementaciones de BGP implementadas no siguen esta regla. Las razones para desviarse de la especificación son las siguientes:
Minimizar la cantidad de información anunciada. BGP escala según el número de rutas disponibles.
Evitar los bucles de enrutamiento y reenvío.
Hay, sin embargo, varios escenarios en los que el comportamiento, especificado en RFC 1771, de anunciar la mejor ruta externa podría ser beneficioso. No siempre es deseable limitar la información de rutas, ya que la diversidad de rutas puede ayudar a reducir los tiempos de restauración. Publicidad la mejor ruta externa también puede abordar problemas internos de oscilación de ruta BGP (IBGP) como se describe en RFC 3345, Condición de oscilación de ruta persistente del Protocolo de puerta de enlace de borde (BGP).
La advertise-external
instrucción modifica el comportamiento de un altavoz BGP para anunciar la mejor ruta externa para los pares de IBGP, incluso cuando la mejor ruta general es una ruta interna.
La advertise-external
instrucción se admite tanto a nivel de grupo como de vecino. Si configura la instrucción en el nivel de vecino, debe configurarla para todos los vecinos de un grupo. De lo contrario, el grupo se divide automáticamente en diferentes grupos.
La conditional
opción limita el comportamiento de la advertise-external
configuración, de modo que la ruta externa solo se anuncia si el proceso de selección de ruta alcanza el punto en el que se evalúa la métrica del discriminador de salida múltiple (MED). Por lo tanto, una ruta externa no se anuncia si, por ejemplo, tiene una ruta de AS que es peor (más larga) que la de la ruta activa. La conditional
opción restringe el anuncio de ruta externa a cuando la mejor ruta externa y la ruta activa son iguales hasta el paso MED del proceso de selección de ruta. Tenga en cuenta que los criterios utilizados para seleccionar la mejor ruta externa son los mismos independientemente de si la conditional
opción está configurada o no.
Junos OS también proporciona compatibilidad para configurar una política de exportación de BGP que coincida con el estado de una ruta anunciada. Puede hacer coincidir rutas activas o inactivas, de la siguiente manera:
policy-options { policy-statement name{ from state (active|inactive); } }
Este calificador solo coincide cuando se usa en el contexto de una política de exportación. Cuando un protocolo anuncia una ruta que puede anunciar rutas inactivas (como BGP), state inactive
coincide con las rutas anunciadas como resultado de las advertise-inactive
instrucciones y advertise-external
.
Por ejemplo, la siguiente configuración se puede utilizar como una política de exportación de BGP hacia pares internos para marcar rutas anunciadas debido a la configuración con una comunidad definida por el advertise-external
usuario. Los enrutadores receptores pueden usar esa comunidad más tarde para filtrar dichas rutas de la tabla de reenvío. Este mecanismo puede utilizarse para abordar las preocupaciones de que las rutas publicitarias no utilizadas para el reenvío por parte del remitente puedan dar lugar a bucles de reenvío.
user@host# show policy-options policy-statement mark-inactive { term inactive { from state inactive; then { community set comm-inactive; } } term default { from protocol bgp; then accept; } then reject; } community comm-inactive members 65536:65284;
Requisitos
Se requiere Junos OS 9.3 o posterior.
Descripción general
En este ejemplo se muestran tres dispositivos de enrutamiento. El dispositivo R2 tiene una conexión BGP externa (EBGP) al dispositivo R1. El dispositivo R2 tiene una conexión IBGP con el dispositivo R3.
El dispositivo R1 anuncia 172.16.6.0/24. El dispositivo R2 no establece la preferencia local en una política de importación para las rutas del dispositivo R1 y, por lo tanto, 172.16.6.0/24 tiene la preferencia local predeterminada de 100.
El dispositivo R3 anuncia 172.16.6.0/24 con una preferencia local de 200.
Cuando la instrucción no está configurada en el dispositivo R2, el dispositivo R2 no anuncia 172.16.6.0 advertise-external
/24 en el dispositivo R3.
Cuando la instrucción está configurada en el advertise-external
dispositivo R2 en la sesión del dispositivo R3, el dispositivo R2 anuncia 172.16.6.0/24 en el dispositivo R3.
Cuando advertise-external conditional
se configura en el dispositivo R2 en la sesión del dispositivo R3, el dispositivo R2 no anuncia 172.16.6.0/24 en el dispositivo R3. Si elimina la configuración en el dispositivo R3 y agrega la configuración en el then local-preference 200
path-selection as-path-ignore
dispositivo R2 (lo que hace que los criterios de selección de ruta sean iguales hasta el paso MED del proceso de selección de ruta), el dispositivo R2 anuncia 172.16.6.0/24 para el dispositivo R3.
Para configurar la instrucción en un reflector de ruta, debe deshabilitar la advertise-external
reflexión dentro del clúster con la no-client-reflect
instrucción y el clúster de cliente debe estar completamente mallado para evitar el envío de anuncios de ruta redundantes.
Cuando un dispositivo de enrutamiento se configura como reflector de ruta para un clúster, una ruta anunciada por el reflector de ruta se considera interna si se recibe de un par interno con el mismo identificador de clúster o si ambos pares no tienen ningún identificador de clúster configurado. Una ruta recibida de un par interno que pertenece a otro clúster, es decir, con un identificador de clúster diferente, se considera externa.
Topología
Figura 1 muestra la red de ejemplo.
![Topología BGP para publicidad externa](../../../images/g041474.gif)
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
En la sección #configuration148__policy-advertise-external-st se describen los pasos del dispositivo R2.
Configuración
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, a continuación, copie y pegue los comandos en la CLI en el nivel de [edit]
jerarquía.
Dispositivo R1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
Dispositivo R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
Procedimiento
Procedimiento paso a paso
El ejemplo siguiente requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI de Junos OS.
Para configurar el dispositivo R2:
Configure las interfaces del dispositivo.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure OSPF u otro protocolo de puerta de enlace interior (IGP).
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
Configure la conexión EBGP con el dispositivo R1.
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
Configure la conexión del IBGP al dispositivo R3.
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
Agregue la
advertise-external
instrucción a la sesión de emparejamiento de grupo del IBGP.[edit protocols bgp group int] user@R2# set advertise-external
Configure el número de sistema autónomo (AS) y el ID del enrutador.
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
Resultados
Desde el modo de configuración, ingrese los comandos show interfaces
, show protocols
, show policy-options
y show routing-options
para confirmar la configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R2# show interfaces fe-1/2/0 { unit 0{ description to-R1; family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { description to-R3; family inet { address 10.0.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; peer-as 100; neighbor 10.0.0.1; } group int { type internal; local-address 192.168.0.2; advertise-external; neighbor 192.168.0.3; } } ospf { area 0.0.0.0 { interface fe-1/2/1.0; interface lo0.0 { passive; } } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
Cuando termine de configurar el dispositivo, ingrese commit
en el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
- Comprobación de la ruta activa del BGP
- Verificación del anuncio de ruta externa
- Verificación de la ruta en el dispositivo R3
- Experimentar con la opción condicional
Comprobación de la ruta activa del BGP
Propósito
En el dispositivo R2, asegúrese de que el prefijo 172.16.6.0/24 esté en la tabla de enrutamiento y tenga la ruta activa esperada.
Acción
user@R2> show route 172.16.6 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0 [BGP/170] 03:23:03, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0
Significado
El dispositivo R2 recibe la ruta 172.16.6.0/24 de los dispositivos R1 y R3. La ruta desde el dispositivo R3 es la ruta activa, designada por el asterisco (*). La ruta activa tiene la preferencia local más alta. Incluso si las preferencias locales de las dos rutas fueran iguales, la ruta del dispositivo R3 permanecería activa porque tiene la ruta de AS más corta.
Verificación del anuncio de ruta externa
Propósito
En el dispositivo R2, asegúrese de que la ruta 172.16.6.0/24 esté anunciada para el dispositivo R3.
Acción
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
Significado
El dispositivo R2 anuncia la ruta 172.16.6.0/24 hacia el dispositivo R3.
Verificación de la ruta en el dispositivo R3
Propósito
Asegúrese de que el prefijo 172.16.6.0/24 esté en la tabla de enrutamiento del dispositivo R3.
Acción
user@R3> show route 172.16.6.0/24 inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[Static/5] 03:34:14 Reject [BGP/170] 06:34:43, localpref 100, from 192.168.0.2 AS path: 100 I, validation-state: unverified > to 10.0.0.5 via fe-1/2/0.6
Significado
El dispositivo R3 tiene la ruta estática y la ruta BGP para 172.16.6.0/24.
Tenga en cuenta que la ruta BGP está oculta en el dispositivo R3 si no se puede acceder a la ruta o si no se puede resolver el siguiente salto. Para cumplir este requisito, este ejemplo incluye una ruta predeterminada estática en el dispositivo R3 (static route 0.0.0.0/0 next-hop 10.0.0.5
).
Experimentar con la opción condicional
Propósito
Vea cómo funciona la conditional
opción en el contexto del algoritmo de selección de ruta BGP.
Acción
En el dispositivo R2, agregue la
conditional
opción.[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
En el dispositivo R2, compruebe si la ruta 172.16.6.0/24 se anuncia para el dispositivo R3.
user@R2> show route advertising-protocol bgp 192.168.0.3
Como era de esperar, la ruta ya no se anuncia. Es posible que tenga que esperar unos segundos para ver este resultado.
En el dispositivo R3, desactive la acción de
then local-preference
directiva.[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
En el dispositivo R2, asegúrese de que las preferencias locales de las dos rutas sean iguales.
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0
En el dispositivo R2, agregue la
as-path-ignore
instrucción.[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
En el dispositivo R2, compruebe si la ruta 172.16.6.0/24 se anuncia para el dispositivo R3.
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
Como era de esperar, ahora se anuncia la ruta porque se ignora la longitud de la ruta del AS y porque las preferencias locales son iguales.