dhcpd(8)

 

NOM

dhcpd - Serveur du protocole de configuration dynamique (Dynamic Host Configuration Protocol)

 

SYNOPSIS

dhcpd [ -p port ] [ -f ] [ -d ] [ -q ] [ -cf fichier-config ]

[ -lf fichier-bail ] [ if0 [ ...ifN ] ]

 

DESCRIPTION

Le serveur DHCP du Consortium de Logiciels Internet, dhcpd, implémente le protocole de configuration dynamique (DHCP) et le protocole de démarrage sur internet (BOOTP). DHCP permet à une machine résidant sur un réseau TCP/IP de se voir assigner une adresse IP et aussi de découvrir des informations sur le réseau qui l'accueille. BOOTP offre un service similaire mais avec quelques restrictions.

 

FONCTIONNEMENT

Le protocole DHCP permet à une machine inconnue de l'administrateur système d'obtenir une adresse IP à partir d'une réserve. Pour que cela marche, l'administrateur alloue une réserve d'adresses pour chaque sous-réseau et les inscrit dans le fichier dhcpd.conf(5).

Au démarrage, dhcpd lit le fichier dhcpd.conf et garde en mémoire une liste d'adresses disponibles pour chaque sous-réseau. Lorsqu'un client demande une adresse à l'aide du protocole DHCP, dhcpd lui en donne une ainsi qu'un bail. Ce dernier expire au bout d'un certain temps défini par l'administrateur (un jour par défaut). Avant l'expiration du bail, il est demandé aux clients s'ils veulent le renouveler afin de conserver l'adresse. Une fois le bail expiré, le client ne peux plus utiliser son adresse IP.

Afin de conserver une trace des baux après redémarrage du système ou du serveur, dhcpd en tient une liste dans le fichier dhcpd.leases(5). Avant d'attribuer son bail à l'hôte, il l'enregistre dans son fichier et s'assure que c'est bien écrit sur le disque. Ceci permet à dhcpd, dans le cas d'un plantage système, de ne pas oublier quels ont été les baux qu'il a établi. Au démarrage, après avoir lu le fichier dhcpd.conf, il lit dhcpd.leases pour se remémorer ce qu'il a déja fait.

Les nouveaux baux sont ajoutés à la fin du fichier dhcpd.leases. Pour éviter que ce fichier ne devienne trop gros, dhcpd se crée, de temps en temps, un nouveau fichier basé sur ses données internes. Une fois ce fichier écrit, l'ancien fichier est nommé dhcpd.leases~ et le nouveau dhcpd.leases. Si le système plante pendant cette opération, quelque soit le fichier dhcpd.leases, il contient toutes les informations nécessaires sans avoir besoin de recourir à des manipulations d'urgence.

Le serveur connait aussi BOOTP. Contrairement à DHCP, BOOTP ne permet pas de retrouver d'adresses dynamiques une fois qu'elles ne sont plus utilisées. Il est tout de même possible d'en assigner dynamiquement aux clients BOOTP mais des processus administratifs sont nécessaires pour les réclamer. Par défaut, les baux accordés sont perpétuels bien que l'administrateur système puisse donner une date limite ou une durée plus courte si le besoin s'en fait sentir.

Les clients BOOTP peuvent aussi être servis à l'ancienne façon standard qui consiste à déclarer chaque client BOOTP dans le fichier dhcpd.conf avec une adresse permanente.

Pour que les changements dans le fichier dhcpd.conf soient pris en compte, dhcpd doit être redémarré. Pour cela, envoyez un SIGTERM (signal 15) à l'identifiant du process inscrit dans le fichier /var/run/dhcpd.pid et relancez dhcpd. Comme la base de données de DHCP n'est pas aussi légère que celle de BOOTP, dhcpd ne se relance pas automatiquement lorsqu'il constate des changements dans son fichier dhcpd.conf.

Note : Nous avons énormément reçu de plaintes à ce sujet. Nous réalisons qu'il serait effectivement pratique de pouvoir envoyer un SIGHUP pour automatiquement recharger la base de données. Ce n'est techniquement pas impossible mais cela demanderait énormément de travail et nos ressources sont extrèmement limitées. Donc, s'il vous plait, ne le demandez plus sur les listes de diffusions à moins d'être prêt à fonder le projet de développement de cette fonction ou de la développer vous-même.

 

LIGNE DE COMMANDES

Les noms d'interfaces réseau sur lesquelles dhcpd doit écouter peuvent être spécifiées sur la ligne de commandes. Cela doit être fait sur les systèmes où dhcpd n'est pas en mesure d'identifier les interfaces non-broadcast et n'est pas obligatoire sur les autres systèmes. Si aucun nom n'est donné, dhcpd passera en revue toutes les interfaces activées en éliminant, si possible, toutes celles qui ne sont pas "broadcast" puis écoutera chacune d'elle.

Si dhcpd doit écouter sur un autre port que le standard (port 67), l'option -p doit être utilisée. Elle est suivie du numéro de port udp sur lequel écouter. Cela est utile surtout dans le cas de débogage. Si elle est spécifiée, le serveur donnera sa réponse sur ce numéro augmenté de un. Par exemple, dans le cas de -p 67, le serveur écoute sur le port 67 et répond sur le port 68. Les datagrammes qui doivent passer par des relais intermédiaires sont envoyés sur le port spécifié par -p. Si vous utilisez d'autres numéros de port, vous devez configurer tous les intermédiaires pour ces numéros.

Pour lancer dhcpd en avant-tâche plutôt que comme démon en arrière tâche, utilisez l'option -f. Cela est utile pour le déboguer ou bien pour le lancer indépendament d'inittab sur les System V.

Si vous voulez que dhcpd enregistre l'erreur standard dans un fichier, spécifiez l'option -d. Cela est utile pour déboguer mais aussi sur les sites où toute action dhcp doit être conservée et que syslog n'est pas fiable ou inutilisable. Normalement, dhcpd enregistre toute sortie à l'aide de syslog(3) et l'option LOG_DAEMON.

Il est possible de demander à dhcpd d'utiliser un autre fichier de configuration avec l'option -cf et au autre fichier de baux avec -lf. Comme il est important de toujours utiliser la même base de données de baux, ces options ne doivent être utilisées que pour tester des données et jamais en production.

Lors du lancement de dhcpd depuis un script (par exemple depuis /etc/rc), il n'est pas toujours utile d'afficher les messages de copyright. Pour les supprimer, indiquez l'option -q.

 

CONFIGURATION

La syntaxe du fichier dhcpd.conf(5) fait l'objet d'une page séparée. Cette section doit être considérée comme un survol du processus de configuration et la documentation de dhcpd.conf(5) doit être consultée pour tous les détails.

 

Sous-réseaux

dhcpd a besoin de connaitre tous les numéros et masques des sous-réseaux dont il doit s'occuper. De plus, afin de pouvoir fournir des adresse dynamiques, il doit disposer de plages d'adresses pour chacun de ceux-ci. Ainsi, une configuration simplifiée pour fournir le support DHCP peut ressembler à ceci :

 

subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.250;
}

Plusieurs plages d'adresses peuvent être spécifiées de cette manière :

 
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.107;
range 239.252.197.113 239.252.197.250;
}

Si un sous-réseau ne doit être géré qu'avec BOOTP, sans adressage dynamique, les plages (range) peuvent ne pas être indiquées mais le sous-réseau doit quand même être déclaré.

 

Durées de bail (lease time)

Les baux DHCP peuvent avoir n'importe quelle durée de zéro secondes à l'infini. La durée du bail est différente suivant le type de client qui doit être servi.

Par exemple, dans un environnement de bureau où des machines sont parfois ajoutées et parfois retirées mais relativement peu souvent, il est plus sensé de prévoir des durées d'un mois ou plus. Dans un environnement de tests ultimes d'une manufacture, il est préférable que cette durée soit au maximum de 30 minutes, le temps d'effectuer un test simple sur le réseau avant d'emballer pour expédition.

Il est possible de spécifier deux durées de bail : celle par défaut qui sera affectée aux clients qui n'en réclament pas de particulière et une maximum. Elles sont inscrites dans les clauses du sous-réseau :

subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.107;
default-lease-time 600;
max-lease-time 7200;
}

Cette déclaration particulière de sous-réseau spécifie une durée par défaut (default-lease-time) de 600 secondes (dix minutes) et une durée maximum (max-lease-time) de 7200 seconces (deux heures). Les valeurs courantes sont 86400 (un jour), 604800 (une semaine) et 2592000 (trente jours).

Les sous-réseaux n'ont pas besoin d'avoir le même bail. Dans le cas d'un environnement de bureau et de manufacture gérés par le même serveur DHCP, il n'est pas insensé d'avoir des valeurs maximum et par défaut très dispercées suivant les sous-réseaux.

 

Support de BOOTP

Les clients BOOTP doivent être explicitement déclarés dans le fichier dhcpd.conf. Une très basique déclaration fait correspondre l'adresse matérielle de l'interface réseau au numéro IP de la machine. Si le client a besoin de charger un fichier de démarrage, celui-ci doit être spécifié. Une déclaration toute simple peut ressembler à ceci :

host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 239.252.197.9;
filename "/tftpboot/haagen.boot";
}

 

Options

DHCP (mais aussi BOOTP avec les extensions revendeur) met en place un mécanisme dans lequel il fournit au client les informations nécessaires pour configurer son interface réseau (par exemple le masque sous-réseau) ainsi que les services auxquels il a accès (DNS, Routeurs IP, etc...)

Ces options peuvent être décrites par sous-réseau ou, pour les clients BOOTP, par client. Dans le cas où la déclaration d'un client BOOTP nécéssite des options déja présentes dans la déclaration du sous-réseau, elles prennent le pas sur ces dernières. Une configuration classique de DHCP ressemble à ceci :

 
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.250;
default-lease-time 600 max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 239.252.197.255;
option routers 239.252.197.1;
option domain-name-servers 239.252.197.2, 239.252.197.3;
option domain-name "isc.org";
}

Un hôte bootp de ce sous-réseau qui doit être dans un domaine différent et utiliser un autre serveur de noms sera déclaré de la façon suivante :

 
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 239.252.197.9;
filename "/tftpboot/haagen.boot";
option domain-name-servers 192.5.5.1;
option domain-name "vix.com";
}

Reportez-vous à la description complète du fichier dhcpd.conf(5) pour connaitre la syntaxe.

FICHIERS

/usr/local/etc/dhcpd.conf

/var/db/dhcpd.leases

/var/run/dhcpd.pid

/var/db/dhcpd.leases~

 

VOIR AUSSI

dhclient(8), dhcrelay(8), dhcpd.conf(5), dhcpd.leases(5)

 

AUTEURS

dhcpd(8) a été écrit par Ted Lemon <mellon@vix.com> en collaboration avec Vixie Labs. Les bases du projet ont été fournies par l'Internet Software Corporation. Des informations sur le Consortium des Logiciels Internet se trouvent chez http://www.isc.org/isc. La version française de cette page est de Guillain Seuillot <Guillain@lycosmail.com>, le 06 juin 2000.


NOM | SYNOPSIS | DESCRIPTION | FONCTIONNEMENT | LIGNE DE COMMANDES | CONFIGURATION | Sous-Réseaux | Durées de Bail | Support de BOOTP | Options | FICHIERS | VOIR AUSSI | AUTEURS