Stratégies de routage pour les communautés BGP
Comprendre les communautés BGP, les communautés étendues et les grandes communautés en tant que conditions de correspondance des stratégies de routage
Une communauté BGP est un groupe de destinations qui partagent une propriété commune. Les informations de 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 community et extended communities 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 par le biais d’une configuration (pour les routes statiques, agrégées ou générées) ou d’une politique de routage d’importation. Ces balises peuvent ensuite être mises en correspondance lorsque BGP exporte les routes.
Une valeur communautaire est un champ de 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 sur Internet. Junos OS utilise une notation de 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 communautaires comprises dans ces numéros AS. Chaque communauté, ou ensemble de communautés, reçoit un nom dans la [edit policy-options] hiérarchie de configuration. Le nom de la communauté l’identifie de manière unique au périphérique de routage et sert de méthode de catégorisation des routes. Par exemple, une route avec une valeur de communauté de 64510:1111 peut appartenir à la communauté nommée AS64510-routes. Le nom de la communauté est également utilisé dans une politique de routage comme critère de correspondance ou comme action. La syntaxe de commande pour créer une communauté est : policy-options community name members [community-ids]. 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 interprète cela 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 communautaire normal est de quatre octets. Les améliorations réseau, telles que les VPN, ont des exigences de fonctionnalité qui peuvent être satisfaites par un attribut tel qu’une communauté. Cependant, la valeur communautaire de 4 octets n’offre pas assez d’extension 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é encodent un champ type tandis que les 6 derniers octets portent un ensemble unique de données dans un format défini par le champ type. Les communautés étendues offrent une plus grande portée pour regrouper ou catégoriser les communautés.
Le format d’attribut des communautés étendues BGP comporte trois champs : type:administrator:assigned-number. L’équipement de routage s’attend à ce que vous utilisiez les mots target ou origin que vous représentiez le champ type. Le champ administrateur utilise un nombre décimal pour l’adresse AS ou IPv4, tandis que le champ de numéro 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 étendus, 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 composé d’un ensemble d’une ou plusieurs valeurs de 4 octets qui ont été divisées en valeurs de 16 bits. Le mot le plus significatif est interprété comme un nombre d’AS et le mot le moins significatif est une valeur définie localement attribuée par l’opérateur de l’AS. Depuis l’adoption des ASN de 4 octets, la communauté BGP standard de 4 octets et la communauté étendue BGP de 6 octets ne peuvent plus prendre en charge les attributs de communauté BGP. Les opérateurs codent souvent le numéro AS dans la partie locale de la communauté BGP, ce qui signifie que parfois le format de la communauté est 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 communautaire étendu de 6 octets est également inadapté. 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 la plus significative de 4 octets pour coder le numéro du système autonome en tant qu’administrateur global et les deux autres numéros attribués de 4 octets pour coder les valeurs locales telles que définies dans la norme RFC 8092. Vous pouvez configurer une grande communauté BGP au niveau de la [edit policy-options community community-name members] [edit routing-options static route ip-address community] hiérarchie. Le format des attributs de grande communauté BGP comporte quatre champs : large:global administrator:assigned number:assigned number.
L’adresse unicast IPv6 de BGP, une communauté étendue spécifique 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 codent la valeur Type et Sous-type (valeur élevée (octet le plus significatif) et valeur Low (deuxième octet le plus significatif)).
-
Les 16 octets suivants codent l’adresse unicast IPv6. Il est l’administrateur général de l’IETF RFC.
-
Les 2 derniers octets encodent les valeurs locales définies par l’opérateur. Il est administrateur local dans l’IETF RFC.
Les attributs IPv6 unicast adresse spécifiques BGP de communauté étendue sont représentés par un mot-clé ipv6-target, ipv6-originou ipv6-extended suivis d’IPv6 et d’administrateur local séparés par <, > et :.
La longueur de la valeur de l’attribut Grandes communautés BGP doit être un multiple non nul de 12.
Voir aussi
Exemple : configuration d’une stratégie de routage pour redistribuer des 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 Edu communauté et les place dans IS-IS avec une métrique de 63.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Vue d’ensemble
La figure 1 illustre la topologie utilisée dans cet exemple.
Dans cet exemple, l’appareil A, l’appareil B, l’appareil C et l’appareil D se trouvent dans le système autonome (AS) 1 et exécutent IS-IS. Tous les appareils AS 1, à l’exception du périphérique D, exécutent un protocole BGP interne (IBGP).
L’équipement E est dans AS 2 et dispose d’une session d’appairage BGP (EBGP) externe avec l’équipement C. L’équipement E a 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’équipement C.
L’équipement C accepte les routes BGP balisé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.
La configuration rapide de la CLI montre la configuration de tous les appareils de la Figure 1. La section #d10e65__d10e386 décrit les étapes sur l’appareil C et l’appareil E.
La configuration
Procédure
Configuration rapide de la CLI
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 le CLI au niveau de la [edit] hiérarchie.
Équipement 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
Équipement 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
Équipement 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
Équipement 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
Équipement 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 la CLI, consultez Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI.
Pour configurer l’équipement 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
staticsstratégie, qui ajoute l’attributEducommunity 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
staticsstraté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 la CLI, consultez Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI.
Pour configurer l’équipement 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-à-isis, qui redistribue les routes BGP étiqueté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 politique d’envoi isis and direct, qui redistribue les routes vers l’équipement E, via EBGP.
Sans cette stratégie, l’équipement E ne serait pas connecté aux réseaux d’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 politique d’envoi isis et 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
En mode configuration, confirmez votre configuration en entrant les show interfacescommandes , show protocolsshow 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.
Équipement 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;
Équipement 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, entrez en commit mode configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification du voisin IS-IS
Objet
Vérifiez que les routes BGP de l’équipement E sont communiquées sur le réseau IS-IS dans l’AS 1.
Mesures à prendre
À 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)
Signification
Comme prévu, les routes 10.2.0.0/16 et 10.3.0.0/16 sont dans la table de routage de Device D en tant que routes externes IS-IS avec une métrique de 73. Si l’appareil C n’avait pas ajouté 63 à la mesure, l’appareil D aurait une mesure de 10 pour ces routes.
Exemple : configuration d’une stratégie de routage qui supprime des 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.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Vue d’ensemble
Cet exemple montre deux équipements de routage reliés par une connexion BGP (EBGP) externe. 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 des communautés sont configurées sur des pairs EBGP, elles sont envoyées et acceptées. Pour supprimer l’acceptation des communautés reçue d’un voisin, vous pouvez supprimer toutes les communautés ou un ensemble spécifié de communautés. Lorsqu’une stratégie génère un ensemble vide de communautés, l’attribut communauté n’est pas inclus. Pour supprimer toutes les communautés, définissez d’abord un ensemble générique de communautés (ici, la communauté est nommée wild) :
[edit policy-options] community wild members "* : *";
Ensuite, dans l’instruction de la politique 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".
Topologie
La figure 2 montre l’exemple de réseau.
La configuration
Configuration rapide de la CLI
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 le CLI 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 la CLI, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI de 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 politique 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 la CLI, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI de 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 communauté unique 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 politique 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
En mode configuration, confirmez votre configuration en entrant les show interfacescommandes , show protocolsshow 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 appareils, entrez en commit mode configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification des routes BGP
Objet
Assurez-vous que la table de routage sur l’appareil R1 ne contient pas de communautés BGP.
Mesures à prendre
-
Sur l’appareil R1, exécutez la
show route protocols bgp extensivecommande.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
community removeconfiguration dans la 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 extensivecommande pour afficher les communautés publié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
Signification
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 par l’équipement 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 en fonction du 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.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Vue d’ensemble
Cet exemple montre deux équipements de routage reliés par une connexion BGP (EBGP) externe. 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 par BGP peuvent contenir jusqu’à cinq communautés pour être considérées comme compatibles. Par exemple, si un itinéraire contient trois communautés, il est considéré comme une correspondance et est accepté. Si une route contient six communautés ou plus, elle est considérée comme non correspondante et est rejetée.
Il est important de se rappeler que la politique par défaut d’EBGP est d’accepter toutes les routes. Pour vous assurer que les routes sans correspondance sont rejetées, vous devez inclure une then reject action à la fin de la définition de stratégie.
Topologie
La figure 3 montre le réseau exemple.
La configuration
Configuration rapide de la CLI
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 le CLI 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 la CLI, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI de 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 politique 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 la CLI, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de la CLI de 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 communauté unique 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 politique 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
En mode configuration, confirmez votre configuration en entrant les show interfacescommandes , show protocolsshow 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 appareils, entrez en commit mode configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification des routes BGP
Objet
Assurez-vous que la table de routage de l’équipement R1 contient les routes BGP attendues.
Mesures à prendre
-
Sur l’appareil R1, exécutez la
show route protocols bgpcommande.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (3 active, 0 holddown, 2 hidden)
-
Sur l’appareil R1, modifiez la
community-countconfiguration dans la 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 bgpcommande.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 extensivecommande pour afficher les communautés publié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
Signification
La sortie montre que dans la table de routage de l’appareil R1, les routes BGP envoyées par l’équipement R2 sont masquées. Lorsque le paramètre de la stratégie d’importation de l’appareil community-count R1 est modifié, les routes BGP ne sont plus masquées.