Exemple : Configuration d’une stratégie de routage pour annoncer le meilleur itinéraire externe à des homologues internes
La spécification du protocole BGP, telle que définie dans la RFC 1771, spécifie qu’un pair BGP doit annoncer à ses homologues internes le chemin externe de préférence la plus élevée, même si ce chemin n’est pas le meilleur globalement (en d’autres termes, même si le meilleur chemin est un chemin interne). En pratique, les implémentations BGP déployées ne respectent pas cette règle. Les raisons de s’écarter de la spécification sont les suivantes :
Minimiser la quantité d’informations annoncées. BGP s’adapte en fonction du nombre de chemins disponibles.
Éviter les boucles de routage et de transfert.
Il existe cependant plusieurs scénarios dans lesquels le comportement, spécifié dans la RFC 1771, consistant à annoncer la meilleure route externe pourrait être bénéfique. Il n’est pas toujours souhaitable de limiter les informations sur les chemins, car la diversité des chemins peut contribuer à réduire les temps de restauration. La publicité du meilleur chemin externe peut également résoudre les problèmes internes d’oscillation de route BGP (IBGP), comme décrit dans la RFC 3345, Border Gateway Protocol (BGP) Persistent Route Oscillation Condition.
L’instruction advertise-external
modifie le comportement d’un interlocuteur BGP pour annoncer le meilleur chemin externe aux homologues IBGP, même lorsque le meilleur chemin global est un chemin interne.
L’instruction advertise-external
est prise en charge à la fois au niveau du groupe et du voisinage. Si vous configurez l’instruction au niveau du voisin, vous devez la configurer pour tous les voisins d’un groupe. Dans le cas contraire, le groupe est automatiquement scindé en différents groupes.
L’option conditional
limite le comportement du paramètre, de sorte que l’itinéraire externe n’est annoncé que si le processus de advertise-external
sélection d’itinéraire atteint le point où la métrique MED (multiple exit discriminateator) est évaluée. Ainsi, une route externe n’est pas annoncée si elle possède, par exemple, un chemin AS moins bon (plus long) que celui du chemin actif. L’option conditional
limite l’annonce de chemin externe au moment où le meilleur chemin externe et le chemin actif sont égaux jusqu’à l’étape MED du processus de sélection de route. Notez que les critères utilisés pour sélectionner le meilleur chemin externe sont les mêmes, que l’option conditional
soit configurée ou non.
Junos OS prend également en charge la configuration d’une stratégie d’exportation BGP correspondant à l’état d’une route annoncée. Vous pouvez faire correspondre des itinéraires actifs ou inactifs, comme suit :
policy-options { policy-statement name{ from state (active|inactive); } }
Ce qualificatif ne correspond que lorsqu’il est utilisé dans le cadre d’une stratégie d’exportation. Lorsqu’une route est annoncée par un protocole qui peut annoncer des routes inactives (tel que BGP), state inactive
correspond aux routes annoncées à la suite des advertise-inactive
instructions and advertise-external
.
Par exemple, la configuration suivante peut être utilisée comme stratégie d’exportation BGP vers des homologues internes pour marquer les itinéraires annoncés en raison du paramètre avec une communauté définie par l’utilisateur advertise-external
. Cette communauté peut être utilisée ultérieurement par les routeurs de réception pour filtrer ces routes de la table de transfert. Un tel mécanisme peut être utilisé pour répondre aux préoccupations selon lesquelles les chemins publicitaires non utilisés pour le transfert par l’expéditeur pourraient conduire à des boucles de transfert.
user@host# show policy-options policy-statement mark-inactive { term inactive { from state inactive; then { community set comm-inactive; } } term default { from protocol bgp; then accept; } then reject; } community comm-inactive members 65536:65284;
Conditions préalables
Junos OS 9.3 ou version ultérieure est requis.
Présentation
Cet exemple montre trois périphériques de routage. L’appareil R2 dispose d’une connexion BGP externe (EBGP) à l’appareil R1. L’appareil R2 dispose d’une connexion IBGP à l’appareil R3.
L’appareil R1 annonce 172.16.6.0/24. Le périphérique R2 ne définit pas la préférence locale dans une stratégie d’importation pour les routes du périphérique R1, et donc 172.16.6.0/24 a la préférence locale par défaut de 100.
L’appareil R3 annonce 172.16.6.0/24 avec une préférence locale de 200.
Lorsque l’instruction n’est pas configurée sur le advertise-external
périphérique R2, 172.16.6.0/24 n’est pas annoncé par le périphérique R2 vers le périphérique R3.
Lorsque l’instruction est configurée sur le advertise-external
périphérique R2 sur la session vers le périphérique R3, 172.16.6.0/24 est annoncé par le périphérique R2 vers le périphérique R3.
Lorsqu’il advertise-external conditional
est configuré sur l’appareil R2 sur la session vers l’appareil R3, 172.16.6.0/24 n’est pas annoncé par l’appareil R2 vers l’appareil R3. Si vous supprimez le paramètre sur l’appareil then local-preference 200
R3 et ajoutez le paramètre sur l’appareil path-selection as-path-ignore
R2 (ce qui rend les critères de sélection du chemin égaux jusqu’à l’étape MED du processus de sélection de l’itinéraire), 172.16.6.0/24 est annoncé par l’appareil R2 vers l’équipement R3.
Pour configurer l’instruction sur un réflecteur de route, vous devez désactiver la advertise-external
réflexion intracluster avec l’instruction no-client-reflect
, et le cluster client doit être entièrement maillé pour empêcher l’envoi d’annonces de route redondantes.
Lorsqu’un périphérique de routage est configuré en tant que réflecteur de route pour un cluster, une route annoncée par le réflecteur de route est considérée comme interne si elle provient d’un homologue interne avec le même identificateur de cluster ou si les deux homologues n’ont pas configuré d’identificateur de cluster. Une route reçue d’un homologue interne qui appartient à un autre cluster, c’est-à-dire avec un identificateur de cluster différent, est considérée comme externe.
Topologie
Figure 1 montre l’exemple de réseau.

Configuration rapide de l’interface de ligne de commande affiche la configuration de tous les périphériques dans Figure 1.
Cette section #configuration148__policy-advertise-external-st décrit les étapes à suivre sur l’appareil R2.
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/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Appareil R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
Appareil R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
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 R2 :
Configurez les interfaces de l’appareil.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configurez OSPF ou un autre protocole IGP (Interior Gateway Protocol).
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
Configurez la connexion EBGP à l’appareil R1.
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
Configurez la connexion IBGP à l’appareil R3.
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
Ajoutez l’instruction
advertise-external
à la session d’appairage de groupe IBGP.[edit protocols bgp group int] user@R2# set advertise-external
Configurez le numéro du système autonome (AS) et l’ID du routeur.
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les show interfaces
commandes , 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.
user@R2# show interfaces fe-1/2/0 { unit 0{ description to-R1; family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { description to-R3; family inet { address 10.0.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; peer-as 100; neighbor 10.0.0.1; } group int { type internal; local-address 192.168.0.2; advertise-external; neighbor 192.168.0.3; } } ospf { area 0.0.0.0 { interface fe-1/2/1.0; interface lo0.0 { passive; } } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
Si 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 chemin BGP actif
- Vérification de l’annonce d’itinéraire externe
- Vérification de l’itinéraire sur l’appareil R3
- Expérimentation de l’option conditionnelle
Vérification du chemin BGP actif
But
Sur l’appareil R2, assurez-vous que le préfixe 172.16.6.0/24 figure dans la table de routage et qu’il possède le chemin d’accès actif attendu.
Action
user@R2> show route 172.16.6 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0 [BGP/170] 03:23:03, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0
Sens
L’équipement R2 reçoit l’itinéraire 172.16.6.0/24 de l’équipement R1 et de l’équipement R3. L’itinéraire à partir de l’appareil R3 est le chemin actif, tel que désigné par l’astérisque (*). Le chemin actif a la préférence locale la plus élevée. Même si les préférences locales des deux routes étaient égales, la route de l’appareil R3 resterait active car elle a le chemin AS le plus court.
Vérification de l’annonce d’itinéraire externe
But
Sur l’appareil R2, assurez-vous que l’itinéraire 172.16.6.0/24 est annoncé vers l’appareil R3.
Action
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
Sens
L’appareil R2 annonce l’itinéraire 172.16.6.0/24 vers l’appareil R3.
Vérification de l’itinéraire sur l’appareil R3
But
Assurez-vous que le préfixe 172.16.6.0/24 se trouve dans la table de routage du périphérique R3.
Action
user@R3> show route 172.16.6.0/24 inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[Static/5] 03:34:14 Reject [BGP/170] 06:34:43, localpref 100, from 192.168.0.2 AS path: 100 I, validation-state: unverified > to 10.0.0.5 via fe-1/2/0.6
Sens
L’équipement R3 dispose de la route statique et de la route BGP pour 172.16.6.0/24.
Notez que la route BGP est masquée sur l’appareil R3 si la route n’est pas accessible ou si le saut suivant ne peut pas être résolu. Pour répondre à cette exigence, cet exemple inclut une route statique par défaut sur l’appareil R3 (static route 0.0.0.0/0 next-hop 10.0.0.5
).
Expérimentation de l’option conditionnelle
But
Découvrez comment cette conditional
option fonctionne dans le contexte de l’algorithme de sélection de chemin BGP.
Action
Sur l’appareil R2, ajoutez l’option
conditional
.[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
Sur l’appareil R2, vérifiez si l’itinéraire 172.16.6.0/24 est annoncé vers l’appareil R3.
user@R2> show route advertising-protocol bgp 192.168.0.3
Comme prévu, l’itinéraire n’est plus annoncé. Vous devrez peut-être attendre quelques secondes pour voir ce résultat.
Sur l’appareil R3, désactivez l’action de
then local-preference
stratégie.[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
Sur l’appareil R2, assurez-vous que les préférences locales des deux chemins sont égales.
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0
Sur l’appareil R2, ajoutez l’instruction
as-path-ignore
.[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
Sur l’appareil R2, vérifiez si l’itinéraire 172.16.6.0/24 est annoncé vers l’appareil R3.
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
Comme prévu, l’itinéraire est maintenant annoncé car la longueur du chemin AS est ignorée et parce que les préférences locales sont égales.