BGP - Algorithme de sélection du meilleur chemin ccnp_cch
Sommaire • Introduction • Prérequis • Pourquoi les routeurs ignorent-ils les chemins? • Comment fonctionne l'algorithme de choix du meilleur chemin • Personnaliser le processus de choix du meilleur chemin • BGP multi-chemins ccnp_cch
Introduction Les routeurs BGP (Border Gateway Protocol) reçoivent de multiples chemins pour la même destination. L'algorithme de choix du meilleur chemin BGP décide quel est le meilleur chemin à installer dans la table de routage IP et à utiliser pour l'achemine- ment du trafic. Prérequis Aucun prérequis spécifique n'est nécessaire pour utiliser ce document. Ce document n'est pas restreint à des versions logicielles ou matérielles spécifiques. Pourquoi les routeurs ignorent-ils les chemins? Supposons que tous les chemins qu'un routeur reçoit pour un préfixe particulier sont placés dans une liste. Cette liste est similaire à la sortie de la commande show ip bgp longer-prefixes. Dans ce cas, quelques chemins ne sont pas considérés comme can- didats pour le meilleur chemin. Typiquement de tels chemins n'ont pas l'indicateur de meilleur chemin dans la sortie de la commande show ip bgp longer-prefixes. Les routeurs ignorent ces chemins dans les cas suivants: ● Chemins marqués "not synchronized" dans la sortie de la commande show ip bgp longer-prefixes. Si la synchronisation BGP est activée, il doit y avoir une correspon- dance pour le préfixe dans la table de routage IP pour qu'un chemin BGP interne soit considéré comme un chemin valide. Dans ce cas certains chemins ne sont pas considérés comme candidats pour le meilleur chemin. la synchronisation BGP est validée par défaut dans l'IOS Cisco. Si la route correspondante est apprise par un voisin OSPF (Open Shortest Path First), le "router ID" OSPF doit correspondre au "router ID" BGP du voisin iBGP. La majorité des utilisateurs préfère dévalider la synchronisation BGP avec la commande no synchronization. Note: La synchronisation est dévalidée par défaut dans l'IOS Cisco 12.2(8)T et suivants. ● Chemins pour lesquels le prochain saut est inaccessible (NEXT-HOP). Assurez-vous qu'il y a une route IGP vers le NEXT-HOP qui est associé au chemin. ● Chemin venant d'un voisin BGP externe (eBGP) si le système autonome (AS) appa- rait dans AS-PATH. De tels chemins sont refusés en entrée sur le routeur et ne sont pas également installés dans la "BGP routing information base (RIB)". La même règle s'applique à tout chemin qui est refusé par une politique de routage qui est implémentée par accès, préfixe, AS-PATH, liste de communautés sauf si vous avez configuré soft-configuration inbound pour le voisin. ● Si vous avez validé bgp-enforce-first-as et que la mise à jour (UPDATE) ne contient pas l'AS du voisin comme premier numéro d'AS dans AS-SEQUENCE. Dans ce cas, le routeur transmet une notification et ferme la session. ccnp_cch
● Chemins qui sont marqués comme "received only" dans la sortie de la commande show ip bgp longer-prefixes. La politique de routage a rejeté ces chemins. Cependant, le routeur a stocké les chemins car vous avez configuré soft-reconfiguration inbound pour le voisin qui a transmis le chemin. Comment fonctionne l'algorithme de choix du meilleur chemin BGP affecte le premier chemin valide comme le meilleur chemin courant. BGP compare ensuite le meilleur chemin avec le prochain chemin dans la liste jusqu'à ce que la fin de la liste des chemins valides soit atteinte. Cette liste fournit les règles qui sont utili- sées pour déterminer le meilleur chemin. 1. Préférer le chemin avec le "WEIGHT" le plus élevé. Note: WEIGHT est un attribut spécifique Cisco 2. Préférer le chemin avec l'attribut LOCAL-PREF le plus élevé. Note: Un chemin sans LOCAL-PREF est considéré avoir une valeur fixée par la commande bgp default local-preference ou avoir une valeur par défaut égale à 100. 3. Préférer le chemin dont l'origine est locale via les commandes BGP network ou aggregate ou au travers de la redistribution par un IGP. Les chemins locaux générés par les commandes network ou redistribute sont pré- férés par rapport aux agrégations locales qui sont générées par la commande aggregate-address. 4. Préférer le chemin avec l'AS-PATH le plus court. Note: Prenez connaissances de ces informations: ● Cette étape est sautée si vous avez configuré la commande bgp bestpath as-path ignore. ● Un AS-SET compte comme 1 quelque soit le nombre d'AS dans l'ensemble. ● Les paramètres AS_CONFED-SEQUENCE et AS_CONFED_SET ne sont pas in- clus dans la longueur AS-PATH. 5. Préférer le chemin avec le type d'origine le plus faible. Note: IGP est plus bas que EGP (Exterior Gataway Protocol) et EGP est plus bas que INCOMPLETE. ccnp_cch
6. Préférer le chemin avec MED (Multi-Exit-Discriminator) le plus bas 6. Préférer le chemin avec MED (Multi-Exit-Discriminator) le plus bas. Note: Prenez connaissances de ces informations: ● Cette comparaison est faite si le premier AS est le même dans les deux chemins. Tout sous-AS de confédération est ignoré. En d'autres termes, les MEDs sont comparés uniquement si le premier AS dans AS-SEQUENCE est le même pour plusieurs chemins. Toute AS-SEQUENCE précédente est ignorée. ● Si bgp always-compare-med est validé, les MEDs sont comparés pour tous les chemins. Vous devez dévalider cette option sur toute l'AS sinon des boucles de routage peuvent se produire. ● Si bgp bestpath med-confed est validé, les MEDS sont comparés pour tous les chemins qui constituent l'AS-CONFED-SEQUENCE. Ces chemins sont originaires de la confédération locale. ● La valeur MED des chemins qui sont reçus d'un voisin avec une valeur égale à 4 294 967 295 est changée avant insertion dans la table BGP. La valeur MED est fixée à 4 294 967 294. ● Les chemins reçus sans MED ont une valeur MED affectée égale à zéro sauf si vous avez validé bgp bestpath missing-as-worst. Si vous avez validé bgp bestpath missing-as-worst, les chemins ont une valeur MED affectée égale à 4 294 967 294. ● La commande bgp deterministic med peut également influencer cette étape. 7. Préférer les chemins EGP par rapport aux chemins iBGP Si le meilleur chemin est sélectionné, allez à l'étape 9. Note: Les chemins qui contiennent AS_CONFED_SEQUENCE et AS_CONFED_SET sont locaux à la confédération. Par conséquent ces chemins sont traités comme des chemins internes. Il n'y a pas de distinction entre "Confederation External" et "Confederation Internal" 8. Préférer le chemin avec le métrique IGP la plus faible vers le prochain saut BGP. Continuez même si le meilleur chemin est sélectionné. 9. Déterminez si des chemins multiples requièrent une installation dans la table de routage pour BGP Multi-Chemins. Continuez même si le meilleur chemin est sélectionné. ccnp_cch
10. Quand deux chemins sont externes, préférez le chemin reçu en premier (le plus ancien). Cette étape minimise le battement de route car un nouveau chemin n'efface pas un chemin plus ancien même si le nouveau chemin peut être la route préférée sur la base des critères de décision qui suivent (Etapes 11, 12 et 13). Sautez cette étape si un de ces items est vrai: ● Vous avez validé la commande bgp bestpath compare-routerid. Note: Les Releases 12.0.11S, 12.0.11SC, 12.0.11S3, 12.1.3, 12.1.3AA, 12.1.3.T et 12.3.3.E de l'IOS Cisco introduisent cette commande. ● Le "router ID" pour plusieurs chemins car les routes ont été reçues du même routeur. ● Il n'y a pas de meilleur chemin courant. Le meilleur chemin courant peut être perdu quand par exemple le qui offre le chemin passe hors-service. 11. Préférer la route qui vient du routeur BGP possédant le "router ID" le plus petit. Le "router ID" est l'adresse IP la plus élevée sur le routeur avec la préférence don- née aux adresses des interfaces loopback. Vous pouvez aussi fixer le "router ID" manuellement avec la commande bgp router-id. Note: Si un chemin contient les attributs RR (Route Reflector), l'ID de l'origine est substitué par le "router ID" dans le processus de sélection de chemin. 12. Si l'ID d'origine ou le "router ID" est le même pour plusieurs chemins, préférez le chemin avec la "cluster list" la plus petite. Ceci est présent uniquement dans des environnements BGP RR. Il permet aux clients de voisiner avec des RRs ou des clients situés dans d'autres clusters. Dans ce scénario, le client doit connaître l'attribut BGP RR-specific 13. Préférez le chemin qui vient du voisin qui la plus petite adresse IP. Cette adresse est l'adresse IP utilisée dans la commande de configuration BGP neighbor. Cette adresse correspond au voisin distant qui est utilisé dans la con- nexion TCP avec le routeur local. ccnp_cch
Personnaliser le Processus de Sélection de Chemin L'attribut de communauté étendue appelé "BGP Cost Community" fournit un moyen pour personnaliser le processus de sélection du meilleur chemin. Une étape supplé- mentaire dans laquelle les "Cost Communities" sont comparés est ajouté à l'algo- rithme de sélection du meilleur chemin. Cette étape vient après le point d'insertion dans l'algorithme. Le chemin avec la valeur de coût la plus faible est préféré. Note: Prenez connaissance des items suivants: ● Cette étape est sautée si vous avez entré la commande bgp bestpath cost-commu- nity ignore . ● La clause set de Cost community est configurée avec un numéro "cost community ID" (0 à 255) et une valeur de coût (0 à 4 294 967 295). La valeur du coût détermi- ne la préférence pour le chemin. Le chemin avec la valeur de coût la plus faible est préféré. Les chemins qui ne sont pas spécifiquement configurés avec la valeur du coût ont une valeur de coût par défaut affectée qui est égale à 2 147 483 647. Cette valeur est la valeur médiane entre 0 et 4 294 967 295. Ces chemins sont en- suite évalués selon le processus de sélection du meilleur chemin. Si deux chemins sont configurés avec la même valeur de coût, le processus de sélection de chemin préfère le chemin avec le "Community ID" le plus faible. ● De manière courante, seul le point d'insertion IGP_COST est implémenté. Cela veut dire que "Cost community" avec le point d'insertion IGP_COST sont pris en compte après l'étape 8. BGP Multi-Chemins BGP Multi-chemins autorise l'installation dans la table de routage IP de plusieurs che- mins BGP vers la même destination. Ces chemins sont installés dans la table avec le meilleur chemin pour du partage de charge. BGP Multi-chemins n'affecte pas la sélec- tion du meilleur chemin. Par exemple, un routeur désigne toujours un des chemins comme le meilleur chemin d'après l'algorithme et annonce ce meilleur chemin à ses voisins. Ce sont les caractéristiques de BGP Multi-chemins: ● eBGP Multi-chemins "maximum-paths n" ● iBGP Multi-chemins "maximum-paths ibgp n" ● eiBGP Multi-chemins "maximum-paths eibgp n" Pour être candidats au Multi-chemins, les chemins vers la même destination doivent avoir ces caractéristiques identiques à celles du meilleur chemin: ● Weight ● Local preference ● Longueur de AS-Path ● Origin ● MED ccnp_cch
● Un des ces deux: ● AS voisin ou sous-AS (avant addition de la caractéristique eiBGP Multi-Chemins) ● AS-PATH (après addition de la caractéristique eiBGP Multi-Chemins) Quelques caractéristiques BGP Multi-Chemins ont des exigences supplémentaires pour les candidats multi-chemins. Voici les exigences supplémentaires pour eBGP Multi-chemins: ● Le chemin doit être appris d'un voisin externe ou confédération externe (eBGP). ● La métrique IGP vers le prochain saut BGP doit être égale à la métrique IGP du meilleur chemin. Voici les exigences supplémentaires pour iBGP Multi-chemins: ● Le chemin doit être appris d'un voisin interne (iBGP). ● La métrique IGP vers le prochain saut BGP doit être égale à la métrique IGP du meilleur chemin sauf si le routeur est configuré pour du Multi-chemins iBGP de coûts inégaux. BGP insère jusqu'à n chemins les plus récents reçus des candidats multi-chemins dans la table de routage IP. La valeur maximum de n est 6. La valeur par défaut est 1 quand BGP multi-chemins est dévalidé. Pour de l'équilibrage de charge avec coûts inégaux, vous pouvez également utiliser BGP Link Bandwidth. Note: L'équivalent de "next-hop-self" est réalisé sur le meilleur chemin qui est sélec- tionné parmi les multi-chemins eBGP avant qu'il soit acheminé vers les voisins inter- nes. ccnp_cch