AprĂšs la version Windows, voici la version serveur DHCP sous Linux Debian !

Le DHCP souvenez-vous, c’est ce petit service magique qui fait gagner du temps aux admins et qu’on adore tous, surtout quand il y a beaucoup de postes dans l’infra ! cool


Installer et configurer un serveur DHCP sous Debian

Pour rappel, le DHCP (Dynamic Host Configuration Protocol) est un protocole rĂ©seau qui permet d’assurer la configuration automatique des paramĂštres IP des machines qui en font la demande. Un serveur DHCP dans un rĂ©seau permet de ne pas avoir Ă  configurer chaque poste Ă  la main (trĂšs pratique !)

Info + : Pour en savoir plus sur le protocole DHCP, consultez cet article : Introduction au DHCP
Et pour la version Windows, c’est par ici : DHCP sous Windows

Voici la topologie de mon labo du jour :

Comme d’habitude, pas besoin de beaucoup de machines pour rĂ©aliser ce tuto :

    • Une machine sous Debian 10
    • Un client Ubuntu
    • Un client Windows
    • Un routeur NAT pour sortir du rĂ©seau local
    • Un switch pour relier tout ce petit monde Ă©videmment

Mon réseau est le 192.168.3.0/24.

Le futur serveur DHCP doit disposer d’un adressage IP fixe et pouvoir accĂ©der Ă  Internet. Le serveur DNS  du rĂ©seau sera celui de Google en 8.8.8.8.

 

Ensuite, on dĂ©fini “sur papier” la configuration que nous voulons effectuer sur notre serveur DHCP. Voici ce que j’ai choisi de faire :

Si tout est prĂȘt, vous pouvez poursuivre !

Pour mettre en place le service DHCP dans notre rĂ©seau local, nous allons utiliser le paquet isc-dhcp-server. Commençons par l’installer :

apt install isc-dhcp-server -y

Ensuite, nous devons prĂ©ciser sur quel interface du serveur, le “dĂ©mon” (le “service”) va Ă©couter et donc attendre les requĂȘtes des clients. Modifiez le fichier nĂ©cessaire avec la commande suivante :

nano /etc/default/isc-dhcp-server

Nous n’utiliserons pas d’IPv6, la ligne peut donc ĂȘtre commentĂ©e. En revanche, pour l’interface en IPv4, il vous faudra ajouter le nom de l’interface rĂ©seau de votre serveur entre les guillemets.

Ensuite, il faut Ă©diter le fichier dhcpd.conf pour configurer le service DHCP :

nano /etc/dhcp/dhcpd.conf

Soyez vigilants Ă  la syntaxe employĂ©e dans ce fichier, une erreur toute bĂȘte peut empĂȘcher le service de dĂ©marrer et faire perdre du temps. Chaque ligne de paramĂštre doit se terminer par le symbole ;. Veillez Ă©galement Ă  bien ouvrir/fermer les blocs de paramĂštres pour les Ă©tendues avec les symboles { }.

Voici comment je configure la 1Ăšre partie de ce fichier :

Regardons rapidement les options présentes.

Le premier paramĂštre est le “domain-name”. Comme son nom l’indique, on dĂ©clare ici le nom de notre domaine. Nous n’en avons pas, ce paramĂštre est donc Ă  commenter.

Ensuite nous avons l’option “domain-name-servers”. Si les serveurs DNS sont les mĂȘmes pour toutes les Ă©tendues, on peut dĂ©clarer cette option Ă  partir de ce point. Pour le DNS, j’ai choisi tout bĂȘtement celui de Google, le 8.8.8.8. Peut importe les Ă©tendues, ce sera le mĂȘme DNS partout, sinon, l’option peut ĂȘtre prĂ©cisĂ©e dans chaque dĂ©claration d’Ă©tendue. C’est donc ici une option dite “de serveur” et non pas “d’Ă©tendue“.

Les paramĂštres “default-lease-time” et “max-lease-time” sont les durĂ©es des baux pour les adresses attribuĂ©es avant une libĂ©ration ou un renouvellement. Par dĂ©faut ces durĂ©es sont comprise entre 3600 secondes (1 heure) et 7200 secondes (2 heures).

L’option “ddns-update-style” sert Ă  dĂ©finir le type de mise Ă  jour du DNS. Nous n’en n’avons pas besoin dans notre contexte. Par dĂ©faut, ce paramĂštre est dĂ©fini sur “none“.

Le paramĂštre “authoritative” peut ĂȘtre dĂ©commentĂ© si ce serveur DHCP est le serveur officiel du rĂ©seau local, ce qui sera le cas ici.

L’option “log-facility” est le niveau de log Ă  conserver. Par dĂ©faut, vous trouverez les logs du DHCP dans /var/log/syslog. Vous pouvez dĂ©commentez cette ligne pour dĂ©placer les logs dans un autre endroit. Attention, des paramĂ©trages supplĂ©mentaires non couverts par cet article seront nĂ©cessaires.

Voilà pour les configurations présentes dans ce fichier.

Maintenant, on va dĂ©clarer l’étendue du rĂ©seau que devra desservir le DHCP. Ajoutez ces lignes Ă  la fin du fichier :

# Etendue LAN
subnet 192.168.3.0 netmask 255.255.255.0 {
option routers 192.168.3.1;
range 192.168.3.100 192.168.3.200;
}
Info + : Sur isc-dhcp-server, il n’existe pas de paramĂštre permettant de crĂ©er des plages d’exclusions. Pour palier Ă  ça, il vous suffit de mettre plusieurs lignes de “range” les unes Ă  la suite des autres, toujours sans oublier le “;”.

On redémarre le service pour prendre en compte les modifications :

service isc-dhcp-server restart

VĂ©rifions sur le PC Ubuntu s’il a rĂ©cupĂ©rĂ© une configuration IP automatiquement :

C’est bien le cas ! Le PC Linux a l’adresse IP 192.168.3.101 et communique bien avec l’extĂ©rieur.

Regardons avec un logiciel comme Wireshark ce qu’il se passe entre les clients DHCP et le serveur DCHP :

Pour capturer ces trames, j’ai dĂ©marrĂ© le PC sous Windows. On voit bien les diffĂ©rentes requĂȘtes effectuĂ©es entre le client DHCP et le serveur DHCP.

Si je vérifie la configuration de mon PC Windows :

Il a bien obtenu une adresse IP dans la plage déclarée dans le service DHCP !

Pour voir les baux en cours d’utilisation sur le serveur DHCP, vous pouvez lire le contenu du fichier /var/lib/dhcp/dhcpd.leases avec “cat”.


Les baux en cours correspondent bien aux adresses que l’on a vu sur les deux PCs clients.

Nous avons également à mettre en place une réservation pour un PC bien spécifique. Pour cela, il faut commencer par récupérer son adresse physique (MAC). Depuis le PC Linux pour lequel nous voulons réserver une adresse IP, lancer la commande :

ip a s ens33 | grep "ether"


Notez son adresse MAC (partie situĂ©e entre “ether” et “brd”) et retournez sur le serveur DHCP.

Modifiez de nouveau le fichier dhcpd.conf et dans l’Ă©tendue prĂ©cĂ©demment crĂ©Ă©e, juste avant de refermer le bloc de paramĂštres (sur la ligne prĂ©cĂ©dent le symbole “}”), ajoutez les lignes suivantes en adaptant l’adresse MAC par celle que vous avez notez :

# Reservation
host pc-boss {
hardware ethernet 00:0C:29:EF:00:B1;
fixed-address 192.168.3.150;
}

Ce qui vous donnera finalement une configuration de ce genre :

VĂ©rifions sur le client concernĂ© qu’il reçoit bien l’adresse IP qui lui est rĂ©servĂ©e :

C’est bien le cas, nous voyons l’adresse MAC que nous avons dĂ©clarĂ© dans le service DHCP et l’adresse IP 192.168.3.150 qui lui est attribuĂ©e ; la rĂ©servation est opĂ©rationnelle.

 

VoilĂ  pour cet article sur la configuration d’un serveur DHCP sous Linux !

Rien de bien compliquĂ©, une fois encore, il suffit d’ĂȘtre vigilant sur la syntaxe que l’on utilise !

See U ! kiss.


[Tuto] Installation et Configuration du service DHCP sous Linux

Articles pouvant vous intéresser