Petit tutorial sur la façon de monter un serveur DHCP pour distribuer des IP à un réseau local. Nous y aborderons aussi la façon de distribuer des IP de manière « fixe » par rapport au client.
Fiche corrigée le 20/10/2005 : il y avait quelques coquilles dans les extraits du fichier de configuration…
Fiche corrigée le 12/01/2011 : il n’est jamais trop tard pour toutes les autres coquilles (merci Matthieu). Il faut dire que j’ai écris cet article avant de commencer à utiliser l’excellent Antidote !
1 – Le DHCP
Le DHCP, ou Dynamic Host Configuration Protocol, est un protocole d’attribution automatique d’adresses IP aux clients du réseau. Il existe en effet deux manières de configurer les clients d’un réseau TCP/IP: soit avec de IP fixes configurées sur chacun des postes soit de manière automatique avec un serveur DCHP.
Le DHCP sous Linux est géré par un client nommé dhcp et son serveur dhcpd. Le serveur DHCP est maintenant disponible en version 3 et se nomme courament dhcpd (« d » pour « deamon » c’est à dire « service » en teminologie GNU/Linux)
2 – Installation et configuration basique
2.1 – Installation
Comme toujours, il existe plusieurs manières d’installer son logiciel sous Linux: soit en compilant les sources, soit de manière automatique en fonction de la distribution utilisée:
- Pour installer dhcpd à parir des source il suffit de les télécharger ici, sur le site Internet System Consortion, et de suivre les instructions d’installation.
- Sous Debian:
apt-get install dhcp3-server
- Sous Mandriva:
urpmi dhcp3-server
La suite de la documentation a été réalisée sous Debian, la procédure peut changer quelque peu en fonction de la distribution utilisée notamment pour l’emplacement des fichiers de configuration et des scripts de lancement. Le serveur DCHP doit bien sûr être configuré en IP fixe car il ne peut pas lui même s’attribuer d’adresse dynamique.
Lors de l’installation vous devrez indiquer la carte sur laquelle écoute le serveur DHCP, il s’agit de celle connectée au LAN qui demandera la distribution d’adresses. Si vous devez la modifier par la suite vous pourrez éditer le fichier /etc/default/dhcp3-server
.
Une fois l’installation effectuée, éditez le fichier de configuration localisé ici: /etc/dhcp3/dhcpd.conf
et renseignez dedans le detail de votre réseau.
2.2 – Configuration des options globales
La première partie du fichier de configuration regroupes des options concernant l’ensemble du serveur, comme, par exemple, les options de bail.
### OPTIONS GLOBALES ### # Nom de votre domaine option domain-name "throud.net"; # Adresse des serveurs DNS (c'est tout a fait optionnel) option domain-name-servers 84.168.20.40,84.168.20.80; # Adresse des serveurs WINS si nécessaire # Indispensable si vous utilisez SambaEdu3 option netbios-name-server 192.168.0.100; # Durée de bail en seconde (par défaut et maximum) default-lease-time 3000; max-lease-time 6000; # Le serveur est autoritaire pour les réseau déclaré plus bas authoritative; |
La mention authoritative
est très importante pour deux raison:
- Elle sert, dans le cas d’un ordinateur portable par exemple, à forcer à un client à renouveler son bail si il dépend du serveur DHCP d’un autre réseau.
- Elle sert aussi à imposer le serveur DHCP lorsqu’il y a plusieurs serveurs DHCP sur le réseau (dans le cas de serveurs primaires et secondaire par exemple)
2.3 – Configuration des sous réseaux
Une fois les options globales définies, vous pouvez commencer à déclarer les réseaux concernés par la distribution d’adresses dans la suite du fichier de configuration.
### DECLARATION DES RESEAUX ### # Le sous-réseau 192.168.0.0 ayant pour masque 255.255.255.0 subnet 192.168.0.0 netmask 255.255.255.0 { # Plage d'adresses range 192.168.0.2 192.168.0.30; # Adresse du routeur option routers 192.168.0.1; } |
Nota: vous devez utiliser un routeur dont l’adresse IP est fixe. Dans le cas d’un serveur faisant DHCP et routeur, il va de soi que l’adresse du routeur est celle du serveur.
3 – Configuration et options avancées
3.1 – Distribuer des IP fixes
Dans certains cas, il est intéressant qu’une machine conserve toujours la même adresse IP, dans ce cas, au lieu de la lui attribuer par hasard parmi la plage d’adresses disponible, vous pouvez choisir de lui en attribuer une en fonction de son adresse MAC. L’adresse MAC d’un client se trouve avec la commande ifconfig
.
### DECLARATION D'ADRESSE FIXES ### # Déclaration de la machine "Melchior" host melchior { # Adresse MAC du client hardware ethernet 00:0e:a6:41:ac:0c; # Adresse IP à attribuer fixed-address 192.168.0.31; } |
Si vous attribuez de cette manière une adresse comprise dans la page d’adresse définie dans le paragraphe 2.3, cela ne posera pas de problème l’adresse IP spécifiée étant alors considérée comme jamais disponible. Vous pouvez aussi la choisir en dehors de la plage du moment qu’il s’agit du même réseau (selon la norme IP). D’un autre côté, une machine qui dispose de plusieurs cartes réseaux branchée sur le réseau pourra être configurée carte par carte puisque l’adresse MAC est pour chacune des cartes.
Maintenant que votre configuration est opérationnelle, vous pouvez lancer votre serveur:
/etc/init.d/dhcpd strat
3.2 – Surveiller son serveur DHCP
Si le serveur DHCP refuse de se lancer, vous pouver tout d’abord consulter le fichier système:
cat /var/log/syslog | grep dhcp
Vous visualiserez les baux en examinant le fichier correspondant. Par exemple, avec cat /var/lib/dhcp3/dhcpd.leases
, qui retournera ce genre d’informations:
lease 192.168.220.230 { starts 4 2005/10/06 21:08:24; ends 4 2005/10/06 21:11:24; binding state active; next binding state free; hardware ethernet 00:30:84:73:43:2b; uid "\001\0000\204sC+"; client-hostname "cdi-hall-04"; } |
Vous y trouverez, entre autre, l’adresse IP, l’adresse MAC et le nom NetBios du client concerné, ainsi que toutes les informations concernant le dernier bail.
4 – Conclusion et informations connexes
Finalement, la mise en place d’un serveur DHCP et relativement simple, je vous invite à consulter les manuels des outils suivants pour plus d’informations:
- Configuration du DHCP:
dhcpd3
- Utilitaire client de DHCP
dhclient
- Lecture des baux:
dhcpd.leases
Je remercie Throud qui, après m’avoir fait réinstallé son réseau quatre fois, m’a inconsciement donnée envie de rédiger ce tutorial. Merci aussi à Dominique pour ses précisions.
Référence principale: Internet System Consortium.