Weiterleiten des Datenverkehrs über verschiedene Links von demselben BGP AS


19

Ich habe zwei Standorte, A und B, in BGP AS 65000 und einen dritten Standort, C, in AS 65001. Alle drei Standorte sind über Carrier MPLS verbunden, und es besteht eine interne Verbindung zwischen den Standorten A und B. Ich versuche, BGP zu beeinflussen Der Datenverkehr von Standort A zu Standort C wird über die MPLS-Verbindung von Standort A weitergeleitet, und der Datenverkehr von Standort B zu Standort C wird über die MPLS-Verbindung von Standort B weitergeleitet. Die Topologie ähnelt der in diesem Beispiel beschriebenen .

AS 65000 und 65001

Die Edge-Router an den Standorten A und B sehen beide ihre eigene MPLS-Verbindung als den besten Pfad, da EBGP-Routen gegenüber IBGP-Routen bevorzugt werden. Router, die sich weiter innerhalb des AS 65000 befinden, bevorzugen jedoch alle entweder die eine oder die andere Verbindung. Mein Ziel ist es, alle Router an beiden Standorten zu zwingen, die nächstgelegene Verbindung zu bevorzugen. (Leider kann ich die beiden Sites derzeit nicht in separate ASes aufteilen.)

Gibt es eine vernünftige Möglichkeit, dies zu erreichen, während die Failover-Konnektivität zu Standort C zwischen den Standort-A- und -B-Links weiterhin zulässig ist?

Edit: Ich hätte beachten sollen, dass hier kein IGP im Einsatz ist. Tatsächlich existieren die Netzwerke an jedem Standort innerhalb einer VRF als Teil eines viel, viel größeren Netzwerks. Daher muss sich jede Lösung ausschließlich auf BGP stützen.


Hey Jeremy, es gibt zwei gute Lösungen für dieses Problem, aber ich kann nicht sicher annehmen, dass Sie die administrative Kontrolle über das IGP haben. Können Sie das klarstellen?
John Jensen

In diesem Szenario gibt es kein IGP. Dies ist tatsächlich repräsentativ für nur eine VRF in einem viel größeren Netzwerk. Die Details habe ich aus Gründen der Klarheit weggelassen.
Jeremy Stretch

Davor hatte ich Angst. :-) Danke fürs klarstellen.
John Jensen

Hier fehlt etwas, denke ich; Wir gehen also davon aus, dass zwischen A und B innerhalb des AS 65000 eine Verbindung besteht (möglicherweise viele, aufgrund mehrerer interner Router?). Was ist für Sie suboptimal? Senden ein / oder mehrere Router näher an A (topologisch gesehen) Datenverkehr über B, um nach C zu gelangen?
Jwbensley

@javano Das Problem ist, dass sowohl A als auch B (die Edge-Router) iBGP-Peers in demselben ASN sind. Daher haben alle von C gelernten Präfixe auf beiden Boxen zwei Pfade in der RIB, und der eBGP-Pfad wird es tun Immer gewinnen, damit ausgehender Datenverkehr von AS6500 zu AS65001 an einer Verbindung hängen bleibt.
John Jensen

Antworten:


12

Gibt es eine klare Definition zwischen Standort A und Standort B?

Wenn ja, dann würde ich versuchen, eine Richtlinie für die Edge-Router zu definieren, um eine Community einzuschleusen, wenn Routen vom Carrier MPLS empfangen werden.

Sobald diese Community mit den Präfixen versehen wurde (z. B. 100: 1 für Standort A und 100: 2 für Standort B), können Sie jedem Router von Standort A eine Richtlinie hinzufügen, um die LP für alle Routen mit Community 100: 1 und zu erhöhen ebenfalls für Standort B mit Community 100: 2.

Diese Lösung würde der Anforderung entsprechen, nur BGP zu verwenden, und wäre auch so flexibel, dass B weiterhin die Aufwärtsverbindung von A verwenden kann, wenn es seine eigene Aufwärtsverbindung zum Träger verliert.


1
Dies ist wahrscheinlich der beste Weg, aber wenn Jeremy eine einzelne Zusammenfassung von C ankündigt, muss er sie in Blöcke aufteilen, damit dies effektiv funktioniert.
John Jensen

Ich denke, das ist der Weg, den ich einschlagen werde. Muss es morgen durcharbeiten und sehen, ob ich irgendwo hängenbleibe.
Jeremy Stretch

@JohnJensen sollte dies nicht erforderlich sein, da sowohl Standort A als auch B die gleichen Präfixe vom Netzbetreiber erhalten und daher Änderungen an den Präfixen ihrer eigenen "Standorte" vornehmen können, wobei der Tie Breaker auf die LP fällt.
David Rothera

1
Als weitere Anmerkung, wenn Sie mehr darüber nachdenken, ist es möglicherweise besser, ein lokal signifikantes Attribut wie weight zu verwenden, als ein transitives wie LP.
David Rothera

1
@DavidRothera Wenn von C aus mehrere Präfixe angesagt werden, ist es möglich, dass nur ein Präfix von C kommt. In diesem Fall bin ich mir nicht sicher, ob die Einstellung von localpref für eine Community einen Unterschied bewirken würde Bei der Lösung des Problems von Jeremy wird die höhere LP bevorzugt, da es ein einziges Präfix mit der Option für zwei Communities und zwei unterschiedliche LP-Werte gibt, und der Datenverkehr wird weiterhin an eine Verbindung gebunden. Es kann hier besser sein, auch zuzustimmen, dass ein lokal signifikantes Attribut verwendet wird.
John Jensen

6

Bildbeschreibung hier eingebenAls ich etwas Ähnliches gemacht habe, habe ich kein eBGP zwischen den Routern verwendet. Ich ließ den BGP-sprechenden Router nur die Standardroute über OSPF an die Router von Standort A und Standort B senden und dann die OSPF-Routen in BGP umverteilen. Auf die Verbindung zwischen den beiden Standorten habe ich OSPF-Kosten angewendet.

Auf diese Weise kann Standort A über Routen zu seinen Netzwerken, zu Standort B und über eine Standardroute zum Verlassen von Standort A verfügen (die OSPF-Kosten behalten die Standardroute von Standort B als sekundäre Option bei, falls Sie die Verknüpfung zu Standort A verlieren). Standort A kommuniziert direkt mit Standort B und verwendet kein MPLS, es sei denn, es liegt ein Verbindungsfehler zwischen den Standorten vor.

Außerdem werden die OSPF-Kosten während der Neuverteilung in BGP MED umgerechnet, wodurch das MPLS-Netz des Betreibers den Verkehr von Standort A lieber direkt an Standort A sendet, aber auch Standort B verwendet, um bei Bedarf zu Standort A zu gelangen.


3

Ich habe das Gefühl, dass einige Informationen fehlen. Warum bevorzugen Edge-Router nicht bereits den besten Pfad?

Haben Sie ein vollmaschiges iBGP in 65000? Oder verwenden Sie Routenreflexion?

Wenn Sie über ein vollmaschiges iBGP verfügen, lernt jeder Edge-Router die Route von beiden [AB] und vergleicht die IGP-Kosten mit denen des nächsten Hops.

Wenn eine Routenreflexion vorhanden ist, wird nur die beste Route aus dem eigenen POV reflektiert, wodurch die Weiterleitung der besten Pfade möglicherweise aufgehoben wird. Dies kann auch behoben werden, indem eine weitere RR hinzugefügt wird, die die andere Route als die beste auswählt. Dann können Edge-Boxen erneut die beste Route auswählen. Wenn das Reparieren von RR nicht möglich ist. Sie könnten in beiden Loopbacks für Grenzrouten dieselbe IPV4-Adresse hinzufügen, und wenn Grenzrouter das Präfix für RR ankündigen, würden sie den nächsten Hop auf diese Anycast-Adresse setzen. Dann folgen Sie IGP auch nach dem Nachdenken bis zur nächsten Grenze.


2

Wenn Sie die Kontrolle über das IGP haben:

Was wir getan haben, ist, nur eBGP-Router im iBGP-Netz zu haben. Der Rest unserer internen Router sind OSPF-Router. Wir verteilen von BGP zu OSPF innerhalb jedes AS um. Unser Setup unterscheidet sich ein wenig von Ihrem, aber dies sollte es OSPF ermöglichen, die Kostenmetrik zu beeinflussen, indem der Pfadverkehr zum nächsten eBGP-Router geleitet wird.

Wenn Sie keine Kontrolle über das IGP haben:

Möglicherweise können Sie eine Importrichtlinie auf die internen Router anwenden, damit diese die Routenankündigungen des gewünschten eBGP-Ausgangsrouters statisch bevorzugen. Wenn iBGP zum Beispiel zwei Ansagen für ein bestimmtes Präfix enthält (eine vom Router für Standort A und eine vom Router für Standort B, aber nur eine ist in der RIB installiert), können Sie die gewünschte Ansage lokal einstellen Ich müsste es aufarbeiten, aber ich verstehe nicht, warum es nicht funktionieren würde.


Ja, das wäre der beste Weg, den ich mir vorstellen kann, vorausgesetzt, Sie haben die Möglichkeit, einen IGP zu verwenden. Leider ist das nicht mein Fall. :( Ich habe die Frage aktualisiert, um dieses vernachlässigte Detail aufzunehmen.
Jeremy Stretch

Ich mag die Antwort von David Rothera, da es die gleiche ist wie meine, aber er fügt das Detail der Verwendung von Communities hinzu :)
netdad
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.