Stratégies de routage pour les communautés BGP
Comprendre les communautés BGP, les communautés étendues et les grandes communautés en fonction des conditions de correspondance des stratégies de routage
Une communauté BGP est un groupe de destinations qui partagent une propriété commune. Les informations sur la communauté sont incluses en tant qu’attribut de chemin dans les messages de mise à jour BGP. Ces informations identifient les membres de la communauté et vous permettent d’effectuer des actions sur un groupe sans avoir à élaborer sur chaque membre. Vous pouvez utiliser les attributs de communauté et de communautés étendues pour déclencher des décisions de routage, telles que l’acceptation, le rejet, la préférence ou la redistribution.
Vous pouvez affecter des balises de communauté à des routes non-BGP via la configuration (pour les routes statiques, agrégées ou générées) ou une stratégie de routage d’importation. Ces balises peuvent ensuite être mises en correspondance lorsque BGP exporte les routes.
Une valeur de communauté est un champ 32 bits divisé en deux sections principales. Les 16 premiers bits de la valeur codent le numéro AS du réseau à l’origine de la communauté, tandis que les 16 derniers bits portent un numéro unique attribué par l’AS. Ce système tente de garantir un ensemble unique de valeurs communautaires au monde pour chaque AS dans l’Internet. Junos OS utilise la notation as-number:community-value
, où chaque valeur est un nombre décimal. Les valeurs AS de 0 et 65 535 sont réservées, de même que toutes les valeurs de la communauté à l’intérieur de ces nombres AS. Chaque communauté, ou ensemble de communautés, se voit attribuer un nom dans la hiérarchie de configuration [edit policy-options]
. Le nom de la communauté l’identifie de manière unique à l’équipement de routage et sert de méthode par laquelle les routes sont catégorisées. Par exemple, une route dont la valeur de communauté est 64510 :1111 peut appartenir à la communauté nommée AS64510-routes
. Le nom de communauté est également utilisé dans une stratégie de routage comme critère de correspondance ou comme action. La syntaxe de commande pour créer une communauté est la suivante : options community name members [community-ids]
de politique . Il s’agit community-ids
soit d’une seule valeur communautaire, soit de plusieurs valeurs communautaires. Lorsque plusieurs valeurs sont affectées à un nom de communauté, le périphérique de routage l’interprète comme un ET logique des valeurs de communauté. En d’autres termes, une route doit avoir toutes les valeurs configurées avant de se voir attribuer le nom de communauté.
L’attribut standard community est de quatre octets. Les améliorations apportées à la mise en réseau, telles que les VPN, ont des exigences fonctionnelles qui peuvent être satisfaites par un attribut tel qu’une communauté. Cependant, la valeur communautaire de 4 octets n’offre pas suffisamment d’expansion et de flexibilité pour répondre aux exigences VPN. Cela conduit à la création de communautés étendues. Une communauté étendue est une valeur de 8 octets qui est également divisée en deux sections principales. Les 2 premiers octets de la communauté codent un champ de type tandis que les 6 derniers octets contiennent un ensemble unique de données dans un format défini par le champ de type. Les communautés étendues offrent un plus grand éventail de possibilités de regroupement ou de catégorisation des communautés.
Le format d’attribut des communautés étendues BGP comporte trois champs : type:administrator:assigned-number
. Le périphérique de routage s’attend à ce que vous utilisiez les mots target
ou origin
que vous représentiez le champ de type. Le champ administrateur utilise un nombre décimal pour l’adresse AS ou IPv4, tandis que le champ numérique attribué attend un nombre décimal ne dépassant pas la taille du champ (65 535 pour 2 octets ou 4 294 967 295 pour 4 octets).
Lorsque vous spécifiez des ID de communauté pour les attributs de communauté standard et étendue, vous pouvez utiliser des expressions régulières de style UNIX. La seule exception concerne les stratégies d’importation VPN (vrf-import
), qui ne prennent pas en charge les expressions régulières pour l’attribut communautés étendues.
Les attributs de communautés BGP standard sont un attribut de longueur variable constitué d’un ensemble d’une ou plusieurs valeurs de 4 octets divisé en valeurs de 16 bits. Le mot le plus significatif est interprété comme un nombre AS et le mot le moins significatif est une valeur définie localement attribuée par l’opérateur du AS. Depuis l’adoption des ASN sur 4 octets, la communauté BGP standard sur 4 octets et la communauté BGP étendue sur 6 octets ne peuvent plus prendre en charge les attributs de communauté BGP. Les opérateurs encodent souvent le numéro AS dans la partie locale de la communauté BGP, ce qui signifie que le format de la communauté est parfois ASN :ASN. Avec l’ASN de 4 octets, vous avez besoin de 8 octets pour l’encoder. Bien que la communauté étendue BGP permette d’encoder un AS de 4 octets en tant que champ d’administrateur global, le champ d’administrateur local ne dispose que de 2 octets d’espace disponible. Ainsi, l’attribut de communauté étendu de 6 octets n’est pas non plus approprié. Pour surmonter ce problème, Junos OS vous permet de configurer un attribut de chemin transitif facultatif : une grande communauté BGP de 12 octets qui fournit la valeur de 4 octets la plus significative pour coder le numéro de système autonome en tant qu’administrateur global et les deux autres numéros attribués sur 4 octets pour coder les valeurs locales telles que définies dans le RFC 8092. Vous pouvez configurer BGP grande communauté au niveau de la [edit policy-options community community-name members]
hiérarchie et [edit routing-options static route ip-address community]
. Le format des attributs de grande communauté BGP comporte quatre champs : large
:global administrator:assigned number:assigned number
.
La communauté étendue spécifique à l’adresse unicast IPv6 BGP est codée sous la forme d’un ensemble de valeurs de 20 octets. La valeur de 20 octets est interprétée dans le format suivant :
-
Les 2 octets les plus significatifs encodent la valeur Type et Sous-type (valeur élevée (octet le plus significatif) et valeur faible (deuxième octet le plus significatif)).
-
Les 16 octets suivants codent l’adresse unicast IPv6. Il est l’administrateur général de la RFC IETF.
-
Les 2 derniers octets codent les valeurs locales définies par l’opérateur. Il est administrateur local dans la RFC de l’IETF.
Les attributs de la communauté étendue BGP spécifiques à l’adresse unicast IPv6 sont représentés par un mot-clé ipv6-target
, ou ipv6-extended
suivi d’IPv6 et d’un administrateur local séparés par <, ipv6-origin
> et :.
La longueur de la valeur de l’attribut des grandes communautés BGP doit être un multiple différent de zéro de 12.
Voir également
Exemple : Configuration d’une stratégie de routage pour redistribuer les routes BGP avec une balise de communauté spécifique dans IS-IS
Cet exemple définit une stratégie qui prend les routes BGP de la communauté et les Edu
place dans IS-IS avec une métrique de 63.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
Figure 1 Affiche la topologie utilisée dans cet exemple.
Dans cet exemple, l’appareil A, l’appareil B, l’appareil C et l’équipement D font partie du système autonome (AS) 1 et exécutent IS-IS. Tous les équipements AS 1, à l’exception de l’appareil D, exécutent le BGP interne (IBGP).
L’équipement E se trouve dans l’AS 2 et dispose d’une session d’appairage BGP (EBGP) externe avec l’équipement C. L’équipement E possède deux routes statiques, 10.2.0.0/16 et 10.3.0.0/16. Ces routes sont balisées avec l’attribut de communauté Edu 2 :5 et sont annoncées par le biais d’EBGP à l’appareil C.
L’appareil C accepte les routes BGP marquées avec l’attribut de communauté Edu 2 :5, redistribue les routes dans IS-IS et applique une métrique IS-IS de 63 à ces routes.
Configuration rapide de l’interface de ligne de commande affiche la configuration de tous les périphériques dans Figure 1. Cette section #d205e62__d205e383 décrit les étapes à suivre sur les appareils C et E.
Configuration
Procédure
- Configuration rapide de l’interface de ligne de commande
- Procédure étape par étape
- Procédure étape par étape
- Résultats
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
Appareil 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
Appareil 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
Appareil 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
Appareil 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
Dispositif 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
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode de configuration dans le Guide de l’utilisateur de l’interface de ligne de commande.
Pour configurer l’appareil E :
Configurez les 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
Configurez la
statics
stratégie, qui ajoute l’attributEdu
community aux routes statiques.[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
Configurez EBGP et appliquez la
statics
stratégie.[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
Configurez les routes statiques.
[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
Configurez l’ID du routeur et le numéro AS.
[edit routing-options] user@E# set router-id 192.168.0.5 user@E# set autonomous-system 2
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode de configuration dans le Guide de l’utilisateur de l’interface de ligne de commande.
Pour configurer l’appareil C :
Configurez les 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
Configurez 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
Configurez la stratégie Edu-to-isis, qui redistribue les routes BGP balisées Edu apprises à partir de l’appareil E et applique une métrique 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
Activez IS-IS sur les interfaces et appliquez la stratégie 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
Configurez la stratégie send-isis-and-direct, qui redistribue les routes vers l’équipement E, via EBGP.
Sans cette stratégie, l’appareil E n’aurait pas de connectivité aux réseaux de l’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
Configurez EBGP et appliquez la stratégie 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
Configurez l’ID du routeur et le numéro du système autonome (AS).
[edit routing-options] user@C# set router-id 192.168.0.3 user@C# set autonomous-system 1
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces
, show protocols
, show policy-options
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
Dispositif 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;
Appareil 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;
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification du voisin IS-IS
But
Vérifiez que les routes BGP de l’appareil E sont communiquées sur le réseau IS-IS dans l’AS 1.
Action
À partir du mode opérationnel, entrez la show route protocol isis
commande.
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)
Sens
Comme prévu, les routes 10.2.0.0/16 et 10.3.0.0/16 figurent dans la table de routage de l’appareil D en tant que routes externes IS-IS avec une métrique de 73. Si l’appareil C n’avait pas ajouté 63 à la métrique, l’appareil D aurait une métrique de 10 pour ces itinéraires.
Exemple : Configuration d’une stratégie de routage qui supprime les communautés BGP
Cet exemple montre comment créer une stratégie qui accepte les routes BGP, mais supprime les communautés BGP des routes.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
Cet exemple montre deux périphériques de routage séparés par une connexion BGP externe (EBGP). L’équipement R2 utilise la session BGP pour envoyer deux routes statiques à l’équipement R1. Sur l’appareil R1, une stratégie d’importation spécifie que toutes les communautés BGP doivent être supprimées des routes.
Par défaut, lorsque les communautés sont configurées sur des homologues EBGP, elles sont envoyées et acceptées. Pour supprimer l’acceptation des communautés reçues d’un voisin, vous pouvez supprimer toutes les communautés ou un ensemble spécifié de communautés. Lorsque le résultat d’une stratégie est un ensemble vide de communautés, l’attribut communauté n’est pas inclus. Pour supprimer toutes les communautés, commencez par définir un ensemble générique de communautés (ici, la communauté est nomméewild
) :
[edit policy-options] community wild members "* : *";
Ensuite, dans l’instruction de stratégie de routage, spécifiez l’action community delete
:
[edit policy-options] policy-statement policy-name { term term-name { then community delete wild; } }
Pour supprimer une communauté particulière de tout système autonome (AS), définissez la communauté comme community wild members "*:community-value"
.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
Appareil 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
Appareil 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
Procédure
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer l’appareil R1 :
Configurez les 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
Configurez BGP.
Appliquez la stratégie d’importation à la session d’appairage BGP avec l’appareil 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
Configurez la stratégie de routage qui supprime les communautés.
[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
Configurez le numéro du système autonome (AS) et l’ID du routeur.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer l’appareil R2 :
Configurez les 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
Configurez l’ID du routeur et le numéro du système autonome (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configurez 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
Configurez plusieurs communautés ou configurez une seule communauté avec plusieurs membres.
[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
Configurez les routes statiques.
[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
Configurez une stratégie de routage qui annonce les routes statiques dans BGP et ajoute la communauté BGP aux routes.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Appliquez la stratégie d’exportation.
[edit protocols bgp group external-peers] user@R2# set export statics
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces
, show protocols
, show policy-options
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
Appareil 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;
Appareil 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 vous avez terminé de configurer les périphériques, passez commit
en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification des routes BGP
But
Assurez-vous que la table de routage sur l’appareil R1 ne contient pas de communautés BGP.
Action
Sur l’appareil R1, exécutez la
show route protocols bgp extensive
commande.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
Sur l’appareil R1, désactivez la configuration dans la
community remove
stratégie d’importation.[edit policy-options policy-statement remove-communities term 1] user@R1# deactivate then community delete wild user@R1# commit
Sur l’appareil R1, exécutez la
show route protocols bgp extensive
commande pour afficher les communautés annoncées.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
Sens
La sortie montre que dans la table de routage de l’appareil R1, les communautés sont supprimées dans les routes BGP envoyées à partir de l’appareil R2. Lorsque le paramètre de la community remove
stratégie d’importation de l’appareil R1 est désactivé, les communautés ne sont plus supprimées.
Exemple : Configuration d’une stratégie de routage basée sur le nombre de communautés BGP
Cet exemple montre comment créer une stratégie qui accepte les routes BGP en fonction du nombre de communautés BGP.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
Cet exemple montre deux périphériques de routage séparés par une connexion BGP externe (EBGP). L’équipement R2 utilise la session BGP pour envoyer deux routes statiques à l’équipement R1. Sur l’appareil R1, une stratégie d’importation spécifie que les routes reçues BGP peuvent contenir jusqu’à cinq communautés pour être considérées comme une correspondance. Par exemple, si un itinéraire contient trois communautés, il est considéré comme correspondant et accepté. Si un itinéraire contient six communautés ou plus, il est considéré comme non correspondant et est rejeté.
Il est important de se rappeler que la stratégie par défaut d’EBGP est d’accepter tous les itinéraires. Pour vous assurer que les routes qui ne correspondent pas sont rejetées, vous devez inclure une then reject
action à la fin de la définition de stratégie.
Topologie
Figure 3 montre l’exemple de réseau.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
Appareil 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
Appareil 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
Procédure
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer l’appareil R1 :
Configurez les 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
Configurez BGP.
Appliquez la stratégie d’importation à la session d’appairage BGP avec l’appareil 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
Configurez la stratégie de routage qui envoie des routes directes.
[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
Configurez le numéro du système autonome (AS) et l’ID du routeur.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer l’appareil R2 :
Configurez les 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
Configurez l’ID du routeur et le numéro du système autonome (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configurez 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
Configurez plusieurs communautés ou configurez une seule communauté avec plusieurs membres.
[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
Configurez les routes statiques.
[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
Configurez une stratégie de routage qui annonce les routes statiques dans BGP et ajoute la communauté BGP aux routes.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Appliquez la stratégie d’exportation.
[edit protocols bgp group external-peers] user@R2# set export statics
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces
, show protocols
, show policy-options
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
Appareil 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;
Appareil 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 vous avez terminé de configurer les périphériques, passez commit
en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification des routes BGP
But
Assurez-vous que la table de routage sur l’appareil R1 contient les routes BGP attendues.
Action
Sur l’appareil R1, exécutez la
show route protocols bgp
commande.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (3 active, 0 holddown, 2 hidden)
Sur l’appareil R1, modifiez la configuration dans la
community-count
stratégie d’importation.[edit policy-options policy-statement import-communities term 1] user@R1# set from community-count 5 orhigher user@R1# commit
Sur l’appareil R1, exécutez la
show route protocols bgp
commande.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
Sur l’appareil R1, exécutez la
show route protocols bgp extensive
commande pour afficher les communautés annoncées.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
Sens
La sortie montre que dans la table de routage de l’appareil R1, les routes BGP envoyées à partir de l’appareil R2 sont masquées. Lorsque le paramètre de la community-count
stratégie d’importation de l’appareil R1 est modifié, les routes BGP ne sont plus masquées.