Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
10.4. Configuration d'un serveur DHCP Multi-hôtes
Un serveur
DHCP
multi-hôtes sert plusieurs réseaux, c'est-à-dire, plusieurs sous-réseaux. Les exemples dans les sections suivantes décrivent comment configurer un serveur DHCP
pour qu'il puisse desservir plusieurs réseaux, sélectionner les interface réseau à écouter, et comment définir les paramètres réseau pour les systèmes qui se déplacent entre les réseaux.
Avant de procéder à tout changement, sauvegarder le fichier
/etc/dhcp/dhcpd.conf
existant.
Le démon
DHCP
n'écoutera que les interfaces pour lesquelles il pourra trouver une déclaration de sous-réseau dans le fichier /etc/dhcp/dhcpd.conf
.
Voici un fichier de base
/etc/dhcp/dhcpd.conf
, pour un serveur qui a deux interfaces de réseau, eth0 dans un réseau 10.0.0.0/24
et eth1 dans un réseau 172.16.0.0/24
. Plusieurs déclarations de sous-réseau
permettent de définir des paramètres différents pour plusieurs réseaux :
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; }
sous-réseau 10.0.0.0 masque réseau 255.255.255.0;
- Une déclaration de
sous-réseau
est obligatoire pour tout réseau que votre serveurDHCP
déssert. Plusieurs sous-réseaux nécessitent plusieurs déclarations desous-réseaux
. Si le serveurDHCP
n'a pas d'interface réseau faisant partie de la plage d'une déclaration desous-réseau
, le serveurDHCP
ne desservira pas de ce réseau.S'il n'y a qu'une déclaration desous-réseau
aucune interface de réseau qui se situe dans la plage de ce sous-réseau, le démonDHCP
échouera au démarrage, et une erreur sera journalisée dans le fichier/var/log/messages
:dhcpd: No subnet declaration for eth0 (0.0.0.0). dhcpd: ** Ignoring requests on eth0. If this is not what dhcpd: you want, please write a subnet declaration dhcpd: in your dhcpd.conf file for the network segment dhcpd: to which interface eth1 is attached. ** dhcpd: dhcpd: dhcpd: Not configured to listen on any interfaces!
option subnet-mask 255.255.255.0;
- L'option
option subnet-mask
définit un masque de sous-réseau, et remplace la valeur dumasque de réseau
dans la déclaration dusous-réseau
. Dans les cas simples, les valeurs du sous-réseau et du masque de réseau correspondent aux mêmes valeurs. option routers 10.0.0.1;
- L'option
option routers
définit la passerelle par défaut du sous-réseau. Cela est exigé pour que les systèmes puissent atteindre les réseaux internes sur un sous-réseau différent, ainsi que sur des réseaux externes. range 10.0.0.5 10.0.0.15;
- L'option
range
(plage) se réfère au pool d'adressesIP
disponibles. Une adresse faisant partie d'une plage de valeursIP
indiquée est assignée aux systèmes.
Pour plus d'informations, consulter la page man
dhcpd.conf(5)
.
Avertissement
Pour éviter une mauvaise configuration quand le serveur DHCP donne des adresses IP d’une plage d’adresses IP à un autre segment de Ethernet physique, assurez-vous de ne pas confiner plusieurs sous-réseaux dans une déclaration de réseau partagé.
10.4.1. Configuration de l'hôte
Avant de procéder à tout changement, sauvegarder les fichiers
/etc/dhcp/dhcpd.conf
et /etc/dhcp/dhcpd.conf
existants.
Configurer un système unique pour plusieurs réseaux
L'exemple /etc/dhcp/dhcpd.conf
suivant crée deux sous-réseaux et configure une adresse IP
pour le même système, selon le réseau auquel elle se connecte :
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; } host example0 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 10.0.0.20; } host example1 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 172.16.0.20; }
hôte example0
- La déclaration
host
définit des paramètres spécifiques pour un système unique, comme une adresseIP
. Pour configurer des paramètres spécifiques sur plusieurs hôtes, utiliser des déclarations d'hôte
.La plupart des clientsDHCP
ignorent le nom dans les déclarations d'hôte
, et à ce titre, ce nom peut être n'importe quoi, tant que c'est différent des autres déclarations d'hôte
. Pour configurer le même système sur des réseaux multiples, utilisez un nom différent pour chaque déclaration d'hôte
, sinon le démonDHCP
ne démarrera pas. Les systèmes sont identifiés par l'optionhardware ethernet
, et non pas le nom dans la déclaration del'hôte
. hardware ethernet 00:1A:6B:6A:2E:0B;
- L'option
hardware ethernet
identifie le système. Pour trouver cette adresse, exécuter la commandeip link
. fixed-address 10.0.0.20;
- L'option
fixed-address
assigne une adresseIP
au système spécifié par l'optionhardware ethernet
. Cette adresse doit se trouver en dehors de la plage d'adresssesIP
spécifiée par l'optionrange
.
Si les énoncés d'
option
ne se terminent pas par un point virgule, le démon DHCP
ne démarrera pas, et une errreur ressemblant à ce qui suit sera journalisée dans /var/log/messages
:
/etc/dhcp/dhcpd.conf line 20: semicolon expected. dhcpd: } dhcpd: ^ dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file dhcpd: dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
Configurer des systèmes avec des interfaces de réseaux multiples
Les déclarations suivantes d'hôte
configurent un système unique, qui possède plusieurs interfaces de réseau, pour que chaque interface reçoive la même adresse IP
. Cette configuration ne fonctionnera pas si les deux interfaces réseau sont connectées au même réseau en même temps :
host interface0 { hardware ethernet 00:1a:6b:6a:2e:0b; fixed-address 10.0.0.18; } host interface1 { hardware ethernet 00:1A:6B:6A:27:3A; fixed-address 10.0.0.18; }
Pour cet exemple,
interface0
est la première interface réseau, et interface1
est la seconde interface. Les différentes options hardware ethernet
identifient chaque interface.
Si un tel système se connecte à un autre réseau, ajouter plus de déclarations d'
hôte
, sans oublier :
- d'assigner une
fixed-address
valide au réseau auquel l'hôte se connecte. - de rendre le nom de déclaration d'
host
unique.
Quand un nom non unique est donnée dans une déclaration d'
hôte
, le démon DHCP
ne démarre pas, et l'erreur suivante est journalisée dans /var/log/messages
:
dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists dhcpd: } dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
L'erreur vient du fait d'avoir plusieurs déclarations d'
host interface0
définies dans /etc/dhcp/dhcpd.conf
.