Image Image Image Image Image Image Image Image Image Image

Ubuntu Server | June 9, 2023

Scroll to top

Top

2 Comments

Failover Mikrotik – Esempio 1

Failover Mikrotik – Esempio 1

Ho ricevuto molte richieste da amici e conoscenti, per scrivere un howto su come creare in maniera semplice un dual wan Failover con Mikrotik.
In questa prima guida faro vedere uno delle tante configurazioni possibili su Mikrotik e nel dettaglio utilizzando Netwatch.

Parliamo prima di tutto di come funziona normalmente un Failover, è una tecnica dove avendo due collegamenti ad internet si sceglie d’impostarne uno
come principale ed uno come backup. In caso di rottura di uno dei due il router/firewall ridirige le connessioni sul collegamento attivo senza
creare disservizi.

Riassunto configurazione:

ether1 – Wan1 Collegamento Principale
ether2 – wan2 Collegamenti Backup

Default GW Collegamenti:

Wan1 – 192.168.2.1
Wan2 – 192.168.3.1

 

Procediamo con le regole Firewall

/ip firewall filter
add action=reject chain=output comment=ForcePingGoogleDNS-to-Wan1 dst-address=8.8.8.8 out-interface=ether2 reject-with=icmp-host-unreachable

Con questa regola impedisco che il ping verso il DNS di Google passi dal collegamento di Backup

 

Impostiamo le rotte statiche

/ip route
add comment=ForcePingGoogleDNS-to-Wan1 distance=1 dst-address=8.8.8.8/32 gateway=192.168.2.1

In questo esempio forziamo la raggiungibilità del DNS di Google ad uscire dalla Wan1 che in questo caso ha come default gw 192.168.2.1

 

/ip route
add comment="Collegmaneto Primario" distance=1 gateway=192.168.2.1
add comment="Collegmaneto Secondario" distance=2 gateway=192.168.3.1

Nell’esempio di sopra aggiungiamo i due default gw specificando una distance diversa ed un commento che ci servirà dopo nello script

 

Configuriamo l’smtp per l’invio delle notifiche

/tool e-mail
set address=173.194.65.108 from=emailgoogle@gmail.com password=passwordemail port=587 start-tls=yes user=emailgoogle@gmail.com

 

 

Configuriamo lo script NetWatch

/tool netwatch
add comment=FailoverScript down-script="### Setto la Variabile per recuperare l'\
    hostname da aggiungere alla mail ###\r\
    \n:local SystemID [/system identity get name]\r\
    \n\r\
    \n### Setto la Variabile dove specifico a chi mandare la mail ###\r\
    \n:local emailAddressToNotify \"emaildinotifica@gmail.com\"\r\
    \n\r\
    \n### Scrivo un Messaggio nei Log ###\r\
    \n/log info \"WAN1 DOWN\"\r\
    \n\r\
    \n### Disabilito la Rotta Principale ###\r\
    \n/ip route set [find comment=\"Collegmaneto Primario\"] disabled=yes\r\
    \n\r\
    \n### Mando una mail che avviso del cambio rotta ###\r\
    \n/tool e-mail send start-tls=yes  subject=\"\$SystemID - Default Route Chan\
    ged to Wan2\" to=\$emailAddressToNotify body=\"Wan1 is Down. Default Route C\
    hanged to Wan2\"\r\
    \n\r\
    \n### Rimuovo le connessioni appese verso il provider Voip Eutelia/CloudItal\
    ia ###\r\
    \n/ip firewall connection remove [/ ip firewall connection find dst-address~\
    \"83.221.227.21\"]\r\
    \n\r\
    \n#### Rimuovo le connessioni appese dal Centralino Asterisk ###\r\
    \n/ip firewall connection remove [/ ip firewall connection find src-address~\
    \"192.168.1.253\"]\r\
    \n\r\
    \n### Aggiorno Il Dns Dinamico Mikrotik###\r\
    \n/ip cloud force-update" host=8.8.8.8 interval=5m timeout=1m up-script="###\
    \_Setto la Variabile per recuperare l'hostname da aggiungere alla mail ###\r\
    \n:local SystemID [/system identity get name]\r\
    \n\r\
    \n### Setto la Variabile dove specifico a chi mandare la mail ###\r\
    \n:local emailAddressToNotify \"emaildinotifica@gmail.com\"\r\
    \n\r\
    \n### Scrivo un Messaggio nei Log ###\r\
    \n/log info \"WAN1 is UP\"\r\
    \n\r\
    \n### Abilito la Rotta Principale ###\r\
    \n/ip route set [find comment=\"Collegmaneto Primario\"] disabled=no\r\
    \n\r\
    \n### Mando una mail che avviso del cambio rotta ###\r\
    \n/tool e-mail send start-tls=yes  subject=\"\$SystemID - Default Route Chan\
    ged to Wan1\" to=\$emailAddressToNotify body=\"Wan1 is UP. Default Route Cha\
    nged to Wan1\"\r\
    \n\r\
    \n### Rimuovo le connessioni appese verso il provider Voip Eutelia/CloudItal\
    ia ###\r\
    \n/ip firewall connection remove [/ ip firewall connection find dst-address~\
    \"83.221.227.21\"]\r\
    \n\r\
    \n#### Rimuovo le connessioni appese dal Centralino Asterisk ###\r\
    \n/ip firewall connection remove [/ ip firewall connection find src-address~\
    \"192.168.1.253\"]\r\
    \n\r\
    \n### Aggiorno Il Dns Dinamico Mikrotik###\r\
    \n/ip cloud force-update"

 

 

Lo script di sopra esegue le seguenti funzioni:

1)  Pinga il DNS di Google (8.8.8.8) e se non lo raggiunge cerca nei commenti delle rotte la voce “Collegamento Primario” e la disabilità, in questo modo il router instrada le connessioni sulla rotta successiva e quindi sul collegamento di backup che ha come distance 2.
2)  Rimuove le connessioni appese del provider voip e nell’esempio quelli di Eutelia/CloudItalia
3) Rimuove le connessioni appese del centralino asterisk interno
4) Invia una mail ad ogni cambio di stato (Abilitazione Wan1 e Disabilitazione) specificando l’hostname della Mikrotik
5) Ad ogni cambio di stato forza l’aggiornamento del DNS Dinamico integrato nelle ultime versioni di RouterOS

nei prossimi articoli farò altri esempi di configurazione

Se vi sono stato di aiuto offritemi una birra 😀

 

Comments

  1. Giuseppe Rubino

    grande, chiaro e conciso

Submit a Comment

*

adidas yeezy 650 boost adidas yeezy boost 650 adidas yeezy 650 boost colorways adidas yeezy 650 350 2 0 boost yeezy boost 650 adidas yeezy boost 650 supreme x nike air uptempo release info adidas yeezy boost 650 v1 sample detailed look adidas yeezy boost 650 v1 sample adidas yeezy boost 650 v1 sample adidas yeezy boost 650 v1 adidas yeezy 650 boost adidas yeezy boost 650 adidas yeezy 650 boost colorways adidas yeezy 650 350 2 0 boost yeezy boost 650 adidas yeezy boost 650 supreme x nike air uptempo release info adidas yeezy boost 650 v1 sample detailed look adidas yeezy boost 650 v1 sample