In gewisser Weise ist BGP nett und einfach. Zum Beispiel gibt es nur ein BGP: BGP Version 4. Viele Netzwerkprofis haben die Frage gestellt, ob die BGP-Version 4 bald durch BGP 5 ersetzt wird. Es gibt jedoch keinen Grund zur Sorge. Heute verwenden wir noch BGP Version 4 als Exterior Gateway Protocol (EGP). Auch wenn das heutige BGP4 alles kann, was das BGP4 von vor 20 Jahren nicht konnte, wie Routing von IPv6, Multicast und VPNs oder die Verwendung von Communities. BGP hat sich als sehr erweiterbar erwiesen, aber es ist immer noch BGP — und ein einziger BGP-Prozess. Aber BGP behandelt nur die Außenseite des Routings – es gibt auch Innenrouting.

Interior Gateway Protocols
Und es gibt viel mehr Auswahl in Interior Gateway Protocols (IGPs). Ein alter Favorit ist RIP, das Routing Information Protocol. Selbst das verbesserte RIPv2 ist heutzutage für die meisten Netzwerke zu einfach, ebenso wie RIPng (Next Generation) für IPv6. Als solches hat Cisco sein eigenes Interior Gateway Routing Protocol (IGRP) und dann eine erweiterte Version mit dem treffenden Namen Enhanced IGRP (EIGRP) erstellt. Das am weitesten verbreitete IGP ist jedoch OSPF: Open Shortest Path First. OSPF ist eine „offene“ Implementierung des Shortest Path First- oder Dijkstra-Algorithmus. (Der Name bezieht sich nicht auf die mögliche Offenheit des kürzesten Pfades.) OSPF Version 2 wird für IPv4 verwendet; OSPF Version 3 für IPv6. Netzwerke, die beide IP-Versionen ausführen und OSPF als IGP verwenden, müssen daher sowohl OSPFv2 als auch OSPFv3 ausführen.In den späten 1980er Jahren, als OSPF entwickelt wurde, war die OSI-Familie (Open Systems Interconnect) von Netzwerkprotokollen noch umstritten, und eine Menge Technologie wurde von OSI von IP und von IP von OSI ausgeliehen / gestohlen. Infolgedessen verfügt OSI über das IS-IS-Routingprotokoll für das OSI CLNP-Routing, das OSPF in vielerlei Hinsicht (oder umgekehrt) sehr ähnlich ist. IS-IS steht für Intermediate System to Intermediate System, wobei „intermediate System“ „Router“ bedeutet. IS-IS wurde später erweitert, um zuerst IPv4 und dann auch IPv6 zu unterstützen und wird hauptsächlich in sehr großen IP-Netzwerken verwendet.

Nach dieser Einführung möchte ich mich auf den häufigsten Fall konzentrieren: ein Netzwerk, in dem BGP als EGP und OSPF als IGP ausgeführt werden, und untersuchen, wie die Routingaufgaben auf beide Protokolle aufgeteilt sind und wie die beiden interagieren.

Redistribution
Da OSPF ein IGP und BGP ein EGP ist, deutet dies auf eine offensichtliche Arbeitsteilung hin: OSPF übernimmt das interne Routing, BGP das Routing zu externen Zielen. Es ist jedoch nicht so einfach. Ja, OSPF ist für das interne Routing verantwortlich. Diese Routen werden als „O“ -Routen in der Ausgabe von „show ip route“ auf einem Cisco-Router angezeigt. Wenn das Netzwerk in mehrere OSPF-Bereiche aufgeteilt ist – heutzutage nicht wirklich notwendig, es sei denn, Sie haben Hunderte von Routern -, werden möglicherweise auch bereichsübergreifende „OSP“ -Routen angezeigt.

O- und O-IA-Routen sind nur die Adressblöcke, die auf Routerschnittstellen verwendet werden, auf denen OSPF tatsächlich ausgeführt wird. Dazu gehören keine Schnittstellen zu Servern oder PCS und anderen Endgeräten oder im Fall von ISPs zu Kunden. Damit diese Adressen in OSPF angezeigt werden, müssen wir verbundene Subnetze und / oder statische Routen neu verteilen:

!
router ospf 1
verbundene Subnetze neu verteilen
statische Subnetze neu verteilen
!

Die 1 in „router ospf 1“ ist die OSPF-Prozess- oder Instanznummer. Es ist möglich, mehrere OSPF—Instanzen auf demselben Router auszuführen – was natürlich eine sorgfältige Planung erfordert, um alles klar zu halten. Wenn die Neuverteilung aller verbundenen und / oder statischen Routen in OSPF mehr ist, als Sie benötigen, können Sie „route-map <route-map-name>“ hinzufügen und dann die angegebene Routenkarte verwenden, um die unerwünschten Routen herauszufiltern, damit sie nicht neu verteilt werden.

Standardmäßig werden umverteilte Routen vom Typ 2 erstellt und als „O E2“ angezeigt. Es ist auch möglich, als externer Typ 1 (mit „metric-type 1“) neu zu verteilen. Der Unterschied besteht darin, dass bei O E1-Routen die OSPF-Kosten der Route die Kosten der Links zum Erreichen der externen Route enthalten, während bei O E2-Routen die Kosten der internen Links ignoriert werden.

iBGP
Offensichtlich übernimmt BGP die Routen zu externen Netzwerken, die BGP-fähig sind. Es wäre jedoch etwas peinlich, wenn alle BGP-Router im Netzwerk ihren externen Nachbarn völlig andere Dinge erzählen würden. Daher müssen alle BGP-Router im Netzwerk miteinander sprechen, um externen Netzwerken eine konsistente Geschichte zu erzählen. Dies ist, was interne BGP (iBGP) ist für. Das „reguläre“ BGP ist somit externes BGP (eBGP). Wenn ich alle BGP-Router sage, meine ich wirklich alle: Wenn Ihr Netzwerk 100 BGP-Router hat, muss jeder von ihnen iBGP-Sitzungen mit den anderen 99 aufrechterhalten. Nun, es sei denn, Sie verwenden Routenreflektoren, aber das ist eine Geschichte für einen anderen Tag.

Wenn Sie an eBGP gewöhnt sind, müssen Sie sich an iBGP gewöhnen. Im Gegensatz zu eBGP funktioniert iBGP problemlos
über viele Hops. Dies fügt jedoch eine Komplikation hinzu. Betrachten Sie das folgende Netzwerk:
Loopback-Schnittstellen

Angenommen, die iBGP-Sitzung von Router A zu Router D wird in Richtung der Adresse von Router D auf der Verbindung zwischen B und D eingerichtet. Wenn dann die Verbindung zwischen den Routern B und D ausfällt, sinkt die Adresse von D auf der Schnittstelle, die eine Verbindung zu dieser Verbindung herstellt, und damit die iBGP-Sitzung, die für die Adresse dieser Schnittstelle konfiguriert ist. Anstatt iBGP-Sitzungen für Schnittstellenadressen zu konfigurieren, richten wir hierfür Loopback-Schnittstellen ein. Im Gegensatz zur Loopback-Schnittstelle auf einem Server oder einem anderen Host, die immer die Adresse 127.0.0.1 verwendet, verwenden Router „echte“ Adressen auf ihren Loopback-Schnittstellen, was folgendermaßen funktioniert:

!
Schnittstelle loopback0
IP-Adresse 192.0.2.65 255.255.255.255
!
router bgp 9000
Nachbar 192.0.2.67 remote-as 9000
Nachbar 192.0.2.67 Update-Quelle loopback0
!

Im Gegensatz zu anderen Schnittstellen können Loopback-Schnittstellen eine /32 Präfixlänge haben, so dass sie nur eine einzige Adresse verwenden. Das entfernte AS für Nachbar 192.0.2.67 ist dasselbe wie das lokale AS (9000), wodurch diese BGP-Sitzung zu einer iBGP-Sitzung wird. Die Zeile „update-source loopback0“ stellt sicher, dass die Quelladresse in ausgehenden BGP-Paketen die auf der Schnittstelle loopback0 konfigurierte IP-Adresse ist, sodass sie mit der Adresse übereinstimmt, nach der der Remote-Router sucht. Wenn nun ein Pfad zwischen den beiden iBGP-Routern ausfällt, können die iBGP-Pakete über einen anderen Pfad umgeleitet werden, und es gibt keine Auswirkungen auf BGP. Beachten Sie, dass die Loopback—Schnittstellenadressen im IGP vorhanden sein müssen, damit dies funktioniert – normalerweise werden verbundene Routen neu verteilt, um dies zu ermöglichen.
BGP in großen Netzwerken eBook
Im Gegensatz zu eBGP aktualisiert iBGP auch nicht den AS-Pfad oder die nächste Hop-Adresse. Dies bedeutet, dass die nächste Hop-Adresse in iBGP-Updates immer noch auf die IP-Adresse des Routers im Nachbarnetzwerk zeigt, von dem die Route gelernt wurde. Diese Adresse befindet sich in einem Punkt-zu-Punkt-Subnetz zwischen Ihrem eBGP-Router und dem BGP-Router des benachbarten Netzwerks. Ihr eBGP-Router kennt diese Adresse, da sie auf einer direkt verbundenen Schnittstelle vorhanden ist, aber ohne weitere Maßnahmen kennen die übrigen Router diese Adresse nicht, sodass die nächste Hop-Adresse für iBGP-Routen nicht aufgelöst wird und die iBGP-Routen nicht verwendet werden können. Auch hier löst die Umverteilung verbundener Netzwerke in OSPF (oder Ihr IGP Ihrer Wahl) dieses Problem. Alternativ können Sie „next-hop-self“ in Ihren iBGP-Sitzungen konfigurieren, und der Router ersetzt die nächste Hop-Adresse in iBGP-Updates durch eine eigene Adresse.

BGP redistribution
Es ist auch möglich, Routen in BGP umzuverteilen. In einem großen ISP-Netzwerk können Sie beispielsweise verbundene und statische Routen in BGP und nicht in IS-IS neu verteilen, da dies IS-IS schlank und gemein hält. Die zusätzlichen BGP-Routen sind relativ inkonsequent, und ein netter Vorteil ist, dass, wenn sie intern umgeleitet werden, dies keine BGP-Updates auslöst. Vielmehr werden die nächsten Hop-Adressen nach einem IS-IS-Wechsel unterschiedlich aufgelöst, was jeder Router unabhängig tun kann. Dies erfordert natürlich gute Filter, die sicherstellen, dass die große Anzahl kleiner Präfixe, die von Kunden verwendet werden, nicht in die globale BGP-Tabelle gelangen. Eine gute Möglichkeit, eine solche Filterung durchzuführen, besteht darin, den Routen, die in eBGP verbreitet werden können, eine Community hinzuzufügen und dann basierend auf dieser Community zu filtern.

Früher war es nicht ungewöhnlich, alle BGP-Routen in OSPF umzuverteilen. Mit einer halben Million Präfixen in BGP ist diese Praxis seltener geworden. Wenn Sie wirklich am Rande leben möchten, können Sie BGP in OSPF und OSPF in BGP umverteilen. Wenn Ihre Filter nicht perfekt sind, können Routen zwischen BGP und OSPF umgeleitet werden, sodass der AS-Pfad entfernt wird. Jetzt bewerben Sie über BGP eine ganze Reihe von Routen, die nicht Ihre sind, aber mit einem One-Hop ALS Pfad, sodass viele Ihrer Nachbarn Ihnen Traffic für diese Routen senden.

Administrative Entfernung
Last but not least, was passiert, wenn die gleiche Route sowohl in BGP als auch in OSPF vorhanden ist? Offensichtlich ist es schwierig, eine lokale BGP-Präferenz mit einer OSPF-Metrik zu vergleichen. Ein (Cisco) Router weist also jedem Routingprotokoll eine „administrative Entfernung“ zu. Die Route mit der geringsten Distanz gewinnt dann. OSPF hat einen Abstand von 110. BGP-Routen haben eine Entfernung von 20 (besser als OSPF und andere IGPs), wenn sie über eBGP gelernt werden, und 200 (schlechter als OSPF und andere IGPs), wenn sie über iBGP gelernt werden. Statische Routen haben standardmäßig eine Entfernung von 1, aber Sie können dies ändern, indem Sie am Ende des Befehls „ip route …“ einen Entfernungswert angeben. Ein Entfernungswert von 250 hält sie von Routing-Protokollen fern. Die administrative Entfernung ist die erste Zahl zwischen eckigen Klammern in der Ausgabe „IP-Route anzeigen“.