Funktionsprinzipien des BGP-Protokolls

Heute werfen wir einen Blick auf das BGP-Protokoll. Wir werden nicht lange darüber sprechen, warum es verwendet wird und warum es das einzige Protokoll seiner Art ist. Es gibt bereits viele Informationen dazu, unter anderem: hier.

Was ist also BGP? BGP ist ein Protokoll für dynamisches Routing und das einzige External Gateway Protocol (EGP). Dieses Protokoll wird für das Routing im Internet verwendet. Lassen Sie uns betrachten, wie Nachbarschaften zwischen zwei BGP-Routern aufgebaut werden.

Funktionsprinzipien des BGP-Protokolls
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 10

Die Nachbarschaft innerhalb eines autonomen Systems — AS 10. Nachdem die Daten auf dem Router eingegeben wurden, zum Beispiel auf Router1, versucht dieser, eine Nachbarschaftsbeziehung mit Router3 herzustellen. Der Anfangszustand, wenn nichts passiert, wird als Idlebezeichnet. Sobald BGP auf Router1 konfiguriert ist, beginnt er, den TCP-Port 179 zu lauschen — und wechselt in den Zustand Connect, während er beim Versuch, eine Sitzung mit Router3 zu öffnen, in den Zustand wechselt Active.

Nachdem die Sitzung zwischen Router1 und Router3 hergestellt wurde, erfolgt der Austausch von Open-Nachrichten. Wenn Router1 diese Nachricht sendet, wird dieser Zustand als Open Sentbezeichnet. Wenn Router3 die Open-Nachricht empfängt, wechselt der Zustand zu Open Confirm. Schauen wir uns die Open-Nachricht näher an:

Funktionsprinzipien des BGP-Protokolls
In dieser Nachricht werden Informationen über das BGP-Protokoll übertragen, das der Router verwendet. Durch den Austausch von Open-Nachrichten teilen Router1 und Router3 einander ihre Konfigurationen mit. Folgende Parameter werden übermittelt:

  • Version: Dies umfasst 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 auszuhandeln; im Falle eines Missmatches wird keine BGP-Sitzung eingerichtet.
  • My AS: Dies umfasst die AS-Nummer des BGP-Routers. Die Router müssen sich auf die AS-Nummer(n) einigen, und es wird auch definiert, ob sie iBGP oder eBGP ausführen.
  • Hold Time: Wenn BGP innerhalb der Haltezeit keine Keepalive- oder Update-Nachrichten von der anderen Seite empfängt, erklärt es die andere Seite für 'tot' und beendet die BGP-Sitzung. Standardmäßig ist die Haltezeit auf 180 Sekunden bei Cisco IOS-Routern eingestellt; die Keepalive-Nachricht wird alle 60 Sekunden gesendet. Beide Router müssen sich auf die Haltezeit einigen, andernfalls wird keine BGP-Sitzung eingerichtet.
  • BGP Identifier: Dies ist die lokale BGP-Router-ID, die ähnlich wie bei OSPF gewählt wird:
    • 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 physischen Schnittstelle.
  • Optionale Parameter: Hier finden Sie einige optionale Funktionen des BGP-Routers. Dieses Feld wurde hinzugefügt, damit neue Funktionen in BGP integriert werden können, ohne eine neue Version erstellen zu müssen. Mögliche Optionen 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 zu etablieren, müssen die folgenden Bedingungen erfüllt sein:

  • Versionsnummer. Die aktuelle Version ist 4.
  • Die AS-Nummer muss mit der von Ihnen konfigurierten übereinstimmen. neighbor 192.168.13.3 remote-as 10.
  • Die Router-ID muss sich von dem des Nachbarn unterscheiden.

Wenn einer der Parameter diese Bedingungen nicht erfüllt, sendet der Router eine Benachrichtigung , in der der Fehler angegeben wird. Nach dem Senden und Empfangen der Open-Nachrichten wechselt die Nachbarschaftsbeziehung in den Status ETABLISHED. Danach können die Router Routeninformationen austauschen und tun dies mittels Update Nachrichten. So sendet Router1 eine Update-Nachricht an Router3:

Funktionsprinzipien des BGP-Protokolls

Hier werden die Netzwerke angegeben, über die Router1 informiert, sowie die Pfadattributen, die als Äquivalent zu Metriken dienen. Über die Pfadattributen werden wir ausführlicher sprechen. Zudem werden innerhalb der TCP-Sitzungen Keepalive-Nachrichten übermittelt. Diese werden standardmäßig alle 60 Sekunden gesendet. Dies ist der Keepalive-Timer. Wenn im Verlauf des Hold-Timers keine Keepalive-Nachricht empfangen wird, bedeutet das einen Verlust der Verbindung zum Nachbarn. Standardmäßig beträgt dieser 180 Sekunden.

Nützliche Tabelle:

Funktionsprinzipien des BGP-Protokolls

Wir scheinen nun zu verstehen, wie Router Informationen untereinander austauschen. Jetzt versuchen wir, die Logik des BGP-Protokolls zu durchdringen.

Um eine Route in die BGP-Tabelle anzukündigen, wird wie bei IGP-Protokollen der Befehl network verwendet, aber die Logik unterscheidet sich. Während IGP nach der Angabe einer Route mit dem Befehl network schaut, welche Schnittstellen zu diesem Subnetz gehören und diese in seine Tabelle aufnimmt, sucht der Befehl network in BGP in der Routingtabelle und sucht nach einer genauen Übereinstimmung mit der Route im Befehl network. Bei einer Übereinstimmung gelangen diese Routen in die BGP-Tabelle.

Suchen Sie eine Route in der aktuellen IP-Routingtabelle des Routers, die genau mit den Parametern des Befehls network übereinstimmt; wenn die IP-Route existiert, fügen Sie das entsprechende NLRI in die lokale BGP-Tabelle ein.

Jetzt aktivieren wir BGP auf allen verbleibenden und beobachten, wie die Routenwahl innerhalb eines AS erfolgt. Sobald der BGP-Router Routen von einem Nachbarn erhält, beginnt die Auswahl der optimalen Route. Hierbei ist es wichtig, zu verstehen, welche Art von Nachbarn es gibt – interne und externe. Der Router erkennt 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 im Router durch den Befehl router bgp 10 konfiguriert ist. Routen, die aus einer internen AS stammen, gelten als intern, während Routen aus externen AS entsprechend extern sind. Für jede dieser Routen gelten unterschiedliche Logiken für den Empfang und die Übermittlung. Betrachten wir eine solche Topologie:

Funktionsprinzipien des BGP-Protokolls

Jeder Router hat eine Loopback-Schnittstelle mit der IP-Adresse: x.x.x.x 255.255.255.0 eingerichtet, wobei x die Router-Nummer ist. Bei 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 beobachten, wie sie sich verbreitet. Diese Route wird an Router8 und Router12 weitergegeben. Von Router8 wird diese Route nach Router6 gelangen, aber in der Routing-Tabelle von Router5 wird sie nicht vorhanden sein. Auch bei Router12 wird diese Route in die Tabelle gelangen, jedoch wird sie auch bei Router11 nicht vorhanden sein. Lassen Sie uns damit befassen und herausfinden, welche Daten und Parameter Router9 seinen Nachbarn über diese Route mitteilt. Das Paket unten wird von Router9 an Router8 gesendet.

Funktionsprinzipien des BGP-Protokolls
Die Routeninformation besteht aus Pfadattributen (Path attributes).

Die Pfadattributen sind in 4 Kategorien unterteilt:

  1. Well-known mandatory – Alle Router, die nach dem BGP-Protokoll arbeiten, müssen diese Attribute erkennen. Sie müssen in allen Aktualisierungen (Updates) vorhanden sein.
  2. Well-known discretionary – Alle Router, die nach dem BGP-Protokoll arbeiten, müssen diese Attribute erkennen. Sie können in den Aktualisierungen (Updates) vorhanden sein, aber ihr Vorhandensein ist nicht zwingend erforderlich.
  3. Optional transitive — können von allen BGP-Implementierungen möglicherweise nicht erkannt werden. Wenn der Router das Attribut nicht erkennt, markiert er das Update als partielle (partial) und sendet es an die Nachbarn weiter, wobei das nicht erkannte Attribut beibehalten wird.
  4. Optional nicht-transitiv — können von allen BGP-Implementierungen möglicherweise nicht erkannt werden. Wenn der Router das Attribut nicht erkennt, wird es ignoriert und bei der Übertragung an die Nachbarn verworfen.

Beispiele für BGP-Attribute:

  • Well-known mandatory:
    • Autonomes System-Pfad
    • Nächster Hop
    • Ursprung

  • Well-known discretionary:
    • Lokale Präferenz
    • Atomare Aggregation
  • Optional transitive:
    • Aggregator
    • Gemeinschaften
  • Optional nicht-transitiv:
    • Multi-Exit-Discriminator (MED)
    • Originator-ID
    • Clusterliste

In diesem Fall interessieren uns vorerst Ursprung, Nächster Hop und AS-Pfad. Da die Route zwischen Router8 und Router9 überträgt, also innerhalb desselben AS, wird sie als intern betrachtet und wir achten auf den Ursprung.

Das Attribut Ursprung gibt an, auf welche Weise die Route im Update 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 über das Exterior Gateway Protocol (EGP) gelernt. Vorgänger von BGP, wird nicht verwendet.
  • 2 — Unvollständig: NLRI wurde auf andere Weise erlernt.

In unserem Fall, wie aus dem Paket ersichtlich, beträgt es 0. Wenn diese Route an Router12 weitergeleitet wird, wird dieser Code den Wert 1 haben.

Next-hop. Next-hop-Attribut

  • Dies ist die IP-Adresse des eBGP-Routers, über den der Pfad zum Zielnetz führt.
  • Das Attribut ändert sich, wenn das Präfix in ein anderes AS übertragen wird.

Im Fall von iBGP, also innerhalb eines AS, wird der Next-hop angegeben, der diesen Pfad erkannt oder darüber informiert hat. In unserem Fall ist dies 192.168.89.9. Wenn dieser Pfad jedoch von Router8 zu Router6 übertragen wird, wird Router8 ihn ändern und durch seine eigene IP ersetzen. Der Next-hop wird dann 192.168.68.8 sein. Dies führt uns zu zwei Regeln:

  1. Wenn ein Router einen Pfad an seinen internen Nachbarn überträgt, ändert er das Next-hop-Attribut nicht.
  2. Wenn ein Router einen Pfad an seinen externen Nachbarn überträgt, ändert er das Next-hop-Attribut auf die IP-Adresse der Schnittstelle, über die dieser Router den Pfad überträgt.

Dies bringt uns zur ersten Problematik – Warum der Pfad nicht in der Routingtabelle auf Router5 und Router11 vorhanden sein wird. Lassen Sie uns das genauer betrachten. Also, Router6 hat Informationen über den Pfad 9.9.9.0/24 erhalten und erfolgreich in die Routingtabelle aufgenommen:

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 inter 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 Level-1, L2 - IS-IS Level-2
       ia - IS-IS inter area, * - Kandidatenstandard, U - benutzerspezifische statische Route
       o - ODR, P - periodisch heruntergeladene statische Route, H - NHRP, l - LISP
       a - Applikationsroute
       + - replizierte Route, % - nächste Hop-Übersteuerung, p - Übersteuerungen von PfR

Gateway der letzten Instanz ist nicht festgelegt

      9.0.0.0/24 ist subnettiert, 1 Subnetze
B        9.9.9.0 [20/0] über 192.168.68.8, 00:38:25<source>
Jetzt hat Router6 den Route an Router5 weitergeleitet und die erste Regel für Next-hop nicht verändert. Das heißt, Router5 muss hinzufügen,  <b>9.9.9.0 [20/0] über 192.168.68.8</b> , aber es hat keine Route zu 192.168.68.8, daher 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, &gt; beste, i - intern,
              r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter,
              x beste-external, 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 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 passieren. Um eine solche Situation zu vermeiden, muss konfiguriert werden, dass Router6 oder Router12, beim Weiterleiten der Route an ihre internen Nachbarn, ihre eigene IP-Adresse als Next-hop einfügen. Dies geschieht mit dem Befehl:

neighbor 192.168.56.5 next-hop-self

Nach diesem Befehl wird Router6 eine Update-Nachricht senden, in der für die Routen die IP-Adresse des Gi0/0-Interfaces von Router6 – 192.168.56.6 – als Next-hop angegeben ist. Danach wird diese Route in die Routing-Tabelle aufgenommen.

Lassen Sie uns weitergehen und prüfen, ob diese Route auf Router7 und Router10 erscheint. In der Routing-Tabelle wird sie nicht vorhanden sein, und wir könnten denken, dass das Problem wie beim ersten Parameter Next-hop ist. Aber wenn wir die Ausgabe des Befehls show ip bgp betrachten, sehen wir, dass die Route dort nicht einmal mit einem falschen Next-hop empfangen wurde, was bedeutet, dass die Route nicht übermittelt wurde. Dies 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 nicht an seinen anderen internen Nachbarn weitergegeben. Damit eine Übertragung stattfindet, muss die Funktion Route Reflector, oder vollvermaschte Nachbarschaften (Full Mesh) einrichten, wobei jeder Router5-7 Nachbarn mit jedem sein wird. In diesem Fall verwenden wir einen Route Reflector. Auf Router5 ist der folgende Befehl erforderlich:

neighbor 192.168.57.7 route-reflector-client

Ein Route Reflector ändert das Verhalten von BGP bei der Weitergabe von Routen an interne Nachbarn. Wenn der interne Nachbar als route-reflector-client, werden diesen Clienten interne Routen angekündigt.

Ist die Route auf Router7 nicht erschienen? Vergessen Sie nicht den Next-hop. Nach diesen Änderungen sollte die Route auch auf Router7 erscheinen, aber das passiert nicht. Das führt uns zu einer weiteren Regel:

Die Next-hop-Regel gilt nur für externe Routen. Bei internen Routen findet keine Änderung des Next-hop-Attributs statt.

In dieser Situation müssen wir eine Umgebung durch statische Routen oder IGP-Protokolle schaffen, die den Routern alle Routen innerhalb des AS übermitteln. Wir werden statische Routen auf Router6 und Router7 festlegen und danach die benötigte Route in der Routing-Tabelle des Routers erhalten. In AS 678 hingegen werden wir etwas anders vorgehen — statische Routen für 192.168.112.0/24 auf Router10 und für 192.168.110.0/24 auf Router12 definieren. Anschließend stellen wir Nachbarschaftsbeziehungen zwischen Router10 und Router12 her. Zudem konfigurieren wir auf Router12 die Sendung seines Next-Hop für Router10:

neighbor 192.168.110.10 next-hop-self

Das Ergebnis wird sein, dass Router10 die Route 9.9.9.0/24 empfängt, die sowohl von Router7 als auch von Router12 bereitgestellt wird. Lassen Sie uns sehen, welche Entscheidung Router10 trifft:

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network              Next Hop            Metric LocPrf Weight Path
 * > 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 ( > ) zeigt an, dass die Route über 192.168.112.12 gewählt wurde.
Schauen wir uns an, wie der Prozess der Routenwahl funktioniert:

  1. Zuerst wird bei Erhalt der Route die Verfügbarkeit des Next-hop überprüft. Genau deshalb wurde die Route auf Router5, ohne Next-hop-self-Konfiguration, nicht zur Verarbeitung weitergegeben.
  2. Dann folgt der Parameter Weight. Dieser Parameter ist kein Path Attribute (PA) und wird nicht in BGP-Nachrichten übertragen. Er wird lokal auf jedem Router konfiguriert und dient ausschließlich zur Steuerung der Routenwahl auf dem Router selbst. 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) gewählt hat. Um den Weight-Parameter zu ändern, kann man eine route-map verwenden, um ihn für bestimmte Routen festzulegen, oder ihn einem Nachbarn mit folgendem Befehl zuweisen:
     neighbor 192.168.107.7 weight 200       

    Nun werden alle Routen von diesem Nachbarn dieses Gewicht haben. Lassen Sie uns sehen, wie sich die Routenwahl nach dieser Manipulation ändern wird:

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Konfiguration über Konsole von Konsole vorgenommen
    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 Mehrfachpfad, b Backup-Pfad, f RT-Filter,
                  x bester extern, a zusätzlicher Pfad, c RIB-komprimiert,
    Ursprungs-Codes: 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
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Wie Sie sehen, wurde jetzt der Pfad über Router7 gewählt, aber dies wird keine Auswirkungen auf die anderen Router haben.

  3. Auf der dritten Position haben wir - Local Preference. Dieses Attribut ist ein bekanntes, diskretionäres Attribut, was bedeutet, dass seine Präsenz nicht zwingend erforderlich ist. Dieses Attribut gilt nur innerhalb einer AS und beeinflusst die Pfadauswahl nur für interne Nachbarn. Daher wird es nur in Update-Nachrichten übermittelt, die für interne Nachbarn bestimmt sind. In Update-Nachrichten für externe Nachbarn ist es nicht vorhanden. Deshalb wurde es als bekanntes diskretionäres Attribut eingestuft. Lassen Sie uns versuchen, es auf Router5 anzuwenden. Auf Router5 sollten wir zwei Routen für 9.9.9.0/24 haben – eine über Router6 und eine andere über Router7.

    Schauen wir uns das an:

    Router5#show bgp
    BGP-Tabellenversion ist 2, lokale Router-ID ist 5.5.5.5
    Statuscodes: s unterdrückt, d gedämpft, h Verlauf, * gültig, > beste, i - intern,
                  r RIB-Fehler, S veraltet, m Mehrpfad, b Sicherungspfad, f RT-Filter,
                  x beste-external, 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.56.6             0    100      0 45 i

    Aber wie wir sehen, gibt es eine Route über Router6. Wo ist die Route über Router7? Vielleicht gibt es sie auch nicht auf Router7? Schauen wir nach:

    Router#show bgp
    BGP-Tabellenversion ist 10, lokale Router-ID ist 7.7.7.7
    Statuscodes: s unterdrückt, d gedämpft, h Verlauf, * gültig, > beste, i - intern,
                  r RIB-Fehler, S veraltet, m Mehrpfad, b Sicherungspfad, f RT-Filter,
                  x beste-external, 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.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Seltsam, es scheint alles in Ordnung zu sein. Warum wird es nicht an Router5 weitergeleitet? Der Grund ist, dass es eine Regel bei BGP gibt:

    Der Router leitet nur die Routen weiter, die er selbst verwendet.

    Router7 nutzt den Pfad über Router5, weshalb der Pfad über Router10 nicht übermittelt wird. Kommen wir zurück zu Local Preference. Lassen Sie uns die Local Preference auf Router7 festlegen und beobachten, wie Router5 darauf reagiert:

    route-map BGP erlauben 10
     match ip Adresse 10
     setze lokale Präferenz 250
     Zugriffs-Liste 10 erlaube beliebig
     Router BGP 123
     Nachbar 192.168.107.10 route-map BGP in</b>

    Wir haben also eine route-map erstellt, die alle Routen erfasst, und Router7 angewiesen, beim Empfang den Parameter Local Preference auf 250 zu ändern, der standardmäßig auf 100 eingestellt ist. Sehen wir uns an, was mit Router5 passiert ist:

    Router5#show bgp
    BGP Tabelle Version ist 8, lokale Router-ID ist 5.5.5.5
    Statuscodes: s unterdrückt, d gedämpft, h Historie, * gültig, > besten, i - intern,
                  r RIB-Fehler, S veraltet, m Mehrfachpfad, b Sicherungspfad, f RT-Filter,
                  x bester externer, a zusätzlicher Pfad, c RIB-komprimiert,
    Ursprungscode: 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 i

    Wie wir sehen, bevorzugt Router5 jetzt den Pfad über Router7. Ein ähnliches Bild wird auch bei Router6 zu sehen sein, obwohl es für ihn vorteilhafter wäre, den Pfad über Router8 zu wählen. Zudem sei angemerkt, dass eine Änderung dieses Parameters einen Neustart der Nachbarschaft erfordert, damit die Änderung wirksam wird. Lesen Sie weiter hier. Mit Local Preference sind wir durch. Lassen Sie uns zum nächsten Parameter übergehen.

  4. Bevorzugte Route mit dem Next-Hop-Parameter 0.0.0.0, also lokale oder aggregierte Routen. Diese Routen erhalten automatisch nach Eingabe des Befehls 'network' ein Gewicht (Weight) von maximal 32678.
    Router#show bgp
    BGP-Tabelle-Version ist 2, lokale Router-ID ist 9.9.9.9
    Statuscodes: s unterdrückt, d gedämpft, h Verlauf, * gültig, > beste, i - intern,
                  r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter,
                  x beste-externe, 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
     * >  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Der kürzeste Pfad durch AS. Es wird der kürzeste AS_Path-Parameter 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 Verlauf, * gültig, > beste, i - intern,
                  r RIB-Fehler, S veraltet, m Mehrpfad, b Backup-Pfad, f RT-Filter,
                  x beste-externe, 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
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     * > i                     192.168.112.12           0    100       0       45 i

    Wie Sie sehen können, hat Router10 den Pfad über 192.168.112.12 gewählt, da der AS_Path für diesen Pfad nur 45 enthält, während es im anderen Fall 123 und 45 sind. Das ist intuitiv klar.

  6. Der nächste Parameter ist der Origin. IGP (der Pfad wurde durch BGP erhalten) ist besser als EGP (der Pfad wurde durch einen Vorgänger von BGP erhalten, der mittlerweile nicht mehr verwendet wird), und EGP ist besser als Incomplete? (erhalten auf andere Weise, zum Beispiel durch Redistribution).
  7. Der nächste Parameter ist MED. Wir hatten Weight, das nur lokal auf dem Router funktionierte. Dann gab es Local Preference, das nur innerhalb eines autonomen Systems wirkte. Wie man sich leicht denken kann, ist MED der Parameter, der zwischen autonomen Systemen übertragen wird. Sehr gut. Artikel zu diesem Parameter.

Es werden keine weiteren Attribute verwendet, aber wenn zwei Pfade identisch sind, gelten die folgenden Regeln:

  1. Wählen Sie den Pfad über den nächstgelegenen IGP-Nachbarn.
  2. Wählen Sie den ältesten Pfad für den eBGP-Pfad.
  3. Wählen Sie den Pfad über den Nachbarn mit der niedrigsten BGP-Router-ID.
  4. Wählen Sie den Pfad über den Nachbarn mit der niedrigsten IP-Adresse.

Nun betrachten wir die Frage der BGP-Konvergenz.

Schauen wir uns an, was passiert, wenn Router6 die Route 9.9.9.0/24 über Router9 verliert. Wir deaktivieren das Interface Gi0/1 von Router6, das sofort versteht, dass die BGP-Sitzung mit Router8 unterbrochen wurde und der Nachbar nicht mehr vorhanden ist, was bedeutet, dass die von ihm erhaltene Route ungültig ist. Router6 sendet sofort Update-Nachrichten, in denen das Netzwerk 9.9.9.0/24 im Feld "Withdrawn Routes" angegeben wird. Sobald Router5 eine solche Nachricht erhält, leitet es sie an Router7 weiter. Da Router7 jedoch eine Route über Router10 hat, sendet es sofort eine Update-Nachricht mit der neuen Route. Wenn der Nachbar aufgrund des Interface-Zustands nicht erkannt werden kann, müssen wir auf das Auslösen des Hold Timers warten.

Konföderation.

Wenn Sie sich erinnern, haben wir darüber gesprochen, dass es oft notwendig ist, eine vollvernetzte Topologie zu verwenden. Mit einer großen Anzahl von Routern in einer AS kann dies erhebliche Probleme verursachen, um dies zu vermeiden, ist es notwendig, Konföderationen zu nutzen. Eine AS wird in mehrere Sub-AS unterteilt, was es ihnen ermöglicht, ohne die Anforderung einer vollvernetzten Topologie zu arbeiten.

Funktionsprinzipien des BGP-Protokolls

Hier ist der Link zu dieser Labor, und hier Konfiguration für GNS3.

Zum Beispiel müssten wir bei dieser Topologie alle Router im AS 2345 miteinander verbinden. Mit einer Confederation können wir jedoch Nachbarschaftsbeziehungen nur zwischen den direkt miteinander verbundenen Routern herstellen. Lassen Sie uns dies im Detail besprechen. Hätten wir nur das AS 2345, dann laForge würde den Pfad von Picard an seine Router weitergeben. Data und Worf, aber sie würden diesen nicht an Router Crusher weiterleiten. Außerdem würden die Routen, die der Router selbst verbreitet, laForgenicht Crusher übertragen werden Worf- weder Data.

Man müsste einen Route-Reflector einrichten oder vollständige Nachbarschaftsbeziehungen konfigurieren. Wenn wir AS 2345 in 4 Sub-AS (2, 3, 4, 5) für jeden Router aufteilen, erhalten wir eine andere Betriebslogik. Alles ist gut beschrieben hier.

Quellen:

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
  2. Die Website xgu.ru
  3. Die Website GNS3Vault.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster