Configuración de BFD (Bidirectional Forwarding Detection) para BGP. BFD detecta fallos de enlace en milisegundos, mucho más rápido que los timers nativos de BGP (holdtime de 180s por defecto). Se usa para acelerar la convergencia cuando un enlace o vecino cae.
El problema que resuelve
Sin BFD, BGP detecta que un vecino cayó solo cuando expira el holdtime (180s por defecto). Durante esos segundos, el tráfico se sigue enviando hacia un next-hop muerto (agujero negro). Bajar los timers de BGP ayuda, pero consume más CPU y no baja de cierto punto de forma segura. BFD resuelve esto con un protocolo ligero y dedicado a detección de fallos, que corre por debajo y avisa a BGP casi al instante.
Configuración
BFD se configura en dos partes: los parámetros del protocolo en la interfaz, y la asociación con el vecino BGP.
Habilita BFD en la interfaz con sus timers
-
Comando:
R1(config-if)# bfd interval <ms> min_rx <ms> multiplier <n> -
Ejemplo:
R1(config-if)# bfd interval <ms> min_rx <ms> multiplier <n> -
interval= cada cuánto se envían paquetes BFD (en milisegundos). -
min_rx= intervalo mínimo esperado de recepción. -
multiplier= cuántos paquetes consecutivos se pueden perder antes de declarar el fallo.
Asocia BFD a un vecino BGP
- Comando:
R1(config-router)# neighbor <ip-peer> fall-over bfd - Ejemplo:
R1(config-router)# neighbor <ip-peer> fall-over bfd
Con esto, BGP delega la detección de fallos a BFD para ese vecino. Cuando BFD detecta que el peer cayó, notifica a BGP inmediatamente y la sesión se tumba sin esperar el holdtime.
Ejemplo
R1 usa BFD con su vecino 10.0.0.2, enviando paquetes cada 50 ms y declarando fallo tras 3 pérdidas (detección en ~150 ms):
R1(config)# interface FastEthernet0/0
R1(config-if)# bfd interval 50 min_rx 50 multiplier 3
R1(config)# router bgp 100
R1(config-router)# neighbor 10.0.0.2 fall-over bfd
Si el enlace o el vecino cae, BFD lo detecta en ~150 ms y avisa a BGP, en vez de esperar los 180s del holdtime. La convergencia pasa de segundos a milisegundos.
BFD debe configurarse en ambos extremos
Como BGP, BFD es bidireccional: ambos routers deben tener BFD habilitado en la interfaz y
fall-over bfdhacia el otro. Si solo un lado lo tiene, la sesión BFD no se establece y no hay detección acelerada.
BFD sirve a varios protocolos
BFD no es exclusivo de BGP. El mismo mecanismo acelera la detección de fallos en OSPF, EIGRP y otros. Se configura una vez en la interfaz y cada protocolo lo asocia con su comando (
fall-over bfden BGP,bfden OSPF, etc.).
Verificación
- Ver el estado de las sesiones BFD:
R1# show bfd neighbors
Muestra los vecinos BFD, su estado (
Up), y los timers negociados. La sesión BFD debe estarUppara que la detección funcione.
- Ver detalle de una sesión BFD:
R1# show bfd neighbors details
Incluye los intervalos negociados y el multiplier efectivo.
- Confirmar que BGP está usando BFD para un vecino:
R1# show ip bgp neighbors 10.0.0.2
En la salida aparece una línea indicando que el fall-over usa BFD para ese vecino.