| dns-healtcheck | ||
| readme.md | ||
Script di Healt Check del DNS per MikroTik RouterOS
Questo script controlla la salute dei tuoi server DNS primari e secondari. Se il server DNS primario non risponde, passerà al server DNS di backup e invierà una notifica email.
Prerequisiti
- MikroTik RouterOS: Assicurati che hai un router MikroTik in esecuzione su RouterOS.
- Configurazione SMTP: Configura SMTP in
/tools/emailper inviare notifiche via email. - Schedulatore delle Attività: Imposta uno scheduler di attività per eseguire lo script periodicamente.
Variabili
sysname: Recupera il nome del sistema del tuo router MikroTik.Email: Sostituisci[YOUR EMAIL ADDRESS FOR NOTIFICATIONS HERE]con la tua email di notifica.PrimaryDNS: Sostituisci[YOUR PRIMARY DNS IP HERE]con l'indirizzo IP del tuo server DNS primario (es. 8.8.8.8 per Google).BackupDNS: L'indirizzo IP del server DNS di backup (di default: 1.1.1.1 per Cloudflare).TestDomain: Il dominio da testare nella risoluzione del DNS (di default: mikrotik.com).
Passaggi dello Script
Passaggio 1: Definizione delle Variabili
:local sysname [/system identity get name];
:local Email "[YOUR EMAIL ADDRESS FOR NOTIFICATIONS HERE]";
:local PrimaryDNS "[YOUR PRIMARY DNS IP HERE]";
:local BackupDNS "1.1.1.1";
:local TestDomain "mikrotik.com";
:local ConfiguredDNS [/ip dns get servers];
Passaggio 2: Controlla se il Server DNS Primario è Configurato
if ($PrimaryDNS = $ConfiguredDNS) do={
:do {
:put [:resolve $TestDomain server $ConfiguredDNS];
/log info "Controllo della salute del DNS primario $PrimaryDNS completato, nessun problema";
} on-error={
:put "Errore durante il controllo della salute del DNS";
/log error "Controllo della salute del DNS fallito per il server DNS primario: $PrimaryDNS";
}
}
Passaggio 3: Controlla se il Server DNS Secondario è Configurato
if ($BackupDNS = $ConfiguredDNS) do={
:do {
:put [:resolve $TestDomain server $PrimaryDNS];
/log info "Risoluzione del DNS primario $PrimaryDNS funzionante ora";
/log info "Ripristino della configurazione di DNS originale";
/ip dns set servers=$PrimaryDNS;
/tool e-mail send to=[$Email] subject="Il server DNS primario $PrimaryDNS è ora disponibile" body="Il server DNS primario $PrimaryDNS è tornato disponibile. La configurazione di DNS è stata ripristinata.";
} on-error={
:put "Errore durante il controllo della salute del DNS";
/log error "Controllo della salute del DNS fallito per il server DNS secondario: $BackupDNS";
}
}
Utilizzo
Passaggio 1: Copia e Incolla lo Script
Incolla lo script sopra in un nuovo script sul tuo router MikroTik.
Passaggio 2: Sostituisci le Variabili
Sostituisci [YOUR EMAIL ADDRESS FOR NOTIFICATIONS HERE] e [YOUR PRIMARY DNS IP HERE] con la tua email di notifica e l'indirizzo IP del tuo server DNS primario.
Passaggio 3: Esegui lo Script Manualmente
Per testare lo script manualmente, eseguilo dalla Terminal:
/system script run dns-healthcheck
Controlla i log in /log print per vedere se lo script sta funzionando correttamente.
Soluzioni di Problemi
Se incontri problemi, controlla quanto segue:
- Configurazione SMTP: Assicurati che la configurazione SMTP sia corretta in
/tools/email. - Configurazione DNS: Verifica che i server DNS primario e secondario siano raggiungibili.
- Log: Controlla i log per eventuali messaggi di errore o eccezioni.
Seguendo questi passaggi, dovresti essere in grado di impostare uno script robusto di controllo della salute del DNS per il tuo router MikroTik usando RouterOS.