2017/09/09

DHCPサーバに記録されるBAD_ADDRESS問題


BAD ADDRESSがDHCPサーバに記録される 

Windows DHCPサーバでBAD_ADDRESSが記録されることがありました。
image

そして、クライアントのイベントログにはIP重複メッセージが。
image
DHCPサーバがBAD_ADDRESSを記録されるのは、様々な要因がありますが、
根本的には、払い出したIPが同一セグメント内で重複していることが原因です。

とはいえ、特にIP重複するような構成に思い当たる節がない場合、
発生しているセグメント内に、シャットダウン後もNICがLINK UPしていて、arp応答している端末がないか 確認してみましょう。


ここでDHCPのIP払い出しのフローをおさらいしてみます。
IT Pro [これで完璧DHCP]
http://itpro.nikkeibp.co.jp/members/NNW/NETPOINT/20041116/152622/
上記記事にあるとおり、DHCPの払い出し後、割り当てられたクライアントは、ARP要求でIP重複していないか確認します。

では、シャットダウン後NICからarp応答し続けている端末がある場合、どのような動きになるでしょうか。
DHCPサーバ、稼働中の端末A(ホスト名:A、IPアドレス:A、MACアドレス:A)、停止中の端末B(ホスト名:A、IPアドレス:A、MACアドレス:A)があったとして動きを見てみます。
1. (ホスト名:A、IPアドレス:A、MACアドレス:A)を保有する端末をシャットダウンする
image

2. (IPアドレス:A)はDHCPサーバでは使用されなくなったと認識
image

3. (ホスト名:B)を起動、DHCPサーバは(IPアドレス:A)は空いていると認識し、(IPアドレス:A)リリース
image

4. (ホスト名:A、MACアドレス:A)はarpを返しつづけているので、スイッチ上では(IPアドレス:A、MACアドレス:A)として存在
image

5. (ホスト名:B、IPアドレス:A)からarpすると、(IPアドレス:A、MACアドレス:A)で返答あるため、IP重複されていると(ホスト名:B)は判断
image

6. DHCPサーバは、(ホスト名:B)で重複の情報を受け、(IPアドレス:A)をBAD_ADDRESS と判断する
image

7. (ホスト名:B)は別IPを再度受け取り、通信が可能となる。
image

上記の状態になっている場合、発生しているセグメントから、以下の手順で確認可能です。
・arp –d <BAD_ADDRESS>でarpテーブルの情報クリア
・ping <BAD_ADDRESS> (応答がなくても構いません)
・再度arp –a 実施
・arpテーブルにBAD_ADDRESSのIPが表示されているか確認

 対策

ARPオフロード、NSオフロードを無効化することで、停止後ARP応答しないようにできます。
Windows7によるネットワークデバイスの管理
https://technet.microsoft.com/ja-jp/library/ee617165%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

ARPオフロード、NSオフロードになっているか確認
<管理者権限にてPowerShell>
Get-NetAdapterPowerManagement –Name <ネットワーク名>
image
ArpOffload、 NSOffloadが、enabledになっているかどうか確認します。
また、NICドライバの詳細設定でも確認・変更できる場合があります。
コマンドで無効化したい場合は、以下を実行することでdisableにすることができます。
<管理者権限にてPowerShell>
Set-NetAdapterPowerManagement –name '名前' -ArpOffload disabled -NSOffload disabled

まとめ

・DHCPサーバにBAD_ADDRESSが記録されるときは、シャットダウン後もARP応答している端末がないかも疑ってみる。

・ARPオフロード、NSオフロードサービスを停めると、解消する

スポンサーリンク

スポンサーリンク