tuto linux serveur dhcp installation et configuration
  • 3 décembre 2024
  • ComputaSYS
  • 0


I. Présentation

Dans ce tutoriel, nous allons apprendre à installer et à configurer un serveur DHCP sous Debian 12. Vous pouvez utiliser une autre distribution puisque le paquet ISC DHCP Server n’est pas limité à cette distribution Linux.

Pour rappel, un serveur DHCP permet de fournir automatiquement une configuration IP à un appareil. Par exemple, à des ordinateurs, des smartphones, des imprimantes réseau, etc… Cette configuration IP est composée de plusieurs informations, dont celles-ci :

d’une adresse IP

d’un masque de réseau

d’une passerelle

d’une adresse de DNS

Lorsqu’une machine sans configuration IP se connecte au réseau, celle-ci émet un DHCP DISCOVER sur le réseau afin de tenter de solliciter un serveur DHCP. Le serveur DHCP répond par un DHCP OFFER et commence à donner des premiers paramètres, la machine envois une demande DHCP REQUEST puis le serveur DHCP envois un DHCP ACK afin de fournir la configuration IP.

La configuration IP associée à une machine est enregistrée dans ce que l’on appelle un bail DHCP. Ce bail inscrit dans la base de données du serveur DHCP indique que telle machine aura telle adresse IP pour une durée de 8 jours, par exemple. Si besoin, la machine peut renouveler son bail avant qu’il n’expire pour conserver cette adresse IP. Sinon, il sera libéré et le serveur DHCP pourra réattribuer cette adresse IP à une autre machine. Par ailleurs, un seul serveur DHCP peut fournir des configurations IP à plusieurs réseaux différents grâce à la fonction de relais DHCP.

Dans le cadre de ce tutoriel, notre objectif sera d’installer un serveur DHCP est de distribuer la plage d’adresses IP suivante : de 192.168.14.100 à 192.168.14.120.

Prérequis :

Une machine Debian avec une adresse IP fixe, à savoir 192.168.14.99/24, pour ma part.

Aucun autre serveur DHCP actif sur le réseau afin d’éviter les conflits.

Une machine cliente (Debian, Ubuntu, Windows, etc…) sans configuration IP afin de tester notre serveur DHCP.

Une connexion Internet pour télécharger les paquets d’installation.

Version originale de l’article : 10 mars 2015

II. Installation du serveur DHCP

Commençons par une mise à jour du cache des paquets du système :

sudo apt-get update

Nous allons maintenant installer le paquet « isc-dhcp-server » avec la commande suivante :

sudo apt-get install isc-dhcp-server

Il est possible que l’installation se termine par une erreur, mais ce n’est pas gênant. C’est lié au fait que le serveur DHCP n’est pas encore configuré. Vous pourriez notamment voir ceci dans la console :

Failed to start isc-dhcp-server.service – LSB: DHCP server

Passons à la configuration du serveur DHCP.

III. Configuration du serveur DHCP

A. Configuration globale du serveur DHCP

Nous allons commencer par configurer le serveur DHCP en lui-même, notamment pour définir sur quelle interface réseau il doit être en écoute. Avant de modifier le fichier de configuration, je vous encourage à afficher la configuration IP de votre machine pour identifier le nom de l’interface réseau.

ip a

Pour ma part, l’interface réseau s’appelle « ens33 ».

Désormais, éditez le fichier de configuration du serveur DHCP :

sudo nano /etc/default/isc-dhcp-server

Dans ce fichier, vous devez configurer deux directives.

Commencez par retirer le « # » sur cette ligne pour activer la prise en charge du fichier de configuration « dhcpd.conf » que nous modifierons par la suite.

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf

Puis, configurez l’option « INTERFACESv4 » afin de préciser le nom de l’interface sur laquelle serveur DHCP doit être en écoute. Il est possible de préciser plusieurs valeurs. Ici, nous effectuons la configuration pour IPv4, mais si vous avez besoin de l’IPv6, faites de même avec la directive « INTERFACESv6 ».

Indiquez le nom de l’interface repéré précédemment :

INTERFACESv4= »ens33″

Vous pouvez enregistrer et fermer ce fichier.

B. Créer une étendue DHCP

Désormais, nous allons modifier le fichier de configuration « dhcpd.conf » pour déclarer une première étendue.

sudo nano /etc/dhcp/dhcpd.conf

Dans ce fichier, vous pouvez déclarer des options au niveau du serveur ou au niveau de chaque étendue, selon vos besoins. Cela signifie qu’une option peut être positionnée au sein d’un bloc déclaratif « subnet » pour être appliquée à une étendue, ou en dehors, pour s’appliquer par défaut sur toutes les étendues.

Commencez par ajouter ces lignes, en adaptant selon vos besoins :

# Nom de domaine
option domain-name « it-connect.local »;

# Durée pour les baux DHCP en secondes (default 4 jours et 8 jours maximum)
default-lease-time 345600;
max-lease-time 691200;

# Serveur DHCP principal sur ce réseau local
authoritative;

# Logs
log-facility local7;

Puis, à la suite, déclarez votre première étendue DHCP :

# Déclaration d’une étendue DHCP
subnet 192.168.14.0 netmask 255.255.255.0 {
# Plage d’adresses IP à distribuer
range 192.168.14.100 192.168.14.120;
# Serveur(s) DNS à distribuer
option domain-name-servers 192.168.14.201;
# Passerelle par défaut
option routers 192.168.14.2;
}

Ce qui donne :

Quand c’est fait, enregistrez le fichier et relancez le service du serveur DHCP :

sudo systemctl restart isc-dhcp-server.service

La configuration est maintenant terminée. Vous pouvez effectuer un test dès maintenant ou poursuivre la configuration avec une réservation DHCP, si vous le souhaitez.

Si le serveur DHCP ne démarre pas, vérifiez les journaux. Vous pouvez utiliser cette commande :

sudo journalctl -xe | grep -e dhcpd

Une erreur de saisie est vite arrivée… Un caractère mal placé et cela peut empêcher la validation du fichier de configuration. Ainsi, vous pourriez voir un message tel que « dhcpd self-test failed. Please fix /etc/dhcp/dhcpd.conf » dans les logs.

C. Créer une réservation DHCP

La réservation DHCP va permettre de réserver une adresse IP pour l’associer à une adresse MAC. Ainsi, il n’y a que la machine avec l’adresse MAC correspondante qui pourra obtenir cette adresse IP. Il est important de savoir effectuer ce type de configuration, par exemple, pour une imprimante.

Ouvrez de nouveau le fichier de configuration « dhcpd.conf ».

À la suite de la déclaration du subnet, mais en dehors de ce bloc, ajoutez ces lignes :

# Réservation d’adresse IP pour le PC « Ubuntu-2404 »
host Ubuntu-2404 {
hardware ethernet 00:0c:29:0a:6f:c3;
fixed-address 192.168.1.100;
}

Ainsi, la machine qui dispose de l’adresse MAC « 00:0c:29:0a:6f:c3 » aura toujours l’adresse IP « 192.168.14.100 », soit la première adresse IP de notre plage IP. Ici, l’entrée est nommée « Ubuntu-2404 » car j’ai repris le nom d’hôte afin de pouvoir m’y retrouver dans ma configuration, mais vous pouvez indiquer le nom de votre choix.

Quand c’est fait, enregistrez le fichier et relancez le service du serveur DHCP :

sudo systemctl restart isc-dhcp-server.service

On va pouvoir passer à la phase de test !

IV. Test de bon fonctionnement du DHCP

Pour le test, on va simplement démarrer une machine Linux ou Windows sur le même réseau local que notre serveur DHCP. Ainsi, nous verrons s’il distribue bien une configuration IP à notre machine.

Vous devez configurer la carte réseau de la machine cliente pour qu’elle soit en DHCP. Si vous utilisez Ubuntu, Debian, ou Windows, pour faire ce test, les manipulations ne sont pas les mêmes. Vous pouvez vous aider ces tutoriels :

À titre d’information, voici la configuration du fichier « /etc/netplan/01-network-manager-all.yaml » de Netplan sur Ubuntu :

# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: yes

Également à titre d’information, si vous passez par le fichier « /etc/network/interfaces », voici la configuration attendue :

auto ens33
iface ens33 inet dhcp

Relancez le service réseau sur votre machine (la commande est différente, selon si vous utilisez Netplan ou pas).

Ensuite, vous devriez obtenir une adresse IP ! Vous pouvez le vérifier via la commande habituelle sur le poste client :

ip a

Ici, la machine a obtenue l’adresse IP « 192.168.14.100 », car il s’agit de celle concernée par la réservation DHCP créée précédemment.

Sur le serveur, vous pouvez consulter les journaux pour en savoir plus sur les sollicitations reçues de la part des clients :

sudo journalctl -xe | grep -e DHCPACK -e DHCPOFFER

Par exemple, cela retourne :

déc. 03 10:03:15 srv-dhcp-1 dhcpd[3540]: DHCPOFFER on 192.168.14.100 to 00:0c:29:0a:6f:c3 (Ubuntu2404) via ens33
déc. 03 10:03:15 srv-dhcp-1 dhcpd[3540]: DHCPACK on 192.168.14.100 to 00:0c:29:0a:6f:c3 (Ubuntu2404) via ens33
déc. 03 10:09:50 srv-dhcp-1 dhcpd[3540]: DHCPACK on 192.168.14.100 to 00:0c:29:0a:6f:c3 (Ubuntu2404) via ens33

Toujours sur le serveur DHCP, vous pouvez également afficher la base de données de baux DHCP :

cat /var/lib/dhcp/dhcpd.leases

Le bail DHCP de la machine « Ubuntu-2404 » est bien visible.

Notre serveur DHCP est opérationnel !

V. Conclusion

En suivant ce tutoriel, vous devriez être en mesure de configurer un serveur DHCP sous Linux, en quelques minutes ! La configuration de l’étendue DHCP peut être enrichie avec d’autres options, car le serveur DHCP prend en charge de nombreuses options (voir cette page). Ici, nous avons vu les options élémentaires.

Pour apprendre comment mettre en redondance deux serveurs DHCP sur Linux, c’est ici : redondance de serveurs DHCP sous Linux

Si vous avez des questions, vous pouvez commenter cet article ou venir poser votre question sur notre Discord.

Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP « Cloud and Datacenter Management ». Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *