Failover Mikrotik LTE

In poche parole

Internet stabile sta diventando sempre più importante, soprattutto durante COVID19, quando gran parte della società deve lavorare a distanza. Una delle attività che fornisce l'accesso a Internet è l'acquisto di un link da un secondo operatore, molte persone decidono di scegliere qui l'accesso sotto forma di LTE.
link. Ci sono state molte idee su come gestire il secondo collegamento, che in genere dovrebbe essere solo uno di riserva. Purtroppo, nessuna soluzione ha soddisfatto le mie aspettative, anche se tutto "ha funzionato".
In cerca di ispirazione ho trovato un articolo pubblicato su Server Management da Timo Puistay dal 2017. Il metodo descritto di rilevamento del link attraverso l'allungamento e la manipolazione del routing si è dimostrato abbastanza efficiente, tuttavia non è stato in grado di rilevare i guasti del link quando si verifica una perdita di pacchetti o un drastico aumento del tempo di trasmissione dei pacchetti attraverso il link principale. Ho deciso di estendere questa idea con tutte le mie esigenze.

Ipotesi

Le linee guida sono le seguenti:
  • Rilevazione rapida di una perdita con la connessione principale;
  • Rilevare un aumento dei tempi di ritardo sulla connessione principale e interpretarli come un problema;
  • Rilevare un guasto della connessione Internet oltre il mio gateway locale presso il mio ISP;
  • Rilevare una riparazione della connessione del collegamento principale;
  • MikroTik
  • Automazione completa;
  • Utilizza il tuo router MikroTik

Schema di rete

Failover Microtik LTE Clicca per ingrandire!
Failover Microtik LTE

Configurazione degli script - Netwatch

Il principio si basa sull'utilizzo dello strumento Netwatch implementato in MikroTik RouterOS con supporto di script e verifica aggiuntiva estendendo il percorso di routing e verificando la disponibilità del gateway predefinito.
/system script add dont-require-permissions=no name=NetWatch-check owner=admin policy=\ reboot,read,write,policy,test source="#Tutaj mozesz zmienic wartosc\r\ \n# ilosc czasu w minutach jak dlugo lacze BACKUP bedzie preferowane\r\ \n# zanim sprawdzimy czy lacze glowne dziala prawidlowo\r\ \n#\r\ \n:global nwwait 15;\r\ \n# pozostaw bez zmian\r\ \n:global nwgw2;\r\ \n:tonum nwgw2;\r\ \n:local nwstatus;\r\ \n:local nwgwstatus;\r\ \nset nwgwstatus ([/tool netwatch get value-name=status [find comment=\ \"NetWatch\"]]);\r\ \nset nwstatus ([/ip route get value-name=distance number=[/ip route f\ ind comment=\"BACKUP\"]]);\r\ \n:if (\$nwstatus = \"6\") do={\r\ \nset nwgw2 (nwgw2 + 1)\r\ \n}\r\ \n:if ((\$nwgw2 > \$nwwait) and (\$nwgwstatus = \"up\")) do={ :log err\ or \"Master GW: OK\"\r\ \n/ip route set [find comment=\"BACKUP\"] distance=66;\r\ \nset nwgw2 (0)\r\ \n}\r\ \n" add dont-require-permissions=no name=NetWatch owner=admin policy=\ reboot,read,write,test source="/log error \"Master GW: PROBLEM\"\r\ \n/ip route set [find comment=\"BACKUP\"] distance=6\r\ \n\r\ \n" add dont-require-permissions=no name=NetWatch-init owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ source="#ilosc sprawdzen zanim lacze sie przelaczy\r\ \n:global nwwait 20;\r\ \n"
Script utilizzati: NetWatch - script lanciato in caso di guasto del collegamento principale NetWatch-check - uno script in esecuzione temporanea per verificare il ritorno al link principale, in questo script possiamo definire per quanto tempo il link BACKUP dal momento del passaggio rimarrà il link principale prima di verificare se il link principale funziona correttamente. Nella situazione di default è di 15 minuti.

Attivazione temporanea delle sinapsi

Il passo successivo è quello di definire la tempistica degli script. /system scheduler add interval=1m name=NetWatch on-event=\ "/system script run NetWatch-check\r\ \n" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ start-date=apr/11/2020 start-time=17:31:44 È ora di configurare lo strumento Netwatch Mikrotika. Invece di A.B.C.D, dovrebbe essere dato l'indirizzo di default del gateway principale del link. Il valore timeout può specificare quanto sarà sensibile il rilevamento del guasto del collegamento principale. /tool netwatch add comment=NetWatch down-script="/system script run NetWatch\r\ \n" host=A.B.C.D interval=5s timeout=100ms

Configurazione del routing

Infine, configurare il routing, usando il trucco con extended routing route e verificando la disponibilità del gateway di default. Invece di A.B.C.D, fornire l'indirizzo del gateway predefinito per il link principale, e invece di E.F.G.H, fornire l'indirizzo del gateway predefinito per il link di backup BACKUP. /ip route add comment=MASTER distance=10 gateway=10.255.66.1 add comment=BACKUP distance=66 gateway=10.255.67.1 add check-gateway=ping distance=1 dst-address=10.255.66.1/32 gateway=\ 208.67.220.220 scope=10 add check-gateway=ping distance=1 dst-address=10.255.66.1/32 gateway=\ 8.8.8.8 scope=10 add check-gateway=ping distance=1 dst-address=10.255.67.1/32 gateway=\ 208.67.222.222 scope=10 add check-gateway=ping distance=1 dst-address=10.255.67.1/32 gateway=\ 8.8.4.4 scope=10 add distance=1 dst-address=8.8.4.4/32 gateway=E.F.G.H scope=10 add distance=1 dst-address=8.8.8.8/32 gateway=A.B.C.D scope=10 add distance=1 dst-address=208.67.220.220/32 gateway=A.B.C.D scope=10 add distance=1 dst-address=208.67.222.222/32 gateway=E.F.G.H scope=10 Utilizziamo il popolare indirizzo ip dei servizi dns Google (8.8.8.8.8, 8.8.4.4) e OpenDNS (208.67.220.220, 208.67.222.222), che controlliamo se sono raggiungibili attraverso il link di un determinato operatore. Se disponibile, il gateway predefinito per il collegamento è attivato.

Sintesi e conclusioni

Nella soluzione di cui sopra, abbiamo usato una doppia verifica del corretto funzionamento del collegamento Internet, una volta controllando il gateway predefinito del collegamento principale, e inoltre verificando la disponibilità di host "lontani in Internet" raggiunti da specifici collegamenti. Questa soluzione ha una certa restrizione, nel caso in cui uno degli operatori cambi il parametro di default del gateway quando rinegozia la connessione non siamo in grado di configurarlo direttamente.
In questo caso, utilizzare un router separato per questa connessione come negli schemi sottostanti e indicarlo come gateway di connessione.
Schema di failover Microtik2 Clicca per ingrandire!
Schema di failover Microtik2
Schema di failover Microtik3 Clicca per ingrandire!
Schema di failover Microtik3
Sono convinto che la soluzione può essere migliorata e ulteriormente sviluppata, gli script che ho preparato possono essere scritti in modo diverso mantenendo il principio fondamentale della soluzione.
Per ulteriori discussioni su questo argomento, visitate il nostro FORUM, dove potete condividere la vostra configurazione e i vostri commenti su questo argomento con tutta la comunità.
Autore: Wojciech Repiński

Prodotti dall'articolo

La sessione scadrà tra:
Secondi
Verrai disconnesso alla scadenza della sessione
Scegli un paese o una regione diversa per acquistare nella lingua adatta a te
Il nostro sito utilizza i cookie (i cosiddetti "cookies"). Puoi trovare ulteriori informazioni su questi file, nonché su come trattiamo i tuoi dati personali, nella nostra politica sulla privacy.
Sei nella pagina per paese / regione:
Italiano (IT)
Seleziona un paese o una regione diversi per fare acquisti nella lingua che preferisci.