Border Gateway Protocol

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
BGP im TCP/IP-Protokollstapel:
Anwendung BGP
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

Das Border Gateway Protocol (BGP) ist das im Internet eingesetzte Routingprotokoll, welches autonome Systeme (AS) miteinander verbindet. Diese autonomen Systeme werden in der Regel von Internetdienstanbietern gebildet. BGP wird allgemein als Exterior-Gateway-Protokoll (EGP) und Pfadvektorprotokoll bezeichnet und verwendet für Routing-Entscheidungen sowohl strategische als auch technisch-metrische Kriterien, wobei in der Praxis meist betriebswirtschaftliche Aspekte berücksichtigt werden. Innerhalb autonomer Systeme werden Interior Gateway Protokolle (IGP) wie z. B. OSPF eingesetzt.

Protokollbeschreibung

[Bearbeiten | Quelltext bearbeiten]

BGP ist in RFC 1163 beschrieben.[1] In der derzeit eingesetzten Version 4 ist es im RFC 4271 beschrieben.[2] Die BGP-Router verwenden den TCP-Port 179.

1991 wurde im RFC 1269[3] die Border Gateway Protocol (Version 3) MIB veröffentlicht. Diese MIB ermöglicht das Management von Geräten mittels SNMP, die das BGP-Protokoll als Autonomous System Routing Protocol unterstützen.

Im Februar 1998 wurde das BGPv4 in RFC 2283[4] mit sogenannten Multiprotocol Extensions versehen. Die aktuelle Version findet sich in RFC 4760.[5] Damit ist BGPv4 nicht mehr rein IPv4-spezifisch, sondern unterstützt ebenso das Routing mit weiteren Protokollen der Vermittlungsschicht. U. a. ist so auch der Austausch von MPLS-Labels möglich, dies war Voraussetzung für den Einsatz von BGP/MPLS IP VPNs (RFC 4364).[6]

Anwendungsbereich

[Bearbeiten | Quelltext bearbeiten]

BGP, das derzeit einzige eingesetzte Exterior-Gateway-Protokoll, ist ein Protokoll für das Routing zwischen autonomen Systemen (AS). Man spricht bei dieser Verwendung von External BGP (EBGP).

An Internet Exchanges, zum Beispiel dem deutschen DE-CIX, treffen viele autonome Systeme zum Zwecke des Peerings zusammen. Um die Notwendigkeit sehr vieler BGP-Verbindungen bis hin zur Vollvermaschung zu vermeiden, werden dort in der Regel sogenannte Route Server angeboten. Die Border-Router, die zu den angeschlossenen Netzen vermitteln, senden ihre Routen an den Routing-Server, also den Route Reflector, von dem alle anderen Router diese Routen wieder beziehen können. Dadurch kann ein Netzwerk auf einfache Art und Weise mit fast allen angeschlossenen Netzen zusammengeschlossen werden.

BGP kann auch innerhalb eines autonomen Systems angewendet werden. Typischerweise geschieht dies, um die von EBGP-Routern gelernten Routen innerhalb des eigenen autonomen Systems zu propagieren. Zwar wäre es auch mit Hilfe eines IGP möglich die BGP-Attribute (siehe unten) zu übermitteln, jedoch sind diese nicht dafür ausgelegt. Diese Verwendung wird als Internal BGP (IBGP) bezeichnet. Alle IBGP-Router, die zusammen Routen austauschen, verwenden dieselbe AS-Nummer des eigenen AS, wenn keine BGP-Confederations (siehe unten) verwendet werden.

Vollständige Vermaschung

[Bearbeiten | Quelltext bearbeiten]

Beim Einsatz innerhalb eines autonomen Systems müssen BGP-Verbindungen zwischen allen Routern des AS eingerichtet werden, so dass eine vollständige Vermaschung entsteht. Enthält ein autonomes System n Router, so resultiert dies also in BGP-Verbindungen. Aufgrund der hierdurch entstehenden Skalierungsprobleme wird bei größeren Netzwerken ein sogenannter Route Reflector (RR) eingesetzt. Durch diesen entfällt die Notwendigkeit einer Vollvermaschung der IBGP-Router; stattdessen bauen diese eine BGP-Verbindung zu einem oder aus Redundanzgründen zu mehreren Route-Reflektoren auf.

Der Grund der Notwendigkeit einer vollständigen Vermaschung liegt darin, dass IBGP innerhalb eines autonomen Systems empfangene BGP-Informationen von benachbarten BGP-Routern selber nicht an andere IBGP-Router weitergibt („Split-Horizon-Prinzip“). Dies dient der Vermeidung von Routing-Schleifen.

Route Reflector

[Bearbeiten | Quelltext bearbeiten]

Um das Problem der bei einer vollständigen Vermaschung auftretenden Vielzahl an BGP-Sessions zu lösen, können in einem AS ein oder aus Redundanzgründen mehrere BGP-Router als Route Reflector konfiguriert werden. So schickt jeder EBGP-Router seine via EBGP gelernten Routen via IBGP nur noch an einen bestimmten BGP-Peer, den Route Reflector, der sie sammelt und wiederum via IBGP an die anderen BGP-Router im AS verteilt. Da nun jeder BGP-Router nur eine einzige BGP-Verbindung zu seinem Route Reflector zu halten braucht, fallen insgesamt nur noch n Verbindungen an.

Ein einzelner Route Reflector stellt einen Single Point of Failure dar. Zur Ausfallsicherheit können daher mehrere dieser Router als Cluster zusammengeschaltet werden. Zu jedem der Cluster-Router muss von den IBGP-Routern jeweils eine Verbindung hergestellt werden. Bei n Routern und m Route-Reflektoren ergeben sich n·m Verbindungen.

Route-Reflektoren können Router sein, die dediziert für diese Aufgabe im Netz bereitgestellt werden oder als gewöhnlicher Router im Datenpfad liegen und Route-Reflector-Funktionalität wahrnehmen[7].

Durch Confederation kann ein autonomes System (AS) wiederum in autonome Systeme (Sub-AS) unterteilt werden. Diese Sub-AS erhalten unterschiedliche private AS-Nummern (ASN), für die der Bereich 64512–65535 (16-Bit-AS-Nummernbereich) bzw. 4200000000–4294967294 (32-Bit-AS-Nummernbereich)[8] reserviert und frei verfügbar ist. Es bedarf für die Nutzung dieser AS-Nummern keiner Registrierung z. B. bei der RIPE NCC. Die AS-Nummern aus diesen privaten Bereich werden von EBGP-Routern mit öffentlichen AS-Nummern nicht an andere EBGP-Router weitergeleitet. Innerhalb des AS werden somit unterschiedliche AS-Nummern verwendet, über einen öffentlichen EBGP-Router wird aber nur die externe AS-Nummer präsentiert. Zwischen den Sub-AS kommt EBGP für den Routenaustausch zum Einsatz. Zum einen kann durch den Einsatz von Confederation die Verwaltung großer AS vereinfacht und zum anderen die Verbindungskomplexität durch die Vollvermaschung aller IBGP-Router verringert werden.[9]

EBGP, IBGP, Confederation und Route Reflector

In der Grafik stellen AS100 und AS200 öffentliche autonome Systeme (AS) dar, die Routen über EBGP austauschen. AS100 teilt sich durch Confederation in zwei private autonome System AS65050 und AS65100 auf. Die beiden privaten AS tauschen untereinander auch ihre Routen über EBGP aus. Innerhalb beider privater AS ist jeweils ein BGP-Router als Route Reflector (RR) konfiguriert. Alle anderen BGP-Router innerhalb eines privaten AS tauschen mit dem Route Reflector über IBGP ihre Routen untereinander aus.

Loopbackadressen

[Bearbeiten | Quelltext bearbeiten]

Im Gegensatz zu EBGP-Verbindungen, die in der Regel auf physischen Routerschnittstellen terminieren, werden IBGP-Verbindungen zwischen Router-Loopback-Adressen definiert. Hierdurch soll vermieden werden, dass bei Deaktivierung/Ausfall einer physischen Router-Schnittstelle die IBGP-Verbindung abbricht, obwohl der Router diese bei entsprechender Redundanzbereitstellung innerhalb des autonomen Systems über eine alternative Schnittstelle umschwenken könnte. Da aber ohne eine bereits bestehende IBGP-Verbindung die Loopback-Adressen als Route noch nicht propagiert werden können, ist ein darunterliegendes Interior Gateway Protocol (IGP) wie z. B. OSPF erforderlich. Dies bedeutet, dass auf jedem IBGP-Router auch ein IGP-Router-Prozess konfiguriert wird. Da jeder IBGP-Router mindestens zwei physische Netzwerkkarten besitzt, wird das IGP mehrere mögliche Pfade zwischen den Loopback-Adressen kennen. Fällt nun eine physische Netzwerkschnittstelle eines IBGP-Routers aus, dann wird über IGP ein alternativer Pfad propagiert. Solange mindestens eine physische Schnittstelle erreichbar ist, ist auch die auf dem Router konfigurierte Loopback-Adresse erreichbar und die IBGP-Verbindung kann innerhalb des AS unterbrechungsfrei umgeroutet werden.

Ohne Loopback-Adressen wären die IBGP-Router untereinander an physischen Schnittstellen gebunden. Bei einem Ausfall einer solchen Schnittstelle wäre die Verbindung unterbrochen und eine konsistente Verteilung von Routen innerhalb eines autonomen Systems selbst dann nicht mehr sichergestellt, wenn die interne Netzwerkinfrastruktur redundant realisiert ist.

Protokollübersicht

[Bearbeiten | Quelltext bearbeiten]

Die direkten Verbindungen zwischen benachbarten Routern werden manuell angegeben. Router, welche miteinander über BGP Routing-Informationen austauschen wollen, bauen zunächst eine TCP-Verbindung auf, über welche dann die BGP-Nachrichten gesendet werden. Diese Verbindung nennt man eine BGP-Session („Sitzung“).

Bit Offset 0–15 16–23 24–31
0 Marker (16 Bytes)
32
64
96
128 Message Length Message Type
Message
  • Marker: Alle Bits der ersten 16 Bytes sind aus Kompatibilitätsgründen auf „1“ gesetzt.
  • Message Length: Gesamtgröße der BGP-Nachricht
  • Message Type: Art der BGP-Nachricht
1 = Open RFC 4271[10]
2 = Update RFC 4271[11]
3 = Notification RFC 4271[12]
4 = KeepAlive RFC 4271[13]
5 = ROUTE-REFRESH RFC 2918[14]
  • Message: Bei einer Routenaktualisierung werden in diesem Bereich die Routen angegeben, welche hinzugefügt oder gelöscht wurden.

Arten von BGP-Nachrichten

[Bearbeiten | Quelltext bearbeiten]

BGP verwendet vier verschiedene Arten von Nachrichten im Protokoll:

OPEN
Wird nur zu Beginn einer Verbindung gesendet und muss mit einer KEEPALIVE-Nachricht beantwortet werden. Bei der OPEN-Nachricht werden die Parameter BGP-Version, AS-Nummer, Hold Timer, BGP Identifier sowie optionale Parameter mitgeschickt. Danach werden die Routeninformationen zwischen den Routern ausgetauscht.

UPDATE
Teilt eine Pfadänderung mit. Es können pro UPDATE-Nachricht gleichzeitig mehrere Pfade hinzugefügt und mehrere entfernt werden. UPDATE-Nachrichten sind das Kernstück von BGP.

NOTIFICATION
Beendet eine Verbindung und gibt Fehler- bzw. Statuscodes an. Alle Pfade, die über diese beendete Verbindung empfangen wurden, müssen nun gelöscht werden. Über ein BGP-Update würde dann verbreitet werden, dass diese Route nicht mehr verfügbar ist.

KEEPALIVE
Bestätigt die OPEN-Anfrage. Zur regelmäßigen Überprüfung, ob der verbundene Router noch online ist oder ob die Verbindung unterbrochen ist und die Pfade über den verbundenen Router somit ungültig geworden sind. Die Router, welche gerade eine BGP-Session aufgebaut haben, senden sich gegenseitig in regelmäßigen Abständen eine KEEPALIVE-Nachricht. Diese besteht nur aus dem Message Header. Im Attribut Hold Time einer OPEN-Nachricht wird die maximale Zeit angegeben, in der ein BGP-Router eine KEEPALIVE-Nachricht vom BGP-Partner der Session erwartet. Kommt innerhalb der Hold Time keine KEEPALIVE-Nachricht an, wird die BGP-Session mit einer NOTIFICATION beendet.

Verbindungsstatus bei BGP

[Bearbeiten | Quelltext bearbeiten]
Zustandsgraph von BGP

In der Grafik werden die verschiedenen Zustände einer BGP-Verbindung dargestellt. In der Praxis ist es wichtig zu wissen, dass noch keine Routingeinträge ausgetauscht werden, wenn in einer Routerkonfiguration der Status Active angezeigt wird. Dieser Status bedeutet, dass versucht wird, eine Verbindung aufzubauen. Erst wenn der Status established erreicht wurde, besteht eine funktionierende Verbindung zwischen den BGP-Routern.

Genauere Beschreibung

[Bearbeiten | Quelltext bearbeiten]

Kernstück von BGP ist die UPDATE-Nachricht, über welche sich BGP-Router die Existenz neuer Routen (Announcement) oder den Wegfall bestehender Routen (Withdrawal) mitteilen. Der Empfänger einer UPDATE-Nachricht entscheidet anhand seiner Routing-Richtlinien („policies“), ob er sein Routing umstellt (und daraufhin selbst UPDATE-Nachrichten versenden muss), die Nachricht einfach nur weiterleitet (z. B. via IBGP) oder schlicht ignoriert.

Eine Route in BGP hat mehrere Attribute. Im Folgenden werden die wichtigsten erklärt.

  • Der AS Path beschreibt, über welche autonomen Systeme das angegebene Ziel (ein CIDR-Präfix) erreicht werden kann. Die autonomen Systeme werden hierbei über ihre AS-Nummer (ASN) identifiziert. Im AS-Pfad darf zwar keine Schleife vorkommen; jedoch ist es erlaubt, dass sich ein AS mehrmals hintereinander einträgt und somit den AS-Pfad künstlich verlängert, um die Route zwar verfügbar, aber unattraktiv zu machen (AS Path Prepending).[15]
  • Die IGP-Metrik beschreibt die Kosten durch das eigene Netzwerk, um den Austrittspunkt in das nächste AS auf dem AS-Pfad zu erreichen.
  • Der Multi-Exit Discriminator (MED) wird verwendet, um verschiedene parallele Verbindungen zum gleichen Nachbar-AS zu priorisieren, bevorzugt wird der jeweils kleinste Wert. Dieses Attribut wird zwischen EBGP-Peers verwendet.
  • Communities sind Routing Tags, anhand welcher Routing-Änderungen (UPDATE-Nachrichten) bzw. übermittelte Präfixe zu anderen BGP-Peers markiert werden können. Eine BGP-Community ist ein 32-Bit-Wert, der von anderen BGP-Routern als Filterkriterium verwendet werden kann. Neben Standard-Communities können sog. Extended Communities in der Notation 12345:12345 oder als Dezimalzahl frei verwendet werden.
  • Local Preference legt durch den jeweils höheren Wert einen bevorzugten Pfad aus mehreren Pfaden innerhalb des gleichen AS fest. Falls es zum gleichen Zielpräfix mehrere Routen mit gleich langen AS-Pfaden gibt, dann kann man über Local Preference bestimmte Routen bevorzugen; vgl. Abschnitt „Pfadauswahl“.
  • Next Hop ist die Angabe der IP-Adresse des Next-Hop-Routers zu einem Präfix. Der Next-Hop-Router ist derjenige Gateway-Router, welcher das eigene AS mit dem nächsten AS auf dem AS-Pfad verbindet.
  • Weight ist ein lokales Attribut (proprietär); vgl. Abschnitt „Pfadauswahl“.
  • Origin gibt die Quelle eines Präfixes an: IGP, EGP oder Incomplete.

Sehr oft kommt es vor, dass ein Router zum selben Ziel unterschiedliche Routen mitgeteilt bekommt. Die Auswahl der Route, für welche er sich letztendlich entscheidet, ist als BGP Path Selection Process bekannt. Der Netzwerkbetreiber kann die Pfadauswahl im Router durch die Wahl geeigneter Regeln im Router steuern und beeinflussen.

Grundsätzlich läuft der BGP Path Selection Process nach folgenden Regeln ab:[16]

  1. Der Pfad mit dem größten Wert für Weight wird bevorzugt (Cisco-proprietär).
  2. Wenn der Wert für Weight identisch ist, wird der Wert mit der größten Local Preference bevorzugt.
  3. Wenn die Werte für Local Preference gleich sind, wird der Pfad bevorzugt, der von BGP auf diesem Router generiert wurde.
  4. Wenn kein Pfad auf diesem Router generiert wurde, bevorzuge den Pfad mit dem kürzesten AS_PATH-Attribut.
  5. Wenn alle AS_PATH-Attribute die gleiche Länge haben, bevorzuge den niedrigsten Origin-Typ (IGP ist niedriger als EGP, EGP ist niedriger als Incomplete)
  6. Wenn alle Origin-Typen gleich sind, bevorzuge den Pfad mit dem niedrigsten MED-Attribut.
  7. Wenn alle Pfade den gleichen Wert für MED haben, bevorzuge externe Pfade gegenüber internen Pfaden.
  8. Wenn immer noch alle Pfade die gleiche Priorität haben, bevorzuge den Pfad zum nächstgelegenen IGP-Nachbarn.
  9. Sollten alle Pfade gleich sein, bevorzuge den Pfad mit der niedrigsten IP-Adresse des BGP-Peers bezogen auf die Router-ID.

Zusammenspiel von IBGP mit dem IGP

[Bearbeiten | Quelltext bearbeiten]

Damit ein Router ein Paket an ein anderes Netz weiterleiten kann, zu welchem er keine unmittelbare Verbindung hat, ist in der Regel ein Zusammenspiel von IBGP und dem IGP (dem Intradomain-Routingprotokoll, also beispielsweise OSPF, IS-IS, EIGRP/IGRP, RIP) vonnöten, welches benötigt wird, um Pakete zum entsprechenden Gateway-Router weiterzuleiten. Hierzu dient das BGP-Attribut Next Hop.

Beispiel: Ein Router R1 in AS1 soll ein Paket zur Zieladresse 10.1.2.3 weiterleiten. Durch eine IBGP-Update-Nachricht hat er zuvor erfahren, dass das Zielnetz 10.0.0.0/8 über das Nachbar-AS 4711 erreichbar ist. Allerdings hat R1 keine unmittelbare Verbindung zu AS4711; diese Verbindung existiert nur an einem anderen Router R2 (Gateway-Router). Durch das BGP-Attribut Next Hop kennt R1 jedoch die IP-Adresse von R2. Nur anhand der Informationen des IGP kennt R1 den kürzesten Pfad innerhalb von AS1 zu R2 und weiß somit, zu welchem Nachbar-Router Rx er das Paket schicken muss, so dass es beim Gateway-Router R2 ankommt, welcher es schließlich in AS4711 weiterleiten kann.

Die Bereitstellung von Erreichbarkeitsinformationen für das IBGP-Protokoll durch ein IGP-Protokoll ist auch zur Herstellung von IBGP-Sessions zwischen nicht unmittelbar benachbarten IBGP-Routern oder zu BGP-Route-Reflektoren notwendig.

Besonderheiten bei BGP

[Bearbeiten | Quelltext bearbeiten]

Routingschleifen

[Bearbeiten | Quelltext bearbeiten]

BGP ist ein Pfadvektorprotokoll. Seine Funktionsweise ist stark an Distanzvektoralgorithmen und -protokolle wie z. B. Routing Information Protocol (RIP) angelehnt, jedoch wird dem dort vorkommenden Problem der Routingschleifen effektiv vorgebeugt. Eine Routingschleife entsteht, wenn ein IP-Paket auf seinem Weg durch das Internet dasselbe AS mehrmals passiert. Ein BGP-Router teilt beim Senden von Routing-Informationen (UPDATE) dem Kommunikationspartner nicht nur mit, dass er einen bestimmten Abschnitt des Internets erreichen kann, sondern auch die vollständige Liste aller autonomen Systeme (AS-Path), die IP-Pakete bis zu diesem Abschnitt passieren müssen (sein eigenes AS steht dabei an erster, das Ziel-AS an letzter Stelle). Merkt der Kommunikationspartner nun, dass das AS, dem er selbst angehört, bereits in dieser Liste vorhanden ist, verwirft er die Nachricht und vermeidet so, dass eine Routing-Schleife entsteht.

Route Aggregation

[Bearbeiten | Quelltext bearbeiten]

Bei BGP kann jeder Router gemeinsame Routen zusammenfassen, im Gegensatz z. B. bei OSPF, auf deren Routern eine Routing-Zusammenfassung nur auf den Area Border Routern durchgeführt werden kann.

Unterschiedliche Linkgeschwindigkeiten werden nicht berücksichtigt. Die Routen werden hauptsächlich nach der Länge (AS Path) und nach strategischen Aspekten ausgewählt.

Die Anzahl an (BGP-)Routern („Hop“) wird durch BGP als Entscheidungskriterium bei der Auswahl des besten Weges zum Ziel nicht berücksichtigt – nur die Anzahl der autonomen Systeme ist wichtig (abgesehen vom Attribut IGP-Metrik).

Probleme bei BGP

[Bearbeiten | Quelltext bearbeiten]

BGP weist prinzipbedingt eine Reihe von Schwächen auf, die in einer Minimalkonfiguration entstehen können. Die Schwächen werden jedoch in der Regel dadurch kompensiert, dass die Priorisierung von Pfaden Routing-Policies unterliegt, die der jeweilige Netzbetreiber steuert.

Wachstum von Routingtabellen

[Bearbeiten | Quelltext bearbeiten]
Wachstum der BGP-Routingtabelle im Internet für IPv4

Da jeder BGP-Router über Routeninformationen von anderen, insbesondere der benachbarten BGP-Routern verfügt, baut sich jeder BGP-Router eine Datenbank für die Routen zu allen erreichbaren autonomen Systemen auf. Die Größe der Tabelle mit den Routen-Informationen lag im Dezember 2016 bei etwa 650.000 Einträgen in ca. 56.000 autonomen Systemen.

IPv4 Ende 2005 April 2011 April 2012 Mai 2014 Juni 2015[17] Dezember 2016
Routingeinträge 170.000 360.000 411.000 500.000 557.973 646.157
Autonome Systeme 26.000 37.000 40.900 47.010 50.921 56.158

Dem Wachstum der Routing-Tabellen kann in Grenzen durch Route Aggregation entgegengewirkt werden.

Wachstum der BGP-Routingtabelle im Internet für IPv6

Bei der Entwicklung von IPv6 wurde auch das Problem des Wachstums von Routingtabellen bei IPv4 berücksichtigt. So sind beim Einsatz von IPv6 wesentlich weniger Routing-Einträge zu erwarten.[18] Zurzeit nutzen noch nicht alle Internet-Provider IPv6 und daher kann die folgende Statistik nicht direkt mit der obigen Tabelle über die IPv4-Routing-Einträge verglichen werden.

IPv6 April 2012 Juni 2015[19] Dezember 2016
Routingeinträge 8.500 22.014 34.789
Autonome Systeme 5.100 8.251 12.666

BGP bringt standardmäßig keine Verfahren zur Lastverteilung mit. Es wird immer nur eine mögliche Route ausgewählt. Es existieren jedoch proprietäre Erweiterungen, die eine Konfiguration zur Lastverteilung ermöglichen.[20] Diese Erweiterungen ermöglichen im Gegensatz z. B. zu OSPF eine Lastverteilung auf unterschiedlich gewichteten Verbindungen.

In der Grundkonfiguration ist ein BGP-Router anfällig für Spoofing-Angriffe, durch die Angreifer Routen manipulieren können.[21][22][23][24] Durch den Einsatz von Authentifizierung mit einem zwischen den BGP-Peers individuell festgelegten Passwort (basierend auf MD5-Hashes), kann der Datenaustausch zwischen den BGP-Routern gesichert werden. Dies erschwert Spoofing-Angriffe zwar stark, ist aber insbesondere von der Sicherheit von MD5 abhängig, welches inzwischen von Krypto-Experten als nicht mehr sicher angesehen wird.

Weiterhin können aufgrund des Punkt-zu-Punkt-Charakters von BGP-Router-Beziehungen mittels Paketfilter-Listen die erlaubten BGP-Peers entsprechend auf die zulässigen Partner eingeschränkt werden.

Daneben wurden und werden verschiedene weitere Sicherheitsmechanismen für BGP vorgeschlagen;[21] allerdings wäre es selbst bei einem flächendeckenden Einsatz vorgeschlagener Verfahren nahezu unmöglich, Angriffe, welche die Umleitung von Verkehrsströmen beabsichtigen, vollständig zu unterbinden.[25]

Route Flaps werden von Routen verursacht, welche über längere Zeiträume hinweg immer wieder hin- und herschwanken, annonciert und wieder zurückgezogen werden.[26] Als Gegenmaßnahme bieten moderne BGP-Implementierungen ein Verfahren namens Route Flap Damping, welches jedoch unter bestimmten Bedingungen zu unerwünscht langen Verzögerungen bei der Weiterleitung von Routenänderungen führen kann.[27]

Update Bursts sind plötzlich auftretende große Mengen an UPDATE-Nachrichten, oft zu miteinander nicht näher korrelierten Zielen.[28]

Besondere Ereignisse

[Bearbeiten | Quelltext bearbeiten]

YouTube-Blockade

[Bearbeiten | Quelltext bearbeiten]

Im Februar 2008 wurde Pakistan Telecom durch einen Gerichtsbeschluss dazu gezwungen, YouTube-Verkehr in Pakistan zu blockieren. Technisch wurde dies umgesetzt, indem eine falsche Route zum Netzwerk von YouTube in IBGP eingespeist wurde. Durch einen Konfigurationsfehler wurde diese falsche Route jedoch nicht nur in Pakistan verwendet, sondern irrtümlich auch via EBGP an andere Internetanbieter verteilt, was insbesondere in Asien zu mehrstündigen Blockaden von YouTube führte.[29][30]

Fehlkonfigurierter BGP-Router

[Bearbeiten | Quelltext bearbeiten]

Im Februar 2009 wurden über einen tschechischen BGP-Router zu lange AS-Pfade an öffentliche BGP-Router weitergeleitet. Einige BGP-Router hatten Probleme in der Verarbeitung dieser langen AS-Pfade, so dass es zu Beeinträchtigungen des Internetverkehrs kam. Administratoren können durch eine Konfiguration, in welche die maximale Länge des akzeptierten AS-Pfads beschränkt wird, einem solchen Problem entgegenwirken.[31][32]

Revolution in Ägypten 2011

[Bearbeiten | Quelltext bearbeiten]

Während der Revolution in Ägypten wurden im Januar 2011 via BGP in wenigen Minuten ca. 3.500 Routen aller ägyptischer Internetanbieter zurückgezogen, wodurch fast ganz Ägypten vom Internet getrennt war. Auch Mobilfunkdienste und soziale Netze waren nicht mehr erreichbar. Dieses scheint der erste Fall in der Geschichte des Internets zu sein, in welchem aus politischen Gründen ein gesamtes Land vom Internet abgeschottet wurde.[33]

Das BGP Path Attribute kann den Wert 255 annehmen. Dieses steht für Entwicklungen (development, siehe RFC 2042[34]) zur Verfügung. Bereits im Jahr 2010 führte ein Experiment mit diesem Flag zu Abstürzen in einigen Routern. Bei einem neuerlichen Versuch Ende 2018 wurden wieder fehlerhaft implementierte Router gefunden.[35]

Facebook, Instagram und Whatsapp

[Bearbeiten | Quelltext bearbeiten]

Am 4. Oktober 2021 waren für ca. 6 Stunden weltweit alle Dienste von Facebook, Instagram und Whatsapp nicht erreichbar. Dies ging auf eine fehlerhafte Konfiguration von Facebooks selbst gehosteten BGP-Routern zurück.[36][37]

Freie Software-Implementierungen

[Bearbeiten | Quelltext bearbeiten]

Normen und Standards

[Bearbeiten | Quelltext bearbeiten]
  • Y. Rekhter, T. Li, S. Hares: RFC 4271 – A Border Gateway Protocol 4 [Errata: RFC 4271]. Juli 2006 – Standard: [BGP4] (löst RFC 1771 ab, aktualisiert durch RFC 6286, englisch).
  • T. Bates, E. Chen, R. Chandra: RFC 4456 – BGP Route Reflection: An Alternative to Full Mesh Internal BGP [Errata: RFC 4456]. April 2006 – Standard: [IBGP] (löst RFC 2796 ab, aktualisiert durch RFC 7606, englisch).
  • S. Hares, D. Hares: RFC 4275 – BGP-4 MIB Implementation Survey [Errata: RFC 4275]. Januar 2006 (englisch).
  • P. Traina, D. McPherson, J. Scudder: RFC 5065 – Autonomous System Confederations for BGP [Errata: RFC 5065]. August 2007 – Standard: [BGP] (löst RFC 3065 ab, englisch).
  • Q. Vohra, E. Chen: RFC 4893 – BGP Support for Four-octet AS Number Space. Mai 2007 (englisch).
  • C. Villamizar, R. Chandra, R. Govindan: RFC 2439 – BGP Route Flap Damping [Errata: RFC 2439]. November 1998 (englisch).
  • T. Bates, R. Chandra, D. Katz, Y. Rekhter: RFC 4760 – Multiprotocol Extensions for BGP-4 [Errata: RFC 4760]. Januar 2007 – Standard: [BGP4] (löst RFC 2858 ab, aktualisiert durch RFC 7606, englisch).
  • E. Chen, J. Scudder, P. Mohapatra, K. Patel: RFC 7606 – Revised Error Handling for BGP UPDATE Messages. August 2015 (englisch).
Commons: Border Gateway Protocol – Sammlung von Bildern, Videos und Audiodateien
  • BGPlay – Ein Java-Programm zur grafischen Darstellung von BGP-Routingaktivitäten
  • BGP Toolkit Analyse autonomer Systeme

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. RFC 1163 – A Border Gateway Protocol (BGP). Juni 1990 (englisch).
  2. Y. Rekhter, T. Li, S. Hares: RFC 4271 – A Border Gateway Protocol 4 [Errata: RFC 4271]. Juli 2006 – Standard: [BGP4] (löst RFC 1771 ab, aktualisiert durch RFC 6286, englisch).
  3. RFC 1269 – Definitions of Managed Objects for the Border Gateway Protocol (Version 3). Oktober 1991 (englisch).
  4. RFC 2283 – Multiprotocol Extensions for BGP-4. Februar 1998 (englisch).
  5. T. Bates, R. Chandra, D. Katz, Y. Rekhter: RFC 4760 – Multiprotocol Extensions for BGP-4 [Errata: RFC 4760]. Januar 2007 – Standard: [BGP4] (löst RFC 2858 ab, aktualisiert durch RFC 7606, englisch).
  6. RFC 4364 – BGP/MPLS IP Virtual Private Networks (VPNs). Februar 2006 (englisch).
  7. Introducing Route Reflectors. Cisco, abgerufen am 18. Mai 2017 (englisch).
  8. Autonomous System (AS) Numbers. IANA, abgerufen am 1. Mai 2017.
  9. Cisco-Referenz zu BGP Confederation (englisch)
  10. RFC 4271 – A Border Gateway Protocol 4 (BGP-4). Juli 2006, Abschnitt 4.2: OPEN Message Format. (englisch).
  11. RFC 4271 – A Border Gateway Protocol 4 (BGP-4). Juli 2006, Abschnitt 4.3: UPDATE Message Format. (englisch).
  12. RFC 4271 – A Border Gateway Protocol 4 (BGP-4). Juli 2006, Abschnitt 4.5: NOTIFICATION Message Format. (englisch).
  13. RFC 4271 – A Border Gateway Protocol 4 (BGP-4). Juli 2006, Abschnitt 4.4: KEEPALIVE Message Format. (englisch).
  14. E. Chen: RFC 2918 – Route Refresh Capability for BGP-4. September 2000 – Standard: [BGP4] (aktualisiert durch RFC 7313, englisch).
  15. cisco.com: IP Routing Protocols Commands: send-lifetime through set-overload-bit (Memento vom 16. April 2012 im Internet Archive)
  16. Cisco-Referenz zu BGP Path Selection
  17. CIDR Report. cidr-report.org (englisch) abgerufen am 21. Juni 2015
  18. RIPE NCC – Routing IPv6 in 2011. ripe.net
  19. IPv6 BGP Operational Report from Hurricane Electric. ipv6.he.net; abgerufen am 21. Juni 2015.
  20. IP Routing: BGP Best Path Selection Algorithm. cisco.com
  21. a b Kevin Butler, Toni Farley, Patrick McDaniel, Jennifer Rexford: A survey of BGP security issues and solutions. (PDF; 1,5 MB) In: Proceedings of the IEEE, Januar 2010
  22. Barry Raveendran Greene: BGPv4 Security Risk Assessment. (PDF; 159 kB) cymru.com
  23. Auflistung wissenschaftlicher Veröffentlichungen zum Thema BGP-Sicherheit
  24. Router lügen nicht – Was wenn doch? heise security online, 27. August 2008.
  25. Sharon Goldberg, Michael Schapira, Peter Hummon, Jennifer Rexford: How secure are secure interdomain routing protocols? (PDF; 384 kB) In: Proceedings of the ACM SIGCOMM conference, August 2010.
  26. C. Labovitz, G. Malan, F. Jahanian: Internet routing instability. IEEE/ACM Transactions on Networking, 6(5) 1998, S. 515–528.
  27. Zhenhai Duan, Jaideep Chandrashekar, Jeffrey Krasky, Kuai Xu, Zhi-Li Zhang: Damping BGP Route Flaps. Proceedings of the 23rd IEEE International Performance Computing and Communications Conference (IPCCC), 2004.
  28. Ke Zhang, Amy Yen, Xiaoliang Zhao, Dan Massey, S. Felix Wu, Lixia Zhang: On Detection of Anomalous Routing Dynamics in BGP. In: LNCS NETWORKING 2004. ISBN 3-540-21959-5.
  29. Pakistan sperrt YouTube. heise.de
  30. Declan McCullagh: How Pakistan knocked YouTube offline (and how to make sure it never happens again). In: CNET. 25. Februar 2008, abgerufen am 9. November 2023 (englisch).
  31. Fehlkonfigurierter Router. heise.de
  32. Reckless Driving on the Internet. (Memento vom 15. April 2012 im Internet Archive) Renesys. Longer is not Always Better. (Memento vom 13. April 2012 im Internet Archive) Renesys.
  33. Ägypten ist offline. heise.de
  34. RFC 2042 – Registering New BGP Attribute Types. Januar 1997 (englisch).
  35. Fehlerhafte Router stoppen BGP-Experiment. golem.de
  36. Facebook, Instagram, and WhatsApp back online after BGP fix. Abgerufen am 5. Oktober 2021 (amerikanisches Englisch).
  37. Großer Ausfall: Facebook, WhatsApp und Instagram für Stunden nicht erreichbar. heise online, abgerufen am 5. Oktober 2021.