Ausgleich des ausgehenden Datenverkehrs bei Verwendung von openbgpd auf freebsd

8

Ich verwende openbgpd in freeBSD mit 2 ISP-Verbindungen. Ich habe meine eigene AS-Nummer und ein / 22-Netzwerk. Derzeit mache ich Werbung für ganze / 22 in beiden Netzwerken. Eingehender Verkehr kommt herein Aber mein ausgehender Verkehr geht über eine einzige Verbindung.

Ich möchte entweder meinen ausgehenden Verkehr über beide Links verteilen, damit der ausgehende Verkehr auch lastausgeglichen wird.

Wie konfiguriere ich das mit openbgpd in freebsd?

Meine aktuelle openbgpd-Konfiguration ist als Referenz beigefügt.

AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
  remote-as 11remoteas-1
  neighbor bb.bb.bb.1 {
   descr "ISP1"
   announce all  
  }
}
group "ISP2" {
  remote-as 22remoteas-2
  neighbor cc.cc.cc.37 {
   descr "ISP2"
   announce all  
  }
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37
Rajkumar S.
quelle

Antworten:

2

Ich habe openbgpd seit Jahren nicht mehr verwendet, daher gebe ich Ihnen eine Theorie, die Sie auf Ihre Konfiguration anwenden können.

Ein Anbieter kann Ihnen Routen senden. Normalerweise senden sie "Standard", "Kunden" oder "Voll". Eine Standardroute ist genau das. 0.0.0.0/0 wird Ihnen angekündigt und Sie wissen, dass Sie über sie 0.0.0.0/0 (jede IP) erreichen können. In Ihrer Situation klingt es so, als würden beide Anbieter Ihnen eine Standardroute übergeben, und höchstwahrscheinlich erhält derjenige mit dem niedrigeren ASN den gesamten Datenverkehr (ASN ist der Tiebreaker, wenn ein Paket an mehrere Ziele gesendet werden kann und die AS-Pfade gleich sind Länge usw.).

Bei einem Kundenfeed würden sie jede Route ankündigen, die direkt mit ihnen verbunden ist. Wenn Sie einen Anbieter wie Level3 haben, sehen Sie wahrscheinlich die Hälfte des Internets über diesen Feed. Wenn Ihr anderer Anbieter einen niedrigeren Lieferavis hat, erhält er Datenverkehr, der nicht direkt mit dem Peer verbunden war, der Ihnen seine Kundenrouten mitteilt.

Ein "vollständiger" Feed enthält Routenankündigungen für jede Site, zu der ein Anbieter zu gelangen weiß - nicht nur für diejenigen, die direkt verbunden sind.

Sie sollten in der Lage sein, etwas zu tun wie:

show ip bgp summary (IOS-Befehl)

Hier sollte die Anzahl der irgendwo empfangenen Präfixe aufgeführt sein.

Wenn Ihnen beide vorhandenen Anbieter eine Standardroute senden, ist Ihre Verbindung derzeit für das Failover eingerichtet. Anbieter A fällt aus, Sie würden dann zu Anbieter B weiterleiten. Wenn Sie Kundenfeeds von beiden zusammen mit der Standardroute verwenden, würde der Datenverkehr zu dem Anbieter fließen, der den kürzesten AS-Pfad zum Erreichen einer bestimmten Adresse hat, und auf den Standard zurückgreifen Route, wenn die Adresse nicht gefunden werden konnte. Wenn Sie von beiden einen vollständigen Feed erhalten würden, würden Sie abhängig von der Überschneidung zwischen den Anbietern Datenverkehr über den "besten" Pfad an jeden senden.

Auf einem unserer Grenzrouter zeige ich 310540 aktive Routen an, stelle sicher, dass Sie über genügend RAM verfügen, und habe den Computer so konfiguriert, dass er die Routen beider Anbieter verarbeitet, wenn Sie vollständige Routen verwenden. Sie können damit experimentieren, Kundenrouten von beiden zu nehmen, bis Sie sich wohler fühlen. Oder nehmen Sie Kundenrouten vom kleineren Anbieter der beiden und sehen Sie, wie sich die Dinge ändern.

Dies führt immer noch nicht zu einem Lastausgleich oder einer gleichmäßigen Aufteilung des Datenverkehrs, abhängig von Ihrem Datenverkehr. Möglicherweise stellt ein Anbieter immer noch den Löwenanteil des Datenverkehrs fest. Zu diesem Zeitpunkt müssten Sie einige Präfix- / Routenkarten erstellen, um den Datenverkehr so ​​anzupassen, dass der eine oder andere Peer bevorzugt wird.

Sobald Sie Routenkarten oder eine ASN-Übereinstimmung eingerichtet haben, um Ihren Datenverkehr zu verschieben. Wenn der Zielstandort ausfällt und die Route von diesem Anbieter entfernt wird, sendet Ihr Router den Datenverkehr weiterhin über die andere Verbindung. BGP ist etwas selbstheilend.

Was wir getan haben, ist, dass wir einige Karten definiert haben, die basierend auf dem Lieferavis übereinstimmen.

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

Juniper macht dies einfacher als die Verwendung von Communitys. Sie können dies jedoch auch tun.

Unsere Präfixlisten sehen, ob das Ziel ein bestimmter Lieferavis ist, und wenn ja, durchläuft es die _TO-Karte. Wenn der Lieferavis in _THROUGH aufgeführt ist, wird dieser Anbieter bevorzugt. Da einer unserer Anbieter eine direkte Verbindung zu AT & T hat, stimmt PROVIDER_B_THROUGH mit 7018 | 7019 (und einigen anderen Lieferavisen) überein, sodass der AT & T-Verkehr standardmäßig mit Anbieter B verbunden ist. Obwohl AT & T von beiden erreichbar ist, senden wir ihn lieber über Anbieter B. .

Ich bin sicher, openbgpd hat ähnliche Methoden.


quelle
3

BGP ist kein Lastausgleichsprotokoll.

Lassen Sie mich das wiederholen, BGP ist KEIN Lastausgleichsprotokoll.

Wenn ALLER Datenverkehr über eine einzelne Verbindung ausgeht, ist meine erste Vermutung, dass Sie keinen vollständigen Feed von dem Anbieter erhalten, der ignoriert wird. Das Routing ist so, dass spezifischere Routen Vorrang haben. Wenn Sie also eine Route von 192.168.0.0/23 zu Anbieter a und zwei Routen von 192.168.0.0/24 und 192.168.1.0/24 zu Anbieter b, Anbieter haben a wird komplett ignoriert. Ich bin nicht mit OpenBGP vertraut. Daher kann ich Ihnen nicht genau sagen, wie Sie einige Dinge überprüfen können, ohne nachzuschauen. Das erste, was Sie tun müssen, ist zu überprüfen, ob BEIDE Anbieter Ihnen einen vollständigen Feed und nicht nur eine Standardroute geben.

Wenn dies der Fall ist, müssen Sie die Routeneinstellungen für ausgehenden Verkehr und die Pfadauffüllung für eingehenden Verkehr untersuchen. Warten Sie zwischen den Konfigurationsänderungen vierundzwanzig bis achtundvierzig Stunden, um sicherzustellen, dass Sie über einen ausreichend großen Datensatz verfügen, um die Wirksamkeit Ihrer Änderungen zu bestimmen.

Richard June
quelle
1

Eine Brücke bauen. Freebsd wird den Lastausgleich für die Upstream-Funktionen der aktuellen Präfixe tatsächlich durchführen und den Lastausgleich recht gut durchführen. BGP wird nicht. Sie können beide Upstream-ISPs installieren und beide ISPs gemäß Ihrem / 22 ankündigen. Das wird wahrscheinlich Ihre / 30-WAN-Präfixe ablehnen, aber iBGP wird dies übernehmen. iBGP läuft gut auf der Bridge und benötigt dann kein OSPF mehr. Sie haben jetzt einen Loadbalancer und ein vollständig redundantes BGP-Setup. Wir haben mehrere und lieben sie auf Gig-Links zum Internet.


quelle
1

Als erstes muss überprüft werden, ob beide BGP-Sitzungen tatsächlich funktionieren. verwenden

bgpctl show summary

Und sehen Sie, ob Sie Nachrichten mit beiden Peers austauschen.

Und Sie sollten das "Alle ankündigen" entfernen, es sei denn, Sie möchten, dass Ihr Peer den Datenverkehr durch Sie leitet, was im Allgemeinen das Gegenteil ist.

Juste entferne die Ankündigung alles und es sollte dir gut gehen.

Bruno Mairlot
quelle