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

14
  • Schreibt der DHCP-Client unter Linux irgendwelche Protokolle?
  • Wenn nicht, können Protokolle aktiviert werden und wie?
  • Wenn es Protokolle schreibt, wo können sie gefunden werden?
  • Wie sieht ein typisches Protokoll eines DHCP-Clients aus, wenn IP- und Nameserver von einem DHCP-Server abgerufen werden?
  • Wo finde ich den Quellcode des DHCP-Clients?

Falls es relevante Unterschiede zwischen Linuxen gibt: Ich interessiere mich für Debian 8.1 (Standard-Minimalinstallation amd64).

Gustave
quelle
1
Sie müssen spezifischer sein als "der DHCP-Client unter Linux". Es gibt viele verschiedene DHCP-Clients für Linux und alle protokollieren auf unterschiedliche Weise. Es gibt wahrscheinlich eine Standardversion für Debian 8.1, obwohl ich mich nicht erinnern kann, was es ist.
Qasdfdsaq
Internet Systems Consortium DHCP-Client 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Alle Rechte vorbehalten. Für Informationen besuchen Sie
Gustave

Antworten:

6

Der DHCP-Client von ISC wird normalerweise dhclientin den meisten Linux-Distributionen aufgerufen . Von man dhclient:

Der Client druckt normalerweise während seiner Startsequenz keine Ausgabe. Es können ausführliche Meldungen ausgegeben werden, in denen die Ereignisse der Startsequenz angezeigt werden, bis eine Adresse durch Angabe des Befehlszeilenarguments -v ermittelt wurde. In beiden Fällen protokolliert der Client Nachrichten mit der Funktion syslog (3).

Es gibt zwei Möglichkeiten, Ihr Systemprotokoll zu lesen. Auf den meisten Systemen, die systemd verwenden, müssen Sie verwenden journalctl, wohingegen dies cat /var/log/syslogfür Systeme gilt, die noch ein traditionelles Init-System verwenden.

Wenn Ihr System die Protokollierungsfunktion von systemd verwendet, können Sie daher journalctl | grep -Ei 'dhcp'DHCP-Client-Protokolle abrufen. Andernfalls geben Sie ein cat /var/log/syslog | grep -Ei 'dhcp'.

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
Larssend
quelle
2
Unter Debian 8.1 funktioniert journalctl, unter Ubuntu-14.04.2-Server befinden sich die Einträge in / var / log / syslog. Vielen Dank. Aber: Es gibt nur sehr wenige Einträge, zum Beispiel wird nur die IP-Adresse protokolliert, die DNS-Server nicht. Ist es möglich, eine ausführlichere Ausgabe zu konfigurieren?
Gustave
3

Eine hackige (aber effektive) Möglichkeit, dhclient auf vielen Linux-Plattformen zu debuggen, besteht darin, das Bash-Tracing in / sbin / dhclient-script zu aktivieren .

dhclient führt dieses Skript auf den meisten Betriebssystemvarianten aus, die ich überprüft habe (RedHat, Debian usw.).

Durch einfaches Hinzufügen -xzum shebang (erste Zeile) in diesem Skript kann jede Zeile zur Konsole zurückverfolgt werden, z.

#!/bin/bash -x

Dann kannst du zum Beispiel rennen

dhclient -r #release lease
dhclient #re-acquire lease

Und Sie sollten viele Ausgaben sehen, nicht nur von dhclient-script, sondern von allen .din / etc / dhcp * enthaltenen Skripten.

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 wie IP, GATEWAY usw.) ableiten, die das Skript von dieser Ausgabe erhalten hat. Andernfalls können Sie dem Skript vor dem Beenden vorübergehend Folgendes hinzufügen:

   env | logger -t dhclient-debugging

Überprüfen Sie anschließend Ihr Protokoll, nachdem Sie dhclient ausgeführt haben (/ var / log / messages oder / var / log / syslog).

akom
quelle
-3

Bitte finden Sie die Antwort inline.

  • Schreibt der DHCP-Client unter Linux irgendwelche Protokolle?


    Ja tut es.

  • Wenn nicht, können Protokolle aktiviert werden und wie?


 1. Edit dhcpd.conf and add this line
  log-facility local7;

 2. Edit syslog.conf and append 
  local7.* /var/log/dhcpd.log


  • Wenn es Protokolle schreibt, wo können sie gefunden werden?

    /var/log/dhcpd.log


  • Wie sieht ein typisches Protokoll eines DHCP-Clients aus, wenn IP- und Nameserver von einem DHCP-Server abgerufen werden?


galaxy dhcpd: DHCPDISCOVER von 00: 0d: 62: d7: a0: 12 über eth0
galaxy dhcpd: DHCPOFFER auf 192.168.1.5 bis 00: 0d: 62: d7: a0: 12 über
eth0 .1.1) von 00: 0d: 62: d7: a0: 12 über eth0
galaxy dhcpd: DHCPACK auf 192.168.1.5 bis 00: 0d: 62: d7: a0: 12 über eth0

Ruban Savvy
quelle
2
Das OP spricht vom DHCP- Client . DHCPD ist ein DHCP-Server-Daemon.
Larssend
Es scheint keine Datei mit dem Namen dhcpd.conf auf meinem System zu geben. Es gibt eine Datei /etc/dhcp/dhclient.conf. Es gibt keine Datei syslog.conf, sondern eine Datei /etc/rsyslog.conf. Ich habe die Konfigurationsänderungen an diesen Dateien vorgenommen, rsyslog neu gestartet, eth0 heruntergefahren und es wieder eingeschaltet. Es wird jedoch keine Protokolldatei angezeigt. Ich erhalte einige DHCP-Nachrichten auf der Konsole. Auch nach einem Neustart der Maschine erhalte ich keine Logmeldungen.
Gustave