Size: 4002
Comment:
|
Size: 3593
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
Questa e` una configurazione "media" commentata per DnsMasq di Sarge, con funzione di dns proxy e di dhcp server. | Questa e` una configurazione "media" commentata per Dnsmasq di Sarge, con funzione di dns proxy e di dhcp server. |
Line 17: | Line 17: |
# imposto un TTL per i record locali serviti dal dns ai client (vengono da /etc/hosts) local-ttl=5 |
|
Line 23: | Line 26: |
Line 25: | Line 29: |
local=/teknia.local/ | local=/dominio.locale/ |
Line 44: | Line 48: |
# il dominio per gli host assegnati dal DHCP domain=teknia.local |
# il dominio per gli host assegnati dal DHCP domain=dominio.locale |
Line 51: | Line 55: |
# Opzioni DHCP | # Opzioni DHCP |
Line 72: | Line 76: |
=== 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 }}} |
|
Line 74: | Line 105: |
Questa patch mi e` stata gentilmente fornita da Luca, un utente di Dnsmasq. Puo` essere applicata a dnsmasq 2.22 (anche al sorgente con le patch Debian) ma va rivista parecchio per applicarla alla versione attuale (2.30). Una volta applicata la patch, e` disponibile una nuova opzione nel file di configurazione {{{dnsmasq.conf}}}, che e` {{{ dhcp-lease-hook=/usr/local/bin/dhcp-lease.sh }}} La quale chiaramente definisce il nome del file da eseguire ogni qual volta lo stato di un lease cambia. Prima di eseguire il file indicato, dnsmasq setta una serie di variabili di ambiente, il cui elenco e significato puo` essere estratto dal seguente esempio di script "dhcp-lease.sh", che si limita a loggare tutti gli eventi ed e` utile per debug: {{{ #!/bin/bash # variabili: # PATH Il path # EVENT Il tipo di evento. ALLOCATE (prima connessione), REFRESH, PRUNE (release), LOAD (start o restart del demone) # CLID # FQDN # HOSTNAME L'hostname cosi` come passato dal client o definito nella conf # HWADDR MAC address # IPADDR Indirizzo ip # EXPIRATION Data unix di scadenza del lease # OLD_CLID Le variabili "old_*" contengono il valore precedente nel caso di refresh # OLD_FQDN Altrimenti sono vuote. # OLD_HOSTNAME # OLD_HWADDR # OLD_EXPIRATION echo "Timestamp" `/bin/date` >> /tmp/lease.log echo "Path " $PATH >> /tmp/lease.log echo "Event" $EVENT >>/tmp/lease.log echo "clid" $CLID >>/tmp/lease.log echo "fqdn" $FQDN >>/tmp/lease.log echo "hostname" $HOSTNAME >>/tmp/lease.log echo "hwaddr" $HWADDR >>/tmp/lease.log echo "ipaddr" $IPADDR >>/tmp/lease.log echo "expiration" $EXPIRATION >>/tmp/lease.log echo "old_clid" $OLD_CLID >>/tmp/lease.log echo "old_fqdn" $OLD_FQDN >>/tmp/lease.log echo "old_hostname" $OLD_HOSTNAME >>/tmp/lease.log echo "old hwaddr" $OLD_HWADDR >>/tmp/lease.log echo "old_expiration" $OLD_EXPIRATION >>/tmp/lease.log echo "---------------------" >>/tmp/lease.log }}} |
Le versioni piu` recenti di Dnsmasq supportano la possibilita` di lanciare script quando ci sono eventi (assegnazione e scadenza di lease) legati al DHCP. E` possibile senza difficolta` compilarsi su Debian Sarge i sorgenti della testing, che hanno questa funzione. |
DnsMasq
Questa e` una configurazione "media" commentata per Dnsmasq di Sarge, 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. # 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
Patch per eseguire uno script in occasione degli eventi del DHCP
Le versioni piu` recenti di Dnsmasq supportano la possibilita` di lanciare script quando ci sono eventi (assegnazione e scadenza di lease) legati al DHCP. E` possibile senza difficolta` compilarsi su Debian Sarge i sorgenti della testing, che hanno questa funzione.