続・DHCPで振られたIPを他のPCから確認

続、と題してはいるものの、先の記事はこんなタイトルではありませんでした。
WindowsファイアウォールにブロードキャストPingを通す - ctrl-alt-moccos


前回はブロードキャストpingで探しに行っていたものの、自宅内のような自由な環境以外では、いくつか問題となり得る部分があります。

  • 端末がたくさんぶら下がっているネットワークでやるのは大変
  • ファイアウォールをいじる権限がないと受信できない


何か手抜き出来る現実的な方法はないものか…と考えた結果、DHCPシーケンスの一部が漏れてくるので、それが使えそうだと気が付きました。
参考:http://www.infraexpert.com/study/dhcp.htm

  1. [Client → Server] DHCP Discover (サーバー探索)
  2. [Client ← Server] DHCP Offer (空きIPアドレスの提案)
  3. [Client → Server] DHCP Request (IP申請)
  4. [Client ← Server] DHCP Ack (確認応答)

このうち3番目のDHCP Requestが、「ブロードキャスト」「IPアドレスが含まれる」の2条件を満たします。



別PCで待ち構えた結果。



DHCP Requestパケットの中身。Requested IP Addressに目当てのIPアドレスが見えます。


つまり、DHCPのブロードキャストを拾えるように同じネットワークで構えた状態で、対象端末のIP取得を行えば、新しくDHCPで振られたIPアドレスが確認できます。
同じネットワーク内で、複数端末が近いタイミングで取得しにいくと色々混ざってしまいますが、対象端末のMACアドレスがわかれば大丈夫。

余談

よく見ると、DHCP Discoverのパケットの時点でRequested IP Addressが入っています。なんじゃこりゃ?と軽く検索してみたところ、空いていれば以前と同じIPアドレスを取れるように、最初から希望を出しておくみたいですね。

参考:http://www.trainsignal.com/blog/dhcp-troubleshooting

Requested IP address is an optional parameter used by the client indicating its desire to use this specific IP address.