Za długie przerwy w łączności?

Awaria sieci

Protokół BFD został opracowany ze względu na niedoskonałość dynamicznych protokołów rutingu w zakresie wykrywania awarii urządzeń w sieci i wyznaczania trasy zastępczej. BFD potrafi szybko reagować na takie sytuacje - wykrywa awarie w czasie rzędu milisekund, podczas gdy protokołom rutingu zajmuje to o wiele dłużej.

BFD zostało stworzone do wykrywania awarii łączności pomiędzy dwoma urządzeniami przekazującymi ruch sieciowy. Uzupełnia ono działanie mediów fizycznych, które nie wspierają wykrywania jakichkolwiek uszkodzeń jak np. Ethernet, MPLS, tunele czy obwody wirtualne (virtual circuits).  Konfiguracja BFD jest bardzo elastyczna – można włączyć je globalnie a następnie wyłączać je dla poszczególnych interfejsów. Alternatywną metodą wdrożenia jest włączenie protokołu dla każdego rutera sąsiedniego lub dla poszczególnych interfejsów. Sposób konfiguracji zależy od budowy sieci – wybieramy metodę, która wymaga mniej konfiguracji.

Efektem działania protokołu BFD jest zmiana logicznego stanu interfejsu, na którym oczekujemy odpowiedzi od ruterów partnerskich. W przypadku gdy nie otrzymamy kilku odpowiedzi po kolei stan interfejsu jest zmieniany na ‘down’ i wyłączane są wszystkie ścieżki rutingu oparte o ten interfejs. Jednakże nie jest to tożsame z wyłączeniem interfejsu.

Bardzo istotnym parametrem konfiguracyjnym BFD jest czas oczekiwania na odpowiedź od ruterów partnerskich. Zbyt krótki czas oczekiwania powoduje przedwczesne wyłączenie interfejsu, natomiast zbyt długi powoduję stratę czasu na oczekiwanie odpowiedzi na uszkodzonym łączu. Nie istnieje uniwersalna wartość tego parametru, jest ona inna dla każdej sieci i urządzenia.

Wysokowydajne urządzenia sieciowe odpowiadają szybko, jeżeli nie są obciążone. W dużych sieciach czas uzyskania odpowiedzi wydłuża się ze względu na większą ilość węzłów do pokonania niż w sieciach małych. Te dwa główne czynniki – obciążenie procesora i czas przejścia przez sieć wpływają na wielkość czasu oczekiwania jaki trzeba skonfigurować. W przypadku ustawienia zbyt krótkiego czasu, BFD nie pozwoli na połączenie do urządzenia sieciowego ale będzie ciągle próbować. Generuje to niepotrzebny, dodatkowy ruch i pozostawia urządzenie jako niemonitorowane. Jeżeli tak się zdarzy należy spróbować ustawić dłuższy czas aby BFD mogło nawiązać połączenie z urządzeniami sieciowymi.

BFD jest ustandaryzowane – dokumenty RFC5880 i RFC5881 opisują sposób implementacji i stosowania tego protokołu.

Konfiguracja BFD na urządzeniach FortiGate

FortiGate wspiera BFD jako część rutingu dynamicznego OSPF i BGP. Protokół musi być włączony globalnie, globalnie również konfigurujemy jego parametry takie jak czas co jaki są wysyłane pakiety BFD jak i czas, jaki oczekujemy na odpowiedź. Dodatkowo ustawiamy też ilość straconych po kolei odpowiedzi, po której przekroczeniu wyłączamy ruting  przez dany interfejs.

config system settings
set bfd enable
set bfd-desired-min-tx 50
set bfd-required-min-rx 50
set bfd-detect-mult 3
set bfd-dont-enforce-src-port disable
end

Domyślne wartości parametrów protokołu na urządzeniu FortiGate powinny być zmienione na takie, które odpowiadają naszej sieci.