giovedì, settembre 19, 2024

Server DNS: come crearlo nella propria LAN locale

Ho dovuto realizzare un server DNS locale per risolvere tutti quei domini interni alla mia rete LAN perché mi sono rotto le palle che su un pool di macchine tutte le volte mi tocca cambiare il file di hosts  per reindirizzare un client su un server che per manutenzione mi necessitava spostare su un altro IP.

Quindi questo è quello che ho fatto.

Ho creato un container con una distro linux leggera (io ho usato Ubuntu ma il concetto vale per ogni distro) ed ho usato Dnsmasq.

Come sempre aggiorno i repository, per ubuntu / debian like:

# apt update && apt upgrade -y

Naturalmente la distro dovrà avere un IP statico

Devo disabilitare il servizio di ubuntu "resolve" che è in ascolto sulla porta 53, quella che serve a me per Dnsmasq:

# systemctl disable systemd-resolved
# systemctl stop systemd-resolved

Mi assicuro che il file /etc/resolv.conf abbia un nameserver dns pubblico

# rm /etc/resolv.conf
# echo nameserver 8.8.8.8 | tee /etc/resolv.conf

Bene, installo Dnsmasq

# apt install dnsmasq -y

Imposto alcuni parametri di configurazione sul file /etc/dnsmasq.conf, quindi aggiungo alla configurazione:

domain-needed
bogus-priv
server=8.8.8.8
server=8.8.4.4
cache-size=1000

Giusto per ricordarsi:
"domain-needed", le denominazioni locali (ad esempio sitoweb) che non hanno alcun TLD specificato non saranno mai inoltrate al DNS gestito da terze parti (ad esempio ai DNS Google)
"bogus-priv",  gli indirizzi IP privati non saranno esposti al gestore del server DNS remoto
"cache-size", si chiede a Dnsmasq di conservare una cache locale formata da un numero massimo di 1.000 elementi, in questo modo si velocizzerà la risoluzione dei nomi a dominio più richiesti dai client collegati in rete locale

Bene, adesso modificando il file di hosts di questa macchina e impostando su tutti i singoli sistemi come DNS il suo IP potrò propagare a tutti i client eventuali indirizzamenti.

Editiamo il file /etc/hosts:

192.168.178.123 server.lan
192.168.178.321 storage.lan
ecc...

Ok, installo il servizio Dnsmasq e lo avvio:

# systemctl enable dnsmasq
# systemctl restart dnsmasq

Naturalmente quando cambierò qualcosa nel file hosts dovrò riavviare il servizio per propagare i nuovi IP.


Server DNS: come crearlo nella propria LAN locale

Ho dovuto realizzare un server DNS locale per risolvere tutti quei domini interni alla mia rete LAN perché mi sono rotto le palle che su un ...