Wie BGP funktioniert

Heute schauen wir uns das BGP-Protokoll an. Wir werden nicht lange darüber reden, warum das so ist und warum es als einziges Protokoll verwendet wird. Zu diesem Thema gibt es zum Beispiel recht viele Informationen hier.

Was ist BGP? BGP ist ein dynamisches Routing-Protokoll und das einzige EGP-Protokoll (External Gateway Protocol). Dieses Protokoll wird zum Aufbau von Routing im Internet verwendet. Schauen wir uns an, wie eine Nachbarschaft zwischen zwei BGP-Routern aufgebaut wird.

Wie BGP funktioniert
Betrachten Sie die Nachbarschaft zwischen Router1 und Router3. Konfigurieren wir 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 einzelnen autonomen Systems ist AS 10. Nach der Eingabe von Informationen auf einem Router, z. B. Router1, versucht dieser Router, eine Adjazenzbeziehung mit Router3 einzurichten. Der Ausgangszustand, in dem nichts passiert, wird aufgerufen Leerlauf. Sobald bgp auf Router1 konfiguriert ist, beginnt es, den TCP-Port 179 abzuhören – es geht in den Status über Vernetz Dich, und wenn versucht wird, eine Sitzung mit Router3 zu öffnen, wechselt es in den Status Aktives.

Nachdem die Sitzung zwischen Router1 und Router3 eingerichtet wurde, werden offene Nachrichten ausgetauscht. Wenn diese Nachricht von Router1 gesendet wird, wird dieser Status aufgerufen Öffnen Sie Gesendet. Und wenn es eine Open-Nachricht von Router3 empfängt, wechselt es in den Status Öffnen Sie „Bestätigen“.. Schauen wir uns die Open-Nachricht genauer an:

Wie BGP funktioniert
Diese Nachricht übermittelt Informationen über das BGP-Protokoll selbst, das der Router verwendet. Durch den Austausch von Open-Nachrichten teilen Router1 und Router3 einander Informationen über ihre Einstellungen mit. Folgende Parameter werden übergeben:

  • Version: Dazu gehört die BGP-Version, die der Router verwendet. Die aktuelle Version von BGP ist Version 4, die in RFC 4271 beschrieben ist. Zwei BGP-Router versuchen, eine kompatible Version auszuhandeln. Bei Nichtübereinstimmung findet keine BGP-Sitzung statt.
  • Mein AS: Dazu gehört die AS-Nummer des BGP-Routers, die Router müssen sich auf die AS-Nummer(n) einigen und definiert auch, ob sie iBGP oder eBGP ausführen.
  • Haltezeit: Wenn BGP für die Dauer der Haltezeit keine Keepalive- oder Update-Nachrichten von der anderen Seite empfängt, erklärt es die andere Seite für „tot“ und bricht die BGP-Sitzung ab. Standardmäßig ist die Haltezeit auf Cisco IOS-Routern auf 180 Sekunden eingestellt, die Keepalive-Nachricht wird alle 60 Sekunden gesendet. Beide Router müssen sich auf die Haltezeit einigen, sonst findet keine BGP-Sitzung statt.
  • BGP-Identifikator: Dies ist die lokale BGP-Router-ID, die genau wie 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 zu BGP hinzugefügt werden können, ohne dass eine neue Version erstellt werden muss. Folgendes finden Sie möglicherweise hier:
    • Unterstützung für MP-BGP (Multi Protocol BGP).
    • Unterstützung für Routenaktualisierung.
    • Unterstützung für 4-Oktett-AS-Nummern.

Um eine Nachbarschaft zu gründen, müssen folgende Bedingungen erfüllt sein:

  • Versionsnummer. Die aktuelle Version ist 4.
  • Die AS-Nummer muss mit Ihrer Konfiguration übereinstimmen Nachbar 192.168.13.3 remote-as 10.
  • Die Router-ID muss sich vom Nachbarn unterscheiden.

Wenn einer der Parameter diese Bedingungen nicht erfüllt, sendet der Router Benachrichtigung Meldung, die auf den Fehler hinweist. Nach dem Senden und Empfangen offener Nachrichten tritt die Nachbarschaftsbeziehung in den Zustand ein ETABLIERT. Danach können Router Informationen über Routen austauschen und dies tun Aktualisierung Mitteilungen. Dies ist die von Router1 an Router3 gesendete Update-Nachricht:

Wie BGP funktioniert

Hier sehen Sie die Netzwerke, die von den Attributen „Router1“ und „Pfad“ gemeldet werden, die analog zu Metriken sind. Wir werden ausführlicher über Pfadattribute sprechen. Keepalive-Nachrichten werden auch innerhalb einer TCP-Sitzung gesendet. Sie werden standardmäßig alle 60 Sekunden übertragen. Dies ist ein Keepalive-Timer. Wenn während des Hold-Timers keine Keepalive-Nachricht empfangen wird, bedeutet dies einen Verlust der Kommunikation mit dem Nachbarn. Standardmäßig beträgt sie 180 Sekunden.

Nützliches Zeichen:

Wie BGP funktioniert

Es scheint, dass wir herausgefunden haben, wie Router Informationen untereinander übertragen. Versuchen wir nun, die Logik des BGP-Protokolls zu verstehen.

Um eine Route zur BGP-Tabelle anzukündigen, wird wie in den IGP-Protokollen der Netzwerkbefehl verwendet, aber die Betriebslogik ist anders. Wenn IGP in IGP nach der Angabe der Route im Netzwerkbefehl prüft, welche Schnittstellen zu diesem Subnetz gehören, und diese in seine Tabelle aufnimmt, schaut sich der Netzwerkbefehl in BGP die Routing-Tabelle an und sucht nach genau entspricht der Route im Netzwerkbefehl. Wenn solche gefunden werden, werden diese Routen in der BGP-Tabelle angezeigt.

Suchen Sie in der aktuellen IP-Routing-Tabelle des Routers nach einer Route, die genau mit den Parametern des Netzwerkbefehls übereinstimmt. Wenn die IP-Route vorhanden ist, fügen Sie den entsprechenden NLRI in die lokale BGP-Tabelle ein.

Lassen Sie uns nun BGP auf alle verbleibenden erhöhen und sehen, wie die Route innerhalb eines AS ausgewählt wird. Nachdem der BGP-Router Routen von seinem Nachbarn empfangen hat, beginnt er mit der Auswahl der optimalen Route. Hier müssen Sie verstehen, welche Art von Nachbarn es geben kann – intern und extern. Erkennt der Router anhand der Konfiguration, ob der konfigurierte Nachbar intern oder extern ist? Wenn in einem Team:

neighbor 192.168.13.3 remote-as 10 

Der Parameter „remote-as“ gibt AS an, das auf dem Router selbst im Befehl „router bgp 10“ konfiguriert wird. Routen, die vom internen AS kommen, werden als intern betrachtet, und Routen vom externen AS werden als extern betrachtet. Und für jeden funktioniert eine andere Logik des Empfangens und Sendens. Betrachten Sie diese Topologie:

Wie BGP funktioniert

Jeder Router verfügt über eine Loopback-Schnittstelle, die mit der IP-Adresse xxxx 255.255.255.0 konfiguriert ist – wobei x die Router-Nummer ist. Auf Router9 haben wir eine Loopback-Schnittstelle mit der Adresse 9.9.9.9 255.255.255.0. Wir werden es über BGP bekannt geben und sehen, wie es sich verbreitet. Diese Route wird an Router8 und Router12 übertragen. Von Router8 geht diese Route zu Router6, aber zu Router5 ist sie nicht in der Routing-Tabelle. Auch auf Router12 erscheint diese Route in der Tabelle, auf Router11 ist sie jedoch ebenfalls nicht vorhanden. Versuchen wir, das herauszufinden. Betrachten wir, welche Daten und Parameter Router9 an seine Nachbarn überträgt und diese Route meldet. Das folgende Paket wird von Router9 an Router8 gesendet.

Wie BGP funktioniert
Routeninformationen bestehen aus Pfadattributen.

Pfadattribute sind in 4 Kategorien unterteilt:

  1. Bekannte Pflicht – Alle Router, auf denen BGP ausgeführt wird, müssen diese Attribute erkennen. Muss in allen Updates vorhanden sein.
  2. Bekannter Ermessensspielraum – Alle Router, auf denen BGP ausgeführt wird, müssen diese Attribute erkennen. Sie können in Updates vorhanden sein, ihre Anwesenheit ist jedoch nicht erforderlich.
  3. Optional transitiv – wird möglicherweise nicht von allen BGP-Implementierungen erkannt. Wenn der Router das Attribut nicht erkennt, markiert er die Aktualisierung als teilweise und leitet sie an seine Nachbarn weiter, wobei er das nicht erkannte Attribut speichert.
  4. Optional nicht transitiv – wird möglicherweise nicht von allen BGP-Implementierungen erkannt. Wenn der Router das Attribut nicht erkennt, wird das Attribut ignoriert und bei der Weitergabe an Nachbarn verworfen.

Beispiele für BGP-Attribute:

  • Bekannte Pflicht:
    • Autonomer Systempfad
    • Nächster Hop
    • Origin

  • Bekannter Ermessensspielraum:
    • Lokale Präferenz
    • Atomares Aggregat
  • Optional transitiv:
    • Aggregator
    • Communities
  • Optional nicht transitiv:
    • Multi-Exit-Diskriminator (MED)
    • Urheber-ID
    • Clusterliste

In diesem Fall interessieren uns vorerst Origin, Next-Hop und AS Path. Da die Route zwischen Router8 und Router9, also innerhalb eines AS, überträgt, gilt sie als intern und wir werden auf Origin achten.

Ursprungsattribut – gibt an, wie die Route im Update erhalten wurde. Mögliche Attributwerte:

  • 0 – IGP: NLRI im ursprünglichen autonomen System empfangen;
  • 1 – EGP: NLRI wird mithilfe des Exterior Gateway Protocol (EGP) erlernt. Vorgänger von BGP, nicht verwendet
  • 2 – Unvollständig: NLRI wurde auf andere Weise gelernt

In unserem Fall ist es, wie aus dem Paket hervorgeht, gleich 0. Wenn diese Route an Router12 übertragen wird, hat dieser Code den Code 1.

Als nächstes, Next-Hop. Next-Hop-Attribut

  • Dies ist die IP-Adresse des eBGP-Routers, über den der Pfad zum Zielnetzwerk verläuft.
  • Das Attribut ändert sich, wenn das Präfix an ein anderes AS gesendet wird.

Im Fall von iBGP, also innerhalb eines AS, wird der nächste Hop von demjenigen angezeigt, der von dieser Route erfahren oder davon erzählt hat. In unserem Fall ist es 192.168.89.9. Wenn diese Route jedoch von Router8 an Router6 übertragen wird, ändert Router8 sie und ersetzt sie durch seine eigene. Der nächste Hop wird 192.168.68.8 sein. Dies führt uns zu zwei Regeln:

  1. Wenn ein Router eine Route an seinen internen Nachbarn weiterleitet, ändert er den Next-Hop-Parameter nicht.
  2. Wenn ein Router eine Route an seinen externen Nachbarn überträgt, ändert er Next-Hop auf die IP der Schnittstelle, von der dieser Router sendet.

Dies führt uns zum Verständnis des ersten Problems: Warum es in der Routing-Tabelle auf Router5 und Router11 keine Route gibt. Lass uns genauer hinschauen. Router6 hat also Informationen über Route 9.9.9.0/24 erhalten und diese erfolgreich zur Routing-Tabelle hinzugefügt:

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, local router ID is 5.5.5.5
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.68.8             0    100      0 45 i</b>

Die gleiche Situation wird zwischen Router11 und Router12 auftreten. Um diese Situation zu vermeiden, müssen Sie Router6 oder Router12 beim Weiterleiten der Route an ihre internen Nachbarn so konfigurieren, dass sie deren IP-Adresse als Next-Hop ersetzen. Dies geschieht mit dem Befehl:

neighbor 192.168.56.5 next-hop-self

Nach diesem Befehl sendet Router6 eine Update-Nachricht, in der die IP der Schnittstelle Gi0/0 Router6 als Next-Hop für Routen angegeben wird – 192.168.56.6, woraufhin diese Route bereits in die Routing-Tabelle aufgenommen wird.

Gehen wir weiter und sehen, ob diese Route auf Router7 und Router10 angezeigt wird. Es wird nicht in der Routing-Tabelle enthalten sein und wir könnten denken, dass das Problem das gleiche ist wie im ersten mit dem Next-Hop-Parameter, aber wenn wir uns die Ausgabe des Befehls show ip bgp ansehen, werden wir sehen, dass das Die Route wurde dort auch mit dem falschen Next-Hop nicht empfangen, was bedeutet, dass die Route nicht einmal übertragen wurde. Und das führt uns zur Existenz einer weiteren Regel:

Von internen Nachbarn empfangene Routen werden nicht an andere interne Nachbarn weitergegeben.

Da Router5 die Route von Router6 erhalten hat, wird sie nicht an seinen anderen internen Nachbarn übertragen. Damit die Übertragung erfolgen kann, müssen Sie die Funktion konfigurieren Routenreflektor, oder konfigurieren Sie vollständig verbundene Nachbarschaftsbeziehungen (Full Mesh), das heißt, Router5-7 ist jeder ein Nachbar für alle. In diesem Fall verwenden wir Route Reflector. Auf Router5 müssen Sie diesen Befehl verwenden:

neighbor 192.168.57.7 route-reflector-client

Route-Reflector ändert das Verhalten von BGP beim Weiterleiten einer Route an einen internen Nachbarn. Wenn der interne Nachbar als angegeben ist Routenreflektor-Client, dann werden diesen Clients interne Routen angekündigt.

Die Route wurde nicht auf Router7 angezeigt? Vergessen Sie auch nicht Next-Hop. Nach diesen Manipulationen sollte die Route auch zu Router7 führen, was jedoch nicht geschieht. Dies bringt uns zu einer weiteren Regel:

Die Next-Hop-Regel funktioniert nur für externe Routen. Bei internen Routen wird das Next-Hop-Attribut nicht ersetzt.

Und wir geraten in eine Situation, in der es notwendig ist, eine Umgebung zu schaffen, die statisches Routing oder IGP-Protokolle verwendet, um Router über alle Routen innerhalb des AS zu informieren. Registrieren wir statische Routen auf Router6 und Router7 und erhalten anschließend die gewünschte Route in der Router-Tabelle. 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 registrieren. Als nächstes werden wir die Nachbarschaftsbeziehung zwischen Router10 und Router12 herstellen. Wir werden Router12 auch so konfigurieren, dass er seinen nächsten Hop an Router10 sendet:

neighbor 192.168.110.10 next-hop-self

Das Ergebnis ist, dass Router10 die Route 9.9.9.0/24 empfängt, sie wird sowohl von Router7 als auch von Router12 empfangen. Mal sehen, welche Wahl 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, bedeuten zwei Routen und ein Pfeil (>), dass die Route über 192.168.112.12 ausgewählt ist.
Sehen wir uns an, wie der Routenauswahlprozess funktioniert:

  1. Der erste Schritt beim Empfang einer Route besteht darin, die Verfügbarkeit ihres Next-Hop zu überprüfen. Aus diesem Grund wurde diese Route nicht weiter verarbeitet, als wir auf Router5 eine Route ohne Einstellung von Next-Hop-Self erhielten.
  2. Als nächstes kommt der Gewichtsparameter. Dieser Parameter ist kein Pfadattribut (PA) und wird nicht in BGP-Nachrichten gesendet. Es wird lokal auf jedem Router konfiguriert und dient nur zur Manipulation der Routenauswahl auf dem Router selbst. Schauen wir uns ein Beispiel an. Direkt oben können Sie sehen, dass Router10 eine Route für 9.9.9.0/24 über Router12 (192.168.112.12) ausgewählt hat. Um den Wieght-Parameter zu ändern, können Sie Route-Map verwenden, um bestimmte Routen festzulegen, oder dem Nachbarn mit dem folgenden Befehl eine Gewichtung zuweisen:
     neighbor 192.168.107.7 weight 200       

    Jetzt haben alle Routen von diesem Nachbarn dieses Gewicht. Mal sehen, wie sich die Routenwahl nach dieser Manipulation ändert:

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, 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
     *>  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, ist nun die Route über Router7 ausgewählt, dies hat jedoch keine Auswirkungen auf die anderen Router.

  3. An dritter Stelle steht die lokale Präferenz. Dieser Parameter ist ein bekanntes diskretionäres Attribut, was bedeutet, dass seine Anwesenheit optional ist. Dieser Parameter ist nur innerhalb eines AS gültig und beeinflusst die Pfadwahl nur für interne Nachbarn. Deshalb wird es nur in Update-Nachrichten übertragen, die für den internen Nachbarn bestimmt sind. Es ist in Update-Nachrichten für externe Nachbarn nicht vorhanden. Daher wurde es als „Bekannter Ermessensspielraum“ eingestuft. Versuchen wir, es auf Router5 anzuwenden. Auf Router5 sollten wir zwei Routen für 9.9.9.0/24 haben – eine über Router6 und die zweite über Router7.

    Werfen Sie einen Blick:

    Router5#show bgp
    BGP table version is 2, local router ID is 5.5.5.5
    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.56.6             0    100      0 45 i

    Aber wie wir sehen, gibt es eine Route über Router6. Wo ist die Route durch Router7? Vielleicht hat Router7 es auch nicht? Lass uns nachsehen:

    Router#show bgp
    BGP table version is 10, local router ID is 7.7.7.7
    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.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Seltsam, alles scheint in Ordnung zu sein. Warum wird es nicht an Router5 übertragen? Die Sache ist, dass BGP eine Regel hat:

    Der Router überträgt nur die Routen, die er nutzt.

    Router7 verwendet eine Route über Router5, sodass die Route über Router10 nicht übertragen wird. Kehren wir zur lokalen Präferenz zurück. Lassen Sie uns die lokalen Einstellungen für Router7 festlegen und sehen, wie Router5 darauf reagiert:

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    Also haben wir eine Routenkarte erstellt, die alle Routen enthält, und Router7 angewiesen, den lokalen Präferenzparameter beim Empfang auf 250 zu ändern, der Standardwert ist 100. Schauen wir uns an, was auf Router5 passiert ist:

    Router5#show bgp
    BGP table version is 8, local router ID is 5.5.5.5
    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.57.7             0          250      0 678 45 i

    Wie wir jetzt sehen können, bevorzugt Router5 die Route über Router7. Das gleiche Bild ergibt sich auf Router6, obwohl es für ihn rentabler ist, eine Route über Router8 zu wählen. Wir fügen außerdem hinzu, dass das Ändern dieses Parameters einen Neustart der Nachbarschaft erfordert, damit die Änderung wirksam wird. Lesen hier. Wir haben die lokalen Präferenzen geklärt. Kommen wir zum nächsten Parameter.

  4. Bevorzugen Sie die Route mit dem Next-Hop-Parameter 0.0.0.0, also lokale oder aggregierte Routen. Diesen Routen wird nach Eingabe des Netzwerkbefehls automatisch ein Gewichtungsparameter zugewiesen, der dem Maximum (32678) entspricht:
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    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
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Kürzester Weg durch AS. Der kürzeste AS_Path-Parameter wird ausgewählt. Je weniger ASs eine Route durchläuft, desto besser ist sie. Betrachten Sie die Route zu 9.9.9.0/24 auf Router10:
    Router10#show bgp
    BGP table version is 2, 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
     *   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, hat Router10 die Route über 192.168.112.12 gewählt, da für diese Route der AS_Path-Parameter nur 45 enthält, in einem anderen Fall 123 und 45. Intuitiv klar.

  6. Der nächste Parameter ist Origin. IGP (mit BGP erhaltene Route) ist besser als EGP (mit dem Vorgänger von BGP erhaltene Route, wird nicht mehr verwendet) und EGP ist besser als unvollständig? (durch eine andere Methode erhalten, zum Beispiel durch Umverteilung).
  7. Der nächste Parameter ist MED. Wir hatten Wieght, das nur lokal auf dem Router funktionierte. Es gab die lokale Präferenz, die nur innerhalb eines autonomen Systems funktionierte. Wie Sie sich vorstellen können, handelt es sich bei MED um einen Parameter, der zwischen autonomen Systemen übertragen wird. Sehr gut Beitrag über diesen Parameter.

Es werden keine weiteren Attribute verwendet, aber wenn zwei Routen dieselben Attribute haben, werden die folgenden Regeln verwendet:

  1. Wählen Sie den Pfad durch den nächsten IGP-Nachbarn.
  2. Wählen Sie die älteste Route für den eBGP-Pfad aus.
  3. Wählen Sie den Pfad durch den Nachbarn mit der kleinsten BGP-Router-ID.
  4. Wählen Sie einen Pfad über den Nachbarn mit der niedrigsten IP-Adresse.

Schauen wir uns nun das Problem der BGP-Konvergenz an.

Mal sehen, was passiert, wenn Router6 die Route 9.9.9.0/24 über Router9 verliert. Deaktivieren wir die Schnittstelle Gi0/1 von Router6, wodurch sofort erkannt wird, dass die BGP-Sitzung mit Router8 beendet wurde und der Nachbar verschwunden ist, was bedeutet, dass die von ihm empfangene Route ungültig ist. Router6 sendet sofort Update-Nachrichten, wobei er im Feld „Zurückgezogene Routen“ das Netzwerk 9.9.9.0/24 angibt. Sobald Router5 eine solche Nachricht empfängt, sendet er sie an Router7. Da Router7 jedoch eine Route über Router10 hat, antwortet er sofort mit einem Update mit einer neuen Route. Wenn es nicht möglich ist, den Sturz eines Nachbarn anhand des Zustands der Schnittstelle zu erkennen, müssen Sie warten, bis der Hold-Timer ausgelöst wird.

Staatenbund.

Wenn Sie sich erinnern, haben wir darüber gesprochen, dass Sie häufig eine vollständig verbundene Topologie verwenden müssen. Bei einer großen Anzahl von Routern in einem AS kann dies zu großen Problemen führen. Um dies zu vermeiden, müssen Sie Konföderationen verwenden. Ein AS ist in mehrere Sub-AS unterteilt, sodass diese ohne die Notwendigkeit einer vollständig verbundenen Topologie betrieben werden können.

Wie BGP funktioniert

Hier ist ein Link dazu labuUnd hier Konfiguration für GNS3.

Bei dieser Topologie müssten wir beispielsweise alle Router in AS 2345 miteinander verbinden, aber mit Confederation können wir Adjazenzbeziehungen nur zwischen direkt miteinander verbundenen Routern herstellen. Lassen Sie uns ausführlich darüber sprechen. Wenn wir nur AS 2345 hätten, dann laForge einen Marsch erhalten haben von Picard Ich würde es den Routern mitteilen Datum и Worf, aber sie würden dem Router nichts davon erzählen Brecher . Auch vom Router selbst verteilte Routen laForge, wäre nicht übertragen worden Brecher noch Worf-Ach nein Datum.

Sie müssten einen Route-Reflector oder eine vollständig verbundene Nachbarschaftsbeziehung konfigurieren. Durch die Aufteilung eines AS 2345 in 4 Sub-AS (2,3,4,5) für jeden Router erhalten wir am Ende eine andere Betriebslogik. Alles ist perfekt beschrieben hier.

Quellen:

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Band 2, Fünfte Auflage, Narbik Kocharians, Terry Vinson.
  2. Webseite xgu.ru
  3. Webseite GNS3Vault.

Source: habr.com

Kommentar hinzufügen