EN ESTA PÁGINA
Ejemplo: Configuración de una política de enrutamiento para anunciar la mejor ruta externa a los pares internos
La especificación de protocolo del BGP, tal como se define en el RFC 1771, especifica que un par de BGP anunciará a sus pares internos la ruta externa de mayor preferencia, 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 desplegadas no siguen esta regla. Las razones para desviarse de la especificación son las siguientes:
Minimizar la cantidad de información anunciada. El BGP escala según la cantidad de rutas disponibles.
Evitar los bucles de enrutamiento y reenvío.
Sin embargo, hay varios escenarios en los que el comportamiento, especificado en el RFC 1771, de anunciar la mejor ruta externa podría ser beneficioso. Limitar la información de rutas no siempre es deseable, ya que la diversidad de rutas puede ayudar a reducir los tiempos de restauración. Anunciar la mejor ruta externa también puede abordar problemas de oscilación de ruta interna del BGP (IBGP) como se describe en RFC 3345, Condición de oscilación persistente de ruta del Protocolo de puerta de enlace de borde (BGP).
La advertise-external instrucción modifica el comportamiento de un orador BGP para anunciar la mejor ruta externa a 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 llega al punto en el que se evalúa la métrica discriminada de salida múltiple (MED). Por lo tanto, una ruta externa no se anuncia si tiene, por ejemplo, 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 cuándo 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 el criterio utilizado para seleccionar la mejor ruta externa es el mismo, independientemente de que la conditional opción esté configurada o no.
Junos OS también proporciona soporte para configurar una política de exportación del 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 puede anunciar rutas inactivas (como BGP), state inactive hace coincidir las rutas anunciadas como resultado de las advertise-inactive instrucciones y advertise-external .
Por ejemplo, la siguiente configuración se puede usar como política de exportación del BGP hacia pares internos para marcar las rutas anunciadas debido a la configuración con una comunidad definida por el advertise-external usuario. Los enrutadores receptores pueden utilizar más tarde esa comunidad para filtrar dichas rutas de la tabla de reenvío. Este mecanismo puede utilizarse para abordar las preocupaciones de que las rutas publicitarias que no utilicen el remitente para el reenvío 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 al 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 advertise-external dispositivo R2, el dispositivo R2 no anuncia 172.16.6.0/24 hacia el dispositivo R3.
Cuando la instrucción está configurada en el advertise-external dispositivo R2 en la sesión hacia el dispositivo R3, el dispositivo R2 anuncia 172.16.6.0/24 hacia el dispositivo R3.
Cuando advertise-external conditional se configura en el dispositivo R2 en la sesión hacia el dispositivo R3, el dispositivo R2 no anuncia 172.16.6.0/24 hacia el dispositivo R3. Si quita la configuración en el then local-preference 200 dispositivo R3 y agrega la configuración en el 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 hacia el dispositivo R3.
Para configurar la advertise-external instrucción en un reflector de ruta, debe deshabilitar la reflexión de intracluster 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 desde 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.

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, luego, copie y pegue los comandos en la CLI en el [edit] nivel de 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 siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en el modo de configuración en la Guía del usuario de la 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 el 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 del EBGP al 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-externalinstrucció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 protocols, show policy-optionsy show routing-options para confirmar la show interfacesconfiguració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;
Si ha terminado de configurar el dispositivo, ingrese commit desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
- Verificar la ruta activa del BGP
- Verificar el anuncio de ruta externa
- Verificar la ruta en el dispositivo R3
- Experimentar con la opción condicional
Verificar 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 del dispositivo R1 y del dispositivo R3. La ruta desde el dispositivo R3 es la ruta activa, como lo designa 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.
Verificar el anuncio de ruta externa
Propósito
En el dispositivo R2, asegúrese de que la ruta 172.16.6.0/24 se anuncie hacia 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.
Verificar la ruta en el dispositivo R3
Propósito
Asegúrese de que el prefijo 172.16.6.0/24 se encuentra 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.6Significado
El dispositivo R3 tiene la ruta estática y la ruta BGP para 172.16.6.0/24.
Tenga en cuenta que la ruta del BGP está oculta en el dispositivo R3 si la ruta no es accesible o si no se puede resolver el siguiente salto. Para cumplir con este requisito, en este ejemplo se 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 rutas del BGP.
Acción
En el dispositivo R2, agregue la
conditionalopció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 hacia 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-preferencepolítica.[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.0En el dispositivo R2, agregue la
as-path-ignoreinstrucció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 hacia 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.
