BGP (Border Gateway Protocol) is a path-vector routing protocol that exchanges reachability information between autonomous systems on the internet using TCP port 179, allowing networks such as ISPs, cloud providers, and enterprises to announce address prefixes and select routes based on policy attributes rather than shortest-path metrics. The protocol operates through TCP sessions between configured peers that exchange OPEN and UPDATE messages to advertise or withdraw prefixes, with each router applying import and export policies to determine the best path for each prefix. BGP's reliance on policy and peer trust means misconfigurations can quickly propagate route leaks or hijacks that misdirect traffic, making proper prefix filtering, monitoring of session state and prefix counts, and route origin validation essential for preventing outages and ensuring consistent routing behavior across networks.
So funktioniert BGP
BGP-Router bauen Verbindungen zu konfigurierten Nachbarn auf, tauschen die Präfixe aus, die sie erreichen können, und jeder Router wählt für jedes Präfix den besten Pfad auf der Grundlage von Attributen und lokalen Richtlinien aus.
- Aufbau einer TCP-Sitzung: Zwei konfigurierte Peers öffnen eine TCP-Verbindung auf Port 179. Sie können sich in unterschiedlichen autonomen Systemen (externes BGP) oder im selben autonomen System (internes BGP) befinden.
- Austausch von OPEN-Nachrichten: Jeder Peer sendet seine Autonome-System-Nummer, seine Haltezeit und seine Fähigkeiten. Die Peers bestätigen, dass die Parameter kompatibel sind, und die Sitzung wird nach dem Austausch von KEEPALIVE-Nachrichten hergestellt.
- Routen ankündigen: Peers senden UPDATE-Nachrichten, um Präfixe mit Pfadattributen wie AS-Pfad und nächstem Hop anzukündigen oder Präfixe zurückzuziehen, die nicht mehr erreichbar sind.
- Auswahl des besten Pfades: Jeder Router wendet die Import-Richtlinie an und führt anschließend seinen Entscheidungsprozess über die in Frage kommenden Pfade durch. Attribute wie lokale Präferenz, AS-Pfadlänge und Ursprung werden der Reihe nach verglichen.
- Installieren und erneut ankündigen: Der gewählte Pfad wird in die Routing-Tabelle aufgenommen und kann gemäß der Export-Richtlinie an andere Peers angekündigt werden. Regelmäßige KEEPALIVE-Nachrichten halten die Sitzung aufrecht.
BGP sendet nach dem anfänglichen Austausch inkrementelle Aktualisierungen, anstatt die vollständige Tabelle regelmäßig erneut zu senden. Wenn eine Sitzung fehlschlägt oder der Hold-Timer abläuft, zieht der Router die von diesem Peer erlernten Routen zurück.
Häufige BGP-Probleme
Ein Nachbar, der zwischen den Zuständen „Active“ und „Idle“ wechselt, deutet in der Regel auf eine fehlgeschlagene TCP-Verbindung auf Port 179 hin. Häufige Ursachen sind eine Firewall oder eine ACL, die den Port blockiert, eine falsche Nachbaradresse oder eine Nichtübereinstimmung der Quellschnittstelle auf dem Peer.
Ohne eingehende und ausgehende Präfixfilter kann ein Multihomed-Netzwerk die Routen eines Anbieters an einen anderen weitervermitteln und Transitverkehr anziehen, den es nicht transportieren kann. Die Folge sind überlastete Verbindungen und plötzliche Latenzänderungen nach einer Richtlinienänderung.
Sitzungen, die mit einer Benachrichtigung über den Ablauf des Hold-Timers abgebrochen werden, deuten häufig auf Paketverlust, CPU-Engpässe oder ein MTU-Problem hin, das große UPDATE-Nachrichten blockiert. Bei jedem Flap werden Präfixe zurückgezogen und erneut angekündigt, was bei nachgelagerten Peers zu Churn führt.
Eine Route kann in der BGP-Tabelle erscheinen, wird jedoch niemals zum besten Pfad, wenn ihr nächster Hop nicht aufgelöst werden kann. Dies tritt häufig bei internem BGP auf, wenn der nächste Hop eine externe Peer-Adresse ist, die nicht im internen Routing-Protokoll übertragen wird.
Der Datenverkehr kann einen längeren oder teureren Pfad nehmen, da Attribute wie die lokale Präferenz vor der AS-Pfadlänge ausgewertet werden. Techniker gehen oft davon aus, dass der kürzeste AS-Pfad den Vorrang hat, und interpretieren die Entscheidungsreihenfolge falsch.