Go to file
2025-01-09 11:06:47 +00:00
dns-healtcheck Add dns-healtcheck 2025-01-08 16:58:50 +00:00
readme.md Add readme.md 2025-01-09 11:06:47 +00:00

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

  1. MikroTik RouterOS: Assicurati che hai un router MikroTik in esecuzione su RouterOS.
  2. Configurazione SMTP: Configura SMTP in /tools/email per inviare notifiche via email.
  3. 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:

  1. Configurazione SMTP: Assicurati che la configurazione SMTP sia corretta in /tools/email.
  2. Configurazione DNS: Verifica che i server DNS primario e secondario siano raggiungibili.
  3. 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.