web-dev-qa-db-ja.com

DHCPからクライアントのホスト名を取得する

DHCPサーバー用にDNSMASQを実行している航海2.6.38マシンがあり、DHCPリースを取得するクライアントのホスト名を取得したいと思います。これを行うにはどうすればよいですか?

6
DanielGibbs

ホストがその名前を送信した場合、DNSから取得できます。 IPアドレスがわかっている場合は、IPアドレスを逆引きするだけです。これらのコマンドの1つが機能するはずです(192.0.32.10の代わりにホストのIPアドレスを使用してください)。

Host 192.0.32.10
nslookup 192.0.32.10 

dhcp.leasesファイルから、提供されている名前がある場合はそれを含むすべてのリースのリストを取得できます。その場所は、使用するディストリビューションによって異なります。 Ubuntuは/var/lib/misc/dnsmasq.leasesを使用していますが、OpenWrtは/tmp/dhcp.leasesを使用しています。 dnsmasqのマニュアルページがある場合は、コマンドman dnsmasqで、ドキュメントの最後にあるリースファイルの場所を指定する必要があります。構成またはコマンドラインでdhcp-leasefileオプションを指定することにより、この場所を上書きできます。これを行うには、コマンドラインオプション-lまたは--dhcp-leasfile=オプションを使用できます。

リースファイルのフィールドは、タイムスタンプ、MACアドレス、IPアドレス、ホスト名、およびクライアントIDです。クライアントは、ホスト名またはクライアントIDを送信する必要はありません。

ロギングが有効になっている場合は、syslogを調べて、ネゴシエートされたリースを確認できます。 DHCPネゴシエーションはすべてログに記録する必要があります。リース期間が長い場合、交渉は頻繁ではありません。クライアントは、リース時間の半分で更新の交渉を開始する必要があります。 DHCPサーバーがダウンすると合理的に予想できる期間の少なくとも2倍のリース時間を設定することをお勧めします。

6
BillThor

送信するかどうかはクライアント次第です。最初のリクエストでは、ホスト名を送信するように構成できます。ほとんどのデスクトップ/サーバーDHCPクライアントは、この組み込みを行いますが、多くの場合そうではありません。

1
ewanm89