Border gateway protocol (BGP) ist ein Exterior Gateway Protokoll in Routern das autonome Systeme (AS) verbindet. BGP ist ein Distance-Vector-Protokoll.
Jeder BGP-Router unterhält eine Standard-Routing-Tabelle, die dazu dient, Pakete während der Übertragung zu leiten. BGP verwendet die Client-Server-Topologie zur Übermittlung von Routing-Informationen, wobei der Client-Server eine BGP-Sitzung durch Senden einer Anfrage an den Server initiiert. Dies kann in großen Netzwerken zu erheblichem Overhead führen und die Leistung beeinträchtigen.
Ein Route Reflector ist ein spezieller Router in einem BGP-Netzwerk, der dazu dient, die BGP-Routen effizienter zu verteilen.
BGP trifft Routing-Entscheidungen auf der Grundlage von Pfaden, Regeln oder Netzwerkrichtlinien, die von einem Netzwerkadministrator konfiguriert werden und berechnet die Kosten von Routen anhand vordefinierter Attribute.
BGP-Attribute sind die Tagging-Methode für eingehende oder ausgehende BGP-Routen. Einige der Attribute werden von allen Anbietern unterstützt, andere sind jedoch anbieterspezifisch. Einige Attribute sind transitiv (die von einem Router zu einem anderen gehen), andere nicht. Mehr zu Kosten oder der Wahl des besten Pfades
Siehe auch MPLS.
Hurricane Electrics BGB Tracer
oreilly-bgp-in-the-datacenter.pdf
BGP bietet Netzwerkstabilität und garantiert, dass Router sich schnell anpassen können, um Pakete über eine andere Verbindung zu senden, wenn ein Internetpfad ausfällt.
Es gibt internes IBGP (innerhalb eines AS) und externes EBGP (zwischen 2 AS).
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.
Name | Beschreibung |
---|---|
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). |
IGP Metrik | beschreibt die Kosten durch das eigene Netzwerk, um den Austrittspunkt in das nächste AS auf dem AS-Pfad zu erreichen. |
Multi Exit Discriminator | 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 | 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. |
Name | Beschreibung |
---|---|
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. |
!R1 int fa0/0 ip address 17.1.1.1 255.255.255.0 no shut router bgp 65001 neighbor 17.1.1.2 remote-as 65001 network 17.1.1.0 mask 255.255.255.0 ip route 0.0.0.0 0.0.0.0 17.1.1.2
!R2 int fa0/0 ip address 17.1.1.2 255.255.255.0 no shut int fa1/0 ip address 100.0.0.2 255.255.255.252 no shut router bgp 65001 neighbor 17.1.1.1 remote-as 65001 network 17.1.1.0 mask 255.255.255.0 network 100.0.0.0 mask 255.255.255.252 neighbor 100.0.0.1 remote-as 65002
!R3 int fa0/0 ip address 100.0.0.1 255.255.255.252 no shut int fa1/0 ip addr 17.1.2.1 255.255.255.0 no shut router bgp 65002 neighbor 17.1.2.0 remote-as 65002 network 17.1.2.0 mask 255.255.255.0 neighbor 100.0.0.2 remote-as 65001 network 100.0.0.0 mask 255.255.255.252
!R4 int fa0/0 ip addr 17.1.2.2 255.255.255.0 no shut router bgp 65002 neighbor 17.1.2.1 remote-as 65002 network 17.1.2.0 mask 255.255.255.0 ip route 0.0.0.0 0.0.0.0 17.1.2.1
show ip bgp clear ip bgp * show ip bgp summary show run | section router bgp