Differences between revisions 4 and 5
Revision 4 as of 2006-04-24 17:30:43
Size: 4156
Editor: Kurgan
Comment:
Revision 5 as of 2006-10-08 18:18:48
Size: 2788
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 72: Line 72:
=== 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
}}}


Line 74: Line 89:
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).

 * Dnsmasq patchato gia` compilato come pacchetto Debian per Sarge: attachment:dnsmasq_2.22-2_i386.deb
 * La patch di Luca: attachment:lease-events.patch

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

# 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=/teknia.local/

# 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=teknia.local
# 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

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)