Konfigurieren von BGP mit Quagga unter Vultr (CentOS 7)

Die Bring Your IP Space- Funktionalität von Vultr bietet beispiellose Freiheit bei der Zuweisung eigener IP-Ressourcen zu Servern in der Vultr-Cloud. Wir empfehlen generell die Verwendung von BIRD , um Ihren IP-Speicherplatz anzukündigen. Es gibt einige solide Alternativen zu BIRD, falls Sie mit BIRD nichts erreichen können (obwohl dies sehr selten ist) oder einfach andere Software verwenden möchten.

Aufgrund des administrativen und technischen Aufwands raten wir dringend davon ab, BIRD und Quagga (oder andere Software) in derselben Infrastruktur und / oder demselben Netzwerk zu verwenden. Beachten Sie, dass die folgende Konfiguration Ihnen einen SPOF geben würde, da die Instanz, die Ihr überlappendes Subnetz ankündigt, nicht redundant ist. Sie sollten jedoch beachten, dass Vultr in jedem Rack mehrere BGP-Router hat.

Obwohl dieses Handbuch für CentOS 7 geschrieben und nur mit dieser CentOS-Version getestet wurde, funktioniert es höchstwahrscheinlich auch mit älteren Versionen wie CentOS 6. Wir raten jedoch dringend von der Verwendung veralteter Software ab und empfehlen dringend, auf eine neuere, neuere (und unterstützte) Version wie CentOS 7 zu aktualisieren.

Es gibt keine praktische Begrenzung für die Anzahl der Subnetze oder deren Größe, die Sie von einer Instanz aus ankündigen können, auf der Quagga (oder ein beliebiger BGP-Router) ausgeführt wird, obwohl Sie in jeder Netzwerktopologie eine gewisse Risikostreuung haben sollten. Das bedeutet, dass Sie entweder ein redundantes Setup erstellen oder verschiedene Subnetze von verschiedenen Servern ankündigen sollten, indem Sie die folgende Anleitung auf mehreren Servern befolgen.

Um dieser Anleitung zu folgen, benötigen Sie:

  • Der Lieferavis, den Sie verwenden möchten / müssen;
  • Der IP-Bereich (Subnetz), den Sie ankündigen möchten.
  • BGP in Ihrem Vultr-Konto aktiviert

VOGEL oder Quagga?

Für den Anfang kann es sehr schwierig sein, zwischen BIRD oder Quagga zu wählen. Beide sind bekannt und haben sich für viele Anwendungsfälle als sehr stabil und robust erwiesen, einschließlich stark frequentierter Umgebungen und Infrastrukturen, in denen Zuverlässigkeit eine Schlüsselrolle spielt. Der Hauptunterschied zwischen BIRD und Quagga besteht darin, dass die Konfiguration von BIRD vom Daemon getrennt und erkennbar ist und eher auf eine codeähnliche Struktur abzielt.

Wenn Sie beispielsweise mit BIRD ein Failover-Setup durchführen möchten, verwenden Sie den folgenden Block in der bird.confKonfigurationsdatei:

export filter {
    bgp_path.prepend(asnumber);
    accept;
};

Wie Sie sehen können, sieht die Konfiguration wie ein Codeblock aus, wie es bei einer Programmiersprache der Fall wäre. Mit Quagga können Sie Einstellungen mithilfe eines Programms im Daemon selbst anhängen oder ändern.

Am Ende kommt es hauptsächlich auf die persönlichen Vorlieben an und es gibt keinen "Gewinner" oder keine Software, die Sie verwenden sollten. Im Allgemeinen ist BIRD aufgrund seiner leicht zu erlernenden Konfigurationsweise einfacher einzurichten und wird von der Community weitgehend unterstützt.

Darüber hinaus ist Quagga im Allgemeinen in einer laufenden Produktionsumgebung zugunsten von Quagga einfacher zu konfigurieren. Mit BIRD müssen Sie die entsprechenden Konfigurationsdateien bearbeiten und den Dämon seine Einstellungen neu laden lassen. Mit Quagga können Sie die Shell aufrufen und die Einstellungen ohne zusätzlichen Aufwand neu konfigurieren. Die Kontinuität spielt hier eine große Rolle, aber in der Praxis ist der Overhead minimal. In den meisten Infrastrukturen müssen Sie diese Einstellungen nicht zu stark neu konfigurieren. Daher ist es wahrscheinlich eine gute Idee, nach anderen Aspekten der Software zu urteilen, anstatt nur nach diesen Details.

Genau wie BIRD ist Quagga über mehrere Distributionen hinweg kompatibel. Sollten Sie jemals die für die Router verwendeten Distributionen ändern wollen, könnten Sie theoretisch einfach über Ihre Konfigurationen gehen und nichts müsste geändert werden oder wird sich ändern.

In diesem Handbuch beschreiben wir den Prozess der Installation und Konfiguration von Quagga. Wenn Sie auch BIRD ausprobieren möchten, befolgen Sie die Anweisungen unter " Konfigurieren von BGP auf Vultr ".

Wie bereits erwähnt, gibt es einige gute andere Alternativen, aber der größte Teil davon weist einige Mängel auf, die verhindern, dass sie in einer Produktionsumgebung verwendet werden. Beispielsweise ist die BGP-Implementierung von XORP relativ veraltet, was im Allgemeinen kein guter Anfang für den Aufbau einer brandneuen Infrastruktur ist (obwohl die BGP-Implementierung stabil ist).

Im Vergleich zu vielen Alternativen hat BIRD einen geringen Speicherbedarf und ist nicht sehr ressourcenintensiv. Das Hochfahren oder Aktualisieren auf eine leistungsstärkere Vultr-Cloud-Instanz erfordert jedoch nur wenige Klicks über das Vultr-Kontrollfeld.

IPv4 und IPv6

Vultr unterstützt die Ankündigung von IPv4- und IPv6-IP-Speicherplatz. Die BGP-Implementierung von Quagga ist relativ aktuell und ermöglicht die Ankündigung von IPv6-Speicherplatz.

Obwohl dieses Handbuch auf die Ankündigung von IPv4-Speicherplatz abzielt, können Sie die IPv6-Implementierung von Quagga verwenden und die Anweisungen dieses Artikels verwenden. Dies ist jedoch nicht explizit dokumentiert. Bitte beziehen Sie sich hierzu auf eine alternative Quelle.

Wichtige Notiz

Um ohne einen BGP-Router für den Datenverkehr überleben zu können, können Sie Ihren IP-Speicher am besten wie folgt ankündigen:

  • Kündigen Sie Ihre / 24 (oder größer) von einer dedizierten Quagga-Instanz an.
  • Kündigen Sie an, dass einzelne / 32er (oder größere) aus dem Instanzverkehr an sich selbst weitergeleitet werden

Auf diese Weise hätten Sie eine Instanz eingerichtet, um das überlappende Subnetz für alle IPs anzukündigen, die Sie in einzelne / 32er oder größer aufteilen. Mit diesem Design können Sie schnell IPs ankündigen und den Datenverkehr an die richtigen Instanzen weiterleiten.

Natürlich können Sie mit verschiedenen Ansätzen experimentieren, um Ihren IP-Speicherplatz nach Ihren Wünschen anzukündigen. Theoretisch ist die Verwendung unbegrenzt und kennt keine Grenzen. Beachten Sie, dass die Server von Vultr selbst verwaltet werden und wir Sie bei eventuell auftretenden Problemen nicht unterstützen können. Abgesehen davon kann es nicht schaden, eine von Vultr und der Community unterstützte Lösung zu verwenden. Wenn also Probleme auftreten, können Sie die Grundursache schnell ermitteln.

Schritt 1: SELinux deaktivieren

Wir empfehlen dringend, SELinux zu deaktivieren, um zu verhindern, dass Quagga nicht mehr funktioniert. Wir haben eine Anleitung zum Deaktivieren von SELinux. Befolgen Sie diese und kehren Sie zu diesem Tutorial zurück, nachdem SELinux deaktiviert wurde: Deaktivieren von SELinux unter CentOS 7 .

Schritt 2: Quagga installieren

Wir können fortfahren, indem wir Quagga installieren mit yum:

yum install quagga

Wenn Sie eine Fehlermeldung erhalten, insbesondere bei einer neu bereitgestellten Instanz, versuchen Sie Folgendes:

yum update

Konfigurieren Sie systemdso, dass Zebra (der Kerndämon) beim Booten automatisch gestartet wird:

systemctl enable zebra

Starten Sie schließlich Zebra:

systemctl start zebra

Wir müssen den Vorgang für BGPd wie folgt wiederholen:

systemctl start bgpd
systemctl enable bgpd

Zebra und BGPd

Quagga besteht aus einer Vielzahl von Dämonen, die das Routing ermöglichen. Da wir BGP verwenden werden, müssen wir die Zebra- und BGPd-Deamons verwenden. Zebra und BGPd arbeiten zusammen. Wenn eine der beiden Routen nicht mehr funktioniert, werden Ihre Routen nicht mehr angekündigt, sodass Ihr gesamter IP-Speicherplatz nicht mehr verfügbar ist.

Quagga unterstützt mehrere Routing-Protokolle, unter anderem OSPF und BGP. Der Kern der Topologie ihrer Implementierungen ist Zebra. Zebra ist der Kerndämon, eine Schicht, die sich um die Kommunikation des UNIX-Kernels (TCP) mit Quagga-Clients kümmert. Im Backend präsentiert Zebra die Zserv-API, mit der diese Routing-Protokolle Routing-Updates kommunizieren können. Eine der Implementierungen mit der Zserv-API ist BGP.

Die von Quagga für BGP verwendete Standardversion ist BGPv4 +, die die Unterstützung von Adressfamilien für Multicast und IPv6 umfasst.

Schritt 3: Konfigurieren des BGP-Routers

Um den BGP-Router nach Ihren Wünschen zu konfigurieren, verwenden wir die vtyshShell. Kopieren Sie zunächst die Beispiel-BGP-Konfigurationsdatei:

cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf

Geben Sie nach dem Kopieren der Datei die Shell ein:

vtysh

In einigen älteren Quagga-Versionen finden Sie möglicherweise ein Setup mit AS7675. Wir brauchen dies nicht, da es nur zu Konflikten mit unserem Setup kommt. Daher müssen wir es löschen, wenn es existiert. Überprüfen Sie, ob diese Konfiguration in Ihrer Quagga-Installation vorhanden ist, indem Sie den folgenden Befehl in der Shell ausführen :

show running-config

Wenn dies eine Zeichenfolge mit oder einschließlich "router bgp 7675" zurückgibt, löschen Sie diese durch Ausführen von:

configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization

Sie sollten jetzt die BGP-Informationen eingeben, die Vultr Ihnen zur Verfügung gestellt hat.

neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"

Höchstwahrscheinlich benötigen Sie ein Kennwort, um die BGP-Sitzung einzurichten. Geben Sie es ein:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

Wenn Sie sicher sind, dass Sie diese Änderungen schreiben möchten (gilt nur, wenn Sie an einem Produktionssetup arbeiten), führen Sie Folgendes aus, damit die Änderungen wirksam werden:

write

Stellen Sie sicher, dass die Änderungen erfolgreich waren, indem Sie Folgendes ausführen:

show ip bgp summary

Wir hätten jetzt erfolgreich eine BGP-Sitzung einrichten sollen.

Schritt 4: Ankündigung Ihres IP-Speicherplatzes

Obwohl wir eine BGP-Sitzung eingerichtet haben, geben wir noch keine Routen oder IP-Adressen bekannt, sodass dies in der Praxis keine Auswirkungen hat. Glücklicherweise ist das Einstellen des IP-Speicherplatzes für die Ankündigung relativ einfach.

In vtysh, die folgenden Befehle aus, dies zu erreichen:

configure terminal
router bgp YOURAS

Sie befinden sich jetzt in der Konfiguration. Stellen Sie sicher, dass Sie den IP-Speicherplatz zur Hand haben, den Sie ankündigen möchten, und geben Sie ihn ein:

network YOURSUBNET/CIDR

Eine gültige Eingabe wäre beispielsweise:

network 185.92.220.0/23

Dies funktioniert natürlich nicht in Ihrem spezifischen Setup, da der oben genannte IP-Speicherplatz Vultr gehört. Ersetzen Sie dies und alles sollte gut funktionieren.

Beenden und speichern Sie die Änderungen:

exit
write

Überprüfen Sie, ob Ihre Präfixe erfolgreich angekündigt wurden:

show ip bgp neighbors NEIGHBORIP advertised-routes

Versuchen Sie, eine IP-Adresse aus dem Subnetz zu pingen, und versuchen Sie, eine Traceroute von außerhalb des Netzwerks durchzuführen.

Fehlerbehebung

Die Fehlerbehebung bei Quagga liegt weitgehend außerhalb des Geltungsbereichs dieses Artikels. Wenn Sie jedoch auf Schwierigkeiten stoßen, können Sie jederzeit versuchen, Ihre Quagga-Instanz zu stoppen und erneut zu versuchen, den IP-Bereich über BIRD anzukündigen, um eine Reihe möglicher Ursachen auszuschließen.

Wenn BGP sowohl auf Quagga als auch auf BIRD nicht richtig funktioniert, besteht die Möglichkeit, dass Ihre Firewall nicht richtig konfiguriert wurde. Port 179 sollte offen sein. Versuchen Sie unter CentOS 7, die Firewall vorübergehend zu deaktivieren:

systemctl stop firewalld

Wenn Sie iptables verwenden, versuchen Sie:

service iptables stop

Versuchen Sie dann erneut, die BGP-Sitzung zu starten. Wenn es auf "Leerlauf", "Verbinden" oder "Aktiv" hängt, besteht die Möglichkeit, dass der Port weiterhin blockiert ist. Im Status "Etabliert" wurde die BGP-Sitzung erfolgreich eingerichtet und angekündigte Routen werden angezeigt.

Quagga wurde jetzt auf Ihrem Server installiert und sollte funktionieren. In den ersten Tagen nach der Ankündigung Ihres eigenen IP-Bereichs sollten Sie dessen Funktionalität überwachen, um zu verhindern, dass Ihre gesamte Infrastruktur nicht funktioniert.

Damit ist unser Quagga-Tutorial abgeschlossen. Vielen Dank für das Lesen. Um mehr über die Bring Your IP Space-Funktion von Vultr zu erfahren, besuchen Sie bitte die BGP-Seite .

Einen Kommentar hinterlassen

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.