DHCP, le protocole d'attribution dynamique des adresses
(“Dynamic Host Configuration Protocol”),
décrit les moyens par lesquels un système peut
se connecter à un réseau et obtenir les
informations nécessaires pour dialoguer sur ce
réseau. Les versions de FreeBSD antérieures
à la version 6.0 utilisent l'implémentation du
client DHCP (dhclient(8)) de l'ISC (Internet Software
Consortium). Les versions suivantes utilisent le programme
dhclient
d'OpenBSD issu d'OpenBSD 3.7.
Toutes les informations données ici au sujet de
dhclient
sont valables aussi bien pour le
client DHCP d'ISC que pour celui d'OpenBSD. Le serveur DHCP
est celui distribué par le consortium ISC.
Cette section décrit les composants
côté client des clients DHCP d'ISC et d' OpenBSD et côté serveur du
système DHCP ISC. Le programme client,
dhclient
, est intégré
à FreeBSD, la partie serveur est disponible à
partir du logiciel porté net/isc-dhcp3-server. Les pages de
manuel dhclient(8), dhcp-options(5), et
dhclient.conf(5), en plus des références
données plus bas, sont des ressources utiles.
Quand dhclient
, le client DHCP, est
exécuté sur la machine cliente, il commence
à diffuser des requêtes de demandes d'information
de configuration. Par défaut, ces requêtes sont
effectuées sur le port UDP 68. Le serveur
répond sur le port UDP 67, fournissant au client une
adresse IP et d'autres informations réseau importantes
comme le masque de sous-réseau, les routeurs, et les
serveurs DNS. Toutes ces informations viennent sous la forme
d'un “bail” DHCP qui est uniquement valide pendant
un certain temps (configuré par l'administrateur du
serveur DHCP). De cette façon, les adresses IP
expirées pour les clients qui ne sont plus
connectés peuvent être automatiquement
récupérées.
Les clients DHCP peuvent obtenir une grande quantité d'informations à partir du serveur. Une liste exhaustive est donnée dans la page de manuel dhcp-options(5).
Le client DHCP ISC ou OpenBSD (en fonction de la version de FreeBSD que vous utilisez), dhclient
, est
complètement intégré à FreeBSD. Le
support du client DHCP est fourni avec l'installeur et le
système de base, rendant évident le besoin d'une
connaissance détaillée des configurations
réseaux pour n'importe quel réseau utilisant un
serveur DHCP. dhclient
fait partie de
toutes les versions de FreeBSD depuis la version 3.2.
DHCP est supporté par
sysinstall. Quand on configure une
interface réseau sous
sysinstall, la deuxième
question posée est: “Voulez-vous tenter la
configuration DHCP de l'interface?”.
Répondre par l'affirmative à cette question
lancera dhclient
, et en cas de
succès, complétera automatiquement les
informations de configuration réseau.
Vous devez faire deux choses pour que votre système utilise DHCP au démarrage:
Assurez-vous que le périphérique
bpf
est compilé dans votre
noyau. Pour cela, vous devez ajouter la ligne
device bpf
à votre fichier
de configuration du noyau, et recompiler le noyau. Pour
plus d'informations sur la compilation de noyaux,
consultez le Chapitre 9, Configurer le noyau de FreeBSD.
Le périphérique
bpf
est déjà
présent dans le noyau GENERIC
qui est fourni avec FreeBSD, vous ne devez donc pas
créer de noyau spécifique pour faire
fonctionner DHCP.
Ceux qui sont particulièrement conscients de
l'aspect sécurité devraient noter que
bpf
est également le
périphérique qui permet le fonctionnement de
“renifleurs” de paquets (de tels programmes
doivent être lancés sous l'utilisateur
root
). bpf
est nécessaire pour utiliser
DHCP, mais si vous êtes très sensible
à la sécurité, vous ne devriez
probablement pas ajouter bpf
à votre noyau parce que vous projetez d'utiliser
DHCP dans le futur.
Editez votre fichier /etc/rc.conf
pour y ajouter ce qui suit:
ifconfig_fxp0="DHCP"
Assurez-vous de bien remplacer
fxp0
par l'interface que vous voulez
configurer de façon dynamique comme décrit
dans la Section 12.8, « Configuration des cartes réseaux ».
Si vous utilisez un emplacement différent pour
dhclient
, ou si vous désirez
passer des arguments supplémentaires à
dhclient
, ajoutez ce qui suit (en
effectuant des modifications si nécessaire):
dhcp_program="/sbin/dhclient" dhcp_flags=""
Le serveur DHCP, dhcpd, fait partie du logiciel porté net/isc-dhcp3-server disponible dans le catalogue des logiciels portés. Ce logiciel porté contient le serveur DHCP ISC et sa documentation.
/etc/dhclient.conf
dhclient
nécessite un
fichier de configuration,
/etc/dhclient.conf
.
Généralement le fichier ne contient que des
commentaires, les valeurs par défaut étant
suffisantes. Ce fichier de configuration est décrit
par la page de manuel dhclient.conf(5).
/sbin/dhclient
dhclient
est lié
statiquement et réside dans le répertoire
/sbin
. La page de
manuel dhclient(8) donne beaucoup plus d'informations
au sujet de dhclient
.
/sbin/dhclient-script
dhclient-script
est la
procédure de configuration du client DHCP
spécifique à FreeBSD. Elle est décrite
dans la page de manuel dhclient-script(8), mais ne
devrait pas demander de modification de la part de
l'utilisateur pour fonctionner correctement.
/var/db/dhclient.leases
Le client DHCP conserve une base de données des baux valides, qui est écrite comme un fichier journal. La page de manuel dhclient.leases(5) en donne une description légèrement plus longue.
Le protocole DHCP est intégralement décrit
dans la RFC
2131. Des informations sont également
disponibles à l'adresse http://www.dhcp.org/
.
Cette section fournit les informations nécessaires à la configuration d'un système FreeBSD comme serveur DHCP en utilisant l'implémentation ISC (Internet Software Consortium) du serveur DHCP.
Le serveur n'est pas fourni dans le système de base de FreeBSD, et vous devrez installer le logiciel porté net/isc-dhcp3-server pour bénéficier de ce service. Lisez le Chapitre 5, Installer des applications: les logiciels pré-compilés et les logiciels portés pour plus d'information sur l'utilisation du catalogue des logiciels portés.
Afin de configurer votre système FreeBSD en
serveur DHCP, vous devrez vous assurer que le support du
périphérique bpf(4) est compilé
dans votre noyau. Pour cela ajouter la ligne
device bpf
dans votre fichier de
configuration du noyau. Pour plus d'information sur la
compilation de noyaux, consultez le Chapitre 9, Configurer le noyau de FreeBSD.
Le périphérique
bpf
est déjà
présent dans le noyau GENERIC
qui est fourni avec FreeBSD, vous ne devez donc pas
créer de noyau spécifique pour faire
fonctionner DHCP.
Ceux qui sont particulièrement conscients de
l'aspect sécurité devraient noter que
bpf
est également le
périphérique qui permet le fonctionnement de
“renifleurs” de paquets (de tels programmes
nécessitent également un accès avec
privilèges). bpf
est nécessaire pour utiliser
DHCP, mais si vous êtes très sensible
à la sécurité, vous ne devriez
probablement pas ajouter bpf
à votre noyau parce que vous projetez d'utiliser
DHCP dans le futur.
Il vous reste ensuite à éditer le
fichier dhcpd.conf
d'exemple qui a
été installé par le logiciel
porté net/isc-dhcp3-server. Par
défaut, cela sera
/usr/local/etc/dhcpd.conf.sample
, et
vous devriez le copier vers
/usr/local/etc/dhcpd.conf
avant de
commencer vos modifications.
dhcpd.conf
est composé de
déclarations concernant les masques de
sous-réseaux et les machines, il est
peut-être plus facile à expliquer à
l'aide d'un exemple:
option domain-name "example.com";option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
} host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}
Cette option spécifie le domaine qui sera donné aux clients comme domaine par défaut. Consultez la page de manuel de resolv.conf(5) pour plus d'information sur sa signification. | |
Cette option donne une liste, séparée par des virgules, de serveurs DNS que le client devrait utiliser. | |
Le masque de sous-réseau qui sera fourni aux clients. | |
Un client peut demander un bail d'une durée bien précise. Sinon par défaut le serveur alloue un bail avec cette durée avant expiration (en secondes). | |
C'est la durée maximale d'allocation
autorisée par le serveur. Si un client demande
un bail plus long, le bail sera accordé mais il
ne sera valide que durant
| |
Cette option indique si le serveur DHCP doit tenter de mettre à jour le DNS quand un bail est accepté ou révoqué. Dans l'implémentation ISC, cette option est obligatoire. | |
Ceci indique quelles adresses IP devraient être utilisées dans l'ensemble des adresses réservées aux clients. Les adresses comprises dans l'intervalle spécifiée sont allouées aux clients. | |
Définit la passerelle par défaut fournie aux clients. | |
L'adresse matérielle MAC d'une machine (de manière à ce que le serveur DHCP puisse reconnaître une machine quand elle envoie une requête). | |
Indique que la machine devrait se voir attribuer toujours la même adresse IP. Notez que l'utilisation d'un nom de machine ici est correct, puisque le serveur DHCP effectuera une résolution de nom sur le nom de la machine avant de renvoyer l'information sur le bail. |
Une fois l'écriture de votre fichier
dhcpd.conf
terminée, vous
devez activer le serveur DHCP dans le fichier
/etc/rc.conf
, en ajoutant:
dhcpd_enable="YES" dhcpd_ifaces="dc0"
Remplacez le nom de l'interface dc0
avec celui de l'interface (ou des interfaces,
séparées par un espace) sur laquelle votre
serveur DHCP attendra les requêtes des clients
DHCP.
Ensuite, vous pouvez lancer le serveur en tapant la commande suivante:
#
/usr/local/etc/rc.d/isc-dhcpd.sh start
Si vous devez, dans le futur, effectuer des
changements dans la configuration de votre serveur, il est
important de savoir que l'envoi d'un signal
SIGHUP
à
dhcpd ne provoque
pas le rechargement de la
configuration, contrairement à la plupart des
“daemons”. Vous devrez envoyer un signal
SIGTERM
pour arrêter le
processus, puis le relancer en utilisant la commande
ci-dessus.
/usr/local/sbin/dhcpd
dhcpd est lié
statiquement et réside dans le répertoire
/usr/local/sbin
.
La page de manuel dhcpd(8) installée avec le
logiciel porté donne beaucoup plus d'informations
au sujet de dhcpd.
/usr/local/etc/dhcpd.conf
dhcpd nécessite
un fichier de configuration,
/usr/local/etc/dhcpd.conf
avant de
pouvoir commencer à offrir ses services aux
client. Ce fichier doit contenir toutes les
informations à fournir aux clients qui seront
traités, en plus des informations concernant le
fonctionnement du serveur. Ce fichier de configuration
est décrit par la page de manuel
dhcpd.conf(5) installée par le logiciel
porté.
/var/db/dhcpd.leases
Le serveur DHCP conserve une base de données des baux qu'il a délivré, qui est écrite comme un fichier journal. La page de manuel dhcpd.leases(5) installée par le logiciel porté en donne une description légèrement plus longue.
/usr/local/sbin/dhcrelay
dhcrelay est utilisé dans les environnements avancés où un serveur DHCP fait suivre la requête d'un client vers un autre serveur DHCP sur un réseau séparé. Si vous avez besoin de cette fonctionnalité, installez alors le logiciel porté net/isc-dhcp3-server. La page de manuel dhcrelay(8) fournie avec le logiciel porté contient plus de détails.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.