私はDHCPサーバー用にDNSMASQを実行するvoyage 2.6.38マシンを持っていて、DHCPリースを得たクライアントのホスト名を取得したいと思います。どうすればいいですか?
答え1
ホストが名前を送信すると、DNSから検索できます。そのIPアドレスを知っていれば、単にIPアドレスを逆方向に検索できます。次のいずれかのコマンドが機能する必要があります(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 を送信する必要はありません。
ロギングが有効になっている場合は、システムログを表示して、どのリースがネゴシエートされたかを確認できます。すべてのDHCP交渉は記録されなければなりません。リース期間が長い場合、交渉は頻繁に行われません。顧客はリース期間中に更新交渉を開始する必要があります。 DHCP サーバーが合理的にダウンすると予想される時間の 2 倍以上にリース時間を設定するのが最善です。
答え2
送信するかどうかを決定するのはクライアントの役割です。初期要求でホスト名を送信するように構成できます。ほとんどのデスクトップ/サーバーDHCPクライアントはこれを行いますが、組み込みクライアントは通常そうではありません。