DHCPクライアントの機能を確認するにはどうすればよいですか?


14
  • Linux上のdhcpクライアントはログを書き込みますか?
  • そうでない場合、ログを有効にできますか?
  • ログを書き込む場合、どこで見つけることができますか?
  • DHCPサーバーからIPおよびネームサーバーを取得するとき、dhcpクライアントの典型的なログはどのように見えますか?
  • DHCPクライアントのソースコードはどこにありますか?

Linux間に関連する違いがある場合:Debian 8.1(デフォルトの最小インストールamd64)に興味があります。


1
「Linux上のdhcpクライアント」よりも具体的にする必要があります。Linuxにはさまざまなdhcpクライアントがあり、それらはすべて異なる方法でログを記録します。Debian 8.1にはおそらくデフォルトのものがありますが、それが何であるかは思い出せません。
qasdfdsaq

インターネットシステムコンソーシアムDHCPクライアント4.3.1著作権2004-2014インターネットシステムコンソーシアム。全著作権所有。詳細については、isc.org / software / dhcp
ギュスターヴ

回答:


6

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

2
Debian 8.1 journalctlの動作では、ubuntu-14.04.2-serverでは、エントリは/ var / log / syslogにあります。ありがとう。ただし、エントリはごくわずかです。たとえば、IPアドレスのみが記録され、DNSサーバーは記録されません。より詳細な出力を構成することは可能ですか?
ギュスターヴ

3

多くのLinuxプラットフォームでdhclientをデバッグするためのハッキング(しかし効果的な)方法は、/ sbin / dhclient-scriptでbashトレースを有効にすることです。

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)の実行後にログを確認してください


-3

インラインで答えを見つけてください。

  • Linux上のdhcpクライアントはログを書き込みますか?


    はい、そうです。

  • そうでない場合、ログを有効にできますか?


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

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


  • ログを書き込む場合、どこで見つけることができますか?

    /var/log/dhcpd.log


  • DHCPサーバーからIPおよびネームサーバーを取得するとき、dhcpクライアントの典型的なログはどのように見えますか?


galaxy dhcpd:eth0を介した00:0d:62:d7:a0:12からDHCPDISCOVER galaxy dhcpd:
192.168.1.5のDHCPOFFER からeth0を介し た00:0d:62:d7:a0:12
galaxy dhcpd:192.168.1.5のDHCPREQUEST(192.168 .1.1)eth0を介した00:0d:62:d7:a0:12
galaxy dhcpd:192.168.1.5のDHCPACK からeth0を介し た00:0d:62:d7:a0:12


2
OPはDHCP クライアントについて話しています。DHCPDはDHCPサーバーデーモンです。
ラーセンド

私のシステムにはdhcpd.confという名前のファイルはないようです。ファイル/etc/dhcp/dhclient.confがあります。ファイルsyslog.confはありませんが、ファイル/etc/rsyslog.confがあります。それらのファイルの構成を変更し、rsyslogを再起動し、eth0をシャットダウンして、再びオンにしました。ただし、ログファイルは表示されません。コンソールにDHCPメッセージが表示されます。マシンを再起動した後でも、ログメッセージは表示されません。
ギュスターヴ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.