Menu Fermer

Configurer un serveur DHCP sous Linux (isc-dhcp-server)

DHCP (Dynamic Host Configuration Protocol) est un protocole réseau pour attribuer automatiquement la configuration, dont l’adresse IP aux clients.
Si vous êtes un administrateur réseau, vous pouvez avoir besoin de configurer un serveur DHCP sous Linux pour votre réseau local (LAN).

Dans ce tutoriel, nous allons voir comment mettre en œuvre un serveur DHCP sur les systèmes Linux et comment le configurer pour votre propre réseau.

Configurer un serveur DHCP sous Linux

Comment installer le serveur DHCP

Pour installer DHCP sur Ubuntu, Debian et Linux Mint, utilisez la commande APT :

sudo apt install isc-dhcp-server

Pour installer DHCP sur CentOS, Fedora, AlmaLinux et Red Hat, utilisez dnf :

sudo dnf install dhcp

Comment configurer un serveur DHCP sous Linux

Configurer l’interface d’écoute

Première chose à paramétrer est l’interface d’écoute du serveur DHCP.
Pour cela, éditez le fichier /etc/default/isc-dhcp-server puis modifiez la valeur de INTERFACESv4 pour y ajouter le nom de l’interface réseau sur laquelle le serveur DHCP doit opérer.

INTERFACESv4="ens33"

Répétez l’opération pour INTERFACESv6 ou commencez le pour que le serveur DHCP ignore la configuration IPv6.

Configurer un serveur DHCP sous Linux

Configuration basique d’attribution automatique d’adresse IP (subnet)

Par défaut, la configuration du serveur DHCP n’inclut aucun sous-réseau sur lequel le serveur DHCP doit louer des adresses IP. Par conséquent, en fonction de votre système Linux, vous pouvez obtenir le message d’erreur suivant lorsque vous tentez de démarrer le DHCP avec le fichier de configuration par défaut /etc/dhcp/dhcpd.conf.

subnet 10.0.0.0 netmask 255.255.0.0 {
  range 10.0.1.2 10.0.2.253;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
}
Configurer un serveur DHCP sous Linux

Ce fichier de configuration demande au serveur DHCP d’écouter les requêtes des clients DHCP sur le sous-réseau 10.1.1.0 avec le masque de réseau 255.255.255.0. En outre, il attribuera des adresses IP dans la plage 10.1.1.2 – 10.1.1.254. Il définit également une définition vide pour le sous-réseau avec l’ID de réseau 192.168.1.0.

Modifiez le code ci-dessus avec votre sous-réseau et insérez-le dans le fichier /etc/dhcp/dhcpd.conf. Lorsque vous êtes prêt, redémarrez votre serveur DHCP avec (la commande de redémarrage peut varier) :

sudo systemctl restart isc-dhcp-server

DHCP default et max lease time

A ce stade, nous pouvons ajouter quelques paramètres supplémentaires à notre configuration DHCP, à savoir le délai d’expiration par défaut et le délai d’expiration maximal.
Des valeurs existent déjà en en-tête du fichier de configuration dont voici les explications :

  • default-lease-time est une valeur en secondes à laquelle l’expiration d’une adresse IP louée sera fixée si le client DHCP ne demande pas d’autre délai d’expiration spécifique
  • max-lease-time est une valeur en secondes qui définit un délai d’expiration maximal pour une adresse IP louée par le serveur DHCP
default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.255.0.0 {
  range 10.0.1.2 10.0.2.253;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
}

Définir le serveur DNS

Un autre paramètre de configuration que le serveur DHCP peut définir pour ses clients est la définition du serveur DNS. Si vous souhaitez que vos clients utilisent un serveur DNS avec une adresse IP 8.8.8.8 (serveur DNS de Google) et 10.1.1.254, vous pouvez le faire en incluant une option domain-name-servers dans le fichier de configuration du DHCP.

default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.255.0.0 {
  range 10.0.1.2 10.0.2.253;
  option domain-name-servers 10.1.1.254, 8.8.8.8;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
}
Configurer un serveur DHCP sous Linux

Définir la passerelle par défaut

DHCP permet également de configurer la passerelle d’un client. Pour que n’importe quel client du réseau local utilise la passerelle par défaut 10.1.1.1, ajoutez la ligne option routeurs 10.1.1.1 dans le fichier dhcpd.conf, comme indiqué ci-dessous :

default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.255.0.0 {
  range 10.0.1.2 10.0.2.253;
  option domain-name-servers 10.0.1.254, 8.8.8.8;
  option routers 10.0.1.1;
}
Configurer un serveur DHCP sous Linux

Configurer une IP fixe pour une machine spécifique

Il peut être nécessaire d’attribuer une adresse IP statique à un hôte particulier du réseau, tel qu’une imprimante, un serveur web, etc. Dans ce cas, il est possible de modifier la configuration du serveur DHCP pour louer une adresse IP choisie à un hôte spécifique défini par son adresse MAC.

host machine1 {
  hardware ethernet 00:15:d3:b7:8f:85;
  fixed-address 10.0.1.100;
  option host-name "imprimante";
}

host machine2 {
  hardware ethernet 00:11:a4:c2:44:21;
  fixed-address 10.0.1.200;
  option host-name "serveur web";
}

Le fichier de configuration DHCP ci-dessus attribue de manière permanente l’adresse IP 10.1.1.100 à l’hôte “imprimante” dont l’adresse MAC est 00:15:d3:b7:8f:85 et l’adresse IP 10.1.1.200 à l’hôte “serveur web” dont l’adresse MAC est 00:11:a4:c2:44:21.

Configurer un serveur DHCP sous Linux