Políticas de enrutamiento para comunidades BGP
Descripción de las comunidades BGP, las comunidades extendidas y las comunidades grandes como condiciones de coincidencia de políticas de enrutamiento
Una comunidad BGP es un grupo de destinos que comparten una propiedad común. La información de la comunidad se incluye como un atributo de ruta en los mensajes de actualización de BGP. Esta información identifica a los miembros de la comunidad y le permite realizar acciones en un grupo sin tener que dar más detalles sobre cada miembro. Puede usar atributos de comunidad y comunidades extendidas para desencadenar decisiones de enrutamiento, como aceptación, rechazo, preferencia o redistribución.
Puede asignar etiquetas de comunidad a rutas que no sean BGP mediante la configuración (para rutas estáticas, agregadas o generadas) o una política de enrutamiento de importación. Estas etiquetas se pueden hacer coincidir cuando BGP exporta las rutas.
Un valor de comunidad es un campo de 32 bits que se divide en dos secciones principales. Los primeros 16 bits del valor codifican el número AS de la red que originó la comunidad, mientras que los últimos 16 bits llevan un número único asignado por el AS. Este sistema intenta garantizar un conjunto único a nivel mundial de valores comunitarios para cada AS en Internet. Junos OS utiliza una notación de as-number:community-value
, donde cada valor es un número decimal. Los valores de AS de 0 y 65.535 están reservados, al igual que todos los valores de comunidad dentro de esos números de AS. A cada comunidad, o conjunto de comunidades, se le asigna un nombre dentro de la [edit policy-options]
jerarquía de configuración. El nombre de la comunidad la identifica de forma exclusiva con el dispositivo de enrutamiento y sirve como método para clasificar las rutas. Por ejemplo, una ruta con un valor de comunidad de 64510:1111 podría pertenecer a la comunidad denominada AS64510-routes
. El nombre de la comunidad también se utiliza en una política de enrutamiento como criterio de coincidencia o como acción. La sintaxis de comando para crear una comunidad es: Opciones community name members [community-ids]
de política . Son community-ids
un solo valor de comunidad o múltiples valores de comunidad. Cuando se asigna más de un valor a un nombre de comunidad, el dispositivo de enrutamiento lo interpreta como un AND lógico de los valores de comunidad. En otras palabras, una ruta debe tener todos los valores configurados antes de que se le asigne el nombre de la comunidad.
El atributo de comunidad regular es de cuatro octetos. Las mejoras de red, como las VPN, tienen requisitos de funcionalidad que pueden satisfacerse mediante un atributo como una comunidad. Sin embargo, el valor de comunidad de 4 octetos no proporciona suficiente expansión y flexibilidad para adaptarse a los requisitos de VPN. Esto lleva a la creación de comunidades extendidas. Una comunidad extendida es un valor de 8 octetos que también se divide en dos secciones principales. Los primeros 2 octetos de la comunidad codifican un campo de tipo, mientras que los últimos 6 octetos llevan un conjunto único de datos en un formato definido por el campo de tipo. Las comunidades extendidas proporcionan una gama más amplia para agrupar o categorizar comunidades.
El formato de atributo de comunidades extendidas de BGP tiene tres campos: type:administrator:assigned-number
. El dispositivo de enrutamiento espera que utilice las palabras target
o origin
que represente el campo de tipo. El campo de administrador usa un número decimal para el AS o una dirección IPv4, mientras que el campo de número asignado espera un número decimal no mayor que el tamaño del campo (65.535 para 2 octetos o 4.294.967.295 para 4 octetos).
Al especificar identificadores de comunidad para atributos de comunidad estándar y extendidos, puede utilizar expresiones regulares de estilo UNIX. La única excepción son las directivas de importación de VPN (vrf-import
), que no admiten expresiones regulares para el atributo comunidades extendidas.
Los atributos de comunidades BGP regulares son un atributo de longitud variable que consta de un conjunto de uno o más valores de 4 bytes que se dividió en valores de 16 bits. La palabra más significativa se interpreta como un número AS y la palabra menos significativa es un valor definido localmente asignado por el operador del AS. Desde la adopción de los ASN de 4 bytes, la comunidad regular de BGP de 4 bytes y la comunidad extendida de BGP de 6 bytes ya no pueden admitir atributos de comunidad BGP. Los operadores suelen codificar el número AS en la parte local de la comunidad BGP, lo que significa que a veces el formato de la comunidad es ASN:ASN. Con el ASN de 4 bytes, necesita 8 bytes para codificarlo. Aunque la comunidad extendida del BGP permite codificar un AS de 4 bytes como campo de administrador global, el campo de administrador local solo tiene 2 bytes de espacio disponible. Por lo tanto, el atributo de comunidad extendida de 6 bytes tampoco es adecuado. Para superar esto, Junos OS le permite configurar el atributo de ruta transitiva opcional: una gran comunidad BGP de 12 bytes que proporciona el valor de 4 bytes más significativo para codificar el número del sistema autónomo como administrador global y los dos números restantes asignados de 4 bytes para codificar los valores locales definidos en RFC 8092. Puede configurar una gran comunidad BGP en los niveles jerárquico [edit policy-options community community-name members]
y [edit routing-options static route ip-address community]
. El formato de atributos de comunidad grande BGP tiene cuatro campos: large
:global administrator:assigned number:assigned number
.
La comunidad extendida específica de la dirección de unidifusión IPv6 BGP se codifica como un conjunto de valores de 20 bytes. El valor de 20 bytes se interpreta con el siguiente formato:
-
Los 2 bytes más significativos codifican el valor Tipo y Subtipo (valor alto (byte más significativo) y valor bajo (segundo byte más significativo)).
-
Los siguientes 16 bytes codifican la dirección de unidifusión IPv6. Es el administrador global en el RFC del IETF.
-
Los últimos 2 bytes codifican los valores locales definidos por el operador. Es administrador local en el RFC del IETF.
Los atributos de comunidad extendida BGP específicos de la dirección de unidifusión IPv6 están representados por una palabra clave ipv6-target
, ipv6-origin
o ipv6-extended
seguida de IPv6 y administrador local separados por <, > y :.
La longitud del valor del atributo de comunidades grandes del BGP debe ser un múltiplo distinto de cero de 12.
Consulte también
Ejemplo: Configuración de una política de enrutamiento para redistribuir rutas BGP con una etiqueta de comunidad específica en IS-IS
En este ejemplo se define una política que toma rutas BGP de la Edu
comunidad y las coloca en IS-IS con una métrica de 63.
Requisitos
No se necesita ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
Figura 1muestra la topología utilizada en este ejemplo.
En este ejemplo, los dispositivos A, B, C y D se encuentran en el sistema autónomo (AS) 1 y ejecutan IS-IS. Todos los dispositivos del AS 1, excepto el dispositivo D, ejecutan un BGP interno (IBGP).
El dispositivo E está en el AS 2 y tiene una sesión de emparejamiento BGP externo (EBGP) con el dispositivo C. El dispositivo E tiene dos rutas estáticas, 10.2.0.0/16 y 10.3.0.0/16. Estas rutas están etiquetadas con el atributo de comunidad Edu 2:5 y se anuncian mediante EBGP al dispositivo C.
El dispositivo C acepta las rutas BGP etiquetadas con el atributo de comunidad Edu 2:5, redistribuye las rutas en IS-IS y aplica una métrica IS-IS de 63 a estas rutas.
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1. En la sección #d205e62__d205e383 se describen los pasos del dispositivo C y del dispositivo E.
Configuración
Procedimiento
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 A
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.5/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0001.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo B
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.6/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.9/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0002.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.2 set routing-options autonomous-system 1
Dispositivo C
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.10/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.13/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces fe-1/2/2 unit 0 family inet address 10.0.0.25/30 set interfaces fe-1/2/2 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0003.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group external-peers type external set protocols bgp group external-peers export send-isis-and-direct set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.26 set protocols isis export Edu-to-isis set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 2 passive set protocols isis interface lo0.0 set policy-options policy-statement Edu-to-isis term 1 from protocol bgp set policy-options policy-statement Edu-to-isis term 1 from community Edu set policy-options policy-statement Edu-to-isis term 1 then metric 63 set policy-options policy-statement Edu-to-isis term 1 then accept set policy-options policy-statement send-isis-and-direct term 1 from protocol isis set policy-options policy-statement send-isis-and-direct term 1 from protocol direct set policy-options policy-statement send-isis-and-direct term 1 from route-filter 10.0.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 from route-filter 192.168.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 then accept set policy-options community Edu members 2:5 set routing-options router-id 192.168.0.3 set routing-options autonomous-system 1
Dispositivo D
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.14/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0004.00 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.4 set routing-options autonomous-system 1
Dispositivo E
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.26/30 set interfaces lo0 unit 7 family inet address 192.168.0.5/32 primary set interfaces lo0 unit 7 family inet address 10.2.0.1/32 set interfaces lo0 unit 7 family inet address 10.3.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.25 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add Edu set policy-options policy-statement statics then accept set policy-options community Edu members 2:5 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.5 set routing-options autonomous-system 2
Procedimiento paso a paso
En el ejemplo siguiente, debe explorar 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.
Para configurar el dispositivo E:
Configure las interfaces.
[edit interfaces] user@E# set fe-1/2/0 unit 0 family inet address 10.0.0.26/30 user@E# set lo0 unit 7 family inet address 192.168.0.5/32 primary user@E# set lo0 unit 7 family inet address 10.2.0.1/32 user@E# set lo0 unit 7 family inet address 10.3.0.1/32
Configure la
statics
directiva, que agrega elEdu
atributo community a las rutas estáticas.[edit policy-options] user@E# set policy-statement statics from protocol static user@E# set policy-statement statics then community add Edu user@E# set policy-statement statics then accept user@E# set community Edu members 2:5
Configure EBGP y aplique la
statics
política.[edit protocols bgp group external-peers] user@E# set type external user@E# set export statics user@E# set peer-as 1 user@E# set protocols bgp group external-peers neighbor 10.0.0.25
Configure las rutas estáticas.
[edit routing-options static] user@E# set route 10.2.0.0/16 reject user@E# set route 10.2.0.0/16 install user@E# set route 10.3.0.0/16 reject user@E# set route 10.3.0.0/16 install
Configure el ID de enrutador y el número de AS.
[edit routing-options] user@E# set router-id 192.168.0.5 user@E# set autonomous-system 2
Procedimiento paso a paso
En el ejemplo siguiente, debe explorar 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.
Para configurar el dispositivo C:
Configure las interfaces.
[edit interfaces] user@C# set fe-1/2/0 unit 0 family inet address 10.0.0.10/30 user@C# set fe-1/2/0 unit 0 family iso user@C# set fe-1/2/1 unit 0 family inet address 10.0.0.13/30 user@C# set fe-1/2/1 unit 0 family iso user@C# set fe-1/2/2 unit 0 family inet address 10.0.0.25/30 user@C# set fe-1/2/2 unit 0 family iso user@C# set lo0 unit 0 family inet address 192.168.0.3/32 user@C# set lo0 unit 0 family iso address 49.0002.0192.0168.0003.00
Configurar IBGP.
[edit protocols bgp group int] user@C# set type internal user@C# set local-address 192.168.0.3 user@C# set neighbor 192.168.0.1 user@C# set neighbor 192.168.0.2
Configure la política de Edu a isis, que redistribuye las rutas BGP etiquetadas con Edu aprendidas del dispositivo E y aplica una métrica de 63.
[edit policy-options] user@C# set policy-statement Edu-to-isis term 1 from protocol bgp user@C# set policy-statement Edu-to-isis term 1 from community Edu user@C# set policy-statement Edu-to-isis term 1 then metric 63 user@C# set policy-statement Edu-to-isis term 1 then accept user@C# set community Edu members 2:5
Habilite IS-IS en las interfaces y aplique la política Edu-to-isis.
[edit protocols isis] user@C# set export Edu-to-isis user@C# set interface fe-1/2/0.0 level 1 disable user@C# set interface fe-1/2/1.0 level 1 disable user@C# set interface fe-1/2/2.0 level 1 disable user@C# set interface fe-1/2/2.0 level 2 passive user@C# set interface lo0.0
Configure la política de envío y dirección de isis, que redistribuye las rutas al dispositivo E, a través de EBGP.
Sin esta directiva, el dispositivo E no tendría conectividad a las redes del AS 1.
[edit policy-options policy-statement send-isis-and-direct term 1] user@C# set from protocol isis user@C# set from protocol direct user@C# set from route-filter 10.0.0.0/16 orlonger user@C# set from route-filter 192.168.0.0/16 orlonger user@C# set then accept
Configure EBGP y aplique la política send-isis-and-direct.
[edit protocols bgp group external-peers] user@C# set type external user@C# set export send-isis-and-direct user@C# set peer-as 2 user@C# set neighbor 10.0.0.26
Configure el ID del enrutador y el número de sistema autónomo (AS).
[edit routing-options] user@C# set router-id 192.168.0.3 user@C# set autonomous-system 1
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.
Dispositivo E
user@E# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.26/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.5/32 {
primary;
}
address 10.2.0.1/32;
address 10.3.0.1/32;
}
}
}
user@E# show protocols
bgp {
group external-peers {
type external;
export statics;
peer-as 1;
neighbor 10.0.0.25;
}
}
user@E# show policy-options
policy-statement statics {
from protocol static;
then {
community add Edu;
accept;
}
}
community Edu members 2:5;
user@E# show routing-options
static {
route 10.2.0.0/16 {
reject;
install;
}
route 10.3.0.0/16 {
reject;
install;
}
}
router-id 192.168.0.5;
autonomous-system 2;
Dispositivo C
user@C# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.10/30;
}
family iso;
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.0.0.13/30;
}
family iso;
}
}
fe-1/2/2 {
unit 0 {
family inet {
address 10.0.0.25/30;
}
family iso;
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.3/32;
}
family iso {
address 49.0002.0192.0168.0003.00;
}
}
}
user@C# show protocols
bgp {
group int {
type internal;
local-address 192.168.0.3;
neighbor 192.168.0.1;
neighbor 192.168.0.2;
}
group external-peers {
type external;
export send-isis-and-direct;
peer-as 2;
neighbor 10.0.0.26;
}
}
isis {
export Edu-to-isis;
interface fe-1/2/0.0 {
level 1 disable;
}
interface fe-1/2/1.0 {
level 1 disable;
}
interface fe-1/2/2.0 {
level 1 disable;
level 2 passive;
}
interface lo0.0;
}
user@C# show policy-options
policy-statement Edu-to-isis {
term 1 {
from {
protocol bgp;
community Edu;
}
then {
metric 63;
accept;
}
}
}
policy-statement send-isis-and-direct {
term 1 {
from {
protocol [ isis direct ];
route-filter 10.0.0.0/16 orlonger;
route-filter 192.168.0.0/16 orlonger;
}
then accept;
}
}
community Edu members 2:5;
user@C# show routing-options
router-id 192.168.0.3;
autonomous-system 1;
Cuando termine de configurar el dispositivo, ingrese commit
en el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
Verificación del vecino IS-IS
Propósito
Compruebe que las rutas BGP del dispositivo E se comuniquen en la red IS-IS en el AS 1.
Acción
Desde el modo operativo, ingrese el comando show route protocol isis
.
user@D> show route protocol isis inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.0.4/30 *[IS-IS/18] 22:30:53, metric 30 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.8/30 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.24/30 *[IS-IS/18] 03:31:21, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.2.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 10.3.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.1/32 *[IS-IS/18] 03:40:28, metric 30 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.2/32 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.3/32 *[IS-IS/18] 22:30:53, metric 10 > to 10.0.0.13 via fe-1/2/0.0 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
Significado
Como era de esperar, las rutas 10.2.0.0/16 y 10.3.0.0/16 están en la tabla de enrutamiento del dispositivo D como rutas externas IS-IS con una métrica de 73. Si el dispositivo C no hubiera agregado 63 a la métrica, el dispositivo D tendría una métrica de 10 para estas rutas.
Ejemplo: Configuración de una directiva de enrutamiento que quita comunidades BGP
En este ejemplo se muestra cómo crear una política que acepte rutas BGP, pero quite comunidades BGP de las rutas.
Requisitos
No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
En este ejemplo se muestran dos dispositivos de enrutamiento con una conexión BGP externa (EBGP) entre ellos. El dispositivo R2 utiliza la sesión BGP para enviar dos rutas estáticas al dispositivo R1. En el dispositivo R1, una política de importación especifica que todas las comunidades BGP deben eliminarse de las rutas.
De forma predeterminada, cuando las comunidades se configuran en pares EBGP, se envían y aceptan. Para suprimir la aceptación de comunidades recibidas de un vecino, puede quitar todas las comunidades o un conjunto específico de comunidades. Cuando el resultado de una política es un conjunto vacío de comunidades, el atributo comunidad no se incluye. Para quitar todas las comunidades, primero defina un conjunto comodín de comunidades (aquí, la comunidad se denominawild
):
[edit policy-options] community wild members "* : *";
A continuación, en la instrucción de política de enrutamiento, especifique la community delete
acción:
[edit policy-options] policy-statement policy-name { term term-name { then community delete wild; } }
Para suprimir una comunidad particular de cualquier sistema autónomo (AS), defina la comunidad como community wild members "*:community-value"
.
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/1/0 unit 0 description to-R2 set interfaces fe-1/1/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 external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import remove-communities set policy-options policy-statement remove-communities term 1 from protocol bgp set policy-options policy-statement remove-communities term 1 then community delete wild set policy-options policy-statement remove-communities term 1 then accept set policy-options policy-statement remove-communities term 2 then reject set policy-options community wild members *:* set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
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 R1:
Configure las interfaces.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure BGP.
Aplique la política de importación a la sesión de emparejamiento BGP con el dispositivo R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import remove-communities
Configure la directiva de enrutamiento que elimina las comunidades.
[edit policy-options policy-statement remove-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 then community delete wild user@R1# set term 1 then accept user@R1# set term 2 then reject
Configure el número de sistema autónomo (AS) y el ID del enrutador.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
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.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure el ID del enrutador y el número de sistema autónomo (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configure BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Configure varias comunidades o configure una sola comunidad con varios miembros.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Configure las rutas estáticas.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Configure una política de enrutamiento que anuncie rutas estáticas en BGP y agregue la comunidad BGP a las rutas.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Aplicar la política de exportación.
[edit protocols bgp group external-peers] user@R2# set export statics
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.
Dispositivo R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import remove-communities; } } }
user@R1# show policy-options policy-statement remove-communities { term 1 { from protocol bgp; then { community delete wild; accept; } } term 2 { then reject; } } community wild members *:*;
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Dispositivo R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
Si ha terminado de configurar los dispositivos, ingrese commit
desde el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
Verificación de las rutas BGP
Propósito
Asegúrese de que la tabla de enrutamiento del dispositivo R1 no contenga comunidades BGP.
Acción
En el dispositivo R1, ejecute el
show route protocols bgp extensive
comando.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3
En el dispositivo R1, desactive la
community remove
configuración en la directiva de importación.[edit policy-options policy-statement remove-communities term 1] user@R1# deactivate then community delete wild user@R1# commit
En el dispositivo R1, ejecute el
show route protocols bgp extensive
comando para ver las comunidades anunciadas.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Significado
El resultado muestra que en la tabla de enrutamiento del dispositivo R1, las comunidades se suprimen en las rutas BGP enviadas desde el dispositivo R2. Cuando se desactiva la configuración de la community remove
directiva de importación del dispositivo R1, las comunidades ya no se suprimen.
Ejemplo: Configuración de una directiva de enrutamiento basada en el número de comunidades BGP
En este ejemplo se muestra cómo crear una directiva que acepte rutas BGP en función del número de comunidades BGP.
Requisitos
No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
En este ejemplo se muestran dos dispositivos de enrutamiento con una conexión BGP externa (EBGP) entre ellos. El dispositivo R2 utiliza la sesión BGP para enviar dos rutas estáticas al dispositivo R1. En el dispositivo R1, una política de importación especifica que las rutas recibidas por BGP pueden contener hasta cinco comunidades para que se consideren coincidentes. Por ejemplo, si una ruta contiene tres comunidades, se considera una coincidencia y se acepta. Si una ruta contiene seis o más comunidades, se considera que no coincide y se rechaza.
Es importante recordar que la política predeterminada para EBGP es aceptar todas las rutas. Para asegurarse de que se rechazan las rutas no coincidentes, debe incluir una then reject
acción al final de la definición de directiva.
Topología
Figura 3 muestra la red de ejemplo.
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/1/0 unit 0 description to-R2 set interfaces fe-1/1/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 external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import import-communities set policy-options policy-statement import-communities term 1 from protocol bgp set policy-options policy-statement import-communities term 1 from community-count 5 orlower set policy-options policy-statement import-communities term 1 then accept set policy-options policy-statement import-communities term 2 then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
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 R1:
Configure las interfaces.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure BGP.
Aplique la política de importación a la sesión de emparejamiento BGP con el dispositivo R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import import-communities
Configure la directiva de enrutamiento que envía rutas directas.
[edit policy-options policy-statement import-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 from community-count 5 orlower user@R1# set term 1 then accept user@R1# set term 2 then reject
Configure el número de sistema autónomo (AS) y el ID del enrutador.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
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.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure el ID del enrutador y el número de sistema autónomo (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configure BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Configure varias comunidades o configure una sola comunidad con varios miembros.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Configure las rutas estáticas.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Configure una política de enrutamiento que anuncie rutas estáticas en BGP y agregue la comunidad BGP a las rutas.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Aplicar la política de exportación.
[edit protocols bgp group external-peers] user@R2# set export statics
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.
Dispositivo R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import import-communities; } } }
user@R1# show policy-options policy-statement import-communities { term 1 { from { protocol bgp; community-count 5 orlower; } then accept; } term 2 { then reject; } }
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Dispositivo R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
Si ha terminado de configurar los dispositivos, ingrese commit
desde el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
Verificación de las rutas BGP
Propósito
Asegúrese de que la tabla de enrutamiento del dispositivo R1 contenga las rutas BGP esperadas.
Acción
En el dispositivo R1, ejecute el
show route protocols bgp
comando.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (3 active, 0 holddown, 2 hidden)
En el dispositivo R1, cambie la
community-count
configuración en la directiva de importación.[edit policy-options policy-statement import-communities term 1] user@R1# set from community-count 5 orhigher user@R1# commit
En el dispositivo R1, ejecute el
show route protocols bgp
comando.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.2.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0 10.3.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0
En el dispositivo R1, ejecute el
show route protocols bgp extensive
comando para ver las comunidades anunciadas.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Significado
El resultado muestra que en la tabla de enrutamiento del dispositivo R1, las rutas BGP enviadas desde el dispositivo R2 están ocultas. Cuando se modifica la configuración de la community-count
directiva de importación del dispositivo R1, las rutas BGP ya no se ocultan.