GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, co dělá DHCP klient?

Klient DHCP ISC se obvykle nazývá dhclient ve většině distribucí Linuxu. Od man dhclient :

Klient obvykle během spouštěcí sekvence nevytiskne žádný výstup. Lze jej nastavit tak, aby vysílal podrobné zprávy zobrazující události spouštěcí sekvence, dokud nezíská adresu zadáním argumentu příkazového řádku -v. V obou případech klient zaznamenává zprávy pomocí zařízení thesyslog(3).

Existují dva možné způsoby, jak číst váš systémový protokol. Na většině systémů, které používají systemd, musíte použít journalctl , zatímco cat /var/log/syslog platí pro systémy, které stále používají tradiční init systém.

Pokud tedy váš systém používá protokolovací zařízení systemd, můžete použít journalctl | grep -Ei 'dhcp' získat protokoly klienta DHCP. V opačném případě zadejte cat /var/log/syslog | grep -Ei 'dhcp' .

Můj protokol klienta DHCP obvykle vypadá takto:

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

Šikovným (ale účinným) způsobem, jak ladit dhclient na mnoha platformách Linux, je povolit sledování bash v /sbin/dhclient-script .

dhclient spouští tento skript na většině variant OS, které jsem zkontroloval (RedHat, Debian atd.).

Stačí přidat -x na shebang (první řádek) v tomto skriptu by měl umožnit sledování každého řádku do konzoly, např.:

#!/bin/bash -x

Pak můžete spustit např.

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

A měli byste vidět spoustu výstupů, nejen z dhclient-script, ale ze všech zahrnutých .d skripty v /etc/dhcp*.

Výstup trasování by vám měl umožnit zjistit, co se děje a jaká rozhodnutí kód dělá (při pohledu na výstup odkazujte na samotný skript).

Obvykle můžete odvodit vstupy (např. parametry včetně IP, GATEWAY atd.), které skript obdržel z tohoto výstupu, ale pokud ne, můžete do skriptu dočasně přidat něco takového těsně před ukončením:

   env | logger -t dhclient-debugging

Poté zkontrolujte svůj protokol po spuštění dhclient (/var/log/messages nebo /var/log/syslog)


Linux
  1. Co je Makefile a jak funguje?

  2. Co je NGINX? Jak to funguje?

  3. Jak zjistit, co dělá příkaz Linuxu

  1. Jak probíhá rekurzivní odstraňování Rm -r? V jakém pořadí?

  2. Co dělá Echo $? Dělat??

  3. Jak rm funguje? Co dělá rm?

  1. Jak zjistím, jaký je můj nejpoužívanější linuxový příkaz?

  2. Co dělá zabít -- -0?

  3. Linux - Jak zjistím, co čeká na IO disku