Ceci est une ancienne révision du document !


Mise en place d'un serveur DHCP sous Linux

Cette page a pour but de mettre en place un serveur DHCP sous Linux pour distribuer des paramètres IP aux machines d'un réseau. Les programmes utilisés dans ces tutos sont : ISC-DHCP-Server et DNSMasq.

ISC-DHCP-Server

1) Installer le paquet ISC-DHCP-Server

 apt-get install isc-dhcp-server 

2) Editer le fichier de configuration DHCP /etc/dhcp/dhcpd.conf :

 nano /etc/dhcp/dhcpd.conf 

Les lignes suivantes permettent de configurer les temps d'allocation d'une adresse IP sur le réseau :

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

Ces lignes permettent de déclarer un sous-réseau et les paramètres attribués aux clients :

subnet 10.100.0.0 netmask 255.255.0.0 {     #Déclaration du sous-réseau
        range 10.100.0.10 10.100.0.250;     #Plage d'adresses IP reservée aux clients DHCP
        option routers 10.100.0.1;     #Routeurs du réseau (ici passerelle par défaut)
        option domain-name "nocterie.local";     #Nom de domaine
        option domain-name-servers 1.1.1.1, 9.9.9.9;     #Serveurs DNS
}

[!] Ne pas oublier le point virgule après chaque paramètre

3) Editer le fichier de configuration du serveur /etc/default/isc-dhcp-server

 nano /etc/default/isc-dhcp-server 

Préciser la carte réseau qui répondra aux requêtes DHCP. Ne rien mettre entre les guillemets pour séléctionner toutes les cartes réseau de la machine

 INTERFACESv4="enp0s8" #Carte réseau qui répondra aux requêtes DHCP

4) Redémarrer le service isc-dhcp-server

 service isc-dhcp-server restart 

5) Ouvrir un invité de commande sur une machine client pour tester que cela fonctionne et taper :

 ipconfig /renew 

Cela force la demande d'adresse IP. Si une adresse est déja attribuée par un autre DHCP(ou si la commande ne fonctionne pas), faire la commande ipconfig /release pour la libérer puis réessayer la commande précédente.

 ipconfig /release

Il est déconseillé d'activer plusieurs services DHCP dans le même sous-réseau car il va y avoir un conflit entre les deux.

Cela doit donner ceci :

Reservation d'adresse

Pour réserver une adresse à un client du DHCP, ajouter ces lignes :

host client2 {     #nom du client
        hardware ethernet 00:JJ:YU:38:AC:45;     #adresse mac du client
        fixed-address 192.168.1.21;     #adresse IP attribuée
    }

Documentation ISC-DHCP

DNSMasq

DNSMasq est à la fois un serveur DNS et un serveur DHCP.

Installer le service DNSMasq :

 apt-get install dnsmasq 

Editer le fichier /etc/dnsmasq.conf :

 nano /etc/dnsmasq.conf 

Ajouter ces lignes dans le fichier :

 interface="enp0s8"    #Interface(s) du service DHCP
domain-needed     #Résoudre les noms DNS avec une extension uniquement
bogus-priv     
filterwin2k
 
localise-queries
local=/lan/
domain=local.lan     #Domaine local
expand-hosts
no-negcache
resolv-file=/tmp/resolv.conf.auto    #Fichier resolv.conf local
 
dhcp-authoritative
dhcp-leasefile=/tmp/dhcp.leases

# Plage DHCP + Bail de 12h
dhcp-range=192.168.1.100,192.168.1.150,12h
# Masque de sous-réseau
dhcp-option=1,255.255.255.0
# Passerelle par défaut
dhcp-option=3,192.168.1.1 

Redémarrer le service DNSMasq :

 service dnsmasq restart