Guida MikroTik
RoutingAvanzato

BFD in RouterOS v7: rilevamento guasti sub-secondo per OSPF e BGP

Configura BFD (Bidirectional Forwarding Detection) in RouterOS v7 per rilevare i guasti di link in millisecondi e accelerare la convergenza di OSPF, BGP e delle rotte statiche.

Cos'è BFD e perché serve

I protocolli di routing rilevano i guasti tramite i loro timer 'hello' (OSPF di default impiega ~40 s a dichiarare morto un neighbor; BGP fino a 180 s). Su questi tempi i clienti restano senza connettività per parecchi secondi a ogni guasto. BFD è un protocollo leggerissimo, indipendente dal media, che scambia pacchetti hello molto rapidi (millisecondi) e notifica immediatamente al protocollo di routing che il link è caduto, portando la convergenza da decine di secondi a sotto il secondo. È particolarmente prezioso quando il link fisico non segnala la caduta (es. una radio o uno switch in mezzo che resta 'up' anche se il path è interrotto).

I timer BFD

ParametroSignificatoValore tipico WISP
tx-intervalIntervallo di invio dei pacchetti BFD200ms (radio) / 100ms (fibra)
rx-intervalIntervallo minimo di ricezione atteso200ms / 100ms
multiplierN. di pacchetti persi prima di dichiarare down3-5
Parametri BFD principali

Il tempo di rilevamento è circa rx-interval × multiplier. Con 200ms × 3 ottieni un detection time di ~600ms. Su link radio non scendere troppo: tx-interval troppo aggressivi causano falsi positivi quando la radio ha micro-interruzioni (meteo, interferenze).

Configurare un profilo BFD e applicarlo a OSPF
# 1. Definire una configurazione BFD (timer per link in fibra, aggressiva)
/routing/bfd/configuration/add \
  interfaces=ether2 \
  min-tx=100ms \
  min-rx=100ms \
  multiplier=3 \
  comment="BFD link fibra POP-2"

# 2. Abilitare BFD sull'interface-template OSPF di quel link
/routing/ospf/interface-template/set [find interfaces=ether2] \
  cost=10 bfd=yes

# 3. Verificare le sessioni BFD attive
/routing/bfd/session/print
# Lo stato deve essere 'up' su entrambi i lati
BFD su una connessione BGP
# Abilitare BFD sulla sessione BGP: alla caduta del link BFD,
# la sessione BGP viene abbattuta SUBITO senza aspettare l'hold-time (180s)
/routing/bgp/connection/set [find name=peer-upstream] use-bfd=yes

# Configurazione BFD verso l'IP del peer BGP
/routing/bfd/configuration/add \
  interfaces=ether-wan1 \
  min-tx=200ms min-rx=200ms multiplier=4 \
  comment="BFD verso upstream BGP"
BFD su rotta statica (check-gateway=bfd)
# Failover statico sub-secondo: il gateway viene monitorato via BFD
/ip/route/add dst-address=0.0.0.0/0 \
  gateway=203.0.113.1 \
  distance=1 \
  check-gateway=bfd \
  comment="Default ISP1 con BFD"
BFD richiede supporto su ENTRAMBI i lati: il peer (router ISP, switch, altro MikroTik) deve parlare BFD, altrimenti la sessione non sale e il routing resta sui timer normali. Concordalo con l'upstream prima di abilitarlo su una sessione BGP di produzione.
Non esagerare con timer aggressivi su link radio condivisi o instabili: un BFD a 50ms su una PtMP affollata genererà flapping continuo (su/giù) che destabilizza OSPF/BGP più del problema che volevi risolvere. Parti da 200ms×3 e stringi solo su link fisici stabili (fibra dedicata).
BFDbidirectional forwarding detectionconvergenzafast failoverospf bfdbgp bfdtx-intervalrx-intervalmultipliersub-secondrilevamento guasti

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS