[Windows/Cisco] 時折、OS再起動時に IP アドレスが 169.254.x.x になる事象について


スポンサーリンク


Windows Server 2008 R2 で OS 再起動を実行後、IP アドレスを固定に設定しているにも関わらず、169.254.x.x のアドレスに変わる事象が発生しました。

コマンド・プロンプトで ipconfig /all を実行すると、以下のように、本来割り振っている IP アドレス (192.168.x.x) が重複と判断され、169.254.~ で始まる IP アドレスが自動的に(勝手に)割り振られていました。

C:\> ipconfig /all

イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . :
   説明. . . . . . . . . . . . . . . : vmxnet3 Ethernet Adapter
   物理アドレス. . . . . . . . . . . : xx-xx-xx-xx-xx-xx
   DHCP 有効 . . . . . . . . . . . . : いいえ
   自動構成有効. . . . . . . . . . . : はい
   IPv4 アドレス . . . . . . . . . . : 192.168.x.x(重複)
   サブネット マスク . . . . . . . . : 255.255.255.0
   自動構成 IPv4 アドレス . . .  . . : 169.254.x.x(優先)
   サブネット マスク . . . . . . . . : 255.255.0.0
   デフォルト ゲートウェイ . . . . . : 192.168.x.1
   NetBIOS over TCP/IP . . . . . . . : 有効

C:\>

 

OS 再起動を繰り返してみると、数パーセント程度の確率で、この IP アドレス重複が発生。
ちなみに、OS は Windows Server 2008 R2 SP1 で、VMware ESXi の仮想マシン。

いろいろと調べて見ると、本事象は以下のサイトに紹介されているように、”Windows Vista/2008 以上” および “Cisco ネットワーク・スイッチで ip device tracking が有効” という条件が重なった場合に発生するようです。

Duplicate IP Address 0.0.0.0 Error Message Troubleshoot
http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/8021x/116529-problemsolution-product-00.html

Duplicate IP address detected on Windows Vista, Windows 7, Windows 2008 R2 Virtual Machine on ESXi/ESX (1028373)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1028373

本事象は仮想マシンに限らず、物理サーバーでも発生する可能性があります。
事象の発生原因は、特に仮想環境に限定された理由ではないので、物理サーバーでも起こるはずです。
(Cisco サイトでは仮想環境に限った記述内容になっていません)

ちなみに、ip device tracking は Cisco IOS バージョン 15.2 でデフォルト設定が disable から enable に変わっているらしいです。
そのため、デフォルト設定のままであれば、IOS バージョンが 15.2 未満の古いバージョンでは本事象は対象とならないと言えます。

そもそも、Windows サーバーはOS 起動時に IP アドレス重複を事前に検知するために、ARP Probe パケット (宛先IPアドレスに自身のIPアドレスをセット) を送信し、応答がないことを、しばらく待つ仕組みがあります。(応答があれば IP アドレス重複と判断される)

この事前の IP アドレス重複検知の仕組みは Windows Server NT/2000/2003 でも存在していますが、2008 以上では RFC 5227 に準拠した仕様が追加され、具体的には同じ IP アドレスで ARP Probe を実行している他の機器(今回の事象では Cisco ネットワークスイッチ)があれば、それも IP アドレス重複として扱われるようになっています。

対応として、Cisco サイト / VMware サイトに記載されているように、ip device tracking probe delay 10 を実行しましたが、OS 再起動時の IP アドレス重複は再発しました。
(発生確率は大幅に減少しましたが再発しました)

そこで、Cisco サイトのみ記載されている ip device tracking probe use-svi を実行したところ、OS 再起動時の IP アドレス重複は再発しなくなりました。

ip device tracking probe use-svi を実行すると、Cisco ネットワークスイッチから送信される ARP Probe パケットの送信元 IP アドレスが 0.0.0.0 から SVI に割り振った IP アドレスに変更されます。送信元 IP アドレスが 0.0.0.0 以外であれば、Windows サーバーからは IP アドレス重複検知対象の ARP Probe パケットと判断されなくなるため、本事象が再発しなくなる、というわけです。

いずれにしても、IOS バージョン 15.2 以上をデフォルト設定のまま使用するのはよくないので、今回対応したように、ip device tracking probe use-svi を実行するか、ip device tracking そのものを無効化することを検討したほうがよいです。

 
スポンサーリンク