Académique Documents
Professionnel Documents
Culture Documents
com
Mise en réseau à l'échelle du Web
vers le cloud d'entreprise
NetQ
Applications tierces Applications Cumulus
VS
Verrouillé, propriétaire
systèmes
Choix du client
Évolutivité économique
Conçu pour l'ère de l'automatisation
Ensembles d'outils standardisés
Choix et flexibilité
Dinesh G. Dutt
Publié par O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA
95472.
Les livres O'Reilly peuvent être achetés à des fins éducatives, commerciales ou promotionnelles. Des
éditions en ligne sont également disponibles pour la plupart des titres (http://oreilly.com/safari). Pour
plus d'informations, contactez notre service commercial corporatif/institutionnel : 800-998-9938 ou
corporate@oreilly.com.
Le logo O'Reilly est une marque déposée de O'Reilly Media, Inc. BGP dans le Data Center, l'image de
couverture et l'habillage commercial associé sont des marques déposées d'O'Reilly Media, Inc.
Bien que l'éditeur et l'auteur aient déployé des efforts de bonne foi pour s'assurer que les
informations et les instructions contenues dans cet ouvrage sont exactes, l'éditeur et l'auteur
déclinent toute responsabilité pour les erreurs ou omissions, y compris, sans limitation, la
responsabilité des dommages résultant de l'utilisation. ou la confiance accordée à ce travail.
L'utilisation des informations et des instructions contenues dans ce travail est à vos risques et périls.
Si des échantillons de code ou toute autre technologie que ce travail contient ou décrit sont soumis à
des licences open source ou aux droits de propriété intellectuelle d'autrui, il est de votre
responsabilité de vous assurer que votre utilisation de ceux-ci est conforme à ces licences et/ou droits.
978-1-491-98338-6
[LSI]
Table des matières
Préface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
v
Politique de routage 36
Utilisation des noms d'interface 42
comme voisins 45
Ce petit livret est le résultat des questions que j'ai fréquemment rencontrées
dans mon engagement avec divers clients, petits et grands, dans leur
parcours pour construire un centre de données moderne.
BGP dans le centre de données est une bête plutôt étrange, un peu comme le
titre de cette chanson de Sting, "An Englishman in New York". Alors que son
entrée dans le datacenter était plutôt inattendue, il s'est rapidement imposé
comme le protocole de routage de choix dans les déploiements de datacenter.
Étant donné la portée limitée d'un livret comme celui-ci, les objectifs du livre et
les hypothèses concernant le public sont essentiels. Le livre est conçu pour les
opérateurs de réseau et les ingénieurs qui maîtrisent la mise en réseau et les
rudiments de base de BGP, et qui souhaitent comprendre comment déployer
BGP dans le centre de données. Je ne m'attends pas à une connaissance avancée
du fonctionnement de BGP ou à une expérience avec une plate-forme de routeur
spécifique.
vii
Les personnes qui ont vraiment payé le prix, alors que je me chargeais de la
rédaction de ce livret ainsi que de ma myriade d'autres tâches, étaient ma
femme Shanthala et ma fille Maya. Merci. Et cela n'a été qu'un plaisir et un
privilège de travailler avec l'ingénierie de Cumulus Networks, en particulier
l'équipe de routage, pour développer et travailler sur des idées pour rendre
BGP plus simple à configurer et à gérer.
Les exemples d'automatisation répertoriés sur la page GitHub tous utilisent Ansible et
Vagrant. Ansible est un outil d'automatisation de serveur open source populaire qui est
très populaire auprès des opérateurs de réseau en raison de son modèle simple et
sans programmation. Vagrant est un outil open source populaire utilisé pour faire
tourner des réseaux sur un ordinateur portable à l'aide d'images VM de logiciels de
routeur.
viii | Préface
CHAPITRE 1
Les centres de données sont beaucoup plus grands qu'ils ne l'étaient il y a dix ans, avec
des exigences d'application très différentes de celles des applications client-serveur
traditionnelles, et avec des vitesses de déploiement de quelques secondes au lieu de
plusieurs jours. Cela change la façon dont les réseaux sont conçus et déployés.
1
• Quels sont les objectifs d'une conception de réseau de centre de données
moderne ?
• Pourquoi choisir BGP comme protocole de routage pour exécuter le centre de données ?
Les trois principales caractéristiques de cette troisième vague de candidatures sont les
suivantes :
Escalader
S'il y a une image qui évoque un centre de données moderne, c'est bien l'échelle :
des rangées sur des rangées de machines sombres, bourdonnantes et
clignotantes dans une vaste pièce. Au lieu de quelques centaines de serveurs qui
représentaient un grand réseau dans le passé, les centres de données modernes
vont de quelques centaines à cent mille serveurs dans un seul emplacement
physique. Combinées à une communication accrue de serveur à serveur, les
exigences de connectivité à de telles échelles obligent à repenser la façon dont
ces réseaux sont construits.
Résilience
Contrairement aux anciennes architectures qui reposaient sur un
réseau fiable, les applications de centre de données modernes sont
conçues pour fonctionner en présence de pannes. L'objectif premier est
de limiter au maximum l'effet d'une défaillance. En d'autres termes, le «
rayon d'explosion » d'une défaillance doit être contraint. L'objectif est
une expérience de l'utilisateur final qui n'est généralement pas affectée
par les pannes de réseau ou de serveur.
Tout réseau de centre de données moderne doit satisfaire à ces trois exigences
applicatives de base. Les réseaux multi-locataires tels que les clouds publics ou privés
ont une considération supplémentaire : le déploiement et le démontage rapides d'un
réseau virtuel. Compte tenu de la rapidité avec laquelle les machines virtuelles (et
désormais les conteneurs) peuvent démarrer et se désintégrer, et la facilité avec
laquelle un client peut créer un nouveau réseau privé dans le cloud, le besoin d'un
déploiement rapide devient évident.
La conception de réseau traditionnelle a été mise à l'échelle pour prendre en charge plus
d'appareils en déployant des commutateurs (et des routeurs) plus grands. C'est lemise à
l'échelle modèle de mise à l'échelle. Mais ces gros commutateurs sont chers et principalement
conçus pour ne prendre en charge qu'une redondance bidirectionnelle. Le logiciel qui pilote
ces grands commutateurs est complexe et donc sujet à plus de pannes que de simples
commutateurs à facteur de forme fixe. Et le modèle scale-in ne peut évoluer que jusqu'à
présent. Aucun interrupteur n'est trop gros pour tomber en panne. Ainsi, lorsque ces
commutateurs plus gros tombent en panne, leur rayon d'explosion est assez grand. Parce que
les échecs peuvent être perturbateurs, voire catastrophiques, le logiciel qui alimente ces
« boîtes à dieux » essaie de réduire les risques d'échec en ajoutant encore plus de complexité ;
ainsi ils deviennent de manière contre-productive plus sujettes à l'échec
Figure 1-1 montre un réseau Clos dans sa forme la plus simple. Dans le schéma,
les nœuds verts représentent les commutateurs et les nœuds gris les serveurs.
Parmi les nœuds verts, ceux du haut sontnœuds de la colonne vertébrale,
et les plus bas sont nœuds foliaires. Les nœuds spine connectent les nœuds feuilles
entre eux, tandis que les nœuds feuilles sont la manière dont les serveurs se
connectent au réseau. Chaque feuille est connectée à chaque nœud de la colonne
vertébrale, et, évidemment, vice versa. C'est tout !
Examinons cette conception un peu plus en détail. La première chose à noter est
l'uniformité de la connectivité : les serveurs sont généralement à trois sauts de
réseau de tout autre serveur. Ensuite, les nœuds sont assez homogènes : les
serveurs se ressemblent, de même que les commutateurs. Comme l'exigent les
applications modernes des centres de données, la matrice de connectivité est
assez riche, ce qui lui permet de gérer les pannes avec élégance. Parce que
Nous complétons nos observations en notant que les extrémités sont toutes
connectées à des feuilles et que les épines agissent simplement comme des
connecteurs. Dans ce modèle, la fonctionnalité est poussée vers les bords plutôt que
tirée dans les épines. Ce modèle de mise à l'échelle est appelé unmise à l'échelle
maquette.
En réalité, les serveurs sont interconnectés à la feuille via des liaisons à bas débit et les
commutateurs sont interconnectés par des liens à haut débit. Un déploiement courant
consiste à interconnecter les serveurs aux départs via des liaisons 10 Gbit/s, tout en
interconnectant les commutateurs entre eux via des liaisons 40 Gbit/s. Compte tenu de
la montée en puissance des liaisons 100 Gbit/s, un déploiement en devenir consiste à
utiliser des liaisons 25 Gbit/s pour interconnecter les serveurs aux départs, et des
liaisons 100 Gbit/s pour interconnecter les commutateurs.
En raison des restrictions d'alimentation, la plupart des réseaux ont au plus 40 serveurs
dans un seul rack (bien que les nouvelles conceptions de serveurs repoussent cette
limite). Au moment d'écrire ces lignes, les commutateurs à vitesse de liaison supérieure
les plus courants ont au plus 32 ports (chaque port étant soit 40 Gbit/s, soit
Bien que 1 280 serveurs soient assez grands pour la plupart des petites et
moyennes entreprises, comment cette conception nous amène-t-elle aux dizaines
de milliers ou centaines de milliers de serveurs tant vantés ?
Figure 1-2 illustre une étape vers la résolution du problème de mise à l'échelle défini
dans la section précédente. C'est ce qu'on appelle unréseau Clos à trois niveaux. Il ne
s'agit que d'un ensemble de réseaux feuille-spine (ou réseaux Clos à deux niveaux)
connectés par une autre couche de commutateurs spine. Chaque réseau à deux
niveaux est appelé uncosse ou grappe, et le troisième niveau d'épines reliant toutes les
gousses est appelé un épine interpode ou couche de la colonne vertébrale intercluster.
Très souvent, le premier niveau de commutateurs, ceux auxquels les serveurs se
connectent, sont appelés haut de rack (ToR) car ils sont généralement placés en haut
de chaque rack ; le niveau suivant de commutateurs est appelé feuilles et le dernier
niveau de commutateurs, ceux qui connectent les pods, est appelé épines.
Dans un tel réseau, en supposant que les mêmes commutateurs sont utilisés à chaque
niveau, le nombre total de serveurs que vous pouvez connecter est m3 / 4. En supposant
des commutateurs à 64 ports, par exemple, nous obtenons 643 / 4 = 65 536 serveurs. En
supposant les numéros de port de commutateur et les serveurs par rack les plus
réalistes de la section précédente, nous pouvons construire 40 * 16 * 16 = 10 240
serveurs.
Les opérateurs de réseaux à grande échelle surmontent ces limitations basées sur les
ports de l'une des deux manières suivantes : soit ils achètent de gros commutateurs de
châssis pour les épines, soit ils séparent les câbles des liaisons à haut débit en
C'est fondamentalement la beauté d'un réseau Clos : comme la conception fractale, des
pièces de plus en plus grandes sont assemblées à partir des mêmes blocs de
construction. Les entreprises à l'échelle du Web n'hésitent pas à se tourner vers des
réseaux Clos à 4 ou même 6 niveaux pour contourner les limites d'échelle des blocs de
construction plus petits. Couplé à la prise en charge de plus en plus importante du
nombre de ports du silicium marchand, la prise en charge de centres de données
encore plus grands est tout à fait faisable.
Plutôt que de s'appuyer sur des commutateurs réseau apparemment infaillibles, les
pionniers à l'échelle du Web ont intégré la résilience à leurs applications, permettant
ainsi au réseau de faire ce qu'il fait le mieux : fournir une bonne connectivité grâce à
une matrice de connectivité riche et de grande capacité. Comme nous l'avons vu
précédemment, cette interconnexion dense et à haute capacité réduit le rayon
d'explosion d'une panne.
Une autre conséquence des commutateurs de forme fixe est qu'ils échouent de
manière simple. Un gros châssis peut tomber en panne de manière complexe car
il y a tellement de « pièces mobiles ». Les pannes simples simplifient le
dépannage et, mieux encore, permettent une épargne abordable, permettant
aux opérateurs d'échanger les commutateurs défaillants par des bons au lieu de
dépanner une panne dans un réseau actif. Cela ajoute encore à la résilience du
réseau.
Ces observations sont importantes car elles affectent la vie quotidienne d'un
opérateur de réseau. Souvent, nous n'intégrons pas un nouvel
environnement ou un nouveau choix dans tous les aspects de notre
réflexion. Ces dérivés de second ordre du réseau Clos aident un
gestionnaire de réseau à reconsidérer la gestion quotidienne des réseaux
différemment qu'auparavant.
Dans un réseau traditionnel, ce que nous appelons les couches feuille-épine s'appelaient
couches d'agrégation d'accès du réseau. Ces deux premières couches de
réseau étaient connectées en utilisant le pontage plutôt que le routage. Le
pontage utilise le protocole Spanning Tree (STP), qui divise la riche matrice
de connectivité d'un réseau Clos en une arborescence sans boucle. Par
exemple, dansFigure 1-1, le réseau Clos à deux niveaux, même s'il existe
quatre chemins entre la feuille la plus à gauche et la feuille la plus à droite,
STP ne peut utiliser qu'un seul des chemins. Ainsi, la topologie se réduit à
quelque chose comme celle montrée dansFigure 1-3.
Le routage, quant à lui, est capable d'utiliser tous les chemins, tirant pleinement parti de la
riche matrice de connectivité d'un réseau Clos. Le routage peut également emprunter le
chemin le plus court ou être programmé pour emprunter un chemin plus long pour une
meilleure utilisation globale de la liaison.
Ainsi, la première conclusion est que le routage est le mieux adapté aux
réseaux Clos, et pas le pontage.
Les entreprises à l'échelle du Web déploient serveurs à connexion unique— c'est-à-dire que
chaque serveur est connecté à une seule feuille ou ToR. Étant donné que ces entreprises
disposent d'une multitude de serveurs, la perte d'un rack entier en raison d'une panne de
réseau est sans conséquence. Cependant, de nombreux réseaux plus petits, y compris
certaines grandes entreprises, ne peuvent pas se permettre de perdre un rack entier de
serveurs en raison de la perte d'une seule feuille ou d'une seule référence. Par conséquent, ils
double attache les serveurs; chaque lien est rattaché à un TdR différent. Pour simplifier le
câblage et augmenter la mobilité du rack, ces deux termes de référence résident tous les
deux dans le même rack.
Lorsque les serveurs sont ainsi à double attachement, les doubles liens sont
agrégés en un seul lien logique (appelé canal de port dans le jargon des réseaux
ou liens dans le jargon des serveurs) à l'aide d'un protocole propriétaire.
Différents fournisseurs ont des noms différents pour cela. Cisco l'appelle Virtual
Port Channel (vPC), Cumulus l'appelle CLAG et Arista l'appelle Multi-Chassis Link
Aggregation Protocol (MLAG). Essentiellement, le serveur pense qu'il est connecté
à un seul commutateur avec une liaison (ou un canal de port). Les deux
commutateurs qui y sont connectés donnent l'illusion, du point de vue du
protocole principalement, qu'ils sont un seul commutateur. Cette illusion est
nécessaire pour permettre à l'hôte d'utiliser le standardProtocole de contrôle
d'agrégation de liens (LACP) pour créer le lien. LACP suppose que l'agrégation de
liens se produit pour les liens entre deux nœuds, alors que pour une fiabilité
accrue, les serveurs à double connexion fonctionnent sur trois nœuds : le serveur
et les deux commutateurs auxquels il est connecté. Étant donné que chaque
protocole LACP multinœud est la propriété du fournisseur, les hôtes n'ont pas
besoin d'être modifiés pour prendre en charge le LACP multinœud.Figure 1-5
montre un serveur à double connexion avec MLAG.
Figure 1-6. Connexion d'un réseau Clos au monde extérieur via un pod
frontière
Cependant, les réseaux plus petits peuvent ne pas être en mesure de dédier des
commutateurs séparés uniquement pour se connecter au monde extérieur. De
tels réseaux peuvent se connecter au monde extérieur via les épines, comme
indiqué dansFigure 1-7. Le point important à noter est quetous les épines sont
connectées à Internet, pas certaines. Ceci est important car dans une topologie
Clos, toutes les épines sont créées égales. Si la connectivité au monde extérieur
se faisait uniquement via certaines des épines, ces épines deviendraient
Figure 1-7. Connecter un réseau Clos au monde extérieur via des épines
La topologie Clos est également adaptée à la construction d'un réseau pour prendre en
charge les clouds, publics ou privés. Les objectifs supplémentaires d'une architecture cloud
sont les suivants :
Agilité
Compte tenu de l'utilisation typique du cloud, au cours de laquelle les clients
lancent et détruisent rapidement des réseaux, il est essentiel que le réseau puisse
prendre en charge ce modèle.
Isolation
Le trafic d'un client ne doit pas être vu par un autre client.
Escalader
Les choix faits dans la conception des centres de données modernes ont des
conséquences considérables sur l'administration des centres de données.
La plus évidente est qu'étant donné l'ampleur du réseau, il n'est pas possible de
gérer manuellement les centres de données. L'automatisation n'est rien de moins
qu'une exigence de survie de base. L'automatisation est beaucoup plus difficile,
voire impossible, si chaque bloc de construction est fabriqué à la main et unique.
Les modèles de conception doivent être créés pour que l'automatisation
devienne simple et reproductible. De plus, étant donné l'échelle, la fabrication
artisanale de chaque bloc rend le dépannage problématique.
Les réseaux multi-locataires tels que les clouds doivent également démarrer et détruire
rapidement les réseaux virtuels. Les conceptions de réseau traditionnelles basées sur
des technologies telles que le VLAN n'évoluent pas pour prendre en charge un grand
nombre de locataires et ne peuvent pas être mises en place ou arrêtées rapidement.
De plus, un déploiement aussi rapide nécessite une automatisation, potentiellement
sur plusieurs nœuds.
Non seulement les réseaux multi-locataires, mais les centres de données plus grands
nécessitent également la capacité de déployer de nouveaux racks et de remplacer les nœuds
défaillants dans des délais d'un ordre ou deux de grandeur inférieurs à ce qui est possible avec
En revanche, IS-IS est un protocole bien mieux considéré qui peut router à la fois les
piles IPv4 et IPv6. Cependant, les bonnes implémentations IS-IS sont peu nombreuses,
limitant les choix de l'administrateur. En outre, de nombreux opérateurs ont estimé
qu'un protocole à état de liens était intrinsèquement inadapté à un réseau richement
connecté tel que la topologie Clos. Les protocoles d'état des liens ont propagé les
changements d'état des liens jusqu'aux routeurs les plus éloignés, c'est-à-dire les
routeurs dont l'état du chemin n'a pas changé suite aux changements.
BGP est entré dans une telle situation et a promis quelque chose que les deux autres
ne pouvaient pas offrir. BGP est mature, alimente Internet et est fondamentalement
simple à comprendre (malgré sa réputation contraire). De nombreuses
implémentations matures et robustes de BGP existent, y compris dans le monde de
l'open source. Il est moins bavard que ses cousins à état de liens et prend en charge
les multiprotocoles (c'est-à-dire qu'il prend en charge la publicité IPv4, IPv6, la
commutation multiprotocole par étiquette (MPLS) et les VPN de manière native). Avec
quelques ajustements, nous pouvons faire fonctionner BGP efficacement dans un
centre de données. L'équipe Azure de Microsoft a initialement mené la charge pour
adapter BGP au centre de données. Aujourd'hui, la plupart des clients avec qui je
m'engage déploient BGP.
Avant son utilisation dans le centre de données, BGP était principalement, sinon
exclusivement, utilisé dans les réseaux de fournisseurs de services. En conséquence de son
utilisation principale, les opérateurs ne peuvent pas utiliser BGP à l'intérieur du centre de
données de la même manière qu'ils l'utiliseraient dans le monde des fournisseurs de services.
Si vous êtes un opérateur réseau, il est important de comprendre ces différences et leur
raison pour éviter les erreurs de configuration.
15
Deux personnes ont mis en place un moyen d'intégrer BGP dans le centre de données.
Leur travail est documenté dansRFC 7938.
Un débutant est également beaucoup plus susceptible d'être confus par iBGP
que par eBGP en raison du nombre de boutons de configuration qui doivent être
Une forte raison non technique pour choisir eBGP est qu'il existe des
implémentations plus complètes et plus robustes d'eBGP que d'iBGP. La présence
de plusieurs implémentations signifie qu'un client peut éviter le verrouillage du
fournisseur en choisissant eBGP plutôt que iBGP. Cela était particulièrement vrai
jusqu'à la mi-2012 environ, lorsque les implémentations iBGP étaient boguées et
moins complètes que ce qui était nécessaire pour fonctionner dans le centre de
données.
Numérotation ASN
Le numéro de système autonome (ASN) est un concept fondamental dans BGP.
Chaque haut-parleur BGP doit avoir un ASN. Les ASN sont utilisés pour identifier
les boucles de routage, déterminer le meilleur chemin vers un préfixe et associer
les politiques de routage aux réseaux. Sur Internet, chaque ASN est autorisé à
parler avec autorité de préfixes IP particuliers. Les ASN sont disponibles en deux
versions : une version à deux octets et une version plus moderne à quatre octets.
Le modèle de numérotation ASN est différent de la façon dont ils sont attribués dans les
déploiements traditionnels hors centre de données. Cette section couvre les concepts sous-
jacents à la façon dont les ASN sont attribués aux routeurs au sein du centre de données.
ASN privés
Un ASN privé est un ASN destiné à être utilisé en dehors de l'Internet
mondial. Tout comme la plage d'adresses IP privées de 10.0.0.0/8, les ASN
privés sont utilisés dans la communication entre des réseaux non exposés
au monde extérieur. Un centre de données est un exemple d'un tel réseau.
Numérotation ASN | 17
Rien n'empêche un opérateur d'utiliser les ASN publics, mais cela n'est pas
recommandé pour deux raisons majeures.
Le premier est que l'utilisation d'ASN globaux peut dérouter les opérateurs et les
outils qui tentent de décoder les ASN en noms significatifs. Étant donné que de
nombreux ASN sont bien connus des opérateurs, un opérateur peut très bien
devenir confus, par exemple, en voyant l'ASN de Verizon sur un nœud au sein du
centre de données.
La deuxième raison est d'éviter les conséquences d'une fuite accidentelle des
informations BGP internes vers un réseau externe. Cela peut faire des ravages
sur Internet. Par exemple, si un centre de données utilisait l'ASN de Twitter en
interne et divulguait accidentellement un itinéraire prétendant, disons, que
Twitter faisait partie de l'AS_PATH1 pour une route accessible au public au sein du
centre de données, l'opérateur de réseau serait responsable d'un détournement
mondial massif d'un service bien connu. Les erreurs de configuration sont la
source numéro un ou numéro deux de toutes les pannes de réseau, et donc
éviter cela en n'utilisant pas les ASN publics est une bonne chose.
Les anciens ASN à 2 octets n'ont de l'espace que pour environ 1 023 ASN privés
(64512-65534). Que se passe-t-il lorsqu'un réseau de centre de données compte
plus de 1 023 routeurs ? Une approche consiste à dérouler la boîte à outils du
bouton BGP et à rechercher quelque chose appeléadmis-in. Une autre approche,
et beaucoup plus simple, consiste à passer à des ASN à 4 octets. Ces nouveaux
ASN prennent en charge près de 95 millions d'ASN privés (4200000000–
4294967294), plus que suffisant pour satisfaire un datacenter de toute taille en
activité aujourd'hui. Presque toutes les suites de routage, traditionnelles ou
nouvelles, propriétaires ou open source, prennent en charge les ASN de 4 octets.
Pour en revenir à la façon dont les ASN sont attribués à un locuteur BGP, le choix
le plus évident serait d'attribuer un ASN distinct pour chaque nœud. Mais cette
approche conduit à des problèmes inhérents aux protocoles chemin-vecteur. Les
protocoles à vecteur de chemin souffrent d'une variation d'un problème appelé
compter jusqu'à l'infini, subis par les protocoles vectoriels à distance. Bien que
nous ne puissions pas entrer ici dans tous les détails de la chasse au sentier, vous
1 Il s'agit d'informations supplémentaires transmises à chaque route, indiquant la liste des ASN
parcourus depuis l'origine de cette annonce.
Dans cette topologie, tous les nœuds ont des ASN distincts.
Considérons maintenant l'accessibilité au préfixe 10.1.1.1 du point de
vue de R1. R2 et R3 annoncent l'accessibilité au préfixe 10.1.1.1 à R1.
L'AS_PATH annoncé par R2 pour 10.1.1.1 est [R2, R4], et l'AS_PATH
annoncé par R3 est [R3, R4]. R1 ne sait pas comment R2 et R3 ont eux-
mêmes appris cette information. Lorsque R1 apprend le chemin vers
10.1.1.1 de R2 et R3, il choisit l'un d'eux comme le meilleur chemin. En raison de
sa prise en charge locale du multiacheminement, ses tables de transfert
contiendront l'accessibilité à 10.1.1.1 via R2 et R3, mais dans la meilleure
sélection de chemin de BGP, seul l'un des R2 ou R3 peut gagner.
Supposons que R3 est choisi comme le meilleur chemin vers 10.1.1.1 par R1.
R1 annonce maintenant qu'il peut atteindre 10.1.1.1 avec l'AS_PATH [R1, R3,
R4] à R2. R2 accepte l'annonce, mais ne la considère pas comme un meilleur
chemin pour atteindre 10.1.1.1, car son meilleur chemin est le plus court
AS_PATH R4.
Numérotation ASN | 19
ainsi, un nœud poursuit la recherche de l'accessibilité à la destination via tous ses
autres chemins disponibles. C'est ce qu'on appelle la chasse au chemin.
Dans la topologie simple de Figure 2-1, ça n'avait pas l'air si mal. Mais dans
une topologie Clos, avec ses interconnexions denses, ce problème simple
devient assez important avec de nombreux échanges de messages
supplémentaires et une perte de trafic accrue due à une désinformation se
propageant plus longtemps que nécessaire.
Pour éviter le problème de la recherche de chemin, le modèle de numérotation ASN pour les
routeurs dans une topologie Clos est le suivant :
• Les feuilles à travers une cosse ont un ASN différent, mais les feuilles à l'intérieur de
chaque cosse ont un ASN qui est unique à cette cosse.
BGP utilise un algorithme pour calculer le meilleur chemin vers un préfixe donné à
partir d'un nœud. Comprendre cela est fondamental pour comprendre comment le
transfert se produit dans un réseau routé BGP et pourquoi certains chemins sont
choisis par rapport à d'autres.
Vous pouvez utiliser cette phrase mnémotechnique lapidaire pour vous souvenir des algorithmes de
chemin BGP :
Les amateurs de lèvres sages appliquent des médicaments par voie orale tous les soirs.
J'ai entendu cela pour la première fois lors d'une présentation donnée par
mon ami et expert en BGP, Daniel Walton. Le véritable inventeur de
l'expression est un ingénieur Cisco, Denise Fishburne, qui a eu la gentillesse
de me laisser l'utiliser dans ce livre.Figure 2-3 illustre la correspondance
entre le mnémonique et les algorithmes réels.
Pour ceux qui souhaitent en savoir plus, Article 9 de la RFC 4271 couvre chaque
métrique en détail sanglant. Les routes iBGP ont un critère de correspondance
supplémentaire au-delà de ces huit paramètres, mais une discussion de ces
paramètres dépasse le cadre de ce livre.
Sélection multi-chemins
Dans un réseau densément connecté tel qu'un réseau Clos, le multicheminement des
routes est une exigence fondamentale pour construire des réseaux robustes et
évolutifs. BGP prend en charge le multiacheminement, que les chemins aient des coûts
égaux ou inégaux, bien que toutes les implémentations ne prennent pas en charge le
multiacheminement à coût inégal. Comme décrit dans la section précédente, deux
chemins sont considérés comme égaux s'ils sont égaux dans chacun des huit critères.
L'un des critères est que les numéros AS dans AS_PATH correspondent exactement, pas
seulement qu'ils aient des chemins de longueur égale. Cette
Le premier scénario de déploiement, dans lequel la même route peut être annoncée à partir
de différents ASN, est lorsqu'un serveur est à double connexion, avec un ASN distinct pour
chaque commutateur ToR, comme indiqué dans Figure 2-4. Sur la figure, les ellipses
représentent un canal de liaison ou de port ; c'est-à-dire que les deux liaisons sont conçues
pour ressembler à une liaison logique à plus grande vitesse vers les protocoles de couche
supérieure.
Supposons que les deux feuilles annoncent une route de sous-réseau vers
10.1.1.0/24, le sous-réseau du pont auquel le serveur est connecté. Dans ce
cas, chaque colonne voit la route vers 10.1.1.0/24 être reçue, l'une avec
AS_PATH de 64600 et l'autre avec un AS_PATH de 64601. Selon la logique des
chemins à coût égal, BGP exige non seulement que l'AS_PATH les longueurs
soient les mêmes, mais que les AS_PATH contiennent la même liste d'ASN.
Comme ce n'est pas le cas ici, chaque spine n'effectuera pas de trajets
multiples ; au lieu de cela, ils choisiront un seul des deux itinéraires.
Sélection multi-chemins | 23
Il existe plusieurs façons de résoudre ce problème, mais la plus simple
consiste à configurer un bouton qui modifie l'algorithme du meilleur chemin.
Le bouton s'appelle bestpath as-path multipath-relax. Qu'est-ce que c'est
fait est simple : lorsque les longueurs AS_PATH sont les mêmes dans les publicités de
deux sources différentes, l'algorithme du meilleur chemin saute la vérification de la
correspondance exacte des ASN, et procède à la correspondance sur les critères
suivants.
Pour éviter de configurer explicitement chaque bouton, une pratique courante consiste
à supposer des valeurs sûres et conservatrices pour les paramètres qui ne sont pas
spécifiés. Les temporisateurs en particulier sont un bouton commun pour lequel les
valeurs par défaut sont supposées si l'opérateur ne fournit aucune information
spécifique. En termes simples, les minuteurs contrôlent la vitesse de communication
entre les pairs. Pour BGP, ces temporisateurs sont réglés par défaut pour
l'environnement du fournisseur de services, pour lequel la stabilité est préférée à la
convergence rapide. À l'intérieur du centre de données, bien que la stabilité soit
certainement appréciée, la convergence rapide est encore plus importante.
Intervalle de publicité
BGP maintient un intervalle minimum par voisin. Les événements dans cette
fenêtre d'intervalle minimum sont regroupés et envoyés en une seule fois
lorsque l'intervalle minimum expire. Ceci est essentiel pour le code le plus
stable, mais cela permet également d'éviter des traitements inutiles en cas
de mises à jour multiples sur une courte durée. La valeur par défaut pour
cet intervalle est de 30 secondes pour les homologues eBGP et de 0 seconde
pour les homologues iBGP. Cependant, attendre 30 secondes entre les
mises à jour est tout à fait un mauvais choix pour un réseau richement
connecté comme ceux que l'on trouve dans le centre de données. 0 est le
choix le plus approprié car nous ne traitons pas de routeurs à travers
Dans chaque session BGP, un nœud envoie des messages keepalive périodiques
à son homologue. Si le pair ne reçoit pas de keepalive pendant une période
connue sous le nom de temps d'attente, le pair déclare la session comme morte,
abandonne la connexion et toutes les informations reçues sur cette connexion, et
tente de redémarrer la machine d'état BGP.
À l'intérieur du centre de données, trois minutes, c'est toute une vie. Les valeurs les plus
courantes configurées à l'intérieur du centre de données sont trois secondes pour keepalive
et neuf secondes pour le temporisateur d'attente.
Minuterie de connexion
Lorsque BGP a été adapté pour une utilisation dans le centre de données, aucun
de ces aspects de BGP n'a été modifié. Ce n'est pas le protocole lui-même qui doit
être modifié, mais la façon dont il est configuré. Chaque bouton qui doit être
configuré frappe la terreur (ou du moins sème potentiellement la confusion) dans
l'esprit des débutants et des pratiquants intermédiaires. Même ceux qui
connaissent BGP ressentent le besoin de se tenir constamment à jour en raison
de la quantité de travail requise par BGP.
Un bon moyen d'éviter tous ces problèmes est de configurer de bonnes valeurs par
défaut afin que les utilisateurs n'aient pas besoin de connaître les boutons qui ne les
intéressent pas. L'implémentation BGP dans de nombreuses suites de routage
propriétaires est originaire du monde des fournisseurs de services, donc une telle
option n'est généralement pas disponible. Avec des suites de routage open source qui
sont orientées vers le centre de données, telles queFRRoutage, la configuration par
défaut évite à l'utilisateur d'avoir à configurer explicitement de nombreuses options.
Voici les paramètres par défaut dans FRRouting for BGP. Ce sont les paramètres que je
pense être la meilleure pratique pour BGP dans le centre de données. Ce sont les
paramètres que j'ai vus utilisés dans à peu près tous les centres de données de
production que j'ai rencontrés.
Sommaire
Ce chapitre a couvert les concepts de base derrière l'adaptation de BGP au centre de
données, tels que l'utilisation d'eBGP comme modèle de déploiement par défaut et la
logique derrière la configuration des ASN. Dans les deux prochains chapitres, nous
appliquerons ce que nous avons appris dans ce chapitre à la configuration des nœuds
dans une topologie Clos.
Construire un automatisable
Configuration BGP
L'automatisation est possible lorsqu'il y a des modèles. Si nous ne pouvons pas trouver
de modèles, l'automatisation devient extrêmement difficile, voire impossible. La
configuration de BGP n'est pas différente. Nous devons rechercher des modèles dans
la configuration BGP afin de pouvoir les automatiser. Cependant, la détection de
modèles n'est pas suffisante. Les modèles doivent être robustes pour que
27
les changements ne deviennent pas dangereux. Il faut aussi éviter les doublons.
Dans la section qui suit, nous examinerons ces deux problèmes en détail et
verrons comment nous pouvons les éliminer.
Pour une grande partie du reste du livre, nous utiliserons la topologie dans Figure 3-1
pour montrer comment utiliser BGP. Cette topologie est une bonne représentation de la plupart des
À l'exception des serveurs, tous les périphériques répertoriés sont des routeurs et le
protocole de routage utilisé est BGP.
réseau 10.0.254.1/32
Cela indique à BGP d'annoncer l'accessibilité au préfixe
10.0.254.1/32. Ce préfixe doit déjà être dans la table de
routage pour que BGP l'annonce.
chemins-maximum 64
Cela indique à BGP qu'il doit utiliser plusieurs chemins, s'ils sont disponibles, pour
atteindre un préfixe.
Regardons d'abord leaf01 par lui-même pour voir ce qui y est dupliqué. Par
exemple, 10.0.254.1 est spécifié deux fois, une fois avec /32 et une fois sans.
La première fois, elle est spécifiée comme adresse de passerelle par défaut
et la deuxième fois comme interface.
Les mêmes problèmes qui étaient présents dans la configuration à travers les feuilles
sont également présents dans la configuration à travers les épines.
• En supposant 40 hôtes par rack, ce qui est en soi une extension dans tous les centres de
données sauf les plus grands, dans la configuration réseau, nous avons alloué /26 sous-
réseaux pour chaque sous-réseau associé aux hôtes.
Pour résumer les difficultés avec les configurations entre les nœuds, nous voyons
que l'utilisation d'adresses IP signifie que nous dupliquons des informations à
plusieurs endroits, et donc la configuration devient fragile et non évolutive à
mesure que de nouvelles adresses IP sont ajoutées et supprimées.
Depuis à peu près leur première introduction, toutes les suites de protocoles de
routage ont fourni une option pour prendre les préfixes d'un protocole et
l'annoncer dans un autre. Cette pratique s'appelleredistribuer les itinéraires.
statique
Annoncez les routes qui ont été configurées de manière statique.
connecté
Annoncer les routes associées aux adresses d'interface. Les liens sur ces
interfaces doivent être actifs et opérationnels lorsque cette configuration
s'exécute. Si un lien échoue, son adresse IP est immédiatement supprimée.
noyau
Ceci est spécifique aux systèmes d'exploitation Linux. Les routes peuvent
être configurées statiquement soit par une suite de routage - FRRouting,
bird ou quagga, par exemple - soit directement dans le noyau, soit via un
ensemble d'outils tel que iproute2 (leip famille de commandes) ou
directement via l'interface netlink vers le noyau lui-même.
ospf
Redistribuez les routes apprises via le protocole OSPF.
déchirure
Certains autres protocoles moins courants peuvent également être représentés, tels que IS-IS.
Ainsi, pour annoncer les adresses IP d'interface de tous les VLAN sur la box
et la passerelle par défaut, il suffit de remplacer toutes les déclarations
réseau par une seule commande :
redistribuer connecté
Pour éviter tous ces problèmes, à peu près tous les protocoles de routage prennent en charge
une certaine forme de politique de routage.
Une politique de routage consiste généralement en une séquence d'instructions if-then-else, avec des
Alors que nous avons jusqu'à présent évité l'utilisation de toute politique de routage, nous pouvons
maintenant voir la raison de leur utilisation avec BGP dans le centre de données.
Cependant, cela nous oblige à mettre une autre le plan de route clause pour
chaque routeur car chaque routeur a une adresse IP de bouclage différente. Si à
la place nous choisissons le sous-réseau à partir duquel ces adresses sont
allouées, 10.0.254.0/24, lele plan de route devient le même sur tous les routeurs.
Cependant, comme l'adresse IP de bouclage d'un routeur est contenue dans ce
sous-réseau et n'est pas égale à ce sous-réseau, nous ne pouvons pas utiliser
préfixe est égal. Au lieu de cela, nous introduisons un nouveau
Le qualificatif que nous avons ajouté, le masque d'adresse est égal, nous permet de faire
correspondre les adresses plus précisément en prenant en compte non seulement l'adresse,
mais également le masque d'adresse.
Étant donné que plusieurs de ces politiques de routage sont possibles, donnons un
nom à cette politique et en faisons une fonction ainsi :
ACCEPT_DC_LOCAL(préfixe) {
À peu près toutes les configurations de réseau que j'ai vues utilisent
toutes les majuscules pour le plan de route et liste-préfixe noms.
Bien qu'il ne s'agisse que d'un nom et que les opérateurs soient
libres de choisir leurs conventions—toutes les majuscules, camelCase
ou autre—il est utile d'être conscient des conventions.
Route-Maps
le plan de routeLes s sont un moyen courant d'implémenter des politiques de
routage. L'IOS de Cisco, NXOS, la suite de protocoles open source FRRouting,
Arista et d'autres prennent en chargele plan de routes. JunOS utilise une syntaxe
différente avec, selon certains, des mots-clés plus intuitifs. La suite de routage
open sourceOISEAU va plus loin et utilise un simple domaine spécifique
Politique de routage | 37
langage de programmation au lieu de cette combinaison de le plan de route
sable liste-préfixes. Les détails de la description dépassent le cadre de ce
livre, mais si vous êtes intéressé, vous pouvez trouver les détails sur les
pages Web de BIRD.
le plan de routes sont livrés avec un riche ensemble de classificateurs. Vous pouvez utiliser une
Tableau 3-1. Les classificateurs clés dans le champ de correspondance d'unle plan de route
ip, ipv6 Faire correspondre les informations IP telles que l'adresse IP, le prochain saut ou la source
suite <nombre> est utilisé pour identifier l'ordre des correspondances. Par
exemple, si vous vouliez rejeter 10.1.1.1/32 mais autoriser 10.1.1.0/24, la bonne
façon de commander leliste-préfixes utilisant le numéro de séquence serait
comme suit :
Pour permettre aux clauses d'être insérées au milieu d'une commande existante, une
pratique courante consiste à séparer les numéros de séquence avec un certain écart. Dans
l'exemple, nous avons utilisé un écart de 5.
Maintenant, nous pouvons définir un le plan de route faire correspondre les deux préfixes avec le
DC_LOCAL_SUBNET(préfixe) {
Politique de routage | 39
Au lieu de préfixes IP, nous pouvons également utiliser n'importe lequel des autres
classificateurs. Par exemple, si tout ce que nous devons faire est d'annoncer l'adresse IP de
bouclage principale du routeur, les lignes de configuration sont les suivantes :
BGP est un protocole de routage à vecteur de chemin et n'annonce donc pas les
mises à jour de route tant qu'il n'exécute pas l'algorithme du meilleur chemin. le
plan de routes sont appliqués à la réception et à l'envoi de paquets. Si un haut-
parleur BGP a des dizaines ou des centaines de voisins et qu'il y ale plan de routes
attaché à ces voisins, exécutant le le plan de route pour chaque voisin avant
d'annoncer la route devient gourmande en CPU et ralentit le
Politique de routage | 41
envoi de mises à jour. Un traitement de mise à jour lent peut également entraîner des temps de
convergence médiocres.
Par conséquent, groupe de pairss sont souvent utilisés avec le plan de routes pour
réduire considérablement la quantité de traitement que BGP doit effectuer avant
d'annoncer une route à ses voisins. Au lieu de s'appuyer uniquement sur des groupes
de pairs configurés par l'utilisateur, les implémentations construisent généralement
ces groupes de manière dynamique. C'est parce que même au sein d'un seulgroupe de
pairs, différents voisins peuvent prendre en charge différentes capacités (par exemple,
certains peuvent prendre en charge MPLS et d'autres pas). Ces informations ne
peuvent être déterminées que lors de l'établissement de la session. Ainsi, la
configuration de l'utilisateur n'aide pas ou impose une charge excessive à l'utilisateur
pour s'assurer que tous les voisins d'un groupe de pairs prennent en charge
exactement les mêmes capacités.
Comme nous utilisons des adresses /31 pour les adresses IP d'interface, il est
facile de déterminer l'adresse IP d'interface de l'homologue. Par exemple, si une
extrémité a une adresse IP de 169.254.1.0/31, l'adresse IP de l'extrémité de
l'interface est évidemment 169.254.1.1/31. De même, si une extrémité a une
adresse IP de 169.254.1.64/31, l'autre extrémité a une adresse IP de
169.254.1.65/31. La même chose serait vraie si les sous-réseaux /30 étaient utilisés
pour les adresses d'interface.
à:
Exemple 3-3. Configuration BGP des feuilles à l'aide des noms d'interface
Si vous êtes familiarisé avec l'automatisation, vous pourriez vous demander comment le remplacement des adresses IP
par des noms d'interface le rend plus convivial pour l'automatisation. Pourquoi l'utilisation de variables pour gérer les
différences entre les routeurs ne suffit-elle pas ? En fin de compte, l'automatisation implique une sorte de logique de
programmation et, selon l'outil, la logique peut être simple ou complexe. Mais la simplicité du code d'automatisation est
cruciale pour réduire les erreurs. De nombreuses études montrent que les erreurs causées par l'opérateur sont la
deuxième raison la plus courante des pannes de réseau. Avec l'automatisation, nous introduisons un niveau d'abstraction
ainsi que la possibilité de faire des ravages sur un plus grand nombre de routeurs instantanément. Par exemple, une
approche du câblage peut être que l'opérateur utilise différents ports sur différentes feuilles pour connecter des liaisons
inter-commutateurs. Étant donné que les ports de chaque nœud sont différents, l'utilisation de variables par nœud pour
définir les ports de liaison montante peut entraîner une mauvaise conception du réseau physique. Mais ces variables
créent un niveau d'abstraction et masquent ainsi le problème si les opérateurs ne font pas attention. Avec un câblage
uniforme, l'opérateur peut éliminer le besoin de définir des variables pour les ports de liaison montante à travers les
différents nœuds. De même, bien que cela ne soit pas toujours possible, une configuration exempte d'adresses IP signifie
que la configuration peut être largement utilisée, telle que la réutilisation sur plusieurs pods ou dans l'installation de
nouveaux centres de données. l'opérateur peut éliminer le besoin de définir des variables pour les ports de liaison
montante à travers les différents nœuds. De même, bien que cela ne soit pas toujours possible, une configuration
exempte d'adresses IP signifie que la configuration peut être largement utilisée, telle que la réutilisation sur plusieurs
pods ou dans l'installation de nouveaux centres de données. l'opérateur peut éliminer le besoin de définir des variables
pour les ports de liaison montante à travers les différents nœuds. De même, bien que cela ne soit pas toujours possible,
une configuration exempte d'adresses IP signifie que la configuration peut être largement utilisée, telle que la réutilisation
Sommaire
Ce chapitre a tiré les premiers coups pour rendre la configuration BGP plus conviviale
pour l'automatisation. Tout d'abord, nous avons utilisé la politique de routage pour
remplacer les adresses IP des déclarations de réseau individuelles par un seulredis
hommage connecté directive avec une feuille de route qui garantit que
Résumé | 45
seules les adresses appropriées sont annoncées. Ensuite, en nous appuyant sur
le petit nombre d'adresses couvertes par les sous-réseaux /30 et /31 (ce qui
facilite la détermination de l'adresse IP de l'extrémité distante une fois que
l'adresse IP de l'extrémité locale est connue), nous réduisons la configuration
pour utiliser des noms d'interface au lieu d'IP adresses pour identifier un pair.
Cependant, nous n'avons pas encore terminé. Ce que cette configuration cache,
c'est que les interfaces ont toujours besoin d'une configuration d'adresse IP,
même si elles sont cachées de la configuration BGP et non dupliquées. De plus, la
configuration repose toujours sur la connaissance de l'ASN du pair. DansChapitre
4, nous éliminons ces deux exigences.
Dans chapitre 3, nous avons montré comment éliminer l'utilisation des adresses
IP de la configuration BGP. Cependant, l'opérateur doit toujours configurer les
adresses IP sur les interfaces pour le peering BGP. Étant donné que ces adresses
d'interface ne sont jamais utilisées pour autre chose que la configuration BGP et
que leurs informations ne sont jamais propagées via BGP, leur configuration est
un vestige insignifiant du monde des fournisseurs de services dans le centre de
données. Un autre problème mentionné vers la fin de
chapitre 3 sur l'automatisation de la configuration est la nécessité de connaître le
distant-comme du pair.
Après avoir éliminé ces deux exigences, nous nous retrouvons avec
une configuration homogène et sans duplication entre les nœuds,
le seul contenu spécifique au nœud étant l'ASN du nœud et son
identifiant-routeur. En d'autres termes, la configuration est très conviviale pour
l'automatisation et simple.
Pour atteindre ces objectifs, nous aurons besoin de comprendre un sujet presque aussi
ancien que le routage : les interfaces non numérotées, et comment nous adaptons cette
construction à BGP.
47
Le besoin d'adresses IP d'interface et d'adresses
distantes
Comme BGP fonctionne sur TCP/IP, il a besoin d'une adresse IP pour
créer une connexion. Comment identifier l'adresse de ce nœud distant
tout en n'allouant aucune adresse IP sur les interfaces ? Répondre à
cette question impliquera de comprendre une RFC moins connue et les
outils de configuration sans état fournis par IPv6. Il s'agit également de
comprendre le véritable cœur du routage.
Bien qu'il soit possible de dériver ces nombres de manière algorithmique, cela
peut être maladroit et sujet aux erreurs. Le code d'automatisation devient plus
délicat. Une approche très courante consiste à stocker les adresses d'interface
sous la forme d'une liste ou d'un groupe de variables, et dans le programme
d'automatisation, de lire à partir de ces variables pour affecter les adresses aux
interfaces. Cette méthode devient impossible à utiliser.
Enfin, s'assurer que les deux extrémités d'une interface ont reçu des
adresses du même sous-réseau pourrait être une mauvaise façon de vérifier
un câblage correct.
Ce n'est pas que l'interface n'a pas d'adresse IP ; il emprunte son adresse IP
à une autre interface. Mais si l'interface à laquelle l'adresse IP est
empruntée tombe en panne, son adresse IP ne peut plus être empruntée.
Pour éviter que les interfaces ne perdent subitement leurs adresses IP, les
interfaces empruntent l'adresse IP à une interface qui ne fait jamais défaut :
l'interface de bouclage.
Les routeurs peuvent répondre aux ARP sur des interfaces non numérotées avec
l'adresse MAC locale de l'interface reçue car l'interface a une adresse IP, même si
elle est empruntée. ICMP, avec traceroute, fonctionne toujours. Mais, si une
adresse IP n'est plus unique sur un nœud, ne perdons-nous pas la possibilité
d'identifier l'interface sur laquelle le paquet est entré dans un routeur ?
Les réseaux Clos sont principalement construits avec un seul lien entre
chaque paire de nœuds. Ainsi, il est trivial d'identifier les liens entre les
nœuds et ainsi de dériver l'identité de l'interface entrante ou de
l'interface sortante. Si un réseau Clos a de multiples liens parallèles
entre les nœuds, il est difficile d'identifier l'interface spécifique parmi les
liens parallèles à l'origine d'un problème de connectivité. Cependant,
plusieurs liens parallèles entre les nœuds d'un réseau Clos ne sont pas
courants pour diverses raisons, qui sont discutées dans
Chapitre 1.
Alors, comment les protocoles de routage traitent-ils les interfaces non numérotées ?
OSPF, qui fonctionne sur IP, fonctionne bien. La RFC OSPF originale a fourni
suffisamment de conseils sur la façon de faire fonctionner ce scénario. Même si la
plupart des fournisseurs ne l'implémentent pas, la suite de routage open source
FRRouting prend en charge la même pratique. L'OSPF non numéroté est déployé en
production sur de nombreux sites. IS-IS, qui ne fonctionne même pas sur IP, fonctionne
également très bien avec des interfaces non numérotées.
Pour s'assurer que les hôtes découvrent automatiquement les routeurs voisins,
un nouveau protocole au niveau des liaisons appelé annonce de routeur (RA) a
été introduit. Lorsqu'il est activé sur une interface, RA annonce périodiquement
les adresses IPv6 de l'interface, y compris le LLA. Ainsi, une extrémité peut
déterminer automatiquement l'adresse IPv6 de l'autre extrémité.
IPv6 et RA sont tous deux implémentés de nos jours sur les hôtes et les
routeurs. Cela semble donc être un pas dans la bonne direction pour rendre
les adresses des pairs automatiquement détectables.
Pour être clair, l'utilisation d'IPv6 LLA n'oblige pas les opérateurs à
commencer à déployer IPv6 dans leurs réseaux. Il n'y a pas non plus de
tunneling d'aucune sorte, IPv4 dans IPv6 ou autre, dans ce que nous
essayons d'utiliser ici. L'IPv6 LLA est utilisé uniquement pour établir une
connexion TCP pour démarrer une session BGP. Outre l'activation d'IPv6 sur
un lien, qui est généralement activée automatiquement, et l'activation de
l'annonce de routeur IPv6 sur le lien, aucune autre connaissance d'IPv6 n'est
attendue de l'opérateur.
RFC 5549
Même si nous pouvons maintenant potentiellement établir un peering BGP
sans nécessiter d'adresse IP d'interface, la publicité des routes nécessite
également un moyen de spécifier comment atteindre le routeur annonçant
les routes. Dans BGP, cela est signalé explicitement dans l'annonce de route
via l'attribut NEXTHOP. La section précédente a montré comment cette
La RFC 5549 est une RFC quelque peu obscure, inventée dans les premières
années d'un nouveau siècle. Son but est de permettre l'annonce d'une route IPv4
et le routage d'un paquet IPv4 sur un réseau IPv6 pur. Ainsi, il fournit un moyen
de transporter des routes IPv4 avec un prochain saut IPv6. Vous avez bien lu : les
routes IPv4 avec un prochain saut qui est une adresse IPv6.
Dans le cas d'IPv6 également, l'adresse IPv6 de nexthop est utilisée pour
identifier l'adresse MAC de nexthop, en utilisant l'équivalent IPv6 d'ARP :
Neighbor Discovery (ND). Même en IPv6, le transfert vers la destination d'origine
n'implique que l'adresse MAC du prochain saut. L'adresse IP nexthop est utilisée
uniquement pour obtenir l'adresse MAC du nexthop.
Une implémentation naïve exigerait en effet tout cela. Mais alors, il ne faut
pas être si naïf. Bien que la RFC 5549 ait été implémentée dans quelques
routeurs traditionnels, l'accès à la suite open source FRRouting nous permet
d'examiner de plus près comment fonctionne une implémentation non
naïve.
Une fois qu'une connexion a été établie avec succès, BGP reçoit une
annonce de route pour le 10.1.1.0/24 susmentionné de l'homologue avec le
LLA IPv6 de l'homologue (et l'adresse IPv6 globale si elle est configurée). Si
BGP sélectionne ce chemin comme le meilleur chemin à atteindre
10.1.1.0/24, il transmet cette route au processus Routing Information
dataBase (RIB) (appelé zebra dans FRRouting), avec le prochain saut
défini sur IPv6 LLA, cette information de prochain saut étant reçue dans
le message BGP UPDATE.
Lors de la réception d'une route pour 10.1.1.0/24 avec un LLA IPv6, supposons
que le RIB la sélectionne comme la meilleure route avec laquelle remplir la table
de transfert. Le processus RIB consulte désormais sa base de données pour voir
Le processus RIB pousse ensuite la route dans la table de routage du noyau avec
un prochain saut de 169.254.0.1 et une interface sortante définie sur celle de
l'interface d'appairage. Ainsi, l'état final dans les tableaux ressemble à ceci :
Résumer:
• BGP non numéroté utilise le LLA IPv6 de l'interface pour configurer une session BGP avec
un homologue.
• BGP utilise RFC 5549 pour coder les routes IPv4 comme accessibles sur un prochain
saut IPv6, en utilisant IPv6 LLA comme prochain saut.
Parce que l'encodage des routes IPv4 avec un prochain saut IPv6 n'est pas le modèle
habituel, la RFC 5549 définit une nouvelle capacité, appelée nexthop étendu,
pour négocier l'utilisation de la RFC 5549 sur une session de peering.
Comme c'est commun avec les capacités BGP, les deux côtés doivent
annoncer leur capacité à comprendre la RFC 5549 afin qu'elle soit utilisée
dans l'appairage BGP.
Interopérabilité
Chaque pair eBGP définit le NEXTHOP sur sa propre adresse IP avant
d'envoyer une annonce de route.
Après avoir éliminé les adresses d'interface, la seule chose qui reste pour
atteindre l'objectif de la configuration simple et à l'emporte-pièce est la
nécessité de spécifier l'ASN du voisin via le à distance en tant que mot-clé d'une
configuration de voisin BGP.
• Pour identifier si la session BGP sera régie par des règles iBGP ou
des règles eBGP.
Sommaire
En éliminant les adresses IP d'interface et la spécification de la télécommande
exacte comme dans la spécification de commande de voisin, nous pouvons
arriver à une configuration, répertoriée dans Exemple 4-1, qui semble
remarquablement similaire à travers les feuilles et les épines illustrées dans
Figure 3-1. Les seules différences entre les nœuds sont indiquées en gras dans
l'exemple.
Exemple 4-1. Configuration BGP finale pour une feuille et une épine dans un réseau
Clos
// configuration feuille01
// configuration spine01
Résumé | 59
route-map ACCEPT_DC_LOCAL permis 10
correspondre à l'adresse IP DC_LOCAL_SUBNET
Jusqu'à présent, nous nous sommes concentrés sur la configuration de BGP dans une
topologie Clos. Nous n'avons pas décrit comment visualiser les résultats de notre
configuration, gérer BGP après la configuration initiale, ou comment configurer BGP
pour connecter une topologie Clos au monde extérieur. Ceux-ci sont au centre de
Chapitre 5.
Jusqu'à présent, ce livre a préparé le terrain pour créer une configuration simple
et automatisable pour un réseau de centre de données utilisant BGP. Mais nous
venons de passer par la configuration initiale d'un routeur Leaf ou Spine. Comme
tout opérateur de réseau le sait, le travail est loin d'être terminé une fois le
réseau déployé. Les routeurs doivent être mis à niveau, des correctifs de sécurité
doivent être appliqués, de nouveaux routeurs doivent être installés, et que Dieu
nous aide tous, et si BGP refuse de se comporter ? Ce chapitre aborde ces
questions.
La commande la plus populaire pour voir le statut de BGP est montrer ip bgp
somme mary. Figure 5-1 montre un exemple de sortie pour la commande pour la
topologie de référence dans ce livre (basé sur FRRoutage).
61
Figure 5-1. Montrer le réseau
Cette commande affiche uniquement la sortie des sessions IPv4 BGP. Lorsque
BGP a commencé sa vie, il n'y avait qu'IPv4 et le mot-cléip était sans ambiguïté
quant au protocole auquel il faisait référence. Depuis l'avènement d'IPv6 et avec
l'évolution de BGP pour prendre en charge plusieurs protocoles, nous avons
également besoin d'une commande pour afficher les sessions IPv6.
Conformément au modèle AFI/SAFI, leafficher bgp les commandes ont évolué pour
Support afficher le résumé de la monodiffusion bgp ipv4 et montrer bgp ipv6 uni
résumé du casting. Pour de nombreux opérateurs, cependant, la simple mémoire
• Tous les voisins avec lesquels ce routeur est censé peerer sont répertoriés
(contrairement à d'autres protocoles comme OSPF).
• L'état de chaque session est répertorié. Si une session est dans l'état
Établi, au lieu du nom de l'état, le nombre de préfixes acceptés de
l'homologue est affiché.
• Le temps de disponibilité de chaque session est affiché (ou son temps d'arrêt, si la
session n'est pas à l'état Établi).
• Des informations telles que l'ID du routeur du nœud et l'ASN sont également
affichées.
La version du BGP (la colonne « V » dans Figure 5-1) est archaïque, étant donné
que toutes les implémentations BGP utilisées aujourd'hui, en particulier dans le
centre de données, exécutent la version 4 du protocole. Les champs restants sont
pour la plupart inintéressants à moins qu'il n'y ait un problème.
Une différence à noter dans la sortie précédente par rapport à ce que vous
pourriez voir dans à peu près toutes les autres implémentations (sauf ExaBGP)
est l'affichage du nom d'hôte de l'homologue. Ceci est basé sur uneÉbauche de
l'IETF qui a défini une nouvelle capacité BGP, appelée nom d'hôte,
qui permet aux opérateurs d'annoncer le nom d'hôte ainsi que le
Donc tout spectacle ou dégager La commande peut prendre un nom d'hôte au lieu
d'un voisin. L'utilisation de noms d'hôtes dans les commandes simplifie
potentiellement le dépannage, car il est beaucoup plus intuitif de dire « montrez-
moi l'état de ma session avec l'hôteX» que « me montrer l'état de ma session avec
l'adresse IP X,» ou « me montrer l'état de ma session sur l'interface X."
Dans FRRouting, nous pouvons utiliser des noms d'hôtes dans n'importe quelle
commande qui ne configure pas une session BGP. La raison de la restriction est que le
nom d'hôte n'est pas connu jusqu'à ce que les capacités BGP soient négociées et les
noms d'hôte échangés.
Pour obtenir des informations détaillées sur un voisin, vous pouvez utiliser le com‐
mandat afficher les voisins ip bgp nom_voisin. La sortie de ce
La commande contient des informations supplémentaires, telles que la dernière
fois que la session a été réinitialisée, la raison de la réinitialisation et le nombre
de messages BGP UPDATE envoyés et reçus. Exemple 5-1 présente un exemple
de sortie de leaf01 pour le voisin spine01.
Exemple 5-1. Exemple de sortie montrant les détails de la session d'appairage BGP
avec un voisin
Envoyé Rcvd
Ouvre : 4 5
Notifications : 4 2
Mises à jour: 40 25
Keepalives : 26962 26959
Rafraîchir l'itinéraire : 0 0
Aptitude: 0 0
Le total: 27010 26991
Le temps minimum entre les exécutions de la publicité est de 0 seconde
Envoyé Rcvd
Ouvre : 4 5
Notifications : 4 2
Mises à jour: 40 25
Keepalives : 26988 26985
Rafraîchir l'itinéraire : 0 0
Aptitude: 0 0
Le total: 27036 27017
Le temps minimum entre les exécutions de la publicité est de 0 seconde
Une autre commande courante consiste à voir la liste des routes calculées et
dans la table de routage de BGP. La commande pour cela estafficher l'ip bgp ou
montrer bgp ipv4 monodiffusion. Figure 5-2 montre la sortie de cette
commande sur leaf01 de la topologie de référence.
Les champs clés sont le préfixe lui-même, les prochains sauts possibles
et l'AS_PATH associé à chaque préfixe. Cet écran n'affiche que 8 préfixes
sur 12 car les deux autres n'ont pas été acceptés. Les causes fréquentes
de rejet des préfixes sont soit des décisions de politique, soit la
détection d'une boucle AS_PATH (la boucle AS_PATH a été détectée dans
ce cas). L'astérisque (*) en début de ligne indique que l'itinéraire est
valide ; c'est le nexthop est accessible. Ensuite, un signe égal (=) indique
que la route a plusieurs chemins utilisables à coût égal.
exit01 et exit02 sont les deux nœuds qui délimitent l'intérieur du centre
de données de l'extérieur. Ils sont connectés au nœud intitulé
l'Internet; il s'agit du commutateur de périphérie du centre de données, qui est le
Les feuilles de frontière remplissent deux fonctions principales : supprimer les ASN
privés et éventuellement agréger les routes internes du centre de données et annoncer
uniquement les routes récapitulatives vers les routeurs de périphérie.
Le mot-clé résumé uniquement spécifie que les routes individuelles ne doivent pas
être envoyées. Sans cette option, les routes récapitulatives ainsi que les routes
individuelles sont annoncées. Lorsqu'une route est agrégée et que seule la route
récapitulative est annoncée, l'intégralité de l'AS_PATH est également supprimée,
sauf indication contraire.
En règle générale, le propre ASN du nœud est utilisé pour ajouter des ASN
supplémentaires. Voici un exemple d'extrait de configuration sur spine01
préfixant son propre ASN dans ses annonces à tous les voisins :
Figure 5-5 montre la sortie pour le même préfixe utilisé dans Figure
5-4, sauf que l'une des épines, spine02, a annoncé un chemin plus
long que l'autre, et par conséquent ce chemin n'a pas été
sélectionné.
Il existe d'autres méthodes pour indiquer qu'un routeur BGP échoue, mais toutes
les implémentations ne prennent pas en charge ces méthodes, j'ai donc choisi de
parler du modèle le plus pris en charge.
Débogage BGP
Comme tout autre logiciel, BGP se comportera parfois de manière imprévisible en
raison d'un bogue ou d'une incompréhension de la part de l'opérateur. Une solution
courante à un tel problème consiste à activer le débogage et à consulter les journaux
de débogage pour déterminer la cause du comportement imprévisible.
Débogage BGP | 69
pour comprendre ce qui se passe avec BGP. De nombreuses options sont répertoriées
sousdéboguer, mais trois en particulier sont essentiels :
événements-voisins
Ceci est utilisé pour déboguer n'importe quelle session et signaler des problèmes.
Le débogage peut concerner toutes les sessions ou uniquement une session
spécifique. Des informations telles que l'extrémité qui a initié la connexion, les
transitions de la machine d'état BGP et les capacités échangées peuvent toutes
être consultées dans le journal de débogage avec cette option activée.
meilleur chemin
Ceci est utilisé pour déboguer le calcul du meilleur chemin. Si vous l'activez pour
un préfixe spécifique, les journaux afficheront la logique suivie pour sélectionner
le meilleur chemin pour un préfixe, y compris la sélection multichemin.
Figure 5-6 montre un exemple de l'extrait d'un journal. C'est
pour déboguer le même préfixe montré dansFigure 5-3 et
Figure 5-5. Comme nous l'avons vu, vous pouvez également utiliser les journaux de
débogage pour mieux comprendre le fonctionnement de la logique de sélection du
meilleur chemin de BGP. Dans ce cas, comment un AS_PATH plus long empêche la
sélection d'un chemin.
Mises à jour
Ceci est utilisé pour déboguer les problèmes impliquant soit la publicité, soit
la réception de publicités de préfixes avec un voisin. Vous pouvez spécifier
un seul préfixe, tous les préfixes ou tous les préfixes pour un seul voisin afin
d'examiner de plus près la cause première d'un problème. Les journaux de
débogage vous montrent non seulement les préfixes qui ont été acceptés,
mais également ceux qui ont été rejetés. Par exemple, étant donné que les
spines partagent le même ASN, l'adresse IP de bouclage d'un spine ne peut
pas être vue par les autres spines. Pour voir cela en action, en émettant
déboguer bgp mises à jour préfixe
10.254.0.253/32, nous obtenons la sortie montrée par Exemple 5-1 dans le
fichier journal.
2017/05/20 15:09:54.112100 BGP : MISE À JOUR rcvd swp2 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:2e(fe80::4638:39ff:fe00:2e), chemin
64514 65000 65000 65000 64515
2017/05/20 15:09:54.112165 BGP: swp2 rcvd MISE À JOUR environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
2017/05/20 15:09:54.113438 BGP : MISE À JOUR rcvd swp3 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:57(fe80::4638:39ff:fe00:57), métrique
0, chemin 64515
2017/05/20 15:09:54.113471 BGP: swp3 rcvd 10.254.0.3/32
2017/05/20 15:09:54.113859 BGP : MISE À JOUR rcvd swp4 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:43(fe80::4638:39ff:fe00:43), chemin
64516 65000 65000 65000 64515
2017/05/20 15:09:54.113886 BGP: swp4 rcvd MISE À JOUR environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
2017/05/20 15:09:54.114135 BGP : MISE À JOUR rcvd swp1 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:5b(fe80::4638:39ff:fe00:5b), chemin
64513 65000 65000 65000 64515
2017/05/20 15:09:54.114157 BGP: swp1 rcvd MISE À JOUR environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
2017/05/20 15:09:54.162440 BGP : u3 : s6 envoyer la MISE À JOUR avec attr : , origine i,
mp_nexthop ::(::), chemin 64515
2017/05/20 15:09:54.162788 BGP: u3:s6 envoyer MISE À JOUR 10.254.0.3/32
2017/05/20 15:09:54.214657 BGP: swp4 rcvd MISE À JOUR avec attr: , origine i,
mp_nexthop fe80::4638:39ff:fe00:43(fe80::4638:39ff:fe00:43), chemin
64516 65000 64515
2017/05/20 15:09:54.14803 BGP: swp4 rcvd UPDATE environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
2017/05/20 15:09:54.214914 BGP : MISE À JOUR rcvd swp2 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:2e(fe80::4638:39ff:fe00:2e), chemin
64514 65000 64515
2017/05/20 15:09:54.214933 BGP: swp2 rcvd MISE À JOUR environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
2017/05/20 15:09:54.216418 BGP : MISE À JOUR rcvd swp1 avec attr : , origine i,
mp_nexthop fe80::4638:39ff:fe00:5b(fe80::4638:39ff:fe00:5b), chemin
64513 65000 64515
2017/05/20 15:09:54.216449 BGP: swp1 rcvd MISE À JOUR environ 10.254.0.3/32
- - REFUSÉ en raison de : as-path contient notre propre AS ;
Sommaire
Ce chapitre a fourni des informations sur certains des outils et tâches moins
fréquents, mais néanmoins critiques, pour la gestion et le dépannage des
déploiements BGP dans un centre de données. À ce stade, vous devriez, espérons-
le, posséder une bonne compréhension des réseaux de centre de données, de
BGP et de la configuration et de la gestion d'un réseau Clos dans le centre de
données.
Résumé | 71
Chapitre 6 couvre l'extension du routage BGP jusqu'à l'hôte, ce qui est également
de plus en plus déployé en tant que solution dans le centre de données en raison
de l'augmentation des services virtuels, entre autres utilisations.
73
parce que la frontière représentait en quelque sorte la séparation du client du
serveur. Il était logique d'attribuer des pare-feu à cette limite pour protéger les
serveurs des clients malveillants ou non autorisés. De même, les serveurs
frontaux des équilibreurs de charge, généralement des serveurs Web, prennent
en charge un modèle évolutif. Cette conception s'étendait également aux pare-
feux, où les équilibreurs de charge faisaient face à une rangée de pare-feu
lorsque la bande passante du trafic dépassait la capacité d'un seul pare-feu.
Le réseau Clos a détruit toute frontière naturelle de ce type, et avec sa grande échelle, le
centre de données moderne a rendu les modèles de mise à l'échelle impraticables. Dans le
nouveau monde, les services sont fournis par des machines virtuelles (VM) s'exécutant sur des
hôtes finaux ou des hôtes finaux non virtualisés. Deux services populaires fournis de cette
manière sont les services d'équilibrage de charge et de pare-feu. Dans ce modèle, au fur et à
mesure que le volume du trafic monte et descend, les machines virtuelles peuvent être
augmentées ou réduites dynamiquement pour gérer les besoins changeants du trafic.
Adresses Anycast
Étant donné que les serveurs (ou VM) fournissant un service peuvent apparaître
n'importe où dans le centre de données, l'adresse IP ne peut plus être limitée à
un seul rack ou routeur. Au lieu de cela, plusieurs racks pourraient
potentiellement annoncer la même adresse IP. Avec la capacité de transmission
ECMP du routage, les paquets seraient acheminés vers l'un des nœuds les plus
proches offrant le service. Ces adresses IP d'extrémité n'ont pas de rack ou de
commutateur unique auquel elles peuvent être associées. Ces adresses IP qui
sont annoncées par plusieurs points de terminaison sont appeléestout cast
Adresses IP. Ce sont des adresses IP unicast, ce qui signifie qu'elles sont
envoyées à une seule destination (par opposition aux adresses multidestinations
telles que la multidiffusion ou la diffusion), mais la destination choisie est
déterminée par le routage, et différents points de terminaison choisissent
différents nœuds offrant le même service.
Les sous-réseaux sont généralement attribués par rack. Comme nous en avons discuté dans
Chapitre 1, 40 serveurs par rack se traduisent par des termes de référence annonçant un sous-
réseau /26. Mais comment un ToR découvre-t-il ou annonce-t-il une adresse hors sous-réseau
qui est une adresse IP de service anycast ? La configuration de routage statique n'est pas
acceptable. BGP vient à nouveau à la rescousse.
Il existe deux modèles de peering avec des serveurs. Le premier est le modèle non
numéroté BGP décrit dansChapitre 4. La seconde implique une fonctionnalité prise en
charge par BGP appeléevoisins dynamiques. Nous examinerons chaque modèle, en
énumérant les avantages et les inconvénients des deux. Mais nous commençons par
regarder ce qui est commun aux deux modèles : le schéma de numérotation ASN, et
l'échange de route entre le serveur et le ToR.
Affectation ASN
Le déploiement le plus courant que j'ai vu consiste à dédier un ASN pour
tous les serveurs. Les avantages de cette approche sont qu'elle est simple à
configurer et à automatiser, et qu'elle simplifie l'identification et le filtrage
des routes à partir du serveur. Les deux principaux inconvénients de cette
approche sont 1) la complexité de la configuration sur le serveur augmente
si nous devons annoncer autre chose que la route par défaut vers l'hôte, et
2) le suivi de quel serveur a annoncé une route devient plus délicat car tous
les serveurs partagent la même ASN.
Une autre approche consisterait à attribuer un seul ASN pour tous les serveurs
connectés au même commutateur, mais des ASN distincts pour des commutateurs
distincts. Dans un centre de données moderne, cela se traduit par un serveur ASN
séparé par rack. L'avantage de ce modèle est qu'il semble désormais que les serveurs
ne sont qu'un autre niveau d'un réseau Clos. Les principaux inconvénients de ce
modèle sont les mêmes que ceux du modèle précédent, bien que nous puissions
restreindre une annonce de route à un rack spécifique.
Parce que chaque hôte est maintenant un routeur de premier ordre, toutes sortes de
mauvaises choses peuvent arriver si nous ne contrôlons pas les routes qu'un
commutateur accepte d'un hôte. Par exemple, un hôte peut annoncer accidentellement
ou par malveillance la route par défaut (ou toute autre route qu'il ne possède pas),
acheminant ainsi le trafic vers la mauvaise destination. Un autre
Pour gérer tous ces scénarios, nous utilisons des politiques de routage comme décrit
dans chapitre 3. L'extrait de configuration suivant montre comment nous pouvons
accomplir chacune des tâches susmentionnées via l'utilisation de la politique de
routage, comme démontré ici :
Maintenant que nous avons établi l'importance d'inclure des serveurs de périphérie
tels que des équilibreurs de charge et des pare-feu dans votre configuration de
routage, nous pouvons examiner deux modèles BGP pour le faire : voisins dynamiques
et BGP non numéroté. Chaque modèle a des limites, alors regardez par-dessus
Voisins dynamiques
Parce que BGP fonctionne sur TCP, tant que l'un des pairs initie une connexion,
l'autre extrémité peut rester passive, attendant silencieusement qu'une
connexion arrive, tout comme un serveur Web attend une connexion d'un
navigateur ou d'un autre client.
Les voisins dynamiques BGP sont une fonctionnalité prise en charge dans certaines
implémentations où une extrémité est généralement passive. On lui dit simplement de
quel sous-réseau IP accepter les connexions et il est associé à un groupe de pairs qui
contrôle les caractéristiques de la session de peering.
Rappelez-vous que les serveurs d'un rack partagent généralement un sous-réseau avec
les autres serveurs du même rack. À titre d'exemple, supposons qu'un groupe de 40
serveurs connectés à un commutateur ToR se trouve dans le sous-réseau 10.1.0.0/26.
Une configuration typique des voisins dynamiques BGP sur un ToR ressemblera à ceci :
en charge sur une interface ; c'est-à-dire que tu ne peux pas direbgp ecoute inter
face aux serveurs de groupe de pairs vlan10. Il n'est pas non plus possible d'utiliser le
Le principal avantage de cette approche est que vous pouvez créer un centre de
données purement routé, sans pontage. Ce modèle prend également en charge
les serveurs à double connexion, sans qu'il soit nécessaire d'exécuter un LACP
multinœud propriétaire. Le principal inconvénient de cette approche est que les
serveurs démarrés par DHCPv4 ou PXE sont difficiles à prendre en charge car il
n'y a pas de pile de routage pendant le démarrage PXE, mais le commutateur ne
sait pas comment transférer les paquets vers un serveur spécifique. Il existe des
solutions possibles, mais l'explication dépasse le cadre du livre.
Le modèle non numéroté BGP sur une interface partagée est théoriquement
possible lorsque le lien partagé est entre un commutateur et un groupe de
serveurs, mais n'est actuellement pas mis en œuvre.
Aujourd'hui, des suites de routage open source plus complètes telles que
FRRoutage et Routage BIRD sont disponibles pour une utilisation sur les
serveurs Linux et BSD. FRRouting prend en charge les voisins BGP non
numérotés et dynamiques. Les exemples utilisés dans ce chapitre reposent
sur FRRouting.
Sommaire
Ce chapitre a montré comment étendre l'utilisation de BGP jusqu'aux hôtes. Avec
l'avènement de suites de routage puissantes et complètes telles que FRRouting, il
est possible de configurer BGP simplement en utilisant BGP non numéroté, ce qui
rend trivial l'automatisation de la configuration BGP sur tous les serveurs. Si vous
ne pouvez pas vivre avec les limitations actuelles de BGP non numéroté ou si
vous préférez un peering BGP plus traditionnel, les voisins dynamiques BGP sont
une solution alternative. De plus, nous avons montré comment limiter les
dommages pouvant être causés par des serveurs annonçant des itinéraires
incorrects dans le réseau, par inadvertance ou par inadvertance.