BFD
siglaSignifica: Bidirectional Forwarding Detection
Bidirectional Forwarding Detection - um fluxo minúsculo e agnóstico de protocolo de hellos que detecta um caminho morto em milissegundos, para os protocolos de roteamento comutarem antes de o usuário perceber.
Protocolos de roteamento mantêm hellos deliberadamente lentos (segundos) por estabilidade; o BFD (RFC 5880) roda o batimento rápido por eles: dois pontos trocam pacotes de controle mínimos em intervalos comumente ajustados a dezenas de milissegundos, declaram o caminho morto após algumas perdas, e notificam todos os clientes registrados - BGP, OSPF, IS-IS, rotas estáticas, VRRP - de uma vez. Uma sessão protege todos, e essa é a elegância: a detecção de vida vira um serviço compartilhado em vez de cirurgia de timers por protocolo. A echo function empurra a detecção para o próprio plano de encaminhamento. A regra prática: onde failover importa e o meio não sinaliza perda de link, o BFD é a diferença entre 50 milissegundos e 30 segundos.
O tempo de detecção nunca viaja no pacote: cada receptor o calcula como o Detect Mult remoto vezes o maior entre o seu Required Min RX Interval e o Desired Min TX Interval remoto, e assim 3 vezes 300 ms dá 900 ms, o default do FRRouting. Enquanto a sessão não está Up, os dois lados enviam no máximo um pacote por segundo, e o three-way handshake passa por Down, Init e Up, então uma sessão configurada de um lado só nunca sobe.
O BFD de hop único roda em UDP 3784, com TTL 255 conferido na chegada; sessões multihop usam a porta 4784 e devem usar autenticação no lugar, e a RFC 7130 roda uma sessão micro-BFD por membro de link aggregation na porta 6784. A RFC 5882 dá ao BFD um papel consultivo: o protocolo cliente decide o que fazer, e o cliente deve ser o protocolo mais baixo da hierarquia, o OSPF e não uma sessão iBGP que depende dele.
Ele falha de jeitos conhecidos. Rodando no plano de controle, pode ficar preso à CPU e deixar passar um plano de encaminhamento morto; policers, shapers e firewalls podem sufocá-lo; uma sessão sobre um bundle não enxerga um membro morto; e um atacante com controle total do enlace pode encaminhar só os pacotes BFD, fazendo o enlace parecer up. O show bfd peers do FRRouting mostra os timers dos dois lados, o detection timeout calculado e o último diagnóstico.
Também conhecido como: bfd, echo function, liveness detection
Fontes
- RFC 5880, Bidirectional Forwarding Detection (BFD), June 2010: sections 3, 6.1, 6.8.3, 6.8.4, 7 and 9 (read 2026-10-19)
- RFC 5881, Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop), June 2010: sections 4 and 5 (read 2026-10-19)
- RFC 5882, Generic Application of Bidirectional Forwarding Detection (BFD), June 2010: sections 2 and 4.4 (read 2026-10-19)
- FRRouting documentation, BFD (bfdd), latest: Peer / Profile Configuration and Status (read 2026-10-19)