Lorsqu’une machine Linux obtient sa configuration réseau via un serveur DHCP, ce dernier pousse généralement une adresse IP, un masque de sous-réseau, une passerelle par défaut et une liste de serveurs de noms. Dans le cadre de tests en laboratoire, de diagnostics réseau ou pour intégrer un résolveur interne spécifique, il devient nécessaire d’outrepasser ces directives sans pour autant basculer l’interface en adressage statique complet.
Pour maîtriser précisément la résolution de noms sans modifier l’infrastructure centrale, le client DHCP d’ISC (dhclient) propose des directives puissantes permettant de modifier l’ordre des résolveurs ou d’ignorer totalement ceux transmis par le bail.
Comprendre les directives de dhclient
Le fichier de configuration du client DHCP se situe habituellement sous /etc/dhcp/dhclient.conf (anciennement /etc/dhcp3/dhclient.conf sur les distributions plus anciennes). Trois mécanismes permettent d’intervenir sur les paramètres reçus :
- prepend : insère votre valeur avant celles fournies par le serveur DHCP. Pour les serveurs DNS, cela garantit que votre résolveur local sera interrogé en priorité, tout en conservant les DNS du bail en secours.
- supersede : remplace intégralement la valeur fournie par le serveur DHCP par la vôtre. Les options transmises par le routeur ou le serveur DHCP sont alors purement ignorées.
- append : ajoute votre valeur à la fin de la liste existante, après celles proposées par le serveur DHCP.
Pour approfondir les mécanismes sous-jacents de la résolution de noms, vous pouvez consulter notre article pour bien comprendre DNS et son rôle dans la hiérarchie réseau.
Modifier la configuration pas à pas
Ouvrez le fichier de configuration avec les droits d’administration :
sudo nano /etc/dhcp/dhclient.conf
Si vous cherchez à vérifier où se situent d’éventuelles directives déjà actives dans vos fichiers système, vous pouvez utiliser la commande grep ou chercher une chaine dans tous les fichier linux pour repérer d’autres occurrences de configuration réseau.
1. Prioriser un résolveur DNS local
Pour forcer votre système à interroger un serveur DNS spécifique en premier (par exemple une instance Bind ou Unbound locale sur 192.168.1.13), ajoutez la ligne suivante :
prepend domain-name-servers 192.168.1.13;
Lors de la mise à jour du bail, cette adresse IP apparaîtra tout en haut du fichier /etc/resolv.conf. Les résolveurs fournis par le serveur DHCP figureront juste en dessous.
2. Écraser complètement les serveurs DNS
Si vous ne souhaitez pas conserver les résolveurs assignés par le réseau local (par exemple pour éviter des fuites DNS ou un filtrage indésirable), utilisez plutôt :
supersede domain-name-servers 1.1.1.1, 8.8.8.8;
3. Fixer un domaine de recherche ou suffixe DNS
Pour forcer l’usage d’un suffixe DNS d’entreprise ou de laboratoire sans tenir compte de celui annoncé par le serveur DHCP :
supersede domain-name « lab.local »;
Appliquer les changements
Une simple modification du fichier ne modifie pas immédiatement la table de résolution courante. Pour actualiser le bail DHCP sans redémarrer la machine, vous pouvez libérer et renouveler l’adresse sur l’interface concernée (ici eth0) :
sudo dhclient -r eth0 && sudo dhclient eth0
Il ne reste plus qu’à vérifier le résultat dans le fichier généré dynamiquement :
cat /etc/resolv.conf
Cette méthode présente l’avantage d’être persistante après les redémarrages et les renouvellements de bail, tout en évitant de verrouiller artificiellement le fichier /etc/resolv.conf en lecture seule.




