ISC の DHCP クライアントは通常 dhclient
と呼ばれます ほとんどの Linux ディストリビューションで。 man dhclient
から :
クライアントは通常、起動シーケンス中に出力を出力しません。 -v コマンドライン引数を指定して、アドレスを取得するまで、起動シーケンス イベントを表示する詳細メッセージを発行するように設定できます。いずれの場合も、クライアントは syslog(3) 機能を使用してメッセージをログに記録します。
システム ログを読み取る方法は 2 つあります。 systemd を使用するほとんどのシステムでは、 journalctl
を使用する必要があります 、一方 cat /var/log/syslog
従来の init システムをまだ採用しているシステムに有効です。
したがって、システムが systemd のロギング機能を使用している場合は、journalctl | grep -Ei 'dhcp'
を使用できます。 DHCP クライアント ログを取得します。それ以外の場合は、cat /var/log/syslog | grep -Ei 'dhcp'
と入力してください .
通常、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
多くの Linux プラットフォームで dhclient をデバッグするハックな (しかし効果的な) 方法は、bash トレース を有効にすることです。 /sbin/dhclient-script 内 .
dhclient は、私が確認したほとんどの OS バリアント (RedHat、Debian など) でそのスクリプトを実行します。
-x
を追加するだけ そのスクリプトのシバン (最初の行) に追加すると、コンソールへの各行のトレースが有効になります。例:
#!/bin/bash -x
次に、たとえば実行できます
dhclient -r #release lease
dhclient #re-acquire lease
そして、dhclient-script からだけでなく、含まれているすべての .d
から、多くの出力が表示されるはずです。 /etc/dhcp* のスクリプト。
トレース出力により、何が起こっているのか、コードがどのような決定を下しているのかを把握できるはずです (出力を見るときは、スクリプト自体を参照してください)。
通常、この出力からスクリプトが受け取った入力 (例:IP、GATEWAY などのパラメーター) を推測できますが、そうでない場合は、スクリプトの終了直前に次のようなものを一時的に追加できます。
env | logger -t dhclient-debugging
次に、dhclient の実行後にログを確認します (/var/log/messages または /var/log/syslog)