3.9. Configuration du service DHCP pour les sous-réseaux qui ne sont pas directement connectés au serveur DHCP
Utilisez la procédure suivante si le serveur DHCP n'est pas directement connecté au sous-réseau pour lequel il doit répondre aux requêtes DHCP. C'est le cas si un agent relais DHCP transmet les demandes au serveur DHCP, car aucune des interfaces du serveur DHCP n'est directement connectée au sous-réseau que le serveur doit desservir.
Selon que vous souhaitez fournir le DHCP pour IPv4, IPv6 ou les deux protocoles, voir la procédure pour :
Conditions préalables
-
Vous êtes connecté en tant qu'utilisateur
root
. -
Le paquet
dhcp-server
est installé.
Procédure
Pour les réseaux IPv4 :
Modifiez le fichier
/etc/dhcp/dhcpd.conf
:Il est possible d'ajouter des paramètres globaux que
dhcpd
utilise par défaut si aucune autre directive ne contient ces paramètres :option domain-name "example.com"; default-lease-time 86400;
Cet exemple définit le nom de domaine par défaut pour la connexion à
example.com
, et le délai de location par défaut à86400
secondes (1 jour).Ajoutez la déclaration
authoritative
sur une nouvelle ligne :faisant autorité ;
ImportantSans la mention
authoritative
, le servicedhcpd
ne répond pas aux messagesDHCPREQUEST
parDHCPNAK
si un client demande une adresse qui n'est pas dans le pool.Ajoutez une déclaration
shared-network
, telle que la suivante, pour les sous-réseaux IPv4 qui ne sont pas directement connectés à une interface du serveur :shared-network example { option domain-name-servers 192.0.2.1; ... subnet 192.0.2.0 netmask 255.255.255.0 { range 192.0.2.20 192.0.2.100; option routers 192.0.2.1; } subnet 198.51.100.0 netmask 255.255.255.0 { range 198.51.100.20 198.51.100.100; option routers 198.51.100.1; } ... }
Cet exemple ajoute une déclaration de réseau partagé, qui contient une déclaration
subnet
pour les réseaux 192.0.2.0/24 et 198.51.100.0/24. Avec cette configuration, le serveur DHCP attribue les paramètres suivants à un client qui envoie une requête DHCP à partir de l'un de ces sous-réseaux :-
L'IP du serveur DNS pour les clients des deux sous-réseaux est :
192.0.2.1
. -
Une adresse IPv4 libre dans la plage définie dans le paramètre
range
, en fonction du sous-réseau à partir duquel le client a envoyé la demande. -
La passerelle par défaut est soit
192.0.2.1
, soit198.51.100.1
, en fonction du sous-réseau à partir duquel le client a envoyé la demande.
-
L'IP du serveur DNS pour les clients des deux sous-réseaux est :
Ajoutez une déclaration
subnet
pour le sous-réseau auquel le serveur est directement connecté et qui est utilisé pour atteindre les sous-réseaux distants spécifiés dansshared-network
ci-dessus :subnet 203.0.113.0 netmask 255.255.255.0 { }
NoteSi le serveur ne fournit pas de service DHCP à ce sous-réseau, la déclaration
subnet
doit être vide, comme indiqué dans l'exemple. Sans déclaration pour le sous-réseau directement connecté,dhcpd
ne démarre pas.
En option, configurez
dhcpd
pour qu'il démarre automatiquement au démarrage du système :# systemctl enable dhcpd
Démarrez le service
dhcpd
:# systemctl start dhcpd
Pour les réseaux IPv6 :
Modifiez le fichier
/etc/dhcp/dhcpd6.conf
:Il est possible d'ajouter des paramètres globaux que
dhcpd
utilise par défaut si aucune autre directive ne contient ces paramètres :option dhcp6.domain-search "example.com"; default-lease-time 86400;
Cet exemple définit le nom de domaine par défaut pour la connexion à
example.com
, et le délai de location par défaut à86400
secondes (1 jour).Ajoutez la déclaration
authoritative
sur une nouvelle ligne :faisant autorité ;
ImportantSans la mention
authoritative
, le servicedhcpd
ne répond pas aux messagesDHCPREQUEST
parDHCPNAK
si un client demande une adresse qui n'est pas dans le pool.Ajoutez une déclaration
shared-network
, telle que la suivante, pour les sous-réseaux IPv6 qui ne sont pas directement connectés à une interface du serveur :shared-network example { option domain-name-servers 2001:db8:0:1::1:1 ... subnet6 2001:db8:0:1::1:0/120 { range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100 } subnet6 2001:db8:0:1::2:0/120 { range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100 } ... }
Cet exemple ajoute une déclaration de réseau partagé qui contient une déclaration
subnet6
pour les réseaux 2001:db8:0:1::1:0/120 et 2001:db8:0:1::2:0/120. Avec cette configuration, le serveur DHCP attribue les paramètres suivants à un client qui envoie une requête DHCP à partir de l'un de ces sous-réseaux :-
L'IP du serveur DNS pour les clients des deux sous-réseaux est
2001:db8:0:1::1:1
. Une adresse IPv6 libre dans la plage définie dans le paramètre
range6
, en fonction du sous-réseau à partir duquel le client a envoyé la demande.Notez que l'IPv6 nécessite l'utilisation de messages d'annonce de routeur pour identifier la passerelle par défaut.
-
L'IP du serveur DNS pour les clients des deux sous-réseaux est
Ajoutez une déclaration
subnet6
pour le sous-réseau auquel le serveur est directement connecté et qui est utilisé pour atteindre les sous-réseaux distants spécifiés dansshared-network
ci-dessus :subnet6 2001:db8:0:1::50:0/120 { }
NoteSi le serveur ne fournit pas de service DHCP à ce sous-réseau, la déclaration
subnet6
doit être vide, comme indiqué dans l'exemple. Sans déclaration pour le sous-réseau directement connecté,dhcpd
ne démarre pas.
En option, configurez
dhcpd6
pour qu'il démarre automatiquement au démarrage du système :# systemctl enable dhcpd6
Démarrez le service
dhcpd6
:# systemctl start dhcpd6
Ressources supplémentaires
-
dhcp-options(5)
page de manuel -
dhcpd.conf(5)
page de manuel -
/usr/share/doc/dhcp-server/dhcpd.conf.example
fichier -
/usr/share/doc/dhcp-server/dhcpd6.conf.example
fichier - Mise en place d'un agent relais DHCP