diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..33ab4b9 --- /dev/null +++ b/readme.md @@ -0,0 +1,85 @@ +# 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. \ No newline at end of file