Antworten:
TCP / IP-Sockets stellen eine End-to-End-Verbindung zwischen zwei speziell adressierten Endpunkten über das Netzwerk her. BGP verwendet TCP / IP für die Kommunikation zwischen Routern (alle Geräte, die Routing-Informationen austauschen). Die ausgetauschten Informationen werden von den BGP-Peers verwendet, um die Art und Weise zu bestimmen, in der sie Pakete senden (auch bekannt als Next-Hop-Pakete), die sie benötigen übertragen.
Ganz am Rande des Internets sind die Dinge einfach; "Alles ist so" gegenüber Ihrem Internetprovider. Mehr in der Mitte kann ein Router mehrere Möglichkeiten haben. Daher wird TCP / IP verwendet, um den BGP-Verkehr zwischen den Routing-Nachbarn zu verschieben. Die BGP-Informationen teilen dem Router dann mit, welche Pfade zu bevorzugen sind, wenn ein Paket auf mehreren Wegen dahin gelangt, wo es hingeht.
Die Endpunkte (z. B. Webbrowser) und die Router sprechen TCP / IP. Die Router verwenden jedoch TCP / IP (BGP-Kommunikation, die aus TCP / IP-Paketen besteht), um zu besprechen, was mit den anderen TCP / IP-Paketen zu tun ist, die sie weiterleiten müssen.
Routing-Protokolle erreichen keine L3-Konnektivität. Sie füllen die Routing- (Weiterleitungs-) Tabelle des Routers mit Informationen, die von anderen Routern gelernt wurden.
BGP ist eine "Anwendung", die über TCP / IP ausgeführt wird. Mit anderen Worten, ein BGP-Router verwendet TCP / IP, um mit anderen BGP-Routern zu kommunizieren und Routing-Informationen auszutauschen.
Damit BGP funktioniert, müssen Sie bereits über eine L3-Verbindung zwischen den Routern verfügen.
Das OSI-Netzwerkmodell und seine Schichtung sind nützlich, um die Ende-zu-Ende-Kommunikation zwischen Hosts zu verstehen, es ist jedoch nicht wirklich beabsichtigt, die Funktionsweise der Netzwerksteuerebene zu erläutern. Es gibt ein Bootstrapping-Problem, das mit dem Herstellen einer vollständigen BGP-Konnektivität verbunden ist, aber die Art und Weise, wie dieses Bootstrapping stattfindet, ist gut bekannt und weist keine zirkulären Abhängigkeiten auf.
In Bezug auf die BGP hängt die Art und Weise, wie Nachbarschaften gebildet und Informationen ausgetauscht werden, von der Art der Sitzung ab.
Das einfachste ist eBGP. In der Regel wird eBGP in einer TCP-Sitzung zwischen zwei direkt verbundenen Routern ausgeführt. In diesem Fall kann jeder Peer mit dem anderen kommunizieren, da beide über eine Schnittstelle im selben Subnetz verfügen, sodass kein externes Routing-Protokoll zur Bildung der Adjazenz erforderlich ist.
Mit iBGP sind die Dinge etwas kompliziert. In der einfachsten Konfiguration werden alle Router in einem autonomen System als Teil eines vollständigen Netzes mit iBGP-Sitzungen mit allen anderen Routern im Netzwerk konfiguriert. Innerhalb des autonomen Systems ein internes Gateway-Protokoll wie OSPF oder ISIS, um die interne Routing-Topologie aufzubauen. Wenn der IGP seine Arbeit erledigt hat, verfügen alle Router über eine Routingtabelle, die mit Routen zu allen iBGP-Nachbarn gefüllt ist, sodass die TCP-Sitzung ohne zirkuläre Abhängigkeit aufgebaut werden kann.
Interessanter wird es in Situationen, in denen nicht alle Router im autonomen System mit einer vollständigen BGP-Tabelle ausgeführt werden. Wenn das iBGP-Netz nicht vollständig ist, können Situationen auftreten, in denen ein Router in der Mitte des Netzwerks eine andere Ansicht der Tabelle als seine direkten Nachbarn hat. Dies führt zu suboptimalem Routing und in einigen Fällen zu Routing-Schleifen, die dazu führen, dass der Datenverkehr zwischen den Geräten zurückgeworfen wird, bis die TTL abläuft.
Für den Link sind statische Adressen und zugehörige Routing-Einträge konfiguriert, die zum Aufbau der BGP-Sitzung verwendet werden. Mit BGP wird die Routing-Tabelle dann um die Einträge erweitert, die auf andere Netzwerke verweisen.
Da BGP nur zwischen direkten Peers verwendet wird, sind an dieser Stelle keine anderen Routen als die zum anderen Ende zeigenden erforderlich.
Wenn wir z. B. einen Peer erstellen möchten, würden wir uns auf ein / 30- oder / 31-Subnetz einigen, jedem Ende des Netzwerks eine Adresse zuweisen und eine Netzwerkroute für dieses Subnetz zu diesem Link erstellen. Dann würden wir das andere als konfigurieren BGP-Peer, ab diesem Zeitpunkt erhalte ich zusätzliche Routing-Einträge für alle Netzwerke, die Sie über Ihren Router senden möchten (der wiederum Teil der lokal statisch konfigurierten Netzwerkroute ist).
--- --- --- ---
| D |------| A |--------| B |--------| C |
--- --- --- ---
Angenommen, A und B sind Router (in unterschiedlichen oder gleichen AS) und D und C sind Hosts. Jetzt sind A und B miteinander verbunden und können kommunizieren. Aber wie würde D die Position von C kennen, damit es mit C kommunizieren kann? Dasselbe gilt für C, wenn es mit D kommunizieren möchte. Wenn wir nun das BGP-Protokoll zwischen A und B ausführen, tauschen sie die Verbindungsinformationen der Schicht 3 untereinander aus . In einfachen Worten wird A B mitteilen, dass D damit verbunden ist. Dann kann entweder B dies an C übermitteln, oder wenn B das Standard-Gateway für C ist, kann C auf jede Weise die Position von D kennen.
In diesem Fall werden Verbindungsinformationen der Schicht 3 zwischen A und B übertragen, wenn das BGP-Protokoll für A und B ausgeführt wird.
Daher ist eine vorherige BGP-Verbindung zwischen zwei Systemen erforderlich, um Routing-Informationen der Schicht 3 auszutauschen. Ich habe gerade ein einfaches Beispiel gezeigt, um Ihre Frage zu beantworten. In der Praxis werden viel mehr Routing-Daten zwischen BGP-Peers ausgetauscht.
BGP läuft über das TCP-Protokoll. Es muss also ein TCP-Socket zwischen ihnen geöffnet werden, nur dann können sie Routing-Daten austauschen.
ohne vorherige L3-Konnektivität?
"L3-Konnektivität" ist nicht alles oder nichts.
Der Administrator, der den Router einrichtet, konfiguriert die Schnittstellen mit IP-Adressen und Subnetzmasken. Basierend auf diesen Konfigurationen werden implizite Routing-Tabelleneinträge erstellt, mit denen der Router mit seinen Nachbarn kommunizieren kann.
Routing-Protokolle können dann über dieser lokalen L3-Konnektivität ausgeführt werden, um eine L3-Konnektivität für größere Entfernungen herzustellen.