Le client DHCP d'ISC est généralement appelé dhclient
dans la plupart des distributions Linux. À partir de man dhclient
:
Le client n'imprime normalement aucune sortie pendant sa séquence de démarrage. Il peut être amené à émettre des messages détaillés affichant les événements de la séquence de démarrage jusqu'à ce qu'il ait acquis une adresse en fournissant l'argument de ligne de commande -v. Dans les deux cas, le client consigne les messages à l'aide de la fonction syslog(3).
Il existe deux manières de lire votre journal système. Sur la plupart des systèmes qui utilisent systemd, vous devez utiliser journalctl
, alors que cat /var/log/syslog
est valide pour les systèmes qui utilisent encore un système d'initialisation traditionnel.
Par conséquent, si votre système utilise la fonction de journalisation de systemd, vous pouvez utiliser journalctl | grep -Ei 'dhcp'
pour obtenir les journaux du client DHCP. Sinon, saisissez cat /var/log/syslog | grep -Ei 'dhcp'
.
Voici à quoi ressemble généralement le journal de mon client DHCP :
Jul 20 14:17:39 trueclient1 NetworkManager[2622]: <info> (wlan1): canceled DHCP transaction, DHCP client pid 3325
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> Activation (wlan1) Beginning DHCPv4 transaction (timeout in 45 seconds)
Jul 20 14:17:42 trueclient1 dhclient: Internet Systems Consortium DHCP Client 4.2.2
Jul 20 14:17:42 trueclient1 dhclient: For info, please visit https://www.isc.org/software/dhcp/
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed nbi -> preinit
Jul 20 14:17:42 trueclient1 dhclient: DHCPREQUEST on wlan1 to 255.255.255.255 port 67
Jul 20 14:17:42 trueclient1 dhclient: DHCPACK from 10.8.8.1
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed preinit -> reboot
Un moyen hacky (mais efficace) de déboguer dhclient sur de nombreuses plates-formes Linux consiste à activer le bash tracing dans /sbin/dhclient-script .
dhclient exécute ce script sur la plupart des variantes de système d'exploitation que j'ai vérifiées (RedHat, Debian, etc.).
Ajouter simplement -x
au shebang (première ligne) dans ce script devrait permettre de tracer chaque ligne vers la console, par exemple :
#!/bin/bash -x
Ensuite, vous pouvez exécuter, par exemple
dhclient -r #release lease
dhclient #re-acquire lease
Et vous devriez voir beaucoup de sortie, non seulement de dhclient-script, mais de tous les .d
inclus scripts dans /etc/dhcp*.
La sortie de trace devrait vous permettre de comprendre ce qui se passe et les décisions prises par le code (faites référence au script lui-même lorsque vous regardez la sortie).
Vous pouvez généralement déduire les entrées (par exemple, les paramètres, y compris IP, GATEWAY, etc.) que le script a reçues de cette sortie, mais si ce n'est pas le cas, vous pouvez temporairement ajouter quelque chose comme ceci au script juste avant la sortie :
env | logger -t dhclient-debugging
Vérifiez ensuite votre journal après avoir exécuté dhclient (/var/log/messages ou /var/log/syslog)