Add readme.md

This commit is contained in:
Mattia Tadini 2025-01-09 11:06:47 +00:00
parent 00676cf152
commit 719783a484

85
readme.md Normal file
View File

@ -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.