Service DHCP sous Linux
Plan
1/ définition
2/ rôle d’un serveur DHCP
3/ avantages et inconvénients
4/ fonctionnement
5/ installation et configuration
6/ vérification du bon fonctionnement
Définition
Le protocole DHCP (Dynamic Host Configuration Protocol) est un protocole réseau permettant
d’assigner automatiquement des informations TCP/IP aux ordinateurs clients. Chaque client
DHCP se connecte au serveur central DHCP, lequel renvoie la configuration réseau du client , y
compris l’adresse IP, la passerelle et les serveurs DNS
Role d’un serveur dhcp
Un serveur DHCP (Dynamic Host Configuration Protocol) a pour rôle de
distribuer des adresses IP à des clients pour une durée déterminée.
Au lieu d'affecter manuellement à chaque hôte une adresse statique, ainsi
que tous les paramètres tels que (serveur de noms, passerelle par défaut,
nom du réseau), un serveur DHCP alloue à un client, un bail d'accès au
réseau, pour une durée déterminée (durée du bail). Le serveur passe en
paramètres au client toutes les informations dont il a besoin.
fonctionnement de DHCP
Installation et Vérification
Installation Package dhcp:
[root@servdhcp ~]# dnf -y install dhcp*
Ou bien (Adaptateur Network à NAT)
[root@servdhcp Packages]#rpm -ivh dhcp-4.2.5-58.el7.centos.1.x86
Packages c’est Le répertoire qui contient les Packages
Verification de l’installation du dhcp
[root@servdhcp Packages] #rpm -qa | grep dhcp
[root@servdhcp Packages] #dnf list --installed | grep dhcp
Configuration du serveur DHCP
La configuration consiste à utiliser le fichier de configuration
dhcpd.conf : /etc/dhcp/dhcpd.conf
fichier de configuration du serveur (il permet de déterminer la plage
d'adresses, les paramètres et les options essentiels dhcp )
[root@servdhcp ~]# vi /etc/dhcp/dhcpd.conf
-les lignes de ce fichier de configuration se compose de:
Commentaire: chaque ligne de commentaire commence par #
Chaque ligne de configuration doit se terminer par ;
ddns-update-style none; # pas de mise à jour du DNS par DHCP
option domain-name " formation.loc"; # nom de domaine transmis au
client
option domain-name-servers 192.168.1.2, 8.8.8.8; # liste des Adr des
# serveurs DNS séparés par des virgules
default-lease-time 21600; # durée du bail par défaut en secondes
# sans demande explicite
max-lease-time 43200; # durée max du bail si la demande du client
# est plus élevée
#Rendre ce serveur DHCP authoritaire
Authoritative ;
# Gestion du sous-réseau 192.168.1.0
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.2 192.168.1.100; # Configuration de
# l’intervalle de la plage DHCP
option routers 192.168.1.1; # passerelle pour ce réseau
option subnet-mask 255.255.255.0; # masque de sous-réseau
}
# Cas d’attribution d’une IP réservée permanente
host station1
{
hardware ethernet 00:A0:ad:41:5c:b1; # Adresse MAC
fixed-address 192.168.1.10; # cette machine aura l’IP 192.168.1.10
}
# Cas d’attribution le nom d’hote déclaré
use-host-decl-names on;
host station1
{
# cette machine aura l’IP 192.168.1.10 et le nom station1
hardware ethernet 00:A0:ad:41:5c:b1; # Adresse MAC
fixed-address 192.168.1.10;
}
Réservation DHCP
Cas d’attribution du nom d’hôte à l’aide de l’option host-name :
host station2
{
hardware ethernet 00:A0:ad:41:5c:b2; # Adresse MAC
fixed-address 192.168.1.90; # ce host aura l’IP 192.168.1.90
option host-name "station2"; # ce host aura comme nom station2
}
Exemple de fichier de configuration dhcpd.conf
# ici il s'agit du réseau 192.168.1.0
subnet 192.168.1.0 netmask 255.255.255.0 {
#La plage d'adresse disponible pour les clients
range 192.168.1.10 192.168.1.100;
# Les clients auront cette adresse comme passerelle par défaut
option routers 192.168.1.1;
# Ici c'est le serveur de noms DNS , on peut en mettre plusieurs
option domain-name-servers 192.168.1.2;
# Enfin on leur donne le nom du domaine DNS
option domain-name “formation.loc";
# Et l'adresse utilisée pour la diffusion
option broadcast-address 192.168.1.255;
}
# Le bail à une durée de 86400 s par défaut, soit 24 h
# On peut configurer les clients pour qu'ils puissent demander
# une durée de bail spécifique
default-lease-time 86400;
# On le laisse avec un maximum de 7 jours
Réservation d’une Adr IP pour un client
# on désire réserver des adresses à des
machines
# définir les machines qui vont avoir
# les Adressee IP de réservation
host clt-linux {
hardware ethernet 00:80:23:a8:a7:24;
fixed-address 192.168.1.20;}
host clt-win {
hardware ethernet a0:81:24:a8:e8:3b;
fixed-address 192.168.1.22;}
}
Ajouter ces lignes dans le fichier dhcpd.conf
[root@serv-dhcp ~]#vi /etc/dhcp/dhcpd.conf
#Exclure une plage d’Adr IP de 192.168.1.51 à
192.168.1.59 de la plage 192.168.1.10 à 192.168.1.100
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.50;
range 192.168.1.60 192.168.1.100;}
#Rendre ce serveur DHCP authoritaire
Authoritative ;
#Refuser a une machine d’avoir une Adr IP de la part du
# serveur DHCP
host windows-client {
hardware ethernet 00:0C:29:05:A7:CB;
deny booting;}
option netbios-name-servers ip-address [, ip-address...];
pour Identifier l’adresse des serveurs WINS servers
option nis-domain Nom-Domain-Nis;
pour Identifier le nom du domaine NIS
option nis-servers ip-address [, ip-address... ];
pour Identifier l’adresse des serveurs NIS
option ntp-servers ip-address [, ip-address... ];
pour Identifier l’adresse des serveurs NTP
Redémarrage du Service DHCP
Le serveur est configuré, il n'y a plus qu'à le mettre en route. Utilisez les commandes suivantes pour
redémarrer, activer et autoriser le service sur le par feu :
[root@serdhcp ~]# systemctl restart dhcpd [ ou dhcpd.service ]
[root@servdhcp ~]# systemctl enable dhcpd
[root@servdhcp ~]# firewall-cmd --add-service=dhcp --permanent
[root@servdhcp ~]# firewall-cmd --reload
La commande dhcpd –d permet de tester le contenu du fichier dhcpd.conf et de voir les messages et
de déterminer s'il y a des dysfonctionnement éventuels.
[ root@master /etc/dhcp]# dhcpd -d
Internet Software Consortium DHCP Server V3.0.1rc9
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Wrote 1 leases to leases file.
Listening on LPF/eth0/00:d0:59:82:2b:86/192.168.1.0/24
Sending on LPF/eth0/00:d0:59:82:2b:86/192.168.1.0/24
Sending on Socket/fallback/fallback-net
CTRL C pour arrêter.
Configuration côté clients
Le client sous Windows
L'installation est assez simple si vous avez déjà une carte réseau et le protocole TCP/IP installé.
Utilisez les commandes suivantes: Panneau de configuration/Réseau/Protocole TCP
IP/Propriétés/Onglet "adresse ip"/ Cochez Obtenir automatiquement une adresse IP
La configuration est terminée, vous pouvez relancer la machine. Le client interrogera un serveur
DHCP pour qu'il lui délivre un bail (sorte d'autorisation de séjour sur le réseau) contenant au
minimum une adresse Ip et le masque correspondant .
ipconfig /release
ipconfig /renew
Le client sous Linux
Vous allez réaliser une configuration manuelle
ouvrez le fichier de configuration d’interface ifcfg-ens160. Remplacez
static par dhcp dans le paramètre BOOTPROTO=dhcp
La configuration de la carte est terminée, vous pouvez tester en
relançant le service réseau.
[root@clt-dhcp ~]# systemctl restart network
[root@clt-dhcp ~]# ifconfig ens160
[root@clt-dhcp ~]# ip addr show dev ens160
[root@localhost ~]# nmcli d show ens160 #plus de detail
Vous pouvez également tester dynamiquement en ligne de commande
Shell :
[root@clt-dhcp ~]# dhclient ens160