Der DHCP-Client von ISC heißt normalerweise dhclient
in den meisten Linux-Distributionen. Ab man dhclient
:
Der Client gibt während seiner Startsequenz normalerweise keine Ausgabe aus. Es kann dazu gebracht werden, ausführliche Meldungen auszugeben, die die Ereignisse der Startsequenz anzeigen, bis es eine Adresse erhalten hat, indem das Befehlszeilenargument -v angegeben wird. In beiden Fällen protokolliert der Client Nachrichten mit Hilfe der syslog(3)-Einrichtung.
Es gibt zwei Möglichkeiten, Ihr Systemprotokoll zu lesen. Auf den meisten Systemen, die systemd verwenden, müssen Sie journalctl
verwenden , wohingegen cat /var/log/syslog
gilt für Systeme, die noch ein traditionelles Init-System verwenden.
Wenn Ihr System die Protokollierungsfunktion von systemd verwendet, können Sie daher journalctl | grep -Ei 'dhcp'
verwenden um DHCP-Client-Protokolle abzurufen. Geben Sie andernfalls cat /var/log/syslog | grep -Ei 'dhcp'
ein .
So sieht mein DHCP-Client-Protokoll normalerweise aus:
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
Eine trickreiche (aber effektive) Methode zum Debuggen von dhclient auf vielen Linux-Plattformen ist die Aktivierung von Bash-Tracing in /sbin/dhclient-script .
dhclient führt dieses Skript auf den meisten Betriebssystemvarianten aus, die ich überprüft habe (RedHat, Debian usw.).
Einfach -x
hinzufügen zum Shebang (erste Zeile) in diesem Skript sollte es ermöglichen, jede Zeile zur Konsole zu verfolgen, zB:
#!/bin/bash -x
Dann können Sie zum Beispiel laufen
dhclient -r #release lease
dhclient #re-acquire lease
Und Sie sollten viele Ausgaben sehen, nicht nur von dhclient-script, sondern von allen enthaltenen .d
Skripte in /etc/dhcp*.
Die Trace-Ausgabe sollte es Ihnen ermöglichen, herauszufinden, was passiert und welche Entscheidungen der Code trifft (beziehen Sie sich auf das Skript selbst, wenn Sie sich die Ausgabe ansehen).
Normalerweise können Sie die Eingaben (z. B. Parameter einschließlich IP, GATEWAY usw.), die das Skript von dieser Ausgabe erhält, ableiten, aber wenn nicht, können Sie dem Skript kurz vor dem Beenden vorübergehend so etwas hinzufügen:
env | logger -t dhclient-debugging
Überprüfen Sie dann Ihr Protokoll, nachdem Sie dhclient ausgeführt haben (/var/log/messages oder /var/log/syslog)