Heute betrachten wir das BGP-Protokoll. Wir werden nicht lange darüber reden, warum es verwendet wird und warum es das einzige Protokoll ist. Es gibt viele Informationen dazu, zum Beispiel: .
Was ist also BGP? BGP ist ein dynamisches Routing-Protokoll und das einzige EGP (External Gateway Protocol). Dieses Protokoll wird verwendet, um Routing im Internet aufzubauen. Lassen Sie uns betrachten, wie die Nachbarschaft zwischen zwei BGP-Routern aufgebaut wird.
Betrachten wir die Nachbarschaft zwischen Router1 und Router3. Wir konfigurieren sie mit den folgenden Befehlen:
router bgp 10
network 192.168.12.0
network 192.168.13.0
neighbor 192.168.13.3 remote-as 10
router bgp 10
network 192.168.13.0
network 192.168.24.0
neighbor 192.168.13.1 remote-as 10Die Nachbarschaft innerhalb eines autonomen Systems — AS 10. Nach der Eingabe der Daten auf dem Router, zum Beispiel auf Router1, versucht dieser Router, Nachbarschaftsbeziehungen mit Router3 herzustellen. Der Anfangszustand, wenn nichts passiert, wird genannt Idle. Sobald BGP auf Router1 konfiguriert ist, beginnt er, den TCP-Port 179 zu überwachen — er wechselt in den Zustand Connect, und wenn er versucht, eine Sitzung mit Router3 zu öffnen, wechselt er in den Zustand Active.
Nachdem die Sitzung zwischen Router1 und Router3 hergestellt ist, erfolgt der Austausch von Open-Nachrichten. Wenn Router1 diese Nachricht sendet, wird dieser Zustand als Open Sentbezeichnet. Und wenn er eine Open-Nachricht von Router3 erhält, wechselt er in den Zustand Open Confirm. Lassen Sie uns die Open-Nachricht näher betrachten:
In dieser Nachricht werden Informationen über das BGP-Protokoll übermittelt, das der Router verwendet. Durch den Austausch von Open-Nachrichten teilen Router1 und Router3 einander Informationen über ihre Konfigurationen mit. Übertragen werden die folgenden Parameter:
- Version: dies beinhaltet die BGP-Version, die der Router verwendet. Die aktuelle BGP-Version ist Version 4, die in RFC 4271 beschrieben ist. Zwei BGP-Router werden versuchen, eine kompatible Version zu verhandeln; bei einem Missverhältnis wird keine BGP-Sitzung stattfinden.
- My AS: dies beinhaltet die AS-Nummer des BGP-Routers; die Router müssen sich auf die AS-Nummer(n) einigen, und sie definiert auch, ob sie iBGP oder eBGP betreiben werden.
- Hold Time: wenn BGP während der Hold-Zeit keine Keepalive- oder Update-Nachrichten von der anderen Seite erhält, wird er die andere Seite als 'tot' erklären und die BGP-Sitzung beenden. Standardmäßig ist die Hold-Zeit auf 180 Sekunden bei Cisco IOS-Routern eingestellt, die Keepalive-Nachricht wird alle 60 Sekunden gesendet. Beide Router müssen sich auf die Hold-Zeit einigen, sonst wird es keine BGP-Sitzung geben.
- BGP Identifier: dies ist die lokale BGP-Router-ID, die gewählt wird, wie es auch bei OSPF geschieht:
- Verwenden Sie die Router-ID, die manuell mit dem Befehl bgp router-id konfiguriert wurde.
- Verwenden Sie die höchste IP-Adresse auf einer Loopback-Schnittstelle.
- Verwenden Sie die höchste IP-Adresse auf einer physikalischen Schnittstelle.
- Optionale Parameter: Hier finden Sie einige optionale Funktionen des BGP-Routers. Dieses Feld wurde hinzugefügt, um neue Funktionen in BGP hinzufügen zu können, ohne eine neue Version erstellen zu müssen. Dinge, die Sie hier finden könnten, sind:
- Unterstützung für MP-BGP (Multi Protocol BGP).
- Unterstützung für Route Refresh.
- Unterstützung für 4-Oktett-AS-Nummern.
Um eine Nachbarschaft herzustellen, müssen die folgenden Bedingungen erfüllt sein:
- Versionsnummer. Die aktuelle Version ist 4.
- Die AS-Nummer muss mit der übereinstimmen, die Sie konfiguriert haben neighbor 192.168.13.3 remote-as 10.
- Die Router-ID muss sich von der des Nachbarn unterscheiden.
Wenn einer der Parameter diese Bedingungen nicht erfüllt, sendet der Router Notification eine Nachricht, in der der Fehler angegeben wird. Nach dem Senden und Empfangen von Open-Nachrichten wechselt die Nachbarschaft in den Zustand ESTABLISHED. Danach können die Router Informationen über Routen austauschen und tun dies mithilfe von Update -Nachrichten. Folgendes Update-Nachricht sendet Router1 an Router3:
Hier geben Sie die Netzwerke an, über die Router1 informiert, und die Path-Attribute, die einem Äquivalent von Metriken entsprechen. Über die Path-Attribute werden wir ausführlicher sprechen. Auch innerhalb der TCP-Sitzung werden Keepalive-Nachrichten übertragen. Diese werden standardmäßig alle 60 Sekunden gesendet. Dies ist der Keepalive-Timer. Wenn innerhalb des Hold-Timers keine Keepalive-Nachricht empfangen wird, bedeutet dies einen Verlust der Verbindung zum Nachbarn. Standardmäßig beträgt dieser 180 Sekunden.
Nützliche Tabelle:
Es scheint, dass wir verstanden haben, wie Router Informationen miteinander austauschen. Jetzt versuchen wir, die Logik des BGP-Protokolls zu verstehen.
Um eine Route in die BGP-Tabelle zu kündigen, wird wie bei IGP das Befehl 'network' verwendet, aber die Logik unterscheidet sich. Wenn IGP nach der Angabe der Route im Befehl 'network' überprüft, welche Schnittstellen zu diesem Subnetz gehören und sie in seine Tabelle aufnimmt, sucht der Befehl 'network' in BGP in der Routingtabelle nach einer genauen Übereinstimmung mit der Route im Befehl 'network'. Wenn solche gefunden werden, gelangen diese Routen in die BGP-Tabelle.
Suchen Sie nach einer Route in der aktuellen IP-Routingtabelle des Routers, die genau mit den Parametern des Netzwerkbefehls übereinstimmt; falls die IP-Route existiert, fügen Sie das entsprechende NLRI in die lokale BGP-Tabelle ein.
Nun heben wir BGP auf all den verbleibenden an und schauen, wie die Routenauswahl innerhalb eines AS erfolgt. Nachdem der BGP-Router die Routen vom Nachbarn erhalten hat, beginnt die Auswahl der optimalen Route. Hier ist es wichtig zu verstehen, welche Art von Nachbarn vorhanden sein kann – interne und externe. Versteht der Router anhand der Konfiguration, ob der konfigurierte Nachbar intern oder extern ist? Wenn im Befehl:
neighbor 192.168.13.3 remote-as 10 als Parameter remote-as die AS angegeben ist, die auf dem Router in dem Befehl router bgp 10 konfiguriert ist. Routen, die aus einer internen AS stammen, gelten als intern, während Routen von externen AS entsprechend extern sind. Für jede wird eine andere Logik beim Empfang und Versand angewendet. Betrachten wir eine solche Topologie:
An jedem Router ist eine Loopback-Schnittstelle mit der IP: x.x.x.x 255.255.255.0 konfiguriert – wobei x die Nummer des Routers ist. Auf Router9 haben wir eine Loopback-Schnittstelle mit der Adresse – 9.9.9.9 255.255.255.0. Diese werden wir über BGP ankündigen und sehen, wie sie sich verbreitet. Diese Route wird an Router8 und Router12 weitergegeben. Von Router8 gelangt diese Route zu Router6, jedoch wird sie auf Router5 in der Routingtabelle nicht vorhanden sein. Auch auf Router12 wird diese Route in der Tabelle vorhanden sein, aber auf Router11 wird sie ebenfalls nicht sein. Lassen Sie uns versuchen, dies zu klären. Betrachten wir, welche Daten und Parameter Router9 an seine Nachbarn über diese Route überträgt. Das Paket unten wird von Router9 an Router8 gesendet.
Die Informationen über die Route bestehen aus Pfadattributen (Path attributes).
Die Pfadattributen sind in 4 Kategorien unterteilt:
- Well-known mandatory – alle Router, die nach dem BGP-Protokoll arbeiten, müssen diese Attribute erkennen. Sie müssen in allen Updates (update) vorhanden sein.
- Well-known discretionary – alle Router, die nach dem BGP-Protokoll arbeiten, müssen diese Attribute erkennen. Sie können in Updates (update) vorhanden sein, aber ihre Anwesenheit ist nicht zwingend erforderlich.
- Optional transitive – müssen nicht von allen BGP-Implementierungen erkannt werden. Wenn ein Router das Attribut nicht erkannt hat, markiert er das Update als teilweise (partial) und sendet es weiter an die Nachbarn, wobei er das nicht erkannte Attribut beibehält.
- Optional non-transitive – müssen nicht von allen BGP-Implementierungen erkannt werden. Wenn ein Router das Attribut nicht erkannt hat, wird das Attribut ignoriert und bei der Weitergabe an Nachbarn verworfen.
Beispiele für BGP-Attribute:
- Well-known mandatory:
- Autonomous system path
- Next-hop
- Origin
- Well-known discretionary:
- Local preference
- Atomic aggregate
- Optional transitive:
- Aggregator
- Communities
- Optional non-transitive:
- Multi-exit discriminator (MED)
- Ursprungs-ID
- Clusterliste
In diesem Fall interessieren uns vorerst Origin, Next-hop, AS-Pfad. Da der Pfad zwischen Router8 und Router9 geht, also innerhalb eines einzelnen AS, gilt er als intern und bezieht sich auf Origin.
Das Attribut Origin gibt an, wie der Pfad in der Aktualisierung erhalten wurde. Mögliche Werte für das Attribut sind:
- 0 — IGP: NLRI wurde innerhalb des ursprünglichen autonomen Systems erhalten;
- 1 — EGP: NLRI wurde gemäß dem Exterior Gateway Protocol (EGP) erlernt. Vorgänger von BGP, wird nicht verwendet
- 2 — Incomplete: NLRI wurde auf eine andere Weise erlernt
In unserem Fall ist, wie aus dem Paket ersichtlich, der Wert 0. Wenn dieser Pfad an Router12 weitergegeben wird, erhält dieser den Code — 1.
Als Nächstes, Next-hop. Das Attribut Next-hop
- ist die IP-Adresse des eBGP-Routers, über den der Pfad zum Zielnetz führt.
- Das Attribut ändert sich, wenn ein Präfix in ein anderes AS übertragen wird.
Im Fall von iBGP, also innerhalb eines einzelnen AS, wird der Next-hop angegeben, der diesen Pfad erfahren hat oder darüber informierte. In unserem Fall ist das 192.168.89.9. Wenn dieser Pfad von Router8 an Router6 weitergegeben wird, wird Router8 ihn ändern und durch seinen eigenen ersetzen. Der Next-hop wird 192.168.68.8 sein. Das führt uns zu zwei Regeln:
- Wenn ein Router einen Pfad an seinen internen Nachbarn überträgt, ändert er nicht den Parameter Next-hop.
- Wenn ein Router einen Pfad an seinen externen Nachbarn überträgt, ändert er den Next-hop auf die IP-Adresse der Schnittstelle, über die dieser Router diesen Pfad überträgt.
Das führt uns zur ersten Frage — Warum es keinen Pfad in der Routing-Tabelle von Router5 und Router11 geben wird. Lassen Sie uns das genauer betrachten. Also, Router6 hat Informationen über den Pfad 9.9.9.0/24 erhalten und erfolgreich in die Routing-Tabelle eingetragen:
Router6#show ip route bgp
Codes: L - lokal, C - verbunden, S - statisch, R - RIP, M - mobil, B - BGP
D - EIGRP, EX - EIGRP extern, O - OSPF, IA - OSPF intra-area
N1 - OSPF NSSA extern Typ 1, N2 - OSPF NSSA extern Typ 2
E1 - OSPF extern Typ 1, E2 - OSPF extern Typ 2
i - IS-IS, su - IS-IS Zusammenfassung, L1 - IS-IS Ebene-1, L2 - IS-IS Ebene-2
ia - IS-IS inter area, * - Kandidaten-Standardroute, U - benutzerspezifische statische Route
o - ODR, P - periodisch heruntergeladene statische Route, H - NHRP, l - LISP
a - Anwendungsroute
+ - replizierte Route, % - Next-Hop-Überschreibung, p - Überschreibungen von PfR
Gateway der letzten Möglichkeit ist nicht gesetzt
9.0.0.0/24 ist subnettiert, 1 Subnetz
B 9.9.9.0 [20/0] über 192.168.68.8, 00:38:25<source>
Jetzt hat Router6 die Route von Router5 weitergegeben und die erste Regel für den Next-Hop nicht geändert. Das bedeutet, Router5 sollte hinzufügen <b>9.9.9.0 [20/0] über 192.168.68.8</b> , aber er hat keine Route zu 192.168.68.8 und deshalb wird diese Route nicht hinzugefügt, obwohl die Informationen über diese Route in der BGP-Tabelle gespeichert werden:
<source><b>Router5#show ip bgp
BGP-Tabelle Version ist 1, lokale Router-ID ist 5.5.5.5
Statuscodes: s unterdrückt, d gedämpft, h Historie, * gültig, > am besten, i - intern,
r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter,
x bester extern, a zusätzlicher Pfad, c RIB-komprimiert,
Ursprungscodes: i - IGP, e - EGP, ? - unvollständig
RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden
Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad
* i 9.9.9.0/24 192.168.68.8 0 100 0 45 i</b>Dasselbe wird zwischen Router11 und Router12 geschehen. Um eine solche Situation zu vermeiden, muss konfiguriert werden, dass Router6 oder Router12, wenn sie Pfade an ihre internen Nachbarn weitergeben, ihre eigene IP-Adresse als Next-hop einfügen. Dies geschieht mit dem Befehl:
neighbor 192.168.56.5 next-hop-selfNach diesem Befehl wird Router6 eine Update-Nachricht senden, in der für die Pfade die IP-Adresse der Schnittstelle Gi0/0 von Router6 — 192.168.56.6 — als Next-hop angegeben wird, wodurch dieser Pfad in die Routing-Tabelle aufgenommen wird.
Gehen wir weiter und schauen wir, ob diese Route auf Router7 und Router10 erscheint. In der Routingtabelle wird sie nicht erscheinen, und wir könnten denken, das Problem liege wie beim ersten mit dem Next-hop-Parameter. Aber wenn wir die Ausgabe des Befehls show ip bgp betrachten, sehen wir, dass die Route nicht einmal mit einem falschen Next-hop empfangen wurde, was bedeutet, dass die Route nicht einmal übertragen wurde. Und das führt uns zu einer weiteren Regel:
Routen, die von internen Nachbarn empfangen werden, werden nicht an andere interne Nachbarn weitergegeben.
Da Router5 die Route von Router6 erhalten hat, wird sie an seinen anderen internen Nachbarn nicht weitergegeben. Damit die Übertragung stattfindet, muss die Funktion , oder die vollständige Mesh-Relation (Full Mesh) eingerichtet werden, das heißt, Router5-7 wird jeder Nachbar von jedem sein. In diesem Fall werden wir den Route Reflector verwenden. Auf Router5 muss der folgende Befehl verwendet werden:
neighbor 192.168.57.7 route-reflector-clientDer Route Reflector ändert das Verhalten von BGP beim Übertragen einer Route an einen internen Nachbarn. Wenn der interne Nachbar als route-reflector-clientangegeben ist, werden diesen Clients interne Routen angekündigt.
Wurde die Route nicht auf Router7 angezeigt? Vergessen wir auch nicht den Next-hop. Nach diesen Manipulationen sollte die Route auch auf Router7 erscheinen, aber das passiert nicht. Das bringt uns zu einer weiteren Regel:
Die Regel für den Next-hop funktioniert nur für externe Routen. Bei internen Routen erfolgt kein Austausch des Next-hop-Attributs.
Und wir bekommen eine Situation, in der eine Umgebung geschaffen werden muss, um durch statische Routen oder IGP-Protokolle die Router über alle Routen innerhalb des AS zu informieren. Wir werden statische Routen auf Router6 und Router7 einrichten, und danach erhalten wir die benötigte Route in der Routertabelle. In AS 678 werden wir es etwas anders machen – wir werden statische Routen für 192.168.112.0/24 auf Router10 und 192.168.110.0/24 auf Router12 eintragen. Anschließend stellen wir Nachbarschaftsbeziehungen zwischen Router10 und Router12 her. Außerdem richten wir auf Router12 die Übertragung seines Next-hops für Router10 ein:
neighbor 192.168.110.10 next-hop-selfDas Ergebnis wird sein, dass Router10 die Route 9.9.9.0/24 erhalten wird, sie wird sowohl von Router7 als auch von Router12 empfangen. Lassen Sie uns sehen, welche Entscheidung Router10 treffen wird:
Router10#show ip bgp
BGP-Tabelle Version ist 3, lokale Router-ID ist 6.6.6.6
Statuscodes: s unterdrückt, d gedämpft, h Verlauf, * gültig, > beste, i - intern,
r RIB-Fehler, S veraltet, m Mehrfachpfad, b Backup-Pfad, f RT-Filter,
x beste-externe, a zusätzliche-Pfade, c RIB-komprimiert,
Ursprungscodes: i - IGP, e - EGP, ? - unvollständig
RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden
Netzwerk Nächster Hop Metrik LokPrf Gewicht Pfad
* > i 9.9.9.0/24 192.168.112.12 0 100 0 45 i
192.168.107.7 0 123 45 i Wie wir sehen, gibt es zwei Routen und der Pfeil ( > ) bedeutet, dass die Route über 192.168.112.12 gewählt wurde.
Sehen wir uns an, wie der Prozess der Routenwahl abläuft:
- Zuerst wird bei Erhalt der Route die Erreichbarkeit des Next-Hop überprüft. Deshalb wurde die Route auf Router5 ohne Konfiguration von Next-hop-self nicht zur Verarbeitung weitergegeben.
- Dann kommt der Parameter Gewicht. Dieser Parameter ist kein Attribut des Pfads (PA) und wird nicht in BGP-Nachrichten übermittelt. Er wird lokal auf jedem Router konfiguriert und nur zur Beeinflussung der Routenwahl auf dem Router selbst verwendet. Betrachten wir ein Beispiel. Weiter oben wurde gezeigt, dass Router10 die Route für 9.9.9.0/24 über Router12 (192.168.112.12) ausgewählt hat. Um den Parameter Gewicht zu ändern, kann man eine route-map verwenden, um ihn für bestimmte Routen festzulegen, oder man kann dem Nachbarn Gewicht mit dem Befehl zuweisen:
neighbor 192.168.107.7 weight 200Jetzt werden alle Routen von diesem Nachbarn dieses Gewicht haben. Sehen wir uns an, wie sich die Routenwahl nach dieser Manipulation ändert:
Router10#show bgp *Mar 2 11:58:13.956: %SYS-5-CONFIG_I: Konfiguriert von der Konsole durch die Konsole BGP-Tabelle Version ist 2, lokale Router-ID ist 6.6.6.6 Statuscodes: s unterdrückt, d gedämpft, h Verlauf, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrfachpfad, b Backup-Pfad, f RT-Filter, x beste-externe, a zusätzliche-Pfade, c RIB-komprimiert, Ursprungscodes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden Netzwerk Nächster Hop Metrik LokPrf Gewicht Pfad * > 9.9.9.0/24 192.168.107.7 200 123 45 i * i 192.168.112.12 0 100 0 45 iWie Sie sehen, wurde jetzt die Route über Router7 gewählt, aber dies wird keine Auswirkungen auf die anderen Router haben.
- Auf der dritten Position haben wir - Local Preference. Dieser Parameter ist ein Well-known discretionary Attribut, was bedeutet, dass seine Anwesenheit nicht unbedingt erforderlich ist. Dieser Parameter hat nur innerhalb eines AS Gültigkeit und beeinflusst die Auswahl des Pfades nur für interne Nachbarn. Daher wird er ausschließlich in Update-Nachrichten, die für interne Nachbarn bestimmt sind, übermittelt. In den Update-Nachrichten für externe Nachbarn fehlt er. Deshalb wurde er als Well-known discretionary eingestuft. Lassen Sie uns versuchen, ihn auf Router5 anzuwenden. Auf Router5 sollten wir zwei Routen für 9.9.9.0/24 haben - eine über Router6 und die andere über Router7.
Sehen wir uns das an:
Router5#show bgp BGP-Tabelle Version ist 2, lokale Router-ID ist 5.5.5.5 Statuscodes: s unterdrückt, d gesenkt, h Historie, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrfachpfad, b Backup-Pfad, f RT-Filter, x beste-external, a zusätzliche-Pfad, c RIB-komprimiert, Ursprungscodes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad * > i 9.9.9.0/24 192.168.56.6 0 100 0 45 iAber wie wir sehen, gibt es einen Pfad über Router6. Wo ist der Pfad über Router7? Gibt es ihn vielleicht auch auf Router7 nicht? Sehen wir uns das an:
Router#show bgp BGP-Tabelle Version ist 10, lokale Router-ID ist 7.7.7.7 Statuscodes: s unterdrückt, d gesenkt, h Historie, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrfachpfad, b Backup-Pfad, f RT-Filter, x beste-external, a zusätzliche-Pfad, c RIB-komprimiert, Ursprungscodes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad * > i 9.9.9.0/24 192.168.56.6 0 100 0 45 i 192.168.107.10 0 678 45 iSeltsam, es scheint alles in Ordnung zu sein. Warum wird es nicht an Router5 übermittelt? Das liegt daran, dass BGP eine Regel hat:
Ein Router überträgt nur die Routen, die er selbst verwendet.
Router7 verwendet die Route über Router5, daher wird die Route über Router10 nicht übertragen. Kehren wir zum Local Preference zurück. Lassen Sie uns den Local Preference auf Router7 einstellen und sehen, wie Router5 darauf reagiert:
route-map BGP erlauben 10 match ip Adresse 10 setze lokale Präferenz 250 access-list 10 erlauben beliebig router bgp 123 nachbar 192.168.107.10 route-map BGP in</b>Also haben wir ein Route-Map erstellt, in das alle Routen fallen, und Router7 gesagt, dass er beim Empfang den Parameter Local Preference auf 250 ändert, der standardmäßig 100 beträgt. Sehen wir uns an, was auf Router5 passiert ist:
Router5#show bgp BGP-Tabelle Version ist 8, lokale Router-ID ist 5.5.5.5 Statuscodes: s unterdrückt, d gesenkt, h Historie, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrfachpfad, b Backup-Pfad, f RT-Filter, x beste-external, a zusätzliche-Pfad, c RIB-komprimiert, Ursprungscodes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscodes: V gültig, I ungültig, N Nicht gefunden Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad * > i 9.9.9.0/24 192.168.57.7 0 250 0 678 45 iWie wir jetzt sehen, bevorzugt Router5 die Route über Router7. Das gleiche Bild zeigt sich auch bei Router6, obwohl es für diesen vorteilhafter wäre, die Route über Router8 zu wählen. Außerdem ist zu beachten, dass eine Änderung dieses Parameters einen Neustart der Nachbarschaft erfordert, damit die Änderung wirksam wird. Lesen . Wir haben das Local Preference verstanden. Lassen Sie uns zum nächsten Parameter übergehen.
- Bevorzugung der Route mit dem Parameter Next-hop 0.0.0.0, also lokale oder aggregierte Routen. Diese Routen erhalten automatisch nach Eingabe des Befehls network den Parameter Weight, der maximal — 32678 beträgt:
Router#show bgp BGP-Tabelle Version ist 2, lokale Router-ID ist 9.9.9.9 Statuscodes: s unterdrückt, d gedämpft, h Historie, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter, x beste-extern, a zusätzliche-Pfad, c RIB-komprimiert, Ursprungs-Codes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscode: V gültig, I ungültig, N nicht gefunden Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad * > 9.9.9.0/24 0.0.0.0 0 32768 i - Der kürzeste Weg über AS. Der kürzeste Parameter AS_Path wird ausgewählt. Je weniger AS der Pfad durchläuft, desto besser ist er. Betrachten Sie den Pfad zu 9.9.9.0/24 auf Router10:
Router10#show bgp BGP-Tabelle Version ist 2, lokale Router-ID ist 6.6.6.6 Statuscodes: s unterdrückt, d gedämpft, h Historie, * gültig, > beste, i - intern, r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter, x beste-extern, a zusätzliche-Pfad, c RIB-komprimiert, Ursprungs-Codes: i - IGP, e - EGP, ? - unvollständig RPKI-Validierungscode: V gültig, I ungültig, N nicht gefunden Netzwerk Nächster Hop Metrik LocPrf Gewicht Pfad * 9.9.9.0/24 192.168.107.7 0 123 45 i * >i 192.168.112.12 0 100 0 45 iWie Sie sehen, hat Router10 die Route über 192.168.112.12 gewählt, weil der Parameter AS_Path für diese Route nur 45 enthält, während er im anderen Fall 123 und 45 enthält. Das ist intuitiv verständlich.
- Der nächste Parameter ist Origin. IGP (Route erhalten durch BGP) ist besser als EGP (Route erhalten durch den Vorgänger von BGP, der derzeit nicht mehr verwendet wird), und EGP ist besser als Incomplete? (auf andere Weise erhalten, z.B. durch Redistribution).
- Der nächste Parameter ist MED. Wir hatten Weight, das nur lokal auf dem Router arbeitete. Es gab Local Preference, das nur innerhalb eines autonomen Systems wirkte. Wie man sich leicht denken kann, ist MED ein Parameter, der zwischen autonomen Systemen übertragen wird. Sehr gut über diesen Parameter.
Weitere Attribute werden nicht verwendet, aber wenn zwei Routen identische Attribute haben, gelten die folgenden Regeln:
- Wählen Sie den Weg über den nächsten IGP-Nachbarn.
- Wählen Sie den ältesten Pfad für den eBGP-Pfad aus.
- Wählen Sie den Pfad über den Nachbarn mit der niedrigsten BGP-Router-ID.
- Wählen Sie den Pfad über den Nachbarn mit der niedrigsten IP-Adresse.
Nun betrachten wir die Frage der BGP-Konvergenz.
Lassen Sie uns sehen, was passiert, wenn Router6 die Route 9.9.9.0/24 über Router9 verliert. Deaktivieren wir die Schnittstelle Gi0/1 von Router6, der sofort erkennt, dass die BGP-Sitzung mit Router8 unterbrochen wurde und der Nachbar verschwunden ist, was bedeutet, dass die von ihm erhaltenen Routen ungültig sind. Router6 sendet sofort Update-Nachrichten, in denen es das Netzwerk 9.9.9.0/24 im Feld der zurückgezogenen Routen angibt. Sobald Router5 eine solche Nachricht erhält, sendet es sie an Router7 weiter. Da Router7 jedoch eine Route über Router10 hat, wird es sofort mit einem Update mit der neuen Route antworten. Wenn es nicht möglich ist, den Verlust eines Nachbarn anhand des Schnittstellenstatus zu erkennen, müssen wir auf das Auslösen des Hold Timers warten.
Konföderation.
Wenn Sie sich erinnern, haben wir darüber gesprochen, dass häufig eine vollverbundene Topologie verwendet werden muss. Mit einer großen Anzahl von Routern in einem AS kann dies erhebliche Probleme verursachen, um dies zu vermeiden, müssen Konföderationen eingesetzt werden. Ein AS wird in mehrere sub-AS unterteilt, was es ihnen ermöglicht, ohne die Anforderungen einer vollverbundenen Topologie zu arbeiten.
Hier ist der Link zu diesem , und Konfiguration für GNS3.
Zum Beispiel müssten wir bei einer solchen Topologie alle Router im AS 2345 miteinander verbinden, aber mit Hilfe der Konföderation können wir Nachbarschaftsbeziehungen nur zwischen Routern herstellen, die direkt miteinander verbunden sind. Lassen Sie uns das ausführlich besprechen. Wenn wir nur das AS 2345 hätten, laForge hätte die Route von Picard seinen Routern erzählt. Daten und Worf, aber sie hätten es Router Crusher nicht erzählt. Auch die Routen, die der Router selbst verbreitet, laForgewären nicht weitergegeben worden Crusher weder Worf- noch Daten.
Wir müssten einen Route-Reflector oder vollverbundene Nachbarschaftsbeziehungen einrichten. Wir unterteilen ein AS 2345 in 4 sub-AS (2, 3, 4, 5) für jeden Router und erhalten schließlich eine andere Arbeitslogik. Alles ist großartig beschrieben .
Quellen:
- CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
- Website
- Website .
Quelle: habr.com
