Lorsqu’un poste ou un serveur Linux est configuré pour obtenir son adresse IP dynamiquement, le client DHCP ne récupère pas uniquement une adresse et un masque de sous-réseau. Il applique également la passerelle par défaut, le nom de domaine de recherche et la liste des résolveurs DNS. Dans un environnement de test, un laboratoire ou pour intégrer une machine dans un domaine Active Directory spécifique, ces paramètres imposés par la box ou le routeur réseau peuvent poser problème.
Plutôt que de basculer l’interface en adressage statique complet, le client DHCP standard sous Linux (isc-dhclient) offre des options permettant de modifier finement le traitement des options reçues, sans impacter l’attribution dynamique de l’IP.
Comprendre les directives : supersede, prepend et append
Le fichier de configuration du client DHCP permet d’intercepter les options retournées par le serveur distant. Pour bien appréhender la résolution de noms sur vos machines, vous pouvez relire notre article pour comprendre DNS et le rôle exact du fichier /etc/resolv.conf. Trois directives principales sont utilisables :
- prepend : insère vos valeurs personnalisées avant celles fournies par le serveur DHCP. Si vous ajoutez un résolveur DNS via prepend, il sera interrogé en priorité dans /etc/resolv.conf, tout en conservant les DNS du réseau en secours.
- supersede : remplace totalement l’option transmise par le bail DHCP. Même si la passerelle annonce des serveurs DNS ou un suffixe, ils sont purement et simplement ignorés au profit des vôtres.
- append : ajoute vos valeurs après celles reçues du serveur, pratique pour définir des serveurs DNS de secours.
Configuration de dhclient.conf
Sur les distributions Debian, Ubuntu ou dérivées, le fichier de configuration principal se situe dans /etc/dhcp/dhclient.conf (anciennement situé dans /etc/dhcp3/dhclient.conf sur les versions historiques).
Pour inspecter vos fichiers et vérifier si d’autres directives sont déjà actives sur le système, vous pouvez chercher une chaine dans tous les fichier linux avec grep.
Éditez le fichier avec vos droits d’administration :
sudo nano /etc/dhcp/dhclient.conf
Repérez les lignes commentées ou ajoutez vos propres règles en fin de fichier. Voici des exemples concrets :
1. Prioriser un résolveur DNS local
Pour forcer la machine à interroger d’abord votre DNS interne tout en gardant ceux fournis par la passerelle :
prepend domain-name-servers 192.168.1.13;
2. Remplacer totalement les DNS et le domaine de recherche
Si vous souhaitez ignorer les serveurs de votre FAI ou de votre réseau local au profit de résolveurs publics ou dédiés, tout en forçant votre suffixe de domaine interne :
supersede domain-name « lab.interne.lan »;
supersede domain-name-servers 1.1.1.1, 8.8.8.8;
Appliquer les modifications et vérifier
Une fois le fichier sauvegardé, la nouvelle politique s’appliquera lors du prochain renouvellement de bail DHCP. Pour forcer l’actualisation sans redémarrer le système d’exploitation, vous pouvez libérer et redemander un bail sur votre interface (en remplaçant eth0 par le nom de votre interface) :
sudo dhclient -r eth0 && sudo dhclient eth0
Vérifiez ensuite le résultat généré dans le fichier de résolution :
cat /etc/resolv.conf
Les serveurs définis avec prepend apparaissent désormais en tête de liste, suivis des résolveurs du réseau local. Si vous avez utilisé supersede, seuls vos choix figurent dans le fichier.
Note sur les systèmes modernes (NetworkManager et systemd-resolved)
Sur les distributions récentes utilisant systemd-resolved ou NetworkManager, la gestion du fichier /etc/resolv.conf est souvent déléguée à ces services plutôt qu’au script direct de dhclient. Si vos directives dans dhclient.conf ne semblent pas prises en compte, pensez à vérifier si NetworkManager n’écrase pas la configuration ou configurez directement les propriétés DNS de la connexion via l’outil nmcli.




