ネットワークTOP  |  IPv6 TOP

IPv6ネットワークを作ろう

Windows XpのIPv6でpingが失敗するときは… (2)

設定してはいけないインターフェースID

2000:111:fe40:0:ffff::45fc (例)

IPv6は通常、64bitのプリフェックスで皆さんの前に姿をあらわす。プリフェクスとはネットワークIDのことだ。IPv6アドレスは128bitだから、残りの64bitがインターフェースIDとなる。ネットワーク設計者やネットワーク管理者ならば、通常はこの64bitのインターフェースIDに重複のない数値をアドレスとして自由に設計できるはずである。しかし、64bitのインターフェースIDの先頭の16bitを全てffffとし、次の32bitを0000:0000とすると、Windowsでは通信出来ない。

この64bitのインターフェースIDの先頭の16bitを全てffffとし、次の32bitを0000:0000とするアドレスを持ったTCP/IPホストに対して、Windows PCがpingを実行する様を、Etherealなどのネットワークモニターで計測すると、replyが届いているにもかかわらず、Windowsはこれを無視し、Request time outを表示する。

逆に、64bitのインターフェースIDの先頭の16bitを全てffffとし、次の32bitを0000:0000とするアドレスを持ったTCP/IPホストから、Windows PCに対してpingを実行する様を、Etherealなどのネットワークモニターで計測すると、requestが届いているにもかかわらず、Windowsはこれを無視する。

Windows PCに64bitのインターフェースIDの先頭の16bitを全てffffとし、次の32bitを0000:0000とするアドレスを設定し、自分自身に対してpingを実行しても、Request time outを表示する。

他のOSではどうかというと、一般的なIPv6対応のルーターやLinuxやUnix互換のコンピューターなどのネットワーク機器では、インターフェースIDの先頭の16bitを全てffffとし、次の32bitを0000:0000としても、問題なく使用できる。

なぜか、Windowsだけダメである。

netsh int ipv6 add address intfacename xxxx:xxxx:xxxx:xxxx:ffff::xxxx

この設定をして、己自身やリモートPCから、このアドレスに対してpingしてみて欲しい。必ずや失敗するはずである。5ブロック目がすべてFFFFでも、あとに"0"の連続"::"がなければOKだ。

リンクローカルアドレスでは成功する。2000::230OK2004::ffff:100:1:230でもOKだ。2000:100:0:1:ffff::230では失敗する。

これは、WindowsでのIPv6実装のバグである。このバグは、Windows Vistaでは修復されている、とのこと。Windows Server 2003 Release2ではどうかというと、筆者は知らない

実験して欲しければ金をくれ!である。
 
ネットワークTOP  |  IPv6 TOP
Copyright (C) 2003 by Yasumaro. All rights reserved.
 ↑ ご意見・ご感想・ご要望・苦情はこちらまで。↑
最終更新日2007年03月16日
HIEDA.NET