DnsMasq

Questa e` una configurazione "media" commentata per Dnsmasq di Debian 8, con funzione di dns proxy e di dhcp server.

Se si usa il ppp per connettersi, e` possibile indicare come resolv-file il file /etc/ppp/resolv.conf che contiene i DNS passati dal provider al momento della connessione.

Il file e` /etc/dnsmasq.conf

# Configuration file for dnsmasq.


# Non servire questa interfaccia, ma tutte le altre si.
# Se non si imposta questa opzione in Debian 8 dnsmasq non risponde
# alle query non locali alla LAN (vedi il paramentro local-service
# che si trova dentro a /etc/init.d/dnsmasq.
except-interface=eth1



# Never forward plain names (with a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv

# imposto un TTL per i record locali serviti dal dns ai client (vengono da /etc/hosts)
local-ttl=5

# block win2k dns requests
filterwin2k

# resolv.conf alternativo (creare il file!)
resolv-file=/etc/resolv.conf.dnsmasq


# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/dominio.locale/

# If you want dnsmasq to listen for requests only on specified interfaces
# (and the loopback) give the name of the interface (eg eth0) here.
# Repeat the line for more than one interface.
#interface=

# Aggiungi un dominio alle entry del file hosts che non hanno dominio (vedi "domain")
expand-hosts

# niente cache per i risultati negativi
no-negcache

# log
log-queries


# DHCP options

# il dominio per gli host assegnati dal DHCP
domain=dominio.locale
# range delle macchine servite
dhcp-range=192.168.3.10,192.168.3.100,240h
# il server e` autoritativo
dhcp-authoritative

# Opzioni DHCP
# 1- subnet mask
# 3- default gateway
# 6- dns server
# 28- broadcast address
# 44- wins server
# 46- netbios node type

dhcp-option=44,192.168.3.1


# host statici, uno per riga (mac,ip)
#dhcp-host=11:22:33:44:55:66,192.168.0.60

# If this line is uncommented, dnsmasq will read /etc/ethers and act
# on the ethernet-address/IP pairs found there just as if they had
# been given as --dhcp-host options. Useful if you keep
# MAC-address/host mappings there for other purposes.
#read-ethers

DHCP su piu` interfacce

Se si vuole servire il DHCP su piu` interfacce, e` possibile farlo, ed e` anche possibile dividere le configurazioni in modo che gli host su una interfaccia prendano impostazioni (dns, gateway, eccetera) diverse rispetto a quelli sull'altra interfaccia.

dhcp-range=osimo,172.16.0.100,172.16.0.200,255.255.255.0,240h
dhcp-range=kurgan,10.1.45.100,10.1.45.200,255.255.255.0,240h

dhcp-option=osimo,44,10.0.0.251,172.16.0.1
dhcp-option=kurgan,44,10.1.42.254

Host sulla rete con gateway o dns o altre opzioni diverse

Se occorre per esempio dirigere alcuni host sulla rete a usare un gateway o un dns specifico, e` possibile farlo usando la direttiva "dhcp-host" e la direttiva dhcp-option con una indicazione di nome di una rete. In questo esempio la macchina indicata nel dhcp-host prende un ip dinamico dal pool generale, pero` prende come gateway un gateway speciale che non e` quello che usano tutti.

# per i client del CED, che sono definiti in dhcp-host dopo, voglio un gateway diverso.
dhcp-option=ced,3,10.3.0.10

# host del CED: prendono delle opzioni differenti per gateway e dns
dhcp-host=00:19:99:35:8b:b8,net:ced

Integrazione Bind - Dnsmasq

Puo` essere comodo installare bind per avere un resolver ricorsivo e anche dnsmasq per avere le sue funzioni accessorie (dhcp, ecc) sulla stessa macchina. Per farlo, e` sufficiente dire a Bind di ascoltare su una porta diversa dal default, e a Dnsmasq di interrogare Bind su quella porta.

Su Debian, la configurazione e` la seguente: