Configurer un serveur DHCP
Auteur : Olivier BOYER - oboyer () ajoute ! org
Mots clés
NetBSD, dhcp, network boot
Introduction
Ce document décrit comment configurer un serveur DHCP sur un NetBSD 1.6.x et 2.x. Le daemon dhcpd(8) est livré dans les sets de base du système, il n'y a donc pas d'installation supplémentaire à effectuer.
Le daemon dhcpd(8) livré est celui de l'ISC (Internet Software Consortium), disponible à l'URL : http://www.isc.org/sw/dhcp/
Le serveur DHCP écoute sur le port udp/67.
Présentation de la maquette
Via le service DHCP les clients doivent recevoir leurs parametres IP, mais aussi la configuration DNS, NTP, et NIS.
Sur le reseau, il existe deux sortes de clients :
- ceux avec une adresse IP fixe,
- ceux avec une adresse IP dynamique (cas des clients de passage)
Cette adresse est comprise dans le poll : 150→159
Note
Toutes les commandes présentées ici, sont à executer, sauf mention contraire, en tant qu'administrateur de la machine.
Pré-requis
Le noyau du système NetBSD doit avoir le Berkeley Packet Filter (bpf)de configuré. Pour chaque interface réseau où le broadcast est possible (par exemple Ethernet), il faut qu'il y ait au moins un fichier /dev/bpf*
Le support bpf est inclus dans le noyau GENERIC pour les NetBSD 1.6.x et 2.x.
Configuration du serveur DHCP
Modifier le fichier /etc/rc.conf
Pour activer le serveur DHCP au démarrage de la machine, ajouter les lignes suivantes au fichier /etc/rc.conf :
# Daemons used to boot other hosts over a network. # rarpd=NO rarpd_flags="-a" bootparamd=NO bootparamd_flags="" dhcpd=YES dhcpd_flags="-q" dhcrelay=NO dhcrelay_flags=""
Créer le fichier /etc/dhcpd.conf
La configuration du daemon dhcpd s'effectue via le fichier /etc/dhcpd.conf. Ce dernier n'exsite pas par défaut dans le système. Pour le créer, inspirons-nous d'un exemple livré :
# cp /usr/share/examples/dhcp/dhcpd.conf /etc/dhcpd.conf
Une fois modifié le fichier doit ressembler à celui ci-dessous :
# /etc/dhcpd.conf
#
# configuration file for ISC dhcpd
#
##
## dhcpd options
##
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Dynamic DNS update scheme - must be set to "none", "interim" or "ad-hoc".
ddns-update-style none;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
# dhcpd(8) will log all output using the syslog(3) function
# with the log facility set to LOG_DAEMON.
#log-facility local7;
# Lease informations
default-lease-time 3600;
max-lease-time 86400;
#whether or not the client should
#perform subnet mask discovery using ICMP
option perform-mask-discovery false;
##
## option definitions common to all supported networks...
##
# IP informations
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
# DNS informations
option domain-name "leaves.org";
option domain-name-servers 192.168.0.1, 192.168.0.2;
# NIS informations
option nis-domain leaves;
option nis-servers 192.168.0.1, 192.168.0.2;
# NTP informations
option ntp-servers 192.168.0.1, 192.168.0.2;
# Mail informations
option smtp-server 192.168.0.25;
# LPR informations
option lpr-servers 192.168.0.1;
##
## Clients settings
##
# This is a very basic subnet declaration.
# Allow unknown clients to get an Ip address between 192.168.0.150 and 192.168.0.159
# Local Network
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.150 192.168.0.159;
}
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host ocb {
hardware ethernet 00:A1:52:74:66:56;
fixed-address ocb.leaves.org;
}
host job {
hardware ethernet 01:10:67:AE:36:1B;
fixed-address job.leaves.org;
}
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
#subnet 192.168.1.0 netmask 255.255.255.0 {
# range dynamic-bootp 192.168.1.150 192.168.1.159;
# option broadcast-address 192.168.1.255;
# option routers 192.168.1.254;
#}
#EOF
Fichier de lease
Pour créer le fichier de lease, procédez comme suit :
# touch /var/db/dhcpd.leases # ls -l /var/db/dhcpd.leases -rw-r--r-- 1 root wheel 0 Dec 8 22:01 /var/db/dhcpd.leases
Modifier le fichier /etc/syslog.conf
Par défaut dhcpd utilise syslog(3) pour tracer son activité. Il utilise la facilité : LOG_DAEMON
Il est possible de modifier cette facilité en precisant le paramètre : log-facility dans les options communes du fichier /etc/dhcpd.conf.
Par exemple :
log-facility local7;
Il est ainsi possible d'isoler tous les messages de dhcpd dans un fichier spécifique.