# 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 ```mikrotik :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 ```mikrotik 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 ```mikrotik 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: ```mikrotik /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.