Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Border Gateway Protocol

Das Border Gateway Protocol (BGP) ist das im Internet eingesetzte Routingprotokoll, welches autonome Systeme (AS) miteinander verbindet.

Inhalt5 Abschnitte
  1. 1. Aufgabe und Einordnung
  2. 2. BGP zwischen und innerhalb von Netzen
  3. 3. Sessions und Nachrichten
  4. 4. Routenattribute und Auswahl des Weges
  5. 5. Grenzen, Sicherheit und Ereignisse

Aufgabe und Einordnung

Das Border Gateway Protocol (BGP) ist das Routingprotokoll des Internets für die Verbindung autonomer Systeme (AS). Ein AS ist in der Regel ein von einem Internetdienstanbieter betriebenes Netz. BGP entscheidet also, über welche Netze Daten zu einem Ziel gelangen. Es ist das derzeit einzige eingesetzte Exterior-Gateway-Protokoll (EGP) für das Routing zwischen AS und ein Pfadvektorprotokoll: Es übermittelt nicht nur ein Zielnetz, sondern auch die Folge der AS auf dem Weg dorthin.

Für Entscheidungen berücksichtigt BGP strategische und technisch-metrische Kriterien; praktisch spielen oft betriebswirtschaftliche Vorgaben der Netzbetreiber eine Rolle. Innerhalb eines AS werden dagegen Interior-Gateway-Protokolle (IGP) wie OSPF eingesetzt.

BGP verwendet TCP über Port 179. BGP Version 4 ist in RFC 4271 beschrieben. Durch Multiprotocol Extensions, zunächst RFC 2283 und aktuell RFC 4760, ist BGPv4 nicht auf IPv4 beschränkt: Es kann auch Routing für weitere Protokolle der Vermittlungsschicht betreiben und beispielsweise MPLS-Labels austauschen. Das war eine Voraussetzung für BGP/MPLS IP VPNs nach RFC 4364.

BGP zwischen und innerhalb von Netzen

External BGP (EBGP) tauscht Routen zwischen unterschiedlichen AS aus. An Internet Exchanges wie dem DE-CIX treffen viele AS zum Peering zusammen. Damit nicht jedes Netz zu jedem anderen eine eigene BGP-Verbindung aufbauen muss, können Route Server verwendet werden. Border-Router liefern ihre Routen an diesen Server und beziehen von ihm die Routen der anderen angeschlossenen Netze.

Internal BGP (IBGP) verteilt insbesondere die von EBGP-Routern gelernten Routen innerhalb des eigenen AS. Die beteiligten Router nutzen dieselbe AS-Nummer, sofern keine Confederation verwendet wird. Normalerweise müsste jeder IBGP-Router mit jedem anderen verbunden sein. Bei n Routern entstehen dadurch (n²−n)/2 BGP-Verbindungen. Dies ist nötig, weil ein IBGP-Router empfangene BGP-Informationen nicht an weitere IBGP-Router weitergibt; dieses Split-Horizon-Prinzip verhindert Routing-Schleifen.

Route Reflectors vermeiden diese vollständige Vermaschung: Jeder Router verbindet sich mit einem oder, zur Redundanz, mehreren Route Reflectors. Der Reflector sammelt Routen und verteilt sie an die übrigen Router. Mit einem Reflector sind insgesamt n Verbindungen nötig, mit n Routern und m Route Reflectors n·m. Ein einzelner Reflector ist ein Single Point of Failure; mehrere können daher als Cluster betrieben werden.

Eine Confederation unterteilt ein großes AS in Sub-AS. Diese verwenden private AS-Nummern aus 64512–65535 bei 16-Bit-AS-Nummern oder 4200000000–4294967294 bei 32-Bit-AS-Nummern. Sie sind frei verfügbar und müssen nicht etwa bei RIPE NCC registriert werden. Zwischen Sub-AS wird EBGP eingesetzt; nach außen wird über einen öffentlichen EBGP-Router nur die externe AS-Nummer präsentiert. Dadurch werden Verwaltung und Verbindungsaufwand großer AS vereinfacht.

IBGP-Verbindungen werden üblicherweise zwischen Loopback-Adressen statt an physischen Schnittstellen eingerichtet. Fällt eine Schnittstelle aus, kann ein IGP wie OSPF einen alternativen internen Weg zur weiterhin erreichbaren Loopback-Adresse finden. So bleibt die IBGP-Session bei vorhandener Redundanz bestehen. Das IGP ist zugleich erforderlich, weil die Loopback-Adressen ohne bestehendes IBGP noch nicht über BGP bekannt gemacht werden können.

Sessions und Nachrichten

BGP-Nachbarn und ihre direkten Verbindungen werden manuell festgelegt. Sie bauen zunächst eine TCP-Verbindung auf; darüber entsteht die BGP-Session. Jede BGP-Nachricht besitzt einen Header mit einem 16 Byte langen Marker, dessen Bits aus Kompatibilitätsgründen auf „1“ gesetzt sind, der Gesamtgröße (Message Length), dem Nachrichtentyp und dem eigentlichen Nachrichteninhalt.

Die wesentlichen Nachrichtentypen sind:

  • OPEN: Wird nur beim Verbindungsaufbau gesendet und enthält BGP-Version, AS-Nummer, Hold Timer, BGP Identifier und optionale Parameter. Sie muss durch KEEPALIVE beantwortet werden.
  • UPDATE: Meldet neue Routen oder zurückgezogene Routen und kann mehrere Pfade zugleich hinzufügen oder entfernen. UPDATE ist das Kernstück von BGP.
  • NOTIFICATION: Beendet eine Verbindung und übermittelt Fehler- oder Statuscodes. Danach müssen alle über diese Verbindung empfangenen Pfade gelöscht und ihr Wegfall per UPDATE verbreitet werden.
  • KEEPALIVE: Bestätigt OPEN und prüft regelmäßig, ob der Partner noch erreichbar ist. Die Nachricht besteht nur aus dem Header. Trifft innerhalb der in OPEN angegebenen Hold Time kein KEEPALIVE ein, wird die Session mit NOTIFICATION beendet.

Zusätzlich nennt das Protokoll ROUTE-REFRESH als Nachrichtentyp 5 nach RFC 2918. Der Status Active bedeutet nur, dass ein Verbindungsaufbau versucht wird; erst bei established besteht eine funktionierende Verbindung und können Routingeinträge ausgetauscht werden.

Routenattribute und Auswahl des Weges

UPDATE-Nachrichten teilen die Existenz einer neuen Route (Announcement) oder den Wegfall einer Route (Withdrawal) mit. Der Empfänger bewertet sie nach seinen Routing-Richtlinien, den Policies. Er kann sein Routing ändern und selbst UPDATEs senden, die Nachricht beispielsweise über IBGP weiterleiten oder sie ignorieren.

Wichtige Attribute einer Route sind der AS Path, also die AS-Nummern auf dem Weg zu einem CIDR-Präfix, die IGP-Metrik für die internen Kosten bis zum Austrittspunkt, und Next Hop, die IP-Adresse des Gateway-Routers zum nächsten AS. Der MED (Multi-Exit Discriminator) priorisiert parallele Verbindungen zum selben Nachbar-AS; der kleinste Wert wird bevorzugt. Communities sind 32-Bit-Routing-Tags zum Markieren und Filtern von Präfixen oder UPDATEs. Extended Communities können etwa als 12345:12345 oder als Dezimalzahl angegeben werden. Local Preference bevorzugt innerhalb eines AS den Pfad mit dem höheren Wert. Weight ist ein lokales, proprietäres Attribut. Origin beschreibt die Quelle eines Präfixes als IGP, EGP oder Incomplete.

Der BGP Path Selection Process bevorzugt der Reihe nach: den größten Weight-Wert, dann die größte Local Preference, dann einen auf diesem Router erzeugten Pfad, danach den kürzesten AS_PATH. Bei gleicher AS_PATH-Länge folgen der niedrigste Origin-Typ (IGP vor EGP vor Incomplete), der niedrigste MED, ein externer vor einem internen Pfad, der nächstgelegene IGP-Nachbar und schließlich die niedrigste IP-Adresse des BGP-Peers bezogen auf die Router-ID.

Beispiel: R1 in AS1 kennt durch IBGP das Zielnetz 10.0.0.0/8 über AS4711, ist aber nicht selbst mit AS4711 verbunden. Das Next-Hop-Attribut nennt den Gateway-Router R2. Das IGP kennt den kürzesten Weg von R1 zu R2 und bestimmt den nächsten internen Router Rx; R2 leitet das Paket dann nach AS4711 weiter.

BGP verhindert Schleifen, indem ein Router eine UPDATE-Nachricht verwirft, wenn das eigene AS bereits im mitgelieferten vollständigen AS Path vorkommt. Ein AS darf sich jedoch mehrfach hintereinander eintragen (AS Path Prepending), um eine Route künstlich unattraktiver zu machen. Routen können zusammengefasst werden (Route Aggregation). Linkgeschwindigkeiten und die Zahl der BGP-Router-Hops sind keine wesentlichen Auswahlkriterien; wichtig ist vor allem die Zahl der AS sowie strategische Aspekte.

Grenzen, Sicherheit und Ereignisse

BGP-Schwächen einer Minimalkonfiguration werden gewöhnlich durch die vom Betreiber festgelegten Policies abgefedert. Ein zentrales Problem ist das Wachstum der Routingtabellen. Für IPv4 stieg die Zahl von 170.000 Routingeinträgen in 26.000 AS Ende 2005 auf 646.157 Einträge in 56.158 AS im Dezember 2016 und 1.074.578 Einträge in 79.320 AS im August 2026. Bei IPv6 waren es 8.500 Einträge in 5.100 AS im April 2012, 34.789 in 12.666 AS im Dezember 2016 und 258.143 in 37.499 AS im August 2026. Die IPv6-Werte sind nicht direkt mit IPv4 vergleichbar, weil noch nicht alle Provider IPv6 nutzen. Route Aggregation kann das Wachstum begrenzt verringern.

Standardmäßig wählt BGP nur eine Route und bringt keine Lastverteilung mit; proprietäre Erweiterungen können Lastverteilung auch über unterschiedlich gewichtete Verbindungen ermöglichen. Route Flaps sind wiederholt annoncierte und zurückgezogene Routen. Route Flap Damping kann sie dämpfen, kann aber unerwünscht lange Verzögerungen bei der Weitergabe von Änderungen verursachen. Update Bursts sind plötzlich auftretende große Mengen von UPDATE-Nachrichten zu oft nicht zusammenhängenden Zielen.

In der Grundkonfiguration ist BGP durch Spoofing gefährdet, das Routen manipulieren kann. Individuelle Passwörter zwischen Peers auf Basis von MD5-Hashes erschweren dies, hängen aber von MD5 ab, das als nicht mehr sicher gilt. Paketfilter können die erlaubten Peers auf zulässige Partner beschränken. Auch mit weiteren vorgeschlagenen Verfahren lassen sich Angriffe zur Umleitung von Verkehrsströmen nicht vollständig verhindern.

Typische Folgen fehlerhafter Konfigurationen zeigen mehrere Ereignisse: Im Februar 2008 verbreitete Pakistan Telecom eine zur YouTube-Blockade gedachte falsche Route versehentlich per EBGP an andere Anbieter; insbesondere in Asien war YouTube dadurch mehrstündig blockiert. Im Januar 2011 wurden während der Revolution in Ägypten in wenigen Minuten etwa 3.500 Routen aller ägyptischen Internetanbieter zurückgezogen, wodurch fast das ganze Land vom Internet getrennt war. Im Februar 2009 verursachten über einen tschechischen Router weitergeleitete zu lange AS-Pfade Störungen. Das für Entwicklung reservierte BGP Path Attribute 255 führte 2010 zu Routerabstürzen; Ende 2018 wurden erneut fehlerhaft implementierte Router gefunden. Am 4. Oktober 2021 waren Facebook, Instagram und Whatsapp weltweit etwa 6 Stunden nicht erreichbar, weil Facebooks selbst gehostete BGP-Router fehlerhaft konfiguriert waren.

Weiterlesen

Internet Mit Social-Media-Plattformen wie Facebook, Twitter oder YouTube trat das bidirektionale Austauschen von Inhalten unter den Nutzern (sogenanntem user … Routing Die Vermittlungstechnik bezeichnet mit dem Begriff Verkehrslenkung (engl.: routing) die Auswahl der Wegeabschnitte beim Aufbau von Nachrichtenverbindungen, die … Simple Network Management Protocol Das Simple Network Management Protocol (SNMP; deutsch „Einfaches Netzwerkverwaltungsprotokoll“) ist ein Netzwerkprotokoll, das von der IETF entwickelt wurde … Netzwerkprotokoll Ein Netzwerkprotokoll (auch Netzprotokoll) ist ein Kommunikationsprotokoll für den Austausch von Daten zwischen Computern bzw. Prozessen, die in einem … Transmission Control Protocol Das Transmission Control Protocol (TCP, englisch für „Übertragungssteuerungsprotokoll“) ist ein Netzwerkprotokoll, das definiert, auf welche Art und Weise … Classless Inter-Domain Routing Classless Inter-Domain Routing (CIDR) beschreibt ein Verfahren zur effizienteren Nutzung des bestehenden 32-Bit-IP-Adress-Raumes für IPv4. IP-Adresse Im Falle von Ethernet-Netzen dient das ARP (Address Resolution Protocol) zum Auffinden der Hardwareadresse. ARP arbeitet auf der zweiten Schicht des OSI … Routing Information Protocol Das Routing Information Protocol (RIP) ist ein Routing-Protokoll auf Basis des Distanzvektoralgorithmus, das innerhalb eines autonomen Systems (z. Distanzvektoralgorithmus Beim Distanzvektoralgorithmus (auch bekannt als Distanzvektor-Routing oder Distance Vector Routing) handelt es sich um ein dynamisches Routing-Protokoll … Internet Protocol Das Internet Protocol (IP; deutsch Internetprotokoll) ist ein in Rechnernetzen weit verbreitetes Netzwerkprotokoll und stellt durch seine Funktion die … Message-Digest Algorithm 5 Message-Digest Algorithm 5 (MD5) ist eine verbreitete kryptographische Hashfunktion, die aus einer beliebigen Nachricht einen 128-Bit-Hashwert berechnet. Paketfilter Ein Paketfilter, auch Netzwerkfilter genannt, ist eine Anwendung oder Software, die den ein- und ausgehenden Datenverkehr in einem Rechnernetz filtert.