Comment fonctionne BGP sur TCP?

13

Pour autant que je sache, nous utilisons des protocoles de routage pour atteindre la connectivité de couche 3, je suis confus avec le fait que BGP fonctionne sur TCP qui est L4. Comment établir L4 / TCP sans connectivité L3 préalable?

mélangé
la source

Réponses:

17

Les sockets TCP / IP établissent une connexion de bout en bout via le réseau, entre deux points de terminaison spécifiquement adressés. BGP utilise TCP / IP pour communiquer entre les routeurs (tout périphérique échangeant des informations de routage.) Les informations échangées sont utilisées par les homologues BGP, pour mieux choisir la façon dont ils choisissent où envoyer, (aka, saut suivant) les paquets dont ils ont besoin pour transmettre.

Aux confins d'Internet, les choses sont faciles; "tout est comme ça", envers votre fournisseur d'accès Internet. Plus au milieu, un routeur peut avoir plusieurs choix. Il utilise donc TCP / IP pour déplacer le trafic BGP parmi ses voisins de routage. Les informations BGP indiquent ensuite au routeur les chemins à privilégier lorsqu'il existe plusieurs façons pour un paquet d'arriver où il va.

Les points finaux (par exemple les navigateurs Web) et les routeurs parlent TCP / IP. Mais les routeurs utilisent TCP / IP (communications BGP composées de paquets TCP / IP) pour parler de ce qu'il faut faire avec les autres paquets TCP / IP qu'ils doivent acheminer.

Craig Constantine
la source
Je crois que "Mais les routeurs utilisent TCP / IP pour parler de ce qu'il faut faire avec les autres paquets TCP / IP qu'ils doivent acheminer." devait être "Mais les routeurs utilisent BGP pour parler de ce qu'il faut faire avec les autres paquets TCP / IP qu'ils doivent acheminer."
Olivier Dulac
1
... J'ai aussi pensé à l'écrire de cette façon. Avec ma dernière phrase, j'essayais de souligner comment différents périphériques font différentes choses avec TCP / IP. Je vais modifier le libellé.
Craig Constantine
13

Les protocoles de routage «n'atteignent» pas la connectivité L3. Ils remplissent la table de routage (transfert) du routeur avec les informations apprises des autres routeurs.

BGP est une "application" qui s'exécute sur TCP / IP. En d'autres termes, un routeur BGP utilise TCP / IP pour communiquer avec d'autres routeurs BGP pour échanger des informations de routage.

Pour que BGP fonctionne, vous devez déjà avoir une connectivité L3 entre les routeurs.

Ron Trunk
la source
problème de poulet et d'oeuf. "Pour que BGP fonctionne, vous devez déjà avoir une connectivité L3 entre les routeurs." Étant donné que BGP est le protocole de routage Internet de facto, la façon dont la connectivité L3 est réalisée dans Interet
mélangé le
6
Pas du tout un problème de poulet et d'oeuf. Comme je l'ai dit, les protocoles de routage ne créent pas de connectivité L3. Les enceintes eBGP sont (presque) toujours directement connectées les unes aux autres. Les enceintes iBGP s'appuient sur le réseau sous-jacent pour assurer la connectivité. En d'autres termes, vous avez d'abord besoin de connectivité, avant de pouvoir exécuter BGP.
Ron Trunk
J'essaie de comprendre comment cela a commencé et quel est le raisonnement derrière l'architecture d'aujourd'hui. Donc, au début, il y avait quelques gars avec des réseaux privés exécutant des IGP et qui ont dit de connecter nos réseaux? pourquoi le faire sur IP / TCP, qu'en est-il des anciens protocoles comme Novell ou Appletalk
mélangé le
Ce sont des questions différentes (mais bonnes). Les réponses auront besoin de plus d'espace que la section des commentaires. Nous pouvons le déplacer pour discuter si vous le souhaitez
Ron Trunk
6

Le modèle de réseau OSI et sa superposition sont utiles pour comprendre la communication de bout en bout entre les hôtes, mais il n'est pas vraiment destiné à expliquer le fonctionnement du plan de contrôle du réseau. Il existe un problème d'amorçage inhérent à l'établissement d'une connectivité BGP complète, mais la façon dont ce amorçage a lieu est bien comprise et n'a pas de dépendances circulaires.

En termes de BGP, la manière dont les contiguïtés sont formées et les informations échangées dépend du type de session.

Le plus simple est eBGP. En règle générale, eBGP s'exécute sur une session TCP entre deux routeurs directement connectés. Dans ce cas, chaque homologue sait comment parler à l'autre car les deux ont une interface sur le même sous-réseau, il n'est donc pas nécessaire d'utiliser un protocole de routage externe pour former la contiguïté.

Avec iBGP, les choses sont légèrement compliquées. Dans la configuration la plus simple, tous les routeurs d'un système autonome seront configurés dans le cadre d'un maillage complet, avec des sessions iBGP avec tous les autres routeurs du réseau. Au sein du système autonome, un protocole de passerelle intérieure tel que OSPF ou ISIS afin de construire la topologie de routage interne. Lorsque l'IGP a fait son travail, tous les routeurs auront une table de routage remplie de routes vers tous les voisins iBGP permettant à la session TCP de se former sans dépendance circulaire.

Là où les choses deviennent un peu plus intéressantes, c'est dans des situations où tous les routeurs du système autonome ne fonctionnent pas avec une table BGP complète. Si le maillage iBGP n'est pas complet, vous pouvez obtenir des situations où un routeur au milieu du réseau a une vue différente de la table que ses voisins directs. Cela entraînera un routage sous-optimal et, dans certains cas, des boucles de routage qui entraîneront un rebond du trafic entre les périphériques jusqu'à l'expiration du TTL.

Russell Heilling
la source
5

Le lien a des adresses statiques et des entrées de routage associées configurées, qui sont utilisées pour établir la session BGP. À l'aide de BGP, la table de routage est ensuite étendue avec les entrées pointant vers d'autres réseaux.

Comme BGP n'est utilisé qu'entre homologues directs, aucune route autre que celle pointant vers l'autre extrémité n'est requise à ce stade.

Par exemple, si nous voulions faire un pairage, nous serions d'accord sur un sous-réseau / 30 ou / 31, attribuer une adresse à chaque extrémité du réseau, et créer une route réseau pour ce sous-réseau à ce lien, puis nous configurerions l'autre comme Homologue BGP, auquel point j'obtiens des entrées de routage supplémentaires pour tous les réseaux que vous annoncez être envoyés via votre routeur (qui à son tour fait partie de la route réseau configurée statiquement local).

Simon Richter
la source
Simon, ravi de vous entendre à nouveau. Votre réponse ne concerne que eBGP, mais les pairs iBGP n'ont besoin que de l'accessibilité IGP (c'est-à-dire OSPF). Pourriez-vous ajouter plus pour le cas iBGP?
Mike Pennington
0
                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---

Supposons que A et B sont des routeurs (dans des AS différents ou identiques) et D et C sont des hôtes. Maintenant, A et B sont connectés l'un à l'autre et peuvent communiquer. Mais comment D connaîtrait-il la position de C afin qu'il puisse communiquer avec C. Il en va de même pour C lorsqu'il veut communiquer avec D. Maintenant, si nous exécutons le protocole BGP entre A et B, ils échangent les informations de connectivité de couche 3 entre eux. . En termes simples, A dira à B que D lui est connecté. Soit B peut transmettre cela à C, soit si B est la passerelle par défaut pour C, de toute façon C peut connaître la position de D.

Donc, dans ce cas, les informations de connectivité de couche 3 sont transmises entre A et B, étant donné que A et B exécutent le protocole BGP.

Une connexion BGP préalable est donc nécessaire entre deux systèmes afin d'échanger des informations de routage de couche 3. Je viens de montrer un exemple simple pour répondre à votre requête. Dans un scénario pratique, beaucoup plus de données de routage sont échangées entre homologues BGP.

BGP s'exécute sur le protocole TCP. Un socket TCP doit donc être ouvert entre eux, seulement alors ils peuvent échanger des données de routage.

Soumen Das
la source
0

sans connectivité L3 préalable?

La «connectivité L3» n'est pas tout ou rien.

L'administrateur qui configure le routeur configurera les interfaces avec les adresses IP et les masques de sous-réseau. Sur la base de ces configurations, des entrées de table de routage implicites seront créées pour permettre au routeur de parler à ses voisins.

Les protocoles de routage peuvent ensuite s'exécuter au-dessus de cette connectivité L3 locale pour établir une connectivité L3 à plus longue distance.

Peter Green
la source