Oltre alla risposta di Yamakaja , ecco come si configura un server DNS locale.
Innanzitutto, è necessario un computer su cui si desidera eseguire il server DNS. Questo può essere uno dei tuoi normali computer (se eseguono Linux e sono attivi per la maggior parte del tempo) o ad esempio un Raspberry Pi . I vantaggi di un tale dispositivo sono che è economico, non ha bisogno di molta energia ed è piccolo.
Impostazione del server DNS
Ho deciso di configurare il server DNS su un Raspberry Pi utilizzando dnsmasq
, che è un piccolo strumento server DNS, ideale per l'uso in reti di piccole dimensioni. Potresti anche utilizzare bind
lo strumento DNS di fatto standard, ma questo è probabilmente un po 'troppo potente per una piccola rete domestica.
Installa dnsmasq
usando il gestore pacchetti, su sistemi basati su Debian (es. Raspbian), il comando sarebbe
sudo apt-get install dnsmasq
Suppongo ora che tu abbia già impostato un'allocazione di indirizzi IP statici (cioè gli indirizzi IP che menzioni nella tua domanda non cambiano). In caso contrario, dnsmasq
può essere utilizzato anche come server DHCP, ma non l'ho ancora fatto.
dnsmasq
recupera i nomi host da /etc/hosts
. Modifica questo file come segue:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
Il nome host router
è ora assegnato a 192.168.1.1
, printer
a 192.168.1.22
.
Ora hai impostato il tuo server DNS, ma i computer della tua rete non lo usano ancora. Per farli usare questo server, devi fare un passo di preparazione:
Trova l'indirizzo IP del tuo dispositivo dnsmasq utilizzando ip address
(supponiamo che sia 192.168.1.42
). Aprire /etc/dnsmasq.conf
e aggiungere le seguenti righe:
listen-address=127.0.0.1
listen-address=192.168.1.42
Ciò dice dnsmasq
che dovrebbe ascoltare le richieste quando vengono indirizzate a 127.0.0.1
(ovvero quando si desidera utilizzare il proprio server DNS) o 192.168.1.42
(ovvero quando altri computer vogliono utilizzare il proprio server DNS).
Utilizzando il server DNS
Devi dire a ogni computer della tua rete che dovrebbe (anche) usare 192.168.1.42
come server DNS. Il modo in cui lo fai dipende dal tuo sistema operativo. È possibile cercare facilmente il sistema operativo specificato su Internet (basta cercare "Cambia server DNS su <OS>" o qualcosa del genere).
Per Windows 7, puoi seguire questo tutorial: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .
Sul mio sistema (Arch Linux), ho dovuto aggiungere la seguente riga a /etc/resolvconf.conf
name_servers=192.168.1.42
Nota che il file che devi usare dipende dalla configurazione del tuo gestore di rete. Aggiungi l'IP del server DNS su ogni computer che desideri utilizzare il tuo DNS.
Probabilmente dovrai riavviare i dispositivi se non funziona immediatamente.
Ecco fatto, il gioco è fatto. Ora puoi accedere a tutti i dispositivi che hai inserito nel /etc/hosts
server dnsmasq semplicemente usando il nome host che gli hai dato.
(Facoltativo) Verifica della funzionalità
Se vuoi verificare se la risoluzione DNS funziona correttamente, installa dnsutils
(Linux) sul sistema che dovrebbe usare il tuo server. Quindi eseguire
$ dig router
Questo dovrebbe restituire qualcosa del genere
; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router. IN A
;; ANSWER SECTION:
router. 0 IN A 192.168.1.1
;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE rcvd: 50
Ti mostra il nome host che desideri risolvere, l'indirizzo IP a cui è stato risolto e il server DNS utilizzato. Come vedi, va tutto bene.
(Facoltativo) Specifica di un TLD
Se si desidera accedere ai dispositivi non solo con router
o printer
ma con router.home
e printer.home
, aggiungere le seguenti righe al proprio /etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
Potrebbe essere necessario riavviare di nuovo.
Fonti / ulteriori letture
Circa dnsmasq
:
Informazioni bind
(se ti interessa):