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)