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 8.
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.
Note : 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"
Note : Assurez-vous de bien remplacer fxp0 par l'interface que vous voulez configurer de façon dynamique comme décrit dans la Section 11.8.
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 4 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 8.
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.
Note : 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; }
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.
Précédent | Sommaire | Suivant |
Services d'information réseau (NIS/YP) | Niveau supérieur | Serveurs de noms (DNS) |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <[email protected]>.
Pour les questions sur cette documentation, contactez <[email protected]>.