Ogni server che ho installato da che ci sono le connessioni fisse a Internet ha sempre avuto un DNS server locale senza inoltro al DNS del provider.
Il DNS è spesso visto come una bestia nera da parte di molti tecnici, secondo forse solamente al subnetting delle classi IP. Su Linux uno dei problemi di BIND è che nelle prime versioni non era esattamente verboso in merito ai messaggi di errore, anzi era del tutto ermetico, quasi binario: o partiva o non partiva e forse ti faceva la grazia di dire qual era la zona con l’errore, ma poi erano affari tuoi.
Questo ha fatto in modo che, negli anni, molti tecnici abbiano sempre evitato di aver a che fare con la bestia e preferivano delegare ad altri la (ri)soluzione del problema.
La risoluzione di un nome a dominio è una faccenda troppo delicata per essere lasciata in mano a terzi, specialmente da quando sono iniziati gli attacchi ai DNS.
Le buone ragioni per avere un DNS locale sono molteplici e sono di gran lunga maggiori di quelle che consigliano di non averlo:
- se qualcuno aggiorna una zona, i server DNS che hanno quella zona nella cache non recepiscono l’aggiornamento finché non scade il TTL (fenomeno detto anche “propagazione”); un reload o la pulizia della cache del DNS server che viene utilizzato permette di forzare il caricamento della nuova zona senza attendere la scadenza del TTL;
- i client dei domini Active Directory utilizzano il DNS per cercare i domain controller e altri tipi di risorse di rete; se un client ha configurato i DNS del provider potrebbe non riuscire ad accedere in rete, se ha configurato sia il DNS di AD sia quello del provider potrebbe avere dei ritardi, senza contare il fatto che vengono rivelati al provider i FQDN dei computer di AD;
- un down del DNS del provider (ci sono, ci sono…) tira giù tutti i clienti che hanno configurato quel server;
- gli oscuramenti o le censure di alcuni siti vengono spesso attuati creando una finta zona primaria nei DNS dei provider: un DNS server proprio aggira questo blocco; la fotografia di questo articolo è un esempio;
- una cache locale dei nomi da risolvere riduce di un pochino il traffico di rete sul canale Internet.
L’installazione di un DNS server locale è più semplice di quello che sembra.
Su Linux è sufficiente installare BIND, di norma la configurazione di default è già sufficiente per far funzionare il demone come server DNS in modalità cache, bisogna solamente verificare le impostazioni del firewall e di BIND per consentire query ricorsive solamente agli host della LAN. A livello client è necessario verificare le impostazioni di /etc/resolv.conf
per controllare quale DNS server si sta utilizzando. Alcuni tool come NetworkManager modificano quel file, quindi bisogna verificare che le modifiche non vengono sovrascritte.
Windows Server ha il proprio servizio DNS, che viene installato automaticamente assieme ad Active Directory.
Aprire la finestra delle proprietà del server DNS e controllare la linguetta Server d’inoltro che deve mostrare una lista vuota. Se sono elencati dei server, il servizio DNS inoltra a loro tutte le richieste che non riesce a soddisfare; se uno o più server indicati in questa lista non dovesse funzionare, la risoluzione dei nomi potrebbe essere rallentata o smettere del tutto di funzionare.
Un’altra linguetta da controllare è Parametri radice, che contiene l’elenco dei root DNS utilizzati dal servizio.
Se si riavvia il servizio DNS, la cache viene ripulita e eventuali zone aggiornate di recente vengono ricaricate con le ultime modifiche disponibili.
I firewall e i router di norma funzionano solamente da server di inoltro e non hanno dei server locali. Su pfSense è possibile installare il pacchetto opzionale Tinydns per avere un DNS server vero e proprio.
Se non si dispone di un server è possibile installare BIND su un Windows client, anche se in alcuni casi bisogna lavorarci un po’.
Lascia un commento