Differences between revisions 2 and 3
Revision 2 as of 2005-10-18 10:14:38
Size: 1928
Editor: Kurgan
Comment:
Revision 3 as of 2006-04-24 17:25:52
Size: 4002
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 70: Line 70:
}}}
Line 71: Line 72:
=== Patch per eseguire uno script in occasione degli eventi del DHCP ===

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
Line 72: Line 82:
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
}}}

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

Patch per eseguire uno script in occasione degli eventi del DHCP

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:

# 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

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