BFD - Troubleshooting
Método general (de lo mínimo a lo complejo)
- ¿Ambos extremos tienen BFD configurado en la interfaz? (es bidireccional).
- ¿La sesión sube?
show bfd neighbors→ estadoUp. - ¿Hay un cliente que use la sesión?
show bfd neighbors details(Registered protocols). - ¿Los timers son compatibles entre extremos?
- ¿El cliente reacciona al caer BFD?
Comando base:
Router# show bfd neighbors details
Caso 1 — No se crea la sesión BFD
Síntoma: show bfd neighbors no lista al vecino.
Causas:
- Falta BFD en el otro extremo (bidireccional).
- No hay ningún cliente que “encienda” la sesión: BFD no arranca solo; necesita una ruta estática o un protocolo asociado.
Diagnóstico:
Router# show bfd neighbors
Router# show running-config interface gigabitEthernet 0/0 | include bfd
Solución: configurar los timers en ambos extremos y asociar un cliente.
Router(config)# interface gigabitEthernet 0/0
Router(config-if)# bfd interval 300 min_rx 300 multiplier 3
Router(config)# ip route static bfd gigabitEthernet 0/0 10.0.0.2
Router(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
Caso 2 — La sesión BFD está Up pero el protocolo no la usa
Síntoma: show bfd neighbors muestra Up, pero al caer el enlace el protocolo tarda igual que siempre.
Causa: el protocolo no está asociado a BFD (falta bfd all-interfaces, ip ospf bfd, neighbor ... fall-over bfd o standby bfd).
Diagnóstico:
Router# show bfd neighbors details ! ¿aparece el protocolo en "Registered protocols"?
Solución: asociar el cliente correspondiente.
Router(config)# router ospf 1
Router(config-router)# bfd all-interfaces
Caso 3 — La sesión “aletea” (sube y baja)
Síntoma: la sesión BFD cambia de estado constantemente y provoca reconvergencias.
Causa: timers demasiado agresivos para el enlace (CPU/latencia no los soportan), o un enlace físicamente inestable.
Diagnóstico:
Router# show bfd neighbors details | include Interval|State
Solución: aflojar los timers (subir el intervalo o el multiplier) o estabilizar el medio.
Router(config-if)# bfd interval 500 min_rx 500 multiplier 4
Caso 4 — Timers incompatibles entre extremos
Síntoma: la sesión no llega a Up o negocia valores inesperados.
Causa: valores muy dispares o no soportados por una de las plataformas (algunos equipos tienen mínimos distintos).
Diagnóstico:
Router# show bfd neighbors details ! comparar Tx/Rx negociados
Solución: usar timers iguales y soportados en ambos extremos (BFD negocia al valor más conservador).
Router(config-if)# bfd interval 300 min_rx 300 multiplier 3
Caso 5 — BFD no soportado por hardware/software
Síntoma: el comando bfd interval no existe, o la sesión nunca sube pese a estar bien.
Causa: la plataforma/imagen IOS no soporta BFD en esa interfaz, o requiere modo asíncrono/echo específico.
Diagnóstico:
Router# show bfd neighbors details | include echo|mode
Solución: verificar soporte en la documentación de la plataforma; si el modo echo causa problemas, desactivarlo.
Router(config)# no bfd echo
Recuerda el orden: BFD en ambos extremos, un cliente que encienda la sesión, sesión
Up, el protocolo/ruta registrado en la sesión, y timers compatibles. Si el protocolo no converge rápido, casi siempre falta asociarlo (Registered protocols vacío).