Come vedere cosa fa il client DHCP?


14
  • Il client dhcp su Linux scrive dei log?
  • In caso contrario, i log possono essere abilitati e come?
  • Se scrive registri, dove possono essere trovati?
  • Come appare un tipico registro di un client DHCP quando si ottengono IP e nameserver da un server DHCP?
  • Dove posso trovare il codice sorgente del client DHCP?

Nel caso in cui ci siano differenze rilevanti tra Linux: sono interessato a Debian 8.1 (installazione minima predefinita amd64).


1
Dovrai essere più specifico del "client dhcp su Linux". Esistono molti client dhcp diversi per Linux e registrano tutti modi diversi. Probabilmente ce n'è uno predefinito per Debian 8.1 anche se non ricordo di cosa si tratti.
qasdfdsaq,

Consorzio Internet Systems Consorzio DHCP 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Tutti i diritti riservati. Per informazioni, visitare isc.org/software/dhcp
Gustave

Risposte:


7

Il client DHCP di ISC è generalmente chiamato dhclientnella maggior parte delle distribuzioni Linux. Da man dhclient:

Il client normalmente non stampa alcun output durante la sua sequenza di avvio. Può essere creato per emettere messaggi dettagliati che mostrano gli eventi della sequenza di avvio fino a quando non ha acquisito un indirizzo fornendo l'argomento della riga di comando -v. In entrambi i casi, il client registra i messaggi utilizzando la funzione syslog (3).

Esistono due modi possibili per leggere il registro di sistema. Sulla maggior parte dei sistemi che utilizzano systemd, è necessario utilizzare journalctl, mentre cat /var/log/syslogè valido per i sistemi che utilizzano ancora un sistema init tradizionale.

Pertanto, se il sistema utilizza la funzione di registrazione di systemd, è possibile utilizzare journalctl | grep -Ei 'dhcp'per ottenere i registri client DHCP. Altrimenti, inserisci cat /var/log/syslog | grep -Ei 'dhcp'.

Ecco come appare in genere il mio registro 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

2
Su Debian 8.1 journalctl funziona, su ubuntu-14.04.2-server le voci sono in / var / log / syslog. Grazie. Ma: ci sono solo pochissime voci, ad esempio viene registrato solo l'indirizzo IP, i server DNS no. È possibile configurare un output più dettagliato?
Gustave,

3

Un modo complicato (ma efficace) per eseguire il debug di dhclient su molte piattaforme Linux è abilitare la traccia bash in / sbin / dhclient-script .

dhclient esegue quello script sulla maggior parte delle varianti del sistema operativo che ho controllato (RedHat, Debian, ecc.).

La semplice aggiunta -xallo shebang (prima riga) in quello script dovrebbe consentire di tracciare ciascuna riga sulla console, ad esempio:

#!/bin/bash -x

Quindi puoi eseguire, ad esempio

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

E dovresti vedere un sacco di output, non solo da dhclient-script, ma da tutti gli .dscript inclusi in / etc / dhcp *.

L'output di traccia dovrebbe consentire di capire cosa sta succedendo e quali decisioni sta prendendo il codice (fare riferimento allo script stesso quando si guarda all'output).

Di solito è possibile dedurre gli input (ad esempio parametri tra cui IP, GATEWAY, ecc.) Che lo script ha ricevuto da questo output, ma in caso contrario, è possibile aggiungere temporaneamente qualcosa di simile allo script appena prima dell'uscita:

   env | logger -t dhclient-debugging

Quindi controlla il log dopo aver eseguito dhclient (/ var / log / messages o / var / log / syslog)


-3

Si prega di trovare la risposta in linea.

  • Il client dhcp su Linux scrive dei log?


    Sì, lo fa.

  • In caso contrario, i log possono essere abilitati e come?


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

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


  • Se scrive registri, dove possono essere trovati?

    /var/log/dhcpd.log


  • Come appare un tipico registro di un client DHCP quando si ottengono IP e nameserver da un server DHCP?


galaxy dhcpd: DHCPDISCOVER da 00: 0d: 62: d7: a0: 12 via eth0
galaxy dhcpd: DHCPOFFER il 192.168.1.5 a 00: 0d: 62: d7: a0: 12 tramite eth0
galaxy dhcpd: DHCPREQUEST per 192.168.1.5 (192.168 .1.1) da 00: 0d: 62: d7: a0: 12 via eth0
galaxy dhcpd: DHCPACK su 192.168.1.5 a 00: 0d: 62: d7: a0: 12 via eth0


2
L'OP sta parlando del client DHCP . DHCPD è un demone del server DHCP.
Larssend,

Sembra che non ci sia alcun file chiamato dhcpd.conf sul mio sistema. C'è un file /etc/dhcp/dhclient.conf. Non esiste alcun file syslog.conf, ma un file /etc/rsyslog.conf. Ho apportato le modifiche alla configurazione di quei file, riavviato rsyslog, spegni eth0, riaccendilo. Ma non viene visualizzato alcun file di registro. Ricevo alcuni messaggi DHCP sulla console. Anche dopo un riavvio della macchina non ricevo messaggi di registro.
Gustave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.