Le caratteristiche che ci hanno portato a scegliere dnsmasq sono molteplici:
Oltre che dai suoi propri file di configurazione, dnsmasq prende diverse informazioni anche da altri file di sistema. Questo è un elenco completo di tutti i file utilizzati:
Nota
Valorizzando opportunamente alcune direttive nel file di configurazione è possibile impedire l’uso di alcuni file (es. /etc/hosts). Si faccia riferimento alla manpage per ulteriori informazioni.
Per rendere la configurazione del servizio più intuitiva e semplificarne la manipolazione via interfaccia-web, abbiam deciso di spezzettarla in due ulteriori file :
E per ricordare a dnsmasq di leggere anche questi file abbiamo inserito in /etc/dnsmasq/dnsmasq.conf le direttive seguenti
# Configurazione aggiuntiva per isi.
conf-file=/etc/isi/dnsmasq/boot
conf-file=/etc/isi/dnsmasq/hosts.mac
Nota
Ovviamente per dnsmasq avere tutta la configurazione in un file unico o suddivisa in più file non fa alcuna differenza.
Quella a seguire è la configurazione completa del servizio dnsmasq, per un sistema dalle seguenti caratteristiche :
/etc/dnsmasq.conf
# non inoltrare mai ai server dns esterni
# query senza nome dominio
domain-needed
# Tutti i reverse lookup per la subnet privata
# non presenti in /etc/hosts o nei lease dhcp
# ottengono "host not found"
# invece di essere inoltrati ai dns esterni
bogus-priv
# Filtra le ricorrenti richieste SOA, SRV e altre,
# provenienti da macchine windows
# serve in particolare a non attivare
# per sbaglio il link quando si
# hanno connessioni "on demand"
filterwin2k
# server dns esterni di riferimento
# inserire i server dns uno per riga
# usati in questo caso i server di opendns.org
server=208.67.222.222
server=208.67.220.220
# aggiunge sempre il nome dominio al nome host
expand-hosts
# nome del mio dominio
domain=isi.lan
# Se si intende passare ai client un dominio differente
# dhcp-option=option:domain-name,isi.lan
# range dei lease dhcp: indirizzo iniziale, indirizzo finale, netmask, durata del lease
dhcp-range=192.168.0.83,192.168.0.199,255.255.255.0,8h
# esempio di reservation per un client
# MAC address, indirizzo, nome host
#dhcp-host=00:00:0c:29:10:a6:45,192.168.10.201,vm-client-ltsp1
# le associazioni vengono definite esternamente, vedi inclusioni fine file.
#Opzioni del dhcp
# dnsmasq supporta la maggior parte delle
# opzioni dhcp e bootp specificate in
# http://www.faqs.org/rfcs/rfc2132.html
# la sintassi e':
# dhcp-option=[numero relativo all'opzione],parametro
# default gateway (3)
dhcp-option=3,192.168.0.251
# dns da passare ai client (6)
dhcp-option=6,192.168.0.251
# winserver da passare ai client (44)
dhcp-option=44,192.168.0.251
dhcp-authoritative
cache-size=1024
### LOG
# da usare per debug
#log-queries
# Log lots of extra information about DHCP transactions.
#log-dhcp
# Include a another lot of configuration options.
#conf-file=/etc/dnsmasq.more.conf
#conf-dir=/etc/dnsmasq.d
# Configurazione aggiuntiva per isi.
conf-file=/etc/isi/dnsmasq/boot
conf-file=/etc/isi/dnsmasq/hosts.mac
Nota
Alcune dhcp-option possono essere passate anche usando il nome dell’opzione al posto del valore numerico
# default gateway (3)
dhcp-option=option:router,192.168.0.251
Qualcuno suggerisce di inserire in /etc/dnsmasq.conf la sola riga
conf-file=/etc/dnsmasq.intranet.conf
Per poter così poi tenere la propria configurazione nel file esterno /etc/dnsmasq.intranet.conf per, si dice, agevolare un eventuale upgrade.
/etc/isi/dnsmasq/boot:
# prendo tag PXE (anche se non li stiamo usando per filtrare...)
dhcp-vendorclass=pxe,PXEClient
#dhcp-vendorclass=gPXE,gpxe
# dhcp-option=vendor:PXEClient,1,0.0.0.0
# server ltsp01
dhcp-boot=net:ns1_thin,/ltsp/i386/pxelinux.0,srv-ltsp01,192.168.0.251
dhcp-boot=net:ns1_fat,/ltsp/fati386/pxelinux.0,srv-ltsp01,192.168.0.251
# di seguito si potranno aggiungere eventuali altre direttive per
# supportare la distribuzione del carico su piu'ltsp server, filtrando per
# tag
# server ltsp2
dhcp-boot=net:ns2_thin,/ltsp/i386/pxelinux.0,srv-ltsp02,192.168.0.252
dhcp-boot=net:ns2_fat,/ltsp/fati386/pxelinux.0,srv-ltsp02,192.168.0.252
# server ltsp3
dhcp-boot=net:ns3_thin,/ltsp/i386/pxelinux.0,srv-ltsp03,192.168.0.253
dhcp-boot=net:ns3_fat,/ltsp/fati386/pxelinux.0,srv-ltsp03,192.168.0.253
# server ltsp4
#dhcp-boot=net:ns4_thin,/ltsp/i386/pxelinux.0,srv-ltsp04,192.168.0.254
#dhcp-boot=net:ns4_fat,/ltsp/fati386/pxelinux.0,srv-ltsp04,192.168.0.254
# (default) other
dhcp-boot=/ltsp/i386/pxelinux.0,srv-ltsp03,192.168.0.253
Nota
/etc/isi/dnsmasq/hosts.mac
# ip-reservation per client
#
# MAC address, indirizzo, nome host, tag(utile per associare un client ltsp
# ad un particolare server)
#
###### Laboratorio 1
dhcp-host=00:0c:29:96:b1:33,192.168.0.150,vm-ltsp1,net:ns1_thin
dhcp-host=00:0c:29:c1:10:b0,192.168.0.151,vm-ltsp2,net:ns1_thin
###### Laboratorio 2
dhcp-host=00:0c:29:96:b1:33,192.168.0.150,vm-ltsp1,net:ns2_fat
dhcp-host=00:0c:29:c1:10:b0,192.168.0.151,vm-ltsp2,net:ns2_fat
###### Laboratorio 3
dhcp-host=00:0c:29:96:b1:33,192.168.0.150,vm-ltsp1,net:ns3_thin
dhcp-host=00:0c:29:c1:12:b0,192.168.0.151,vm-ltsp2,net:ns3_thin
###### Laboratorio 4
dhcp-host=00:0c:29:96:b3:35,192.168.0.150,vm-ltsp1,net:ns4_fat
dhcp-host=00:0c:29:c1:11:b2,192.168.0.151,vm-ltsp2,net:ns4_fat
dhcp-host=00:0c:29:ac:45:29,192.168.0.155,vm-xp
dhcp-host=00:0c:29:b2:3f:05,192.168.0.156,vm-win2k
dhcp-host=00:0c:29:94:80:47,192.168.0.157,vm-win98
dhcp-host=00:0c:29:ba:88:64,192.168.0.158,vm-hardy
/etc/resolv.conf di tutte i server
search isi.lan
nameserver 192.168.0.251