Attributs BGP et sélection du chemin
Protocole de passerelle frontalière(BGP) est le protocole de routage d'Internet, utilisé pour échanger des informations de routage et d'accessibilité entre des systèmes autonomes (un ensemble de réseaux sous un seul domaine administratif) sur Internet.
Les fournisseurs de services internet(FAI) doivent avoir un titre officiellement enregistrénuméro de système autonome(ASN). Ces numéros sont importants car ils identifient de manière unique chaque réseau sur Internet. Un numéro de système autonome unique est attribué à chacunsystème autonome(COMME) à utiliser dans le routage BGP. Cela permet aux opérateurs de réseau (tels que les FAI) du monde entier d'échanger des informations de routage avec d'autres opérateurs de réseau. BGP est un concept important à comprendre si vous travaillez pour un FAI ou une grande entreprise connectée à deux ou plusieurs FAI. Vous pouvez utiliser ceci Outil de recherche d'informations AS pour connaître le numéro AS de votre FAI.
BGP diffère des autres protocoles de routage populaires tels que RIP, OSPF et EIGRP. Ces trois protocoles de routage ont une chose en commun : ils sont tous classés comme Interior Gateway Protocol (IGP) et se concentrent sur la recherche du chemin le plus court (soit en termes de nombre de sauts, de coût ou de délai) vers les destinations. Nous les utilisons uniquement au sein de systèmes autonomes, mais pas pour des réseaux aussi grands qu'Internet, car ils n'ont pas l'évolutivité requise. Lorsqu'il s'agit de routage via Internet ou de routage entre différents systèmes autonomes, il est bien plus important de pouvoir manipuler les chemins de circulation que de trouver le chemin le plus court. C’est là qu’intervient le protocole EGP (External Gateway Protocol). Il n’existe aujourd’hui qu’un seul EGP utilisé sur Internet : le BGP. Si, par exemple, vous vouliez connaître le chemin emprunté par le trafic Internet provenant, par exemple, de la Nouvelle-Zélande pour atteindre quelqu'un en Europe occidentale ou en Amérique du Nord, il est possible de le voir utilisant un Miroir BGP (routeurs qui ont un accès public à la table de routage Internet).
Contrairement aux IGP, BGP utilise un ensemble d'attributs pour déterminer le meilleur chemin pour chaque destination. Ces attributs peuvent être subdivisés en quatre catégories distinctes. Le tableau ci-dessous est un récapitulatif des différentes subdivisions :
Obligatoire bien connu | Pris en charge par toutes les implémentations de BGP et toujours inclus dans chaque mise à jour de BGP |
Discrétionnaire bien connu | Pris en charge par toutes les implémentations BGP et inclus en option dans les mises à jour BGP |
Transitif facultatif | Peut ne pas être pris en charge par toutes les implémentations de BGP. Transitif indique qu'un routeur BGP non conforme transmettra l'attribut non pris en charge inchangé lors de l'envoi de mises à jour aux homologues. |
Non transitif facultatif | Peut ne pas être pris en charge par toutes les implémentations de BGP. Non transitif indique qu'un routeur BGP non conforme supprimera l'attribut non pris en charge lors de l'envoi de mises à jour aux pairs. |
Tableau 1.0 Les quatre catégories distinctes d'attributs BGP
Dans cet article, nous expliquerons comment BGP sélectionne le meilleur chemin vers les destinations en fonction d'une liste d'attributs.
Algorithme de sélection du meilleur chemin BGP
La sélection du chemin BGP est effectuée via l'algorithme du meilleur chemin. Si BGP contient plusieurs routes vers la même destination, il les analyse ou les compare successivement pour déterminer quel chemin est le plus efficace à emprunter. Les attributs sont comparés dans l'ordre spécifique indiqué dans le tableau ci-dessous.
1 | Poids | le chemin avec le poids le plus élevé. La valeur par défaut est 0 pour toutes les routes qui ne proviennent pas du routeur local. |
deux | Préférence locale | le chemin avec la préférence locale la plus élevée. La valeur par défaut est 100. |
3 | Originaire local | le chemin d'origine du routeur local. |
4 | Longueur du chemin AS | le chemin avec la longueur de chemin AS la plus courte. |
5 | Code d'origine | le code d'origine le plus bas. |
6 | AVEC | le chemin avec le MED le plus bas. |
7 | Chemin eBGP sur chemin iBGP | eBGP (BGP externe) sur les chemins iBGP (BGP interne). |
8 | Chemin IGP le plus court vers le prochain saut BGP | le chemin au sein de l'AS avec la métrique IGP la plus basse vers le prochain saut BGP. |
9 | Chemin le plus ancien | le chemin qui a été reçu en premier. |
dix | ID du routeur | le chemin avec l'ID de routeur voisin BGP le plus bas. |
onze | Adresse IP du voisin | le chemin avec l’adresse IP du voisin le plus bas. |
Tableau 2.0 Algorithme de sélection du meilleur chemin BGP
Quel chemin emprunte le BGP ? Eh bien, ça commence par le Poids attribut qui se trouve tout en haut de la liste des attributs BGP, comme indiqué dans le tableau 2.0 ci-dessus. Si un chemin a un meilleur poids, le BGP sélectionne ce chemin comme étant le meilleur. Si le poids est égal, il passe à l'attribut suivant Préférence locale . Si un chemin a une meilleure préférence locale, il sélectionne ce chemin comme le meilleur chemin. Si la préférence locale est égale, elle passe à l'attribut suivant de la liste, jusqu'à ce que nous ayons un bris d'égalité pour sélectionner le meilleur chemin. Si tous les chemins ont les mêmes attributs BGP, alors on se retrouve avec le dernier attribut Adresse IP du voisin . Nous passerons en revue chaque attribut en détail.

Poids: L'attribut BGP Weight est le premier de la liste en termes de priorité de commande. L'attribut Weight est appliqué aux itinéraires entrants, où les décisions concernant le meilleur chemin de sortie (sortant) sont prises. Voici les points clés que vous devez connaître sur le poids :
- Le poids est un attribut propriétaire de Cisco, c'est pourquoi les autres fournisseurs de routeurs ne le prennent pas en charge.
- Ce n'est pas transmis entre voisins BGP
- Ce n'est que localement significatif sur le routeur
- Le chemin avec le poids le plus élevé est préféré
Un itinéraire provenant du routeur local se verra attribuer par défaut un poids de 32 768. Par défaut, tous les autres itinéraires se verront attribuer un poids de 0. À l'aide du diagramme de la figure 1.0, vous pouvez définir une valeur de poids pour tous les itinéraires annoncés depuis un voisin spécifique à l'aide de la commande suivante :
|_+_|Préférence locale : L'attribut BGP Local Preference est le deuxième sur la liste en termes de priorité d'ordre ; et il peut être utilisé pour informer les routeurs BGP internes sur la manière de quitter l'AS si plusieurs chemins existent. Il est appliqué aux itinéraires externes entrants, où sont prises les décisions concernant le meilleur chemin de sortie (sortant) pour un système autonome. Voici quelques points clés que vous devez connaître sur les préférences locales :
- La préférence locale est envoyée à tous les routeurs BGP internes de votre AS lors de l'envoi de mises à jour
- Il n'est pas transmis entre voisins BGP externes
- La préférence locale est un attribut BGP discrétionnaire bien connu, elle doit donc être reconnue par tous les routeurs BGP.
- Sa présence dans une mise à jour BGP est facultative
- La valeur par défaut est 100
- Le chemin avec la préférence locale la plus élevée est préféré
La préférence locale est un nombre de 32 bits allant de 0 à 4294967295. À l'aide du diagramme de la figure 1.0, vous pouvez définir une valeur de préférence locale pour toutes les routes externes entrantes, sur une base globale pour BGP, à l'aide de la commande suivante :
|_+_|L'implication de la configuration ci-dessus est que NYC_Router et ATL_Router incluront l'attribut Local Preference dans les mises à jour des voisins BGP internes. Étant donné que ATL_Router est le chemin ayant la préférence locale la plus élevée, LOS_Router et NYC_Router le préféreront désormais comme itinéraire pour atteindre n'importe quelle destination en dehors de l'AS local.
Originaire local : L'attribut BGP Locally Originated, comme son nom l'indique, préfère le chemin d'origine du routeur local. Un routeur BGP préférera les routes qu'il a installées dans BGP lui-même à une route qu'un autre routeur a installée dans BGP.
Longueur du chemin AS : L'attribut BGP AS-Path est le quatrième attribut BGP ; et il est généralement appliqué aux itinéraires sortants (de sortie), où les décisions concernant le meilleur chemin entrant (d'entrée) sont prises. Voici quelques points clés que vous devez connaître sur AS-Path :
- BGP préfère le chemin AS le plus court pour atteindre une destination
- Le préfixe s'ajoute à l'AS-Path existant, ce qui entraîne un AS-Path plus long.
- Vous pouvez influencer le routage en utilisant le préfixe de chemin AS pour rendre les itinéraires moins souhaitables pour le trafic entrant.
Si vous souhaitez que le trafic entre dans un AS via un chemin préféré, vous pouvez ajouter le numéro d'AS spécifique plusieurs fois, de sorte que le chemin AS devienne plus long et bien sûr un itinéraire moins souhaitable pour le trafic entrant. Cela peut être accompli en utilisant la configuration suivante :
|_+_|L'implication de la configuration ci-dessus est que MAN_Router préférera le chemin via ATL_Router pour atteindre le réseau 10.30.1.1/20 car le chemin via NYC_Router a le chemin AS-Path le plus long.
Code d'origine : L'attribut BGP Origin Code identifie la source de la route. Il existe trois codes d'origine que la table BGP peut afficher :
- IGP : si la table BGP affiche IGP, cela indique que la route provient d'un protocole de passerelle intérieure (tel que RIP ou OSPF), ce qui signifie que vous avez annoncé le réseau vous-même dans BGP, à l'aide de la commande réseau BGP. Le code d’origine « i » est le plus préféré.
- EGP : si la table BGP affiche EGP, cela indique que la route provient d'un protocole de passerelle externe. Cependant, EGP est un protocole de routage obsolète qui n’est plus utilisé.
- Incomplet : si la table BGP affiche une origine incomplète ou inconnue, cela signifie que vous avez redistribué quelque chose dans BGP (soit à partir de routes connectées, statiques ou IGP). Un code d'origine de '?' est le moins préféré.
Le code d'origine est généralement répertorié à la fin de chaque ligne de la table de routage BGP, comme celle indiquée dans le résultat ci-dessous :
|_+_|D'après la table de routage ci-dessus, le « i » à la fin de la première entrée indique que le réseau 10.30.0.0 est originaire via un IGP, peut-être avec la commande réseau BGP ; tandis que le '?' à la fin de la dernière entrée indique que le réseau 172.20.1.0 a probablement été redistribué en BGP dans AS 700.
Discriminateur multisortie (MED) : L'attribut BGP MED est échangé entre les AS et vous pouvez l'utiliser pour informer les autres AS du chemin qu'ils doivent emprunter pour entrer dans votre AS. Voici quelques points clés que vous devez connaître sur MED :
- MED est propagé à tous les routeurs de l'AS voisin, mais n'est transmis à aucun autre AS.
- Il peut être utilisé pour informer vos voisins de la manière dont ils doivent saisir votre AS
- Il est échangé entre les AS
- Le MED est identifié comme le BGP métrique sur la table de routage
- Le MED (métrique) le plus bas est le chemin préféré
- La valeur MED par défaut est 0
Dans notre diagramme de la figure 1.0, il y a deux points d'entrée dans AS 500. Pour forcer AS 700 à préférer le chemin via ATL_Router pour atteindre le réseau 10.30.0.0/20, le définir une métrique La commande peut être utilisée avec une feuille de route comme indiqué dans la configuration ci-dessous :
|_+_|Lorsque vous examinez la table de routage BGP sur MAN_Router comme indiqué dans le résultat ci-dessous, vous verrez que la route depuis NYC_Router a désormais une métrique plus élevée, ce qui en fait un chemin moins souhaitable et oblige l'AS 700 à passer par ATL_Router pour atteindre le réseau 10.30.0.0/20
|_+_|BGP utilise deux commandes MED bgp déterministe-med et bgp toujours-comparer-med pour réduire les problèmes potentiels de sélection de routage sous-optimal qui peuvent survenir à la suite de l'ordre de comparaison de plusieurs routes vers la même destination dans la table de routage BGP. Les deux commandes sont désactivées par défaut, ce qui signifie que la valeur MED n'est pas comparée par défaut entre les chemins de différents AS.
Vous pouvez activer les deux commandes sur tous les routeurs de l'AS en utilisant la configuration suivante :
|_+_|La configuration ci-dessus force la comparaison de la valeur MED lorsque plusieurs routes vers le même réseau sont reçues via plusieurs routeurs, quel que soit l'ordre des routes dans la table de routage BGP. La principale différence est quebgp déterministe-medimplique des routeurs du pareil que , alors que BGP Always-Compare-Med implique des routeurs de différents AS .
Chemin eBGP sur chemin iBGP : Le chemin eBGP de l'attribut BGP sur le chemin iBGP est similaire à l'attribut Origin Code. Le protocole BGP interne (iBGP) s'exécute au sein du même AS, tandis que le protocole BGP externe (eBGP) fonctionne entre les AS. L'algorithme du meilleur chemin préfère eBGP à iBGP.
Chemin IGP le plus court vers le prochain saut BGP : Avec ce critère, le meilleur algorithme de sélection de chemin préfère le chemin au sein du système autonome avec la valeur IGP la plus basse au prochain saut BGP.
Chemin le plus ancien : L'attribut BGP Oldest Path différencie les chemins externes en fonction du moment où ils ont été reçus. Le meilleur algorithme de sélection de chemin préfère le chemin qui a été reçu en premier (le chemin le plus ancien), d’où le terme chemin le plus ancien.
ID du routeur : L'attribut BGP Router ID fait référence à l'adresse IP avec la valeur de routeur la plus élevée. Si vous disposez d'une interface de bouclage, l'adresse IP du bouclage sera utilisée. L'ID du routeur peut également être configuré manuellement. Avec ces critères, le meilleur algorithme de sélection de chemin BGP préfère le chemin qui provient du routeur BGP avec l’ID de routeur le plus bas.
Si les ID de routeur sont similaires, le meilleur algorithme de sélection de chemin se différencie ensuite en fonction de la liste des clusters. Le chemin avec la longueur de liste de clusters la plus faible est préféré.
Adresse IP du voisin : Si à ce stade, l'algorithme de sélection du meilleur chemin BGP ne parvient pas à sélectionner le meilleur chemin sur la base du fait que tous les chemins ont les mêmes attributs BGP, alors nous nous retrouvons avec le dernier attribut, l'adresse IP du voisin. Avec ce critère, le chemin avec l’adresse IP du voisin le plus bas devient finalement la condition de départage.
FAQ BGP
Comment BGP utilise-t-il les attributs AS-path et next-hop ?
Dans le BGP, l'AS est un système autonome, c'est-à-dire un espace d'adressage. Pour le routage, l'AS signifie un routeur et l'attribut AS-path répertorie tous les routeurs traversés par une connexion. L'attribut du prochain saut est le routeur voisin qui mène à la liste de chemins.
Qu’est-ce qui peut affecter davantage la sélection BGP que les attributs ?
Le système BGP calcule un score pour chaque chemin en fonction de ses attributs. Le système compare le score de chaque chemin vers une destination donnée et sélectionne le chemin avec le score le plus élevé. Il ignorera les chemins pour lesquels le périphérique du saut suivant n'est pas disponible ou si le chemin est marqué comme non synchronisé .
Quels attributs sont exportés en BGP ?
Trois attributs sont obligatoires et doivent être inclus dans l'exportation d'un chemin. Ce sont : Origine, AS Path et Next Hop.