raspberrypi_dns

Creare un DNS Server con Raspberry Pi

Creare un server DNS sul tuo Raspberry Pi utilizzando Dnsmasq

Un server DNS è ciò che gestisce la traduzione di un nome di dominio come raspberryhome.it nella sua destinazione finale. È ciò che aiuta a trasformare gli indirizzi IP da qualcosa come “89.46.108.61” in qualcosa di più intuitivo (un nome di dominio).

Configurando un server DNS su Raspberry Pi, è possibile utilizzarlo per migliorare il tempo impiegato dal computer per eseguire le richieste DNS. Il server DNS sul Pi farà richieste ad altri server per determinare l’IP per quella richiesta e memorizzarlo nella cache. Ciò significa che quando richiedi nuovamente lo stesso nome di dominio, ti verrà restituita tale richiesta quasi istantaneamente. Se desideri configurare un server DNS sul tuo Raspberry Pi con funzionalità extra predefinite, ti consigliamo di consultare la nostra guida sull’installazione di Pi-Hole. Pi-Hole è un pacchetto software fornito con un pacchetto di funzionalità extra come il blocco dei nomi di dominio e un’interfaccia facile da usare che ti consente di gestire con facilità la tua configurazione. In questa guida useremo invece una soluzione più semplice e più leggera come Dnsmasq. Prima di iniziare a configurare il Raspberry Pi, è necessario assicurarsi di avere il Pi configurato per utilizzare un indirizzo IP statico.

Strumenti Necessari

Opzionali

Installiamo Dnsmasq

  1. In questo tutorial, faremo uso del sistema operativo Raspbian. Altri sistemi operativi potrebbero funzionare, ma non sono garantiti. Prima di poter configurare il nostro Raspberry Pi come server DNS, dobbiamo assicurarci che tutto sia aggiornato. Possiamo farlo eseguendo i seguenti due comandi sul nostro Raspberry Pi.
sudo apt-get update

sudo apt-get upgrade
  1. Una volta completato l’aggiornamento, possiamo procedere all’installazione del software che utilizzeremo per configurare il nostro Pi come server DNS. Questo pacchetto software che stiamo installando si chiama DNSmasq. DNSmasq è un server DNS leggero e semplice che è stato progettato pensando alle reti su piccola scala. Grazie alla sua leggerezza, DNSmasq è perfetto per configurare un server DNS su un Raspberry Pi in quanto non esaurirà le sue limitate risorse. Possiamo installare dnsmasq sul nostro Raspberry Pi eseguendo il comando seguente.
sudo apt-get install dnsmasq

Configurare il nostro server DNS

Ora che siamo andati avanti e abbiamo installato dnsmasq sul nostro Raspberry Pi, dovremmo ora apportare alcune modifiche alla configurazione.

Le modifiche che apporteremo al file di configurazione consentiranno a Raspberry Pi di funzionare come un server DNS migliore. Possiamo iniziare a modificare il file eseguendo il comando seguente.

sudo nano /etc/dnsmasq.conf

Per trovare quello che cerchi più facilmente, puoi usare la combinazione di tasti CTRL + W (che permette di cercare il testo richiesto).

  1. Cerchiamo il testo #domain-needed e eliminiamo il commento sostituendolo con domain-needed. Questa opzione modifica il server DNS in modo che non inoltri nomi che non contengono un punto (.) O un nome di dominio (.com) a DNS server esterni. In questo modo manterrai tutti i nomi semplici come “localhost” o “pc_casa” sulla rete locale.
  2. Cerchiamo il testo #bogus-priv e eliminiamo il commento sostituendolo con bogus-priv. Questa opzione impedisce al server DNS di inoltrare query di ricerca inversa con un intervallo IP locale ai server DNS esterni. In questo modo si velocizza l’accesso alla rete locale poiché gli indirizzi IP interni non verranno mai inviati agli altri server DNS.
  3. Cerchiamo il testo #no-resolv e eliminiamo il commento sostituendolo con no-resolv. Con questa opzione, diciamo a dnsmasq di non leggere il file “/etc/resolv.conf” per i suoi nameserver e di fare invece affidamento su quelli specificati nella sua configurazione.
  4. Cerchiamo il testo #server=/localnet/192.168.0.1 e sostituiamolo con i dns server di Google (è possibile anche utilizzare altri dns server pubblici come cloudflare o opendns):
server=8.8.8.8
server=8.8.4.4
  1. Cerchiamo il testo #cache-size=150 e eliminiamo il commento sostituendolo con cache-size=150. Con questa opzione stiamo aumentando la quantità di richieste DNS che il software dnsmasq memorizzerà nella cache. Aumentando le dimensioni della cache, dovremmo essere in grado di migliorare le prestazioni complessive del nostro server DNS presente sul Raspberry Pi e ridurre i tempi di esecuzione delle richieste DNS.
  1. Dopo aver apportato le modifiche al file di configurazione, è possibile salvare il file premendo CTRL + X, quindi Y seguito da INVIO.
  1. Dopo le modiche apportate alla configurazione di dnsmasq, avremo bisogno di riavviare il servizio per poter rendere attive le nostre modifiche. È possibile riavviare dnsmasq eseguendo il comando seguente.
sudo systemctl restart dnsmasq
  1. A questo punto vogliamo verificare che il servizio sia ripartito correttamente. Per verificare lo stato del nostro server DNS usiamo il comando seguente.
sudo systemctl status dnsmasq
  1. Se lo stato viene visualizzato come “Active: active (running)“, ora il server DNS funziona regolarmente. Ora dovresti essere in grado di indirizzare il tuo dispositivo all’indirizzo IP di Rasberry Pi per utilizzarlo come server DNS.

Testing Raspberry Pi DNS Server

  1. Se si desidera testare il server DNS Raspberry Pi senza modificare l’indirizzo DNS su un altro apparecchio collegato alla rete locale, è possibile utilizzare lo strumento “dig”. Per utilizzare lo strumento dig sul tuo Raspberry Pi, devi prima installare il pacchetto “dnsutils” eseguendo il comando seguente.
sudo apt-get install dnsutils
  1. Con il pacchetto “dnsutils” installato su Raspberry Pi, possiamo procedere e interrogare il nostro server DNS Pi eseguendo il comando seguente. Usando “@localhost” stiamo dicendo a dig di utilizzare il server DNS dell’host locale per la ricerca DNS.
dig raspberryhome.it @localhost
  1. Da questo comando, dovresti ottenere una risposta come quella indicata sotto. Quella di seguito rappresenta la risposta del server DNS di Raspberry Pi alla richiesta inviata dal comando dig. Da questa risposta, puoi vedere il tempo necessario per completare la query e alcune informazioni aggiuntive.
dig_result_dns_raspberrypi

3 Comments

  1. Ciao, puoi spiegarmi come hai ottenuto raspberryhome.it. Dovrebbe essere il punto focale di questo progetto o sbaglio?

    • Ciao Paolo, in realtà il progetto a cui fa riferimento l’articolo serve a creare un DNS server all’interno della tua rete interna con lo scopo principale di filtrare le pagine indesiderate come la pubblicità durante la navigazione.
      È stato usato l’indirizzo https://www.raspberryhome.it all’interno dell’articolo solo come esempio per verificare che il DNS appena creato riesca a risolvere gli indirizzi che gli vengono inviati.

  2. Ciao, ho seguito la guida ed effettivamente funziona tutto. Unico problema è che quando riavvio non funziona niente anche se il servizio viene visualizzato come “Active: active (running). L’unico modo per far ripartire tutto è dare il comando sudo systemctl restart dnsmasq. Come posso risolvere?

Leave a Reply