GNU/Linux >> Tutoriels Linux >  >> Linux

Comment voir ce que fait le client DHCP ?

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)


Linux
  1. Qu'est-ce qu'un Makefile et comment ça marche ?

  2. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  3. Qu'est-ce que le DNS et comment ça marche ?

  4. Que fait kill -- -0 ?

  5. Linux - Comment puis-je voir ce qui attend les E/S de disque

Commande de fichier Linux :que fait-elle et comment l'utiliser

Qu'est-ce que Docker ? Comment ça marche?

Qu'est-ce que la commande source sous Linux et comment ça marche ?

Comment fonctionne un équilibreur de charge ? Qu'est-ce que l'équilibrage de charge ?

Qu'est-ce que DHCP et comment fonctionne DHCP ? (Les bases de DHCP expliquées)

Comment un client PXE sait-il sur quel réseau il se trouve ?