Übersicht über Bidirectional Forwarding Detection (BFD)

Auf dieser Seite wird Bidirectional Forwarding Detection (BFD) für Cloud Router beschrieben.

BFD (RFC 5880, RFC 5881) ist ein Protokoll zur Ausfallerkennung bei Weiterleitungspfaden, das von den meisten kommerziellen Routern unterstützt wird. Mit BFD für Cloud Router können Sie die BFD-Funktion in einer BGP-Sitzung aktivieren, um Ausfälle von Weiterleitungspfaden wie Link-Down-Ereignisse zu erkennen. Diese Funktion macht Hybridnetzwerke stabiler.

Wenn Sie mithilfe von Dedicated Interconnect oder Partner Interconnect ein Peering mit Google Cloud aus Ihrem lokalen Netzwerk herstellen, können Sie BFD aktivieren, um Verbindungsfehler und Failover von Traffic zu einem alternativen Link mit einem BGP-Sicherungssitzung schnell zu erkennen. Auf diese Weise bietet BFD einen hochverfügbaren Netzwerkverbindungspfad, der schnell auf Linkfehler reagieren kann.

Vorteile von BFD

BFD mit Standardeinstellungen erkennt Fehler in 5 Sekunden. Die BGP-basierte Fehlererkennung benötigt im Vergleich dazu 60 Sekunden. Durch die Implementierung von BFD auf Cloud Router beträgt die End-to-End-Erkennungszeit unter Umständen nur fünf Sekunden.

BFD ist ein „hello“-Protokoll mit fester Länge, in dem jedes Ende einer Verbindung regelmäßig Pakete über einen Weiterleitungspfad überträgt.

BFD ist ein UDP-basiertes Erkennungsprotokoll, das eine Methode mit geringem Overhead für die Erkennung von Fehlern im Weiterleitungspfad zwischen zwei angrenzenden Routern bereitstellt. Dazu gehört auch für die Erkennung von Fehlern in Schnittstellen, Datenlinks und Weiterleitungsebenen. Sie können BFD auf der Routingprotokollebene aktivieren.

BFD-Einschränkungen

Sie können BFD nur in BGP-Sitzungen aktivieren, die Sie für VLAN-Anhänge in Dedicated Interconnect oder Partner Interconnect konfigurieren. BFD wird nicht in BGP-Sitzungen unterstützt, die für HA VPN-Tunnel oder für Router Appliance konfiguriert sind, die Teil des Network Connectivity Center sind.

Einrichtung einer BFD-Sitzung

Konfigurieren Sie BFD auf beiden BGP-Peers, um eine BFD-Sitzung einzurichten: auf einem Cloud Router und Ihrem lokalen Router, auf dem BFD ausgeführt wird. Nachdem Sie BFD für das BGP-Routingprotokoll auf dem Router aktiviert haben, wird eine BFD-Sitzung erstellt, BFD-Timer werden ausgehandelt und die BFD-Peers beginnen im ausgehandelten Intervall BFD-Kontrollpakete aneinander zu senden.

Durch das Senden von Hinweisen zur schnellen Fehlererkennung an BGP auf dem lokalen Router, um die Neuberechnung der Routingtabelle zu starten, trägt BFD zu einer erheblich reduzierten Gesamtkonvergenz für das Netzwerk bei.

Das folgende Diagramm zeigt ein einfaches Netzwerk mit zwei Routern, auf denen BGP und BFD ausgeführt werden. Diese Zahlen stellen den Einrichtungsprozess der BFD-Sitzung dar:

  1. Ein BGP-Nachbar ist eingerichtet.
  2. BGP sendet eine Anfrage an den lokalen BFD-Prozess, um eine BFD-Nachbarsitzung mit dem BGP Peer/Nachbar-Router zu initiieren.
  3. Die BFD-Nachbarsitzung mit dem benachbarten BGP-Router wurde eingerichtet.
Grafik: Einrichten einer BFD-Sitzung.
Einrichten einer BFD-Sitzung (zum Vergrößern klicken)

BFD während eines Fehlerereignisses

Die folgende Abbildung zeigt, was geschieht, wenn ein Fehler im Netzwerk auftritt.

Im schreibgeschützten Modus von BFD senden sich der Cloud Router und Ihr lokaler Router regelmäßig BFD-Kontrollpakete zu. Wenn die Anzahl der aufeinanderfolgenden Kontrollpakete, die in der Einstellung bfd multiplier auf dem Cloud Router konfiguriert ist, vom anderen Router nicht empfangen wird, wird die Sitzung deklariert. Dann geschieht Folgendes:

  1. Bei der Verbindung kommt es zu einem Fehler zwischen Google Cloud und dem lokalen Router.
  2. Die benachbarte BFD-Sitzung mit dem benachbarten BGP-Router wird abgebrochen.
  3. BFD benachrichtigt den lokalen BGP-Prozess, dass der BFD-Nachbar nicht mehr erreichbar ist.
  4. Der lokale BGP-Prozess trennt die Verbindung zum BGP-Nachbarn.

Wenn ein alternativer Pfad verfügbar ist, konvergieren die Router dort sofort.

Grafik: BFD während eines Fehlerereignisses.
BFD während eines Fehlerereignisses (zum Vergrößern klicken)

BFD-Dämpfung

Cloud Router implementiert intern BFD-Dämpfung, um die negativen Auswirkungen häufiger BFD-Sitzungsflaps auf BGP zu unterdrücken. Die BFD-Dämpfung verwendet Standardparameter, die vom Nutzer nicht geändert werden können.

Die BFD-Dämpfung verwendet ein Strafsystem. Der Strafwert beginnt bei 0 und erhöht sich auf 1 für die erste Flap. Nach der ersten Flap verdoppelt sich der Strafwert jedes Mal, wenn eine weitere BFD-Flap auftritt. Wenn der Strafwert den Schwellenwert von 4 überschreitet, werden BFD-Benachrichtigungen an BGP unterdrückt. Der Strafwert wird alle 10 Minuten um die Hälfte reduziert, wenn während dieses Zeitraums keine Flap auftritt.

BFD aktiviert Benachrichtigungen für BGP noch einmal, nachdem die Strafe unter den Grenzwert von 4 für die Wiederverwendung fällt.

Das maximale Unterdrückungsintervall für BFD-Benachrichtigungen an BGP beträgt 1 Stunde. Dadurch ist gewährleistet, dass Benachrichtigungen über beendete BFD-Sitzungen nicht dauerhaft gedämpft sind.

Asynchroner BFD-Modus

Cloud Router unterstützt einen asynchronen Betriebsmodus, bei dem sich die beteiligten Systeme regelmäßig BFD-Kontrollpakete zusenden. Wenn eine konfigurierte Anzahl aufeinanderfolgender Pakete vom anderen System nicht empfangen wird, wird die Sitzung als inaktiv deklariert.

Der Nachfragemodus des BFD-Vorgangs wird nicht unterstützt. Im Paketmodus unterstützt BFD den Steuerungsmodus, der Echo-Modus wird nicht unterstützt.

Im asynchronen Modus mit dem Steuerungsmodus für Pakete wird BFD auf der Steuerungsebene ausgeführt und kann geringen operativen Aufwand und CPU-Verarbeitungszeit verursachen.

Standardmäßig ist BFD in Cloud Router-BGP-Sitzungen deaktiviert. Wenn Sie BFD verwenden möchten, müssen Sie es aktivieren.

Im folgenden Fehlerszenario haben die Router folgende Einstellungen:

  • Das BFD-Empfangsintervall des Cloud Routers ist auf 1000 Millisekunden (ms) eingestellt, multipliziert mit einem BFD-Multiplikator von 5, für eine Erkennungs-Timer-Einstellung von 5.000 ms.
  • Das BFD-Übertragungsintervall des Peer-Routers ist auf 1.000 ms eingestellt, multipliziert mit einem BFD-Multiplikator von 5, für eine Erkennungs-Timer-Einstellung von 5.000 ms.

Der Cloud Router verhandelt mit dem Peer-Router und erwartet alle 1.000 ms vom Peer-Router Kontrollpakete. Wenn 5.000 ms vergehen, ohne dass der Cloud Router ein Kontrollpaket empfängt, läuft der Erkennungs-Timer ab und deklariert die BFD-Sitzung als inaktiv.

Grafik: BFD ohne Echo-Pakete
BFD ohne Echo-Pakete (zum Vergrößern klicken)

Ordnungsgemäßer Neustart und BFD

Um die Auswirkungen auf den Traffic während Wartungsereignissen der Cloud Router-Software zu minimieren, empfehlen wir die Aktivierung eines ordnungsgemäßen BGP-Neustarts.

Wenn sowohl ein ordnungsgemäßer BGP-Neustart als auch BFD aktiviert sind, versucht der Neustart des Cloud Routers, BFD zu deaktivieren. Dazu wird eine AdminDown-Nachricht an den lokalen Router gesendet. In diesem Fall verbleibt die BGP-Sitzung auf der lokalen Seite und der lokale Router wechselt in den ordnungsgemäßen Neustartmodus. Während sich der lokale Router im ordnungsgemäßen Neustartmodus befindet, kann Cloud Router neu gestartet werden, ohne dass der Traffic auf Datenebene beeinträchtigt wird.

Wenn der lokale Router eine AdminDown-Nachricht sendet, bevor die Steuerungsebene neu gestartet wird, wechselt der Cloud Router in den ordnungsgemäßen Neustartmodus. Während sich Cloud Router im ordnungsgemäßen Neustartmodus befindet, kann der lokale Router neu gestartet werden, ohne dass sich das auf den Traffic der Datenebene auswirkt.

Cloud Router setzt das unabhängige Bit der Steuerungsebene auf 0, wenn BFD mit seinem Peer-Router eingerichtet wird, um zu signalisieren, dass die Implementierung von BFD von der Steuerungsebene abhängt. Wenn ein Schnittstellenfehler auftritt, kann der Peer-Router nicht zwischen einem BFD-Fehler, der durch einen Ausfall der Steuerungsebene oder einen Fehler der Datenebene verursacht wird, unterscheiden. Beispielsweise kann ein Schnittstellenfehler dazu führen, dass der lokale Router in einen ordnungsgemäßen Neustartmodus wechselt und unnötigerweise einen Traffic-Failover von dem betroffenen Link verzögert.

Aufgrund der möglichen Mehrdeutigkeit eines BFD-Fehlers behandeln verschiedene Anbieter dieses spezifische Szenario unterschiedlich und bieten Konfigurationseinstellungen an, um das Standardverhalten zu ändern. Wir empfehlen Ihnen, die Dokumentation Ihres Routeranbieters zu prüfen und Ihren lokalen Router zu konfigurieren, damit ein BFD-Schnittstellenereignis mit einem von der Steuerungsebene abhängigen BFD-Peer einen sofortigen Failover auslöst, wenn mit einem ordnungsgemäßen BGP-Neustart verwendet.

BFD-Einstellungen und -Timer

In diesem Abschnitt werden BFD-Einstellungen beschrieben, die Sie auf Cloud Router konfigurieren können.

Initialisierungsmodus für BFD-Sitzung

Beschreibung Der Initiierungsmodus der BFD-Sitzung für diesen BGP-Peer.
Befehl gcloud --bfd-session-initialization-mode
API-Feld bgpPeers[].bfd.sessionInitializationMode
Standardeinstellung Disabled

Es gibt drei Einstellungen für den BFD-Modus: Active, Passive und Disabled. Wenn Sie diesen Modus nicht festlegen, wird standardmäßig die Einstellung Disabled verwendet. Dabei wird der Nicht-Echo-Modus verwendet (nur Kontrollpakete).

  • Disabled (Standard): BFD ist für diesen BGP-Peer deaktiviert.
  • Passive: Der Cloud Router wartet, bis der Peer-Router die BFD-Sitzung für diesen BGP-Peer initiiert hat.
  • Active: Der Cloud Router initiiert die BFD-Sitzung für diesen BGP-Peer.

Sie müssen den Router auf mindestens einer Seite einer Verbindung – entweder dem Cloud Router oder dem Peer-Router – auf Active setzen. Legen Sie beim Konfigurieren einer BGP-Sitzung zwischen zwei Cloud Routern den Initialisierungsmodus der BFD-Sitzung eines Routers auf Active fest.

Wenn Sie beide Seiten auf Active setzen, senden die beiden Seiten ein anfängliches Steuerungspaket zur Aushandlung von Parametern und die Sitzung wird schließlich eingerichtet.

Wenn Sie den Initialisierungsmodus der BFD-Sitzung auf Disabled setzen, können Sie optional die restlichen BFD-Einstellungen konfigurieren. Diese Einstellungen werden wirksam, wenn Sie BFD wieder aktivieren.

Minimales BFD-Übertragungsintervall (BFD-Pakete zu einem Peer)

Beschreibung Das Mindestintervall zwischen BFD-Kontrollpaketen, die an einen BGP-Peer übertragen werden.
Befehl gcloud --bfd-min-transmit-interval
API-Feld bgpPeers[].bfd.minTransmitInterval
Standardeinstellung

1.000 ms. Sie können eine Einstellung zwischen 1.000 ms und 30.000 ms festlegen.

Minimales BFD-Empfangsintervall (BFD-Pakete von einem Peer)

Beschreibung Das Mindestintervall zwischen BFD-Kontrollpaketen, die von einem BGP-Peer empfangen wurden.
Befehl gcloud --bfd-min-receive-interval
API-Feld bgpPeers[].bfd.minReceiveInterval
Standardeinstellung

1.000 ms. Sie können eine Einstellung zwischen 1.000 ms und 30.000 ms festlegen.

BFD-Multiplikator

Beschreibung Die Anzahl der aufeinanderfolgenden BFD-Kontrollpakete, die verpasst worden sein müssen, bevor BFD einen Peer als nicht verfügbar erklärt.
Befehl gcloud --bfd-multiplier
API-Feld bgpPeers[].bfd.multiplier
Standardeinstellung

5 Pakete. Sie können eine Einstellung zwischen 5 Paketen und 16 Paketen festlegen.

Nächste Schritte