Windows XpのIPv6でpingが失敗するときは… (2)設定してはいけないインターフェースID2000: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::230はOK、2004::ffff:100:1:230でもOKだ。2000:100:0:1:ffff::230では失敗する。 これは、WindowsでのIPv6実装のバグである。このバグは、Windows Vistaでは修復されている、とのこと。Windows Server 2003 Release2ではどうかというと、筆者は知らない。 実験して欲しければ金をくれ!である。 |
Copyright (C) 2003 by Yasumaro. All rights reserved.
↑ ご意見・ご感想・ご要望・苦情はこちらまで。↑ |
最終更新日2007年03月16日
HIEDA.NET |