Services et serveurs

DHCP sous Linux : Le fichier de configuration dhcpd.conf

Table des matières

dhcp_logo




Introduction



Cet article récapitule les options de configuration du fichier dhcpd.conf pour un serveur DHCP sous Linux.



Articles associés






Fichier de configuration



La base: un bail et une plage d'adresse



Toute la config du serveur dhcp se trouve dans le fichier /etc/dhcp/dhcpd.conf.

Par défaut, toutes les lignes sont commentées. Le serveur n'est donc pas en action.

Exemple d'une config basique:
Code BASH :
# Bail de 24H
default-lease-time 86400; 
# Bail maxi de 48H
max-lease-time 172800; 
# Domaine
option domain-name     "linuxtricks.lan";
 
# Déclaration d'un réseau
subnet 192.168.1.0 netmask 255.255.255.0 {
        range                           192.168.1.100 192.168.1.199; # Plage IP
        option domain-name-servers      192.168.1.11; # DNS
        option routers                  192.168.1.1; # Passerelle
}
 


Réserver une adresse IP dans la plage



On peut aussi réserver une adresse IP dans une plage, pour une adresse MAC donnée, il suffit de déclarer un "host" dans le "subnet".
Démonstration avec 2 réservations :

Code BASH :
# Plage DHCP
subnet 10.21.27.0 netmask 255.255.255.0 {
        range                           10.21.27.100 10.21.27.199;
        option domain-name-servers      10.21.27.253;
        option routers                  10.21.27.254;
        # Réservations DHCP
        host superlinux-eth {
                hardware ethernet 10:bf:48:13:f6:cc;
                fixed-address 10.21.27.100;
        }
        host superlinux-wlan {
                hardware ethernet 68:5d:43:2a:f3:af;
                fixed-address 10.21.27.101;
        }
}
 


Refuser un hôte



Si on veut bloquer une adresse MAC, afin qu'elle ne reçoive pas d'IP, voici quelques lignes à ajouter dans le dhcpd.conf (on suppose que 00:00:00:00:00 est l'adresse MAC)

Code BASH :
host banni {
      hardware ethernet 00:00:00:00:00;
      deny booting;
}


Paramétrer des pages réseaux distantes



Par défaut, sur Red Hat Enterprise Linux et dérivées, le serveur DHCP n'écoute et ne délivre que des adresses IP que sur les réseaux en écoute (Réseaux des adresses IP de la machine).

Si on veut que le serveur DHCP délivre des adresses IP sur d'autres réseaux (car présence d'Agent relais), il faudra mettre ces réseaux dans une section shared-network :

Code BASH :
# Bail 24h
default-lease-time 86400;
# Max Bail 48h
max-lease-time 172800;
 
# Serveur DNS
option domain-name-servers 10.21.21.8;
 
# Réseau connecté au serveur
subnet 10.21.21.0 netmask 255.255.255.0 {
}
 
# Réseaux distants via relay-dhcp
shared-network cesi {
        # Etendue
        subnet 10.21.22.0 netmask 255.255.255.0 {
                # Plage d'IP à délivrer
                range                           10.21.22.100 10.21.22.199;
                # Passerelle par défaut
                option routers                  10.21.22.254;
 
        }
}


Si le DHCP ne doit pas délivrer d'adresses IP sur le réseau local, il est nécessaire de mettre quand même une section subnet pour le réseau local, mais vide.
Cette page a été vue 134625 fois