Come RouterOS sceglie le rotte: distanza, scope e next-hop ricorsivo
Spiega come RouterOS seleziona la rotta migliore nel RIB tramite distance e metric, come risolve il next-hop via scope/target-scope e la differenza tra RIB e FIB.
RIB e FIB: due tabelle distinte
RouterOS mantiene due strutture dati per il routing. Il RIB (Routing Information Base) raccoglie tutte le rotte note — statiche, connected, OSPF, BGP, RIP — le confronta e sceglie la migliore per ogni prefisso. Il FIB (Forwarding Information Base) contiene solo le rotte attive necessarie per l'inoltro reale dei pacchetti: è la struttura che il kernel/hardware consulta per ogni pacchetto in transito. Capire questa distinzione è il punto di partenza per qualsiasi diagnosi di routing: una rotta può esistere nel RIB ma non essere usata (non in FIB) perché un'altra è stata preferita.
L'ordine di selezione: prefisso, distance, poi metric
Quando un pacchetto deve essere instradato, RouterOS applica i criteri in quest'ordine: (1) longest prefix match — vince sempre la rotta con la maschera più specifica (una /32 batte una /24 che batte una 0.0.0.0/0), a prescindere da tutto il resto; (2) a parità di prefisso, vince la distance più bassa; (3) a parità di distance, per le rotte dello stesso protocollo conta la metric (es. il costo OSPF). Se restano più candidate identiche, scatta l'ECMP (bilanciamento).
Distance: il criterio di selezione tra protocolli
La distance (preferenza amministrativa) è il criterio usato per scegliere tra rotte allo stesso prefisso provenienti da fonti diverse. Il valore più basso vince. È il modo con cui RouterOS decide, ad esempio, se fidarsi prima di una rotta statica o di una rotta OSPF per lo stesso /24. Valori predefiniti per fonte:
| Fonte della rotta | Distance | Note |
|---|---|---|
| Connected (interfaccia attiva) | 0 | Sempre la più fidata; non sovrascrivibile dal RIB |
| Static route | 1 | Modificabile con il parametro distance= |
| eBGP | 20 | Sessione BGP tra AS diversi |
| OSPF | 110 | IGP link-state |
| RIP | 120 | IGP distance-vector (raro nei WISP) |
| iBGP | 200 | Sessione BGP nello stesso AS |
Scope e target-scope: la risoluzione ricorsiva del next-hop
Molte rotte (es. eBGP, o una statica con gateway non sul link locale) puntano a un next-hop non direttamente connesso. RouterOS deve quindi risolvere ricorsivamente il gateway: cerca nel RIB un'altra rotta che porti a quel gateway. La regola è che il next-hop di una rotta viene risolto solo da rotte il cui scope è ≤ al target-scope della rotta da risolvere. È un meccanismo di sicurezza che evita catene di risoluzione infinite. Valori predefiniti:
| Tipo rotta | scope | target-scope |
|---|---|---|
| Connected | 0 | 10 (non usata per risolvere) |
| Static / IGP | 10 | 10 |
| eBGP | 200 | 30 |
| iBGP | 200 | 30 |
In pratica: una rotta statica con target-scope=10 viene risolta da una connected (scope=0 ≤ 10) o da un'altra statica/IGP (scope=10 ≤ 10), ma non da una rotta BGP (scope=200 > 10). Questo evita che una rotta appresa via BGP venga usata per risolvere il next-hop di un'altra. Se devi forzare una risoluzione ricorsiva 'lunga' (tipico: recursive next-hop per failover, vedi articolo dedicato) alzi il target-scope della rotta da risolvere.
# Tutte le rotte nel RIB (incluse le inattive) /ip/route/print detail # Solo rotte attive nel FIB (flag A = active) /ip/route/print where active=yes # Vedere come viene risolto un next-hop specifico /ip/route/print detail where gateway=203.0.113.1 # Tabella completa con scope/target-scope (per il debug ricorsivo) /ip/route/print detail where dst-address=0.0.0.0/0
Leggere i flag della tabella rotte
| Flag | Significato |
|---|---|
| A | Active — la rotta è in FIB e viene usata per l'inoltro |
| S | Static — rotta inserita manualmente |
| C | Connected — derivata da un IP su un'interfaccia attiva |
| D | Dynamic — appresa da un protocollo o dal DHCP client |
| o | OSPF |
| b | BGP |
| + | ECMP — fa parte di un gruppo equal-cost |
| B | Blackhole — scarta i pacchetti |
/ip/route/print where active=yes sul router di terminazione. Una rotta 0.0.0.0/0 senza flag 'A' significa default gateway giù (link ISP caduto, o check-gateway che ha disattivato la rotta).Continua con
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