Bidirectional Forwarding Detection
# Bidirectional Forwarding Detection

Bidirectional Forwarding Detection, kurz BFD, ist ein minimalistisches verbindungsorientiertes Netzwerkprotokoll zur Erkennung von Fehlern zwischen zwei miteinander verbundenen Routern.

Es wurde entwickelt, um die Konvergenzzeit in Netzen bei Störungen zu verkürzen. Die Bekanntgabe von Zustandsänderungen in IP-Netzen ist mit BFD im Sub-Sekunden-Bereich möglich.

BFD arbeitet mit geringem Protokoll-Overhead auch auf Medien, die selbst über keine oder nur eine eingeschränkte bzw. träge Fehlererkennungsmöglichkeit verfügen. Hierzu gehören beispielsweise Virtual Circuits (VC) im SDH-Umfeld, IP-Tunnel-Verbindungen und MPLS-Label-Switched-Pfade (LSP).

BFD baut eine Verbindung (Session) zwischen zwei Endpunkten (Routern) auf. Sind diese nicht unmittelbar benachbart, spricht man von Multihop-BFD.

Der BFD-Verbindung geht ein Drei-Wege-Handschlag voraus.

Die Authentisierung von BFD-Sessions ist möglich. Hier stehen je nach Gerätehersteller und Firmware-Version neben Kennwörtern im Klartext auch MD5- oder SHA1-basierte Verfahren zur Verfügung.

Die Ende-zu-Ende-Verfügbarkeit wird durch periodisch gesendete Hello-Nachrichten geprüft. Hello-Intervalle sind hersteller- und gerätespezifisch und liegen im Bereich einiger Millisekunden. Das Ausbleiben der dritten Hello-Nachricht führt standardmäßig zum Abbruch der BFD-Session.

Mit der Möglichkeit der Zustandsoffenbarung von Verbindungen an Routing-Protokolle, wie beispielsweise OSPF und IS-IS, sind diese damit in der Lage, den Ausfall ihres Nachbarn auch unterhalb der für das IGP typischen Dead-Timer-Zeit zu erkennen. Dies gilt selbst für das Routing Information Protocol (RIP), das standardmäßig einen 30-Sekunden-Wert für sein Hello-Zeitintervall verwendet. Für EGPs kann das BGP-Protokoll die Zustandsinformationen von BFD nutzen, um schnelle Konvergenzzeiten zu erreichen. Bei statischen Routen steht mittels BFD ein Werkzeug zur Verfügung, mit dem die Erreichbarkeit des „next hop“ der Route überwacht und diese bei Nichterreichbarkeit aus der Routing-Tabelle entfernt werden kann.

BFD verfügt im Unterschied zu Routing-Protokollen, wie RIP, OSPF oder IS-IS über keinen Mechanismus zur automatischen Erkennung von benachbarten Routern. Daher muss jede BFD-Session zwischen Routern entsprechend konfiguriert werden.

Marktführende Netzwerkkomponentenhersteller ermöglichen die Verarbeitung von BFD-Sessions in Hardware auf der Line-Card ihrer Router. Die Zahl der unterstützten BFD-Sessions ist geräteabhängig und bewegt sich im Wertebereich von unter hundert bis über tausend BFD-Sessions. Die Verwendung von Authentisierung kann je nach Router-Modell zu einer Verarbeitung der BFD-Sessions in Software durch die Router-CPU erfolgen und führt damit zu einer Limitierung der Zahl möglicher BFD-Sessions bzw. eine Erhöhung der BFD-Hello-Intervalle.

## Spezifikation

BFD ist in RFC 5880 für die Erkennung von MPLS-LSP-Fehlern beschrieben.

Die Beschreibung der Interaktion zwischen BFD und der Routing-Protokolle OSPF und IS-IS erfolgte in RFC 5881.

