Diplomarbeit Skalierbare Hochverfügbarkeitslösungen mit Lastverteilung für E-Commerce Sites Mai 2000
2.3.4 BGP - Border Gateway Protocol
Beim Border Gateway Protocol (BGP) handelt es sich um ein Exterior Gateway Protocol (EGP), oder auch Inter Domain Routing Protocol genannt. Im gesamten Internet wird BGP Version 4 (BGP4) benutzt.75
Mit Hilfe von BGP 4 werden Autonome Systeme miteinander verbunden, wie in Abb. 2.20 dargestellt. Miteinander verbundene BGP4-Router teilen sich dabei mit Hilfe des TCP-Protokolls gegenseitig mit, welche IP-Prefixes über ihr zugehöriges AS erreicht werden können. Dabei werden auch die Prefixes mitgeteilt, die von anderen AS gelernt wurden. Jeder BGP4-Router eines AS kann dann anhand dieser gelernten Informationen entscheiden, an welches benachbarte AS er ein IP-Paket weiterleiten muß, damit es das AS erreicht, innerhalb dessen das Ziel-IP-Netz zu finden ist. Hat ein IP-Paket erst einmal dieses AS erreicht, wird es dann vom jeweiligen IGP-Protokoll an das Ziel-IP-Netz weitergeleitet.
Abbildung 2.20 : Verbindung Autonomer Systeme mit BGP 4
Wenn zwei Router (BGP Peers) eine Verbindung zum Austausch dynamischer Routing-Informationen aufbauen (BGP Session), benutzen sie dazu TCP. Nachdem eine TCP- Session aufgebaut wurde, können vier verschiedene BGP-Nachrichtentypen versandt werden:76
- OPEN : Eine OPEN-Nachricht wird als erstes nach dem Aufbau einer TCP-Session versandt. Mit ihr identifizieren sich die beiden Endpunkte und vereinbaren verschiedene Verbindungsparameter.
- UPDATE : Sämtliche Routing-Informationen werden einmalig mittels UPDATE-Paketen weitergegeben, danach werden nur noch Veränderungen mitgeteilt. Ein Router teilt dabei mit, welche Netzwerk-Prefixes77 über ihn erreichbar sind, sowie dazugehörige Pfad-Attribute. Zusätzlich können aber auch früher übertragene Routen wieder rückgängig gemacht werden.
- NOTIFICATION : Wenn während einer BGP-Session ein Fehler auftritt, kann anhand des NOTIFICATION Nachrichten-Typs die Art des Fehlers mitgeteilt werden. Unmittelbar nach einer solchen Nachricht wird die zugehörige TCP-Session geschlossen.
- KEEPALIVE : Um festzustellen, ob die BGP-Session zwischen ihnen noch aktiv ist, senden sich BGP-Router in regelmäßigen Abständen KEEPALIVE-Pakete. Dies ist notwendig, da TCP eine solche Funktionalität nicht bietet.
Ein BGP-Router speichert Routing-Informationen in einer Routing Information Base (RIB). Es existieren drei verschiedene RIB-Variationen. Alle Prefixes, die von einem bestimmten BGP-Peer gelernt wurden, werden in einer eigenen RIB gespeichert, genannt Adj-RIB-In. Es kommt jedoch vor, dass ein bestimmter Prefix in mehreren Adj-RIB-In vorhanden ist, da er von mehreren BGP-Peers gelernt wurde. Die Route, die BGP auswählt, um diesen Prefix zu erreichen, wird in einer Loc-RIB gespeichert. Routen, die an andere BGP-Peers weitergegeben werden, sind in einer Adj-RIB-Out abgelegt. Dabei existiert für jeden Nachbar-BGP-Peer eine eigene Adj-RIB-Out.
Routing-Informationen sind bei BGP mit Attributen versehen, anhand derer die Routing-Entscheidungen hauptsächlich getroffen werden. Im folgenden sind die wichtigsten Attribute aufgeführt:78
- ORIGIN : Mit diesem Attribut wird angezeigt, von wo der dazugehörige Prefix gelernt wurde, z. B. von einem IGP oder von EGP.
- AS-PATH : An dieser Stelle werden die Autonomen Systeme aufgezählt, die die Routing-Information bisher passiert hat. Mit diesem Attribut können loops festgestellt und verhindert werden.
- NEXT-HOP : Ein BGP-Peer bekommt mit diesem Attribut mitgeteilt, über welche Adresse ein Prefix am direktesten erreichbar ist. Meist ist der Absender des Prefix auch die NEXT-HOP-Adresse.
- MULTI-EXIT-DISCRIMINATOR : Zwischen zwei Autonomen Systemen können mehrere Verbindungen bestehen. Mit diesem Attribut-Wert wird mitgeteilt, über welche dieser Verbindungen ein Prefix besser zu erreichen ist.
- LOCAL PREF : Dieser Wert kann lokal bestimmten Routing-Informationen zugewiesen werden, z.B. allen, die von einem bestimmten AS gelernt wurden. Dieses AS bietet vielleicht schlechten Service oder wenig Sicherheit und kann so vermieden werden. Gleichzeitig kann festgelegt werden, welcher von mehreren benachbarten ISPs bei der Paketweiterleitung bevorzugt werden soll.
BGP-Informationen müssen auch innerhalb eines Autonomen Systems an andere Router weitergegeben werden. Da BGP die Bildung von Loops durch die Auswertung der AS-Nummern verhindert, dies jedoch innerhalb eines Autonomen Systems nicht möglich ist, wird in Autonomen Systemen Internal-BGP (I-BGP) eingesetzt. Der Unterschied zwischen I-BGP und dem normalen BGP, in diesem Zusammenhang mit External-BGP (E-BGP) bezeichnet, besteht darin, dass bei I-BGP Routing-Informationen, die von einem BGP-Peer innerhalb des AS gelernt wurden, nicht an andere BGP-Peers in diesem AS weitergegeben werden dürfen. Deswegen muß jeder BGP-Peer zu jedem anderen BGP-Peer eine eigene BGP-Session aufbauen. Dadurch entsteht ein full mesh79 an I-BGP-Sessions. Die I-BGP-Peers müssen dabei nicht physikalisch, sondern nur logisch miteinander verbunden sein.
Tiefergehende Anwendungsmöglichkeiten von BGP werden in Kap. 3.5 erläutert.
75vgl. <30>
76vgl. [12], S. 34
77vgl. Kap. 2.1.3.3
78vgl. [12], S. 44
79eng.: volles Netz, d.h. jeder ist mit jedem verbunden