GNU/Linux >> Linux Esercitazione >  >> Linux

Come vedere cosa fa il client DHCP?

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

Il client normalmente non stampa alcun output durante la sequenza di avvio. Può essere fatto emettere messaggi dettagliati che mostrano gli eventi della sequenza di avvio finché non ha acquisito un indirizzo fornendo l'argomento -v della riga di comando. 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 usano systemd, devi usare journalctl , mentre cat /var/log/syslog è valido per i sistemi che utilizzano ancora un sistema init tradizionale.

Pertanto, se il tuo sistema utilizza la funzionalità di registrazione di systemd, puoi utilizzare journalctl | grep -Ei 'dhcp' per ottenere i log del client DHCP. Altrimenti, inserisci cat /var/log/syslog | grep -Ei 'dhcp' .

Ecco come appare in genere il registro del mio 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 modo complicato (ma efficace) per eseguire il debug di dhclient su molte piattaforme Linux è abilitare il bash tracing in /sbin/dhclient-script .

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

Semplicemente aggiungendo -x allo shebang (prima riga) in quello script dovrebbe consentire di tracciare ogni riga alla 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 i .d inclusi script in /etc/dhcp*.

L'output della traccia dovrebbe permetterti di capire cosa sta succedendo e quali decisioni sta prendendo il codice (fai riferimento allo script stesso quando guardi l'output).

Di solito puoi dedurre gli input (ad es. parametri inclusi IP, GATEWAY, ecc.) che lo script ha ricevuto da questo output, ma in caso contrario, puoi aggiungere temporaneamente qualcosa di simile allo script appena prima dell'uscita:

   env | logger -t dhclient-debugging

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


Linux
  1. Che cos'è un Makefile e come funziona?

  2. Che cos'è un server Web e come funziona un server Web?

  3. Cosa fa "lc_all=c"?

  4. Come funziona rm? Cosa fa rm?

  5. Come posso vedere quali sono i miei comandi Linux più usati?

Comando file Linux:cosa fa e come usarlo

Cos'è Docker? Come funziona?

Che cos'è il comando sorgente in Linux e come funziona?

Come funziona un sistema di bilanciamento del carico? Che cos'è il bilanciamento del carico?

Che cos'è DHCP e come funziona DHCP? (Spiegazione dei fondamenti del DHCP)

Linux - Come posso vedere cosa sta aspettando l'IO del disco