Ce document décrit la fonction de l’algorithme du meilleur chemin BGP (Border Gateway Protocol).
Les routeurs BGP reçoivent généralement plusieurs chemins vers la même destination. L'algorithme du meilleur chemin BGP détermine le meilleur chemin à installer dans la table de routage IP et à utiliser pour le transfert du trafic.
Supposons que tous les chemins qu’un routeur reçoit pour un préfixe particulier sont organisés dans une liste. La liste est similaire à la sortie de la commande show ip bgp longer-prefixes. Dans ce cas, certains chemins ne sont pas considérés comme des candidats pour le meilleur chemin. De tels chemins n'ont généralement pas l'indicateur valide dans le résultat de la commande show ip bgp longer-prefixes. Les routeurs ignorent les chemins dans les circonstances suivantes :
Les chemins qui sont marqués comme non synchronisés dans la sortie show ip bgp longer-prefixes.
Si la synchronisation BGP est activée, il doit y avoir une correspondance pour le préfixe dans la table de routage IP afin qu'un chemin BGP interne (iBGP) soit considéré comme un chemin valide. À l'origine, la synchronisation BGP était activée par défaut dans le logiciel Cisco IOS®. Si la route qui correspond est apprise d'un voisin OSPF (Open Shortest Path First), son ID de routeur OSPF doit correspondre à l'ID de routeur BGP du voisin iBGP. La plupart des utilisateurs préfèrent désactiver la synchronisation avec l'utilisation de la sous-commande no synchronization BGP.
Chemins pour lesquels le TRONÇON_SUIVANT est inaccessible.
Assurez-vous qu'une route IGP (Interior Gateway Protocol) vers le tronçon suivant est associée au chemin.
Chemins à partir d'un voisin BGP externe (eBGP) si le système autonome local (AS) apparaît dans AS_PATH.
De tels chemins sont refusés lors de l'entrée dans le routeur, et ne sont même pas installés dans la base d'informations de routage BGP (RIB). Il en va de même pour tout chemin refusé par une stratégie de routage implémentée via l'accès, le préfixe, AS_PATH ou des listes de communauté, sauf si vous avez configuré la reconfiguration logicielle entrante de voisin pour le voisin.
Si vous avez activé bgp apply-first-as et que la mise à jour ne contient pas le système autonome du voisin comme premier numéro de système autonome dans AS_SEQUENCE.
Dans ce cas, le routeur envoie une notification et ferme la session.
Les chemins qui sont marqués comme (received-only) dans la show ip bgp longer-prefixes sortie
La stratégie a rejeté ces chemins. Cependant, le routeur a stocké les chemins, car vous avez configuré soft-reconfiguration inbound pour le voisin qui envoie le chemin.
BGP attribue le premier chemin valide comme meilleur chemin actuel. BGP compare ensuite le meilleur chemin avec le chemin suivant dans la liste, jusqu'à ce que BGP atteigne la fin de la liste des chemins valides. Cette liste fournit les règles qui sont utilisées afin de déterminer le meilleur chemin :
Préférez le chemin avec le POIDS le plus élevé.
Préférez le chemin avec le LOCAL_PREF le plus élevé.
Préférez le chemin qui a été localement émis via une sous-commande network ou aggregate BGP ou via la redistribution à partir d'un IGP.
Les chemins locaux provenant des commandes network ou redistribute sont préférés aux agrégats locaux provenant de la commande aggregate-address.
Préférez le chemin avec le AS_PATH le plus court.
Préférez le chemin dont le type d'origine est le plus faible.
Préférez le chemin avec le discriminateur à sorties multiples (MED) le plus bas.
Préférez eBGP aux chemins iBGP.
Si le meilleur chemin est sélectionné, passez à l'étape 9 (multichemin).
Préférez le chemin avec la métrique IGP la plus basse au prochain saut BGP.
Continuer, même si le meilleur chemin est déjà sélectionné.
Déterminez si plusieurs chemins nécessitent une installation dans la table de routage pour BGP Multipath.
Continuer, si le meilleur chemin n'est pas encore sélectionné.
Lorsque les deux chemins sont externes, préférez le chemin qui a été reçu en premier (le plus ancien).
Cette étape minimise le routage-flap parce qu'un nouveau chemin ne déplace pas un chemin plus ancien, même si le nouveau chemin serait le chemin préféré en fonction des critères de décision suivants (étapes 11, 12 et 13).
Ignorez cette étape si l'un de ces éléments est vrai :
Vous avez activé la commande bgp best path compare-routerid.
L’ID de routeur est le même pour plusieurs chemins, car les routes ont été reçues du même routeur.
Il n'existe actuellement aucun meilleur chemin.
Le meilleur chemin actuel peut être perdu lorsque, par exemple, le voisin qui offre le chemin tombe en panne.
Préférez la route qui vient du routeur BGP avec l'ID de routeur le plus bas.
S'il n'est pas configuré manuellement, l'ID de routeur est sélectionné comme adresse IP la plus élevée sur une interface de bouclage. Si aucune interface de bouclage n’existe, elle est sélectionnée comme adresse IP la plus élevée sur une interface physique active. Vous pouvez utiliser la commande bgp router-id pour définir manuellement l'ID de routeur.
Si l'ID de routeur ou d'émetteur est le même pour plusieurs chemins, préférez le chemin avec la longueur minimale de la liste de clusters.
Ceci est uniquement présent dans les environnements BGP RR. Il permet aux clients d'appairer des RR ou des clients dans d'autres clusters. Dans ce scénario, le client doit connaître l'attribut BGP spécifique au RR.
Préférez le chemin qui vient de l'adresse de voisin la plus basse.
Cette adresse est l'adresse IP qui est utilisée dans la neighbor configuration BGP. L'adresse correspond à l'homologue distant utilisé dans la connexion TCP avec le routeur local.
Dans cet exemple, 9 chemins sont disponibles pour le réseau 10.30.116.0/23. La commande show ip bgp network affiche les entrées dans la table de routage BGP pour le réseau donné.
Router R1#show ip bgp vpnv4 rd 1100:1001 10.30.116.0/23
BGP routing table entry for 1100:1001:10.30.116.0/23, version 26765275
Paths: (9 available, best #6, no table)
Advertised to update-groups:
1 2 3
(65001 64955 65003) 65089, (Received from a RR-client)
172.16.254.226 (metric 20645) from 172.16.224.236 (172.16.224.236)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65008 64955 65003) 65089
172.16.254.226 (metric 20645) from 10.131.123.71 (10.131.123.71)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.253 (172.16.216.253)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.252 (172.16.216.252)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.77.255.57 (10.77.255.57)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.57.255.11 (10.57.255.11)
Origin IGP, metric 0, localpref 100, valid, confed-external, best
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
!--- BGP selects this as the Best Path on comparing
!--- with all the other routes and selected based on lower router ID.
(64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.224.253 (172.16.224.253)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65003) 65089
172.16.254.226 (metric 20645) from 172.16.254.234 (172.16.254.234)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
65089, (Received from a RR-client)
172.16.228.226 (metric 20645) from 172.16.228.226 (172.16.228.226)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/278
Le protocole BGP sélectionne le meilleur chemin parmi ces 9 chemins en tenant compte des différents attributs décrits dans ce document. Dans le résultat affiché ici, BGP compare les chemins disponibles et sélectionne le chemin 6 comme meilleur chemin en fonction de son ID de routeur inférieur.
Comparing path 1 with path 2: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP The paths have different neighbor AS's so ignoring MED Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 1 because it has a lower Router-ID. Comparing path 2 with path 3: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 3 because it has a lower Router-ID. Comparing path 2 with path 4: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 4 because it has a lower Router-ID. Comparing path 2 with path 5: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 5 is better than path 2 because it has a lower Router-ID. Comparing path 5 with path 6: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 5 because it has a lower Router-ID. Comparing path 6 with path 7: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 7 because it has a lower Router-ID. Comparing path 6 with path 8: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 8 because it has a lower Router-ID. Comparing path 6 with path 9: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP The paths have different neighbor AS's so ignoring MED Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 9 because it has a lower Router-ID. The best path is #6
L'attribut de communauté étendue, qui est appelé BGP Cost Community, fournit un moyen de personnaliser le meilleur processus de sélection de chemin. Une étape supplémentaire, dans laquelle les communautés de coûts sont comparées, est ajoutée à l'algorithme décrit dans la section Fonctionnement de l'algorithme du meilleur chemin. Cette étape vient après l'étape requise (point d'insertion) dans l'algorithme. Le chemin avec la valeur de coût la plus faible est préféré.
BGP Multipath permet l'installation dans la table de routage IP de plusieurs chemins BGP vers la même destination. Ces chemins sont installés dans la table avec le meilleur chemin pour le partage de charge. BGP Multipath n'affecte pas la sélection du meilleur chemin. Par exemple, un routeur désigne toujours l’un des chemins comme meilleur chemin, selon l’algorithme, et annonce ce meilleur chemin à ses voisins.
Voici les fonctionnalités de multichemin BGP :
Multipath eBGP - maximum-paths n
iBGP Multipath - maximum-paths ibgp n
eiBGP Multipath - maximum-paths eibgp
Afin d'être candidats pour les trajets multiples, les chemins vers la même destination doivent avoir ces caractéristiques égales aux caractéristiques du meilleur chemin :
Poids
Préférence locale
longueur AS-PATH
Origine
MÉDICAMENT
L'un de ces éléments :
AS ou sous-AS voisin (avant l'ajout de la fonctionnalité multichemin eiBGP)
AS-PATH (après l'ajout de la fonctionnalité multichemin eiBGP)
Certaines fonctionnalités BGP Multipath imposent des exigences supplémentaires aux candidats multichemins.
Voici les exigences supplémentaires pour le multichemin eBGP :
Le chemin doit être appris d'un voisin externe ou d'un voisin externe de confédération (eBGP).
La métrique IGP vers le tronçon suivant BGP doit être égale à la métrique IGP du meilleur chemin.
Voici les conditions supplémentaires requises pour le multichemin iBGP :
Le chemin doit être appris d'un voisin interne (iBGP).
La métrique IGP vers le tronçon suivant BGP doit être égale à la métrique IGP du meilleur chemin, sauf si le routeur est configuré pour le multichemin iBGP de coût différent.
Le protocole BGP insère jusqu'à n derniers chemins reçus de candidats à trajets multiples dans la table de routage IP. La valeur maximale de n varie selon la plate-forme et la version du logiciel. Les plates-formes plus anciennes peuvent prendre en charge jusqu'à 6 chemins, tandis que les plates-formes modernes peuvent en prendre en charge 16, 32 ou plus. La valeur par défaut, lorsque le mode multichemin est désactivé, est 1.
Pour l'équilibrage de charge à coût inégal, vous pouvez également utiliser la bande passante de liaison BGP.
| Révision | Date de publication | Commentaires |
|---|---|---|
6.0 |
28-Apr-2026
|
Formatage |
5.0 |
02-Dec-2024
|
Formatage et liens fixes. |
4.0 |
11-Jul-2023
|
Titre, introduction et mise en forme mis à jour.
Ajout d'informations générales. |
3.0 |
22-Jun-2022
|
Mise à jour des directives de traduction automatique. |
1.0 |
10-Dec-2001
|
Première publication |