Administration réseau sous Linux/DHCP

Le protocole DHCP (pour Dynamic Host Configuration Protocol) est un protocole réseau dont le rôle est d'assurer la configuration automatique des paramètres réseau d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous-réseau.

Le protocole DHCP est très souvent mis en œuvre par les administrateurs de parc de stations car il offre l'énorme avantage de centraliser la configuration des stations sur une unique machine : le serveur DHCP. Le principal danger de DHCP est qu'en cas de panne du serveur DHCP, plus aucune station n'accède au réseau.

Il y a deux utilisations principales d'un serveur DHCP :

  • attribuer une configuration fixe à certains postes (on les reconnaît grâce à leur adresse MAC)
  • et attribuer une configuration dynamique aux postes inconnus.

On peut par exemple donner une adresse IP fixe à certains serveurs, et attribuer des adresses variables aux autres postes. Le protocole est prévu pour qu'un poste qui revient sur le réseau récupère la même adresse qu'il avait la première fois. Elle lui est réservée un certain temps (le lease time).

Configuration modifier

Le fichier de configuration principal est /etc/dhcp/dhcpd.conf. Sa syntaxe est décrite dans man dhcpd.conf.

Il possède des options globales, généralement placées au début, et des sections pour chaque hôte ou réseau à configurer.

Après chaque modification de la configuration, il faut relancer le serveur :

/etc/init.d/isc-dhcp-server restart

S'il ne se relance pas, le détail de l'erreur se trouve généralement dans /var/log/syslog

Interfaces modifier

Pour choisir les interfaces sur lesquels le serveur est lancé, il faut modifier /etc/default/isc-dhcp-server en indiquant par exemple

INTERFACES="eth1 eth2"

Il est obligatoire d'avoir une section "subnet" (voir ci-dessous) pour le réseau de chaque interface.

Adresse dynamique modifier

Pour configurer une plage d'adresses à attribuer dynamiquement aux adresses MAC inconnues, on utilise une section subnet dans dhcpd.conf. La section suivante attribuera par exemple des adresses comprises entre 192.168.1.101 et 192.168.1.199 :

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.101 192.168.1.199;
}

Adresse fixe modifier

Pour donner une adresse fixe à un poste, il faut connaître son adresse MAC et écrire une section host. Par exemple la section suivante attribue l'adresse 192.168.0.47 au poste cobalt dont l'adresse MAC est 00:13:d4:bd:b7:9a :

host cobalt {
   hardware ethernet 00:13:d4:bd:b7:9a;
   fixed-address 192.168.0.47;
}

Options modifier

Le serveur DHCP peut fournir d'autres informations que l'adresse IP. Ces options peuvent être définies de manière globale en les plaçant en dehors de toute section. Elles s'appliqueront alors à toutes les sections qui ne les redéfinissent pas. Si elles sont placées dans une section particulière, elles ne s'appliquent qu'à celle-ci.

L'option domain-name-servers permet par exemple d'indiquer au poste les adresses des serveurs DNS. L'option routers indique la passerelle.

Toutes les options sont décrites dans la page de man. On peut également consulter cette documentation sur internet[1].