BFD

BFD (Bidirectional Forwarding Detection, RFC 5880) — лёгкий hello-протокол для sub-second детекции падения линка/соседа. Работает с любым L3-протоколом.

Зачем

Штатные hello таймеры протоколов — секунды или десятки. При падении линка (не физически, а логически — MPLS-tunnel, blackhole за parallel path) — конвергенция OSPF/BGP занимает 10+ сек.

BFD шлёт пакеты каждые 50-300ms → детекция за 150ms-1s.

Как работает

  1. Соседи договариваются о таймерах (Desired Min Tx, Required Min Rx).
  2. Шлют друг другу BFD Control пакеты (UDP 3784) в согласованном интервале.
  3. Если не получили N подряд — Detect Time = N × interval, считается down.
  4. Сообщают протоколу (OSPF/BGP/static route) → тот пересчитывает.

Режимы

Multi-hop BFD (RFC 5883)

BFD через несколько hops — для iBGP-сессий по маршрутизированной сети. Порт UDP 4784.

С чем работает

Скорость

ТаймерDetect time
3× 50ms150ms
3× 300ms900ms
3× 1s (default)3s

Проблема на софтовых platform

BFD на 50ms требует hardware offload (ASIC), иначе CPU задыхается. На Linux-роутерах — обычно 300ms+.

См. также