Guida MikroTik
RoutingBase

Rotte statiche, default gateway e failover dual-WAN con check-gateway

Configura rotte statiche, il default gateway IPv4/IPv6 e un failover automatico dual-WAN usando check-gateway=ping con distance differenziate.

Rotte statiche di base

Una rotta statica indica esplicitamente a RouterOS come raggiungere una rete di destinazione. È la forma più semplice di routing manuale: ideale per reti piccole, per il default gateway verso l'ISP, o per forzare traffico specifico su un certo gateway. A differenza dei protocolli dinamici (OSPF/BGP) non si adatta da sola ai cambi di topologia: per questo si abbina a check-gateway quando serve resilienza.

Aggiungere rotte statiche
# Rotta verso una rete interna tramite gateway specifico
/ip/route/add dst-address=10.10.0.0/16 gateway=192.168.1.254 comment="LAN remota POP-2"

# Default gateway IPv4 (rotta 0.0.0.0/0)
/ip/route/add dst-address=0.0.0.0/0 gateway=203.0.113.1 comment="Default ISP1"

# Default gateway IPv6
/ipv6/route/add dst-address=::/0 gateway=2001:db8::1 comment="Default ISP1 v6"

# Rotta blackhole (scarta il traffico silenziosamente, niente ICMP unreachable)
/ip/route/add dst-address=10.99.0.0/24 type=blackhole comment="Subnet non instradata"

pref-src: forzare l'IP sorgente del traffico del router

Quando è il router stesso a generare traffico (ping, NTP, DNS verso l'esterno) su una rotta, sceglie come IP sorgente quello dell'interfaccia di uscita. Con due WAN questo può causare problemi (il return path non torna). Il parametro pref-src sulla rotta forza l'IP sorgente, utile per esempio per far uscire il management sempre da un IP noto/whitelistato.

Forzare l'IP sorgente con pref-src
# Il traffico generato dal router su questa rotta userà come sorgente 203.0.113.10
/ip/route/add \
  dst-address=0.0.0.0/0 \
  gateway=203.0.113.1 \
  pref-src=203.0.113.10 \
  comment="Default ISP1 con sorgente fissa"

check-gateway: monitoraggio del gateway

Il parametro check-gateway abilita il monitoraggio attivo del gateway. Se il gateway non risponde, RouterOS disattiva la rotta e attiva la successiva disponibile. Le opzioni sono: ping (ICMP echo verso il gateway), arp (ARP request, solo se il gateway è sul link locale), bfd (Bidirectional Forwarding Detection, per alta disponibilità). RouterOS marca il gateway irraggiungibile dopo alcune sonde fallite consecutive.

Limite importante di check-gateway=ping: verifica solo che il GATEWAY (il primo hop) risponda, NON che Internet funzioni davvero. Se l'ISP è 'su' ma il suo upstream è giù, check-gateway non se ne accorge. Per un failover che testa la raggiungibilità reale di Internet usa il recursive next-hop con Netwatch (articolo dedicato).

Failover dual-WAN con distance differenziate

La tecnica più comune per il failover è usare due default gateway con distance diverse: ISP1 attivo (distance=1), ISP2 in standby (distance=2). Quando ISP1 diventa irraggiungibile, la sua rotta viene disattivata e RouterOS promuove automaticamente la rotta ISP2. Quando ISP1 torna, la sua rotta (distance più bassa) riprende il controllo.

Configurazione failover dual-WAN
# ISP1 — primario, distance più bassa
/ip/route/add dst-address=0.0.0.0/0 \
  gateway=203.0.113.1 \
  distance=1 \
  check-gateway=ping \
  comment="ISP1-primario"

# ISP2 — backup, distance più alta
/ip/route/add dst-address=0.0.0.0/0 \
  gateway=198.51.100.1 \
  distance=2 \
  check-gateway=ping \
  comment="ISP2-backup"

# Verificare quale rotta è attiva
/ip/route/print where dst-address=0.0.0.0/0
# La rotta con flag 'A' è quella in uso

Il NAT con due WAN: l'errore che blocca il failover

Il problema più frequente nei failover dual-WAN non è il routing ma il NAT. Con una sola regola srcnat che fa masquerade su out-interface=ISP1, quando il traffico esce dall'ISP2 il NAT non lo mappa correttamente e le risposte non tornano. La soluzione è una regola srcnat per ogni WAN, legata all'interfaccia di uscita.

Doppio masquerade per failover/multi-WAN
# Una regola per ciascuna interfaccia WAN
/ip/firewall/nat/add chain=srcnat out-interface=ether-wan1 action=masquerade comment="NAT ISP1"
/ip/firewall/nat/add chain=srcnat out-interface=ether-wan2 action=masquerade comment="NAT ISP2"

# Pulizia connessioni dopo lo switch (evita sessioni 'appese' sul vecchio path)
/ip/firewall/connection/remove [find]
Best practice WISP: dopo il failover le connessioni TCP già aperte restano agganciate al vecchio path nel connection tracking. Per ripristinare velocemente la navigazione molti aggiungono uno script (o un on-up del Netwatch) che svuota /ip/firewall/connection al cambio rotta. Da usare con criterio: interrompe tutte le sessioni attive.

Failover ultra-rapido con BFD

BFD rileva i guasti in millisecondi invece di secondi, ideale per link critici. Richiede che anche il peer (router o switch dell'ISP) supporti BFD. Con check-gateway=bfd RouterOS avvia automaticamente una sessione BFD verso il gateway (vedi l'articolo BFD per la configurazione dei timer).

Failover sub-secondo con BFD
/ip/route/add dst-address=0.0.0.0/0 \
  gateway=203.0.113.1 \
  distance=1 \
  check-gateway=bfd \
  comment="ISP1-BFD"
check-gateway=ping è sufficiente per la maggior parte dei WISP. Usa BFD solo se il carrier supporta il protocollo e il link è davvero critico (SLA elevato). Per il caso più comune — 'l'ISP è su ma Internet è giù' — la soluzione corretta è il recursive next-hop, non il BFD.
static routerotta staticadefault gatewayfailoverdual-WANcheck-gatewaypingarpbfddistancewan redundancypref-srcridondanza wan

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