GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich sehen, was der DHCP-Client tut?

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)


Linux
  1. Was ist ein Webserver und wie funktioniert ein Webserver?

  2. So finden Sie heraus, was ein Linux-Befehl tut

  3. Wie geht Rm -r beim rekursiven Entfernen vor? In welcher Reihenfolge?

  4. Was bedeutet Echo $? Tun??

  5. Was ist DNS und wie funktioniert es?

Linux-Dateibefehl:Was macht er und wie wird er verwendet?

Was ist Docker? Wie funktioniert es?

Was ist Source Command in Linux und wie funktioniert es?

Wie funktioniert ein Load Balancer? Was ist Load-Balancing?

Was ist DHCP und wie funktioniert DHCP? (DHCP-Grundlagen erklärt)

Woher weiß ein PXE-Client, in welchem ​​Netzwerk er sich befindet?