Differences between revisions 3 and 13 (spanning 10 versions)
Revision 3 as of 2006-04-24 17:25:52
Size: 4002
Editor: Kurgan
Comment:
Revision 13 as of 2009-04-12 17:33:25
Size: 3593
Editor: localhost
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.

LinuxDebian/DnsMasq (last edited 2017-09-07 18:12:44 by Kurgan)