BGP-Tutorial: das Routing-Protokoll des Internets

Das Border Gateway Protocol ist ein Routing-Protokoll, das die Grundlage für das Internet bildet. Erfahren Sie im ersten Artikelteil, wie BGP arbeitet und was Sie beachten müssen.

Service-Provider, die mit IP-Netzwerken arbeiten, wissen genau, dass das Border Gateway Protokoll, kurz BGP, das komplexeste und am schwierigsten zu konfigurierende Internetprotokoll ist.

Da sein Schwerpunkt auf Sicherheit und Skalierbarkeit liegt, ist es jedoch von wesentlicher Bedeutung. Dieses Tutorial beschreibt im Detail die Funktionsweise von BGP und bietet einfache sowie erweiterte Optionen für das BGP-Troubleshooting. So können Ihre BGP-fähigen Router Informationen mit mehreren Hunderttausend IP-Präfixen sicher austauschen und die Internetfunktionalität sicherstellen.

Wenn Sie jemandem, der in der Service-Provider-Landschaft neu ist, erklären müssen, um was es sich bei BGP handelt, lautet die beste Definition: BGP ist das Routing-Protokoll, auf dem das Internet basiert. Da die Adresszuordnung im Internet nicht annähernd so hierarchisch aufgebaut ist wie der Telefonnummernplan, müssen die meisten Router in den Core-Netzwerken der Service-Provider Informationen über Hunderttausende von IP-Präfixen austauschen. BGP kann immer noch diese Aufgabe erfüllen – der Beweis dafür, dass es ein hochskalierbares Routing-Protokoll ist.

BGP-Routing-Informationen werden in der Regel zwischen konkurrierenden Unternehmen in Form von Internet-Service-Providern (ISP) in einer offenen, feindlichen Umgebung – dem öffentlichen Internet – ausgetauscht. BGB ist äußerst sicherheitsorientiert – zum Beispiel müssen alle benachbarten Router manuell konfiguriert werden –, und korrekte BGP-Implementierungen stellen vielfältige Routing-Filter bereit, um es ISPs zu ermöglichen, ihre Netzwerke zu verteidigen, und das, was sie ihren Wettbewerbern bekannt geben, zu kontrollieren.

So funktioniert BGP

In der BGP-Terminologie wird eine unabhängige Routing-Domäne, unter der man fast immer ein ISP-Netzwerk versteht, als autonomes System bezeichnet.

BGP wird stets als Routing-Protokoll der Wahl zwischen ISPs (als externes BGP bezeichnet) genutzt, aber ebenso als Core-Routing-Protokoll innerhalb von großen ISP-Netzwerken (als internes BGP bezeichnet).

Alle übrigen Routing-Protokolle dienen nur dazu, den optimalen Pfad zu allen bekannten Zielen zu ermitteln. BGP kann diesen vereinfachenden Ansatz nicht wählen, weil die Peering-Vereinbarungen zwischen ISPs so gut wie immer zu komplexen Routing-Richtlinien führen. Um Netzwerkbetreiber bei der Implementierung dieser Richtlinien zu unterstützen, führt BGP für jedes IP-Präfix eine große Zahl von Attributen, zum Beispiel:

  • AS-Pfad (Autonomous System, autonomes System) – der vollständige Pfad, der angibt, über welche autonomen Systeme ein Paket laufen müsste, um das Ziel zu erreichen.
  • Local Preference – der interne Aufwand für ein Ziel, der genutzt wird, um eine AS-weite Konsistenz zu gewährleisten.
  • Multi-Exit Discriminator – dieses Attribut bietet benachbarten ISPs die Möglichkeit, einen Peering-Punkt gegenüber einem anderen zu bevorzugen.
  • Communities – verschiedene generische Tags, mit denen sich mehrere administrative Richtlinien zwischen BGP-Routern signalisieren lassen.

Da der Fokus von BGP-Design und -Implementierung immer auf Sicherheit und Skalierbarkeit gelegen hat, ist das Protokoll schwieriger zu konfigurieren als andere Routing-Protokolle, komplexer – umso mehr, wenn man unterschiedliche Routing-Richtlinien konfiguriert – und eines der am langsamsten konvergierenden Routing-Protokolle.

Die langsame BGP-Konvergenz macht es erforderlich, dass das Design eines ISP-Netzwerks auf zwei Protokollen basiert:

  • Ein internes Routing-Protokoll – am häufigsten Open Shortest Path First (OSPF) oder Intermediate System to Intermediate System (IS-IS) – wird genutzt, um eine schnelle Konvergenz für interne Routen zu erreichen, einschließlich IP-Adressen von BGP-Routern.
  • BGP wird verwendet, um Internetrouten auszutauschen.

Ein Fehler innerhalb des Core-Netzwerks lässt sich dank der schnellen Konvergenz von OSPF oder IS-IS entsprechend rasch umgehen, wohingegen BGP, aufgesetzt auf ein internes Routing-Protokoll, die Anforderungen hinsichtlich Skalierbarkeit, Sicherheit und Richtlinien erfüllt. Darüber hinaus beeinträchtigen etwaige Kundenprobleme – etwa Link Flaps zwischen Ihrem Router und dem des Kunden – nicht die Stabilität Ihres Core-Netzwerks, wenn Sie alle Ihre Kunden-Router auf BGP migrieren.

Aufgrund der inhärenten Komplexität von BGP stellen Kunden und kleine ISPs BGP nur dort bereit, wo sich dies als notwendig erweist – beispielsweise an Peering-Punkten und bei einigen wenigen Core Routern (die Router zwischen den Peering-Punkten), wie in Abbildung 1 dargestellt.

Abbildung 1: Minimales BGP-Deployment
Abbildung 1: Minimales BGP-Deployment

Die BGP-fähigen Router müssen ebenfalls eine Standardroute im internen Routing-Protokoll erzeugen, um den Traffic für Internetziele anzuziehen, die anderen Routern in Ihrem Netzwerk nicht bekannt sind.

Wenn Ihr ISP-Geschäft jedoch wächst, werden Ihre Kunden zunehmend BGP-Konnektivität nachfragen – jeder Kunde, der einen garantiert redundanten Internetzugang erreichen will, muss über ein eigenes autonomes System verfügen und BGP-Informationen mit seinen ISPs austauschen. Infolgedessen sind Sie gezwungen, BGP auf immer mehr Core und Edge Routern bereitzustellen (siehe Abbildung 2).

Es ist deshalb am besten, wenn Sie BGP auf allen Core Routern und wichtigen Edge Routern als Teil Ihres anfänglichen Netzwerkdesigns berücksichtigen. Selbst falls Sie es nicht überall mit dem ersten Netzwerk-Deployment bereitstellen, hilft ein guter Entwurf definitiv, wenn Sie den BGP-fähigen Teil Ihres Netzwerks skalieren müssen.

Abbildung 2: BGP als Teil des Netzwerkdesigns
Abbildung 2: BGP als Teil des Netzwerkdesigns

BGP erfordert eine vollständige Vermaschung von internen BGP-Sitzungen – Sitzungen zwischen Routern im gleichen autonomen System. Sie könnten BGP Route Reflectors oder BGP Confederations nutzen, um Ihr Netzwerk skalierbar zu gestalten.

Ein weiterer triftiger Grund, warum Sie BGP in Ihrem gesamten Netzwerk bereitstellen sollten: MPLS-basierte virtuelle private Netzwerke (VPN), umfangreiche QoS-Deployments (Quality of Service) oder umfangreiche differenzierte Web-Caching-Implementierungen beruhen auf BGP, um die benötigten Informationen zu transportieren.

Im zweiten Artikelteil kümmern wir uns um das BGP-Troubleshooting.

Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Netzwerk-Routing: Die Unterschiede zwischen MPLS und VPLS

Können Link-State-Protokolle BGP ersetzen?

Per RPKI (Resource Public Key Infrastructure) BGP sicherer machen

Erfahren Sie mehr über IoT, IIoT und Industrie 4.0