旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

Teredoの実装(Windows)

Teredoクライアントは既にWindows上で実装されていて、WindowsUpdateか何かでAdvanced Networking Pack for WindowsXPをインストールすると使えるようになります。使い方はさっきのIPv6styleの記事の2ページ目の下の方を参照のこと。

Teredoサーバは自由に使えるものがMicrosoftから既に提供されていて、デフォルトのTeredoサーバがそれです。どうやらうちのNATはCone NATらしくて、記事の通りにnetshを実行してtypeを変更すると

netsh interface ipv6>show teredo
Teredo Parameters
                                                                                        • -
Type : disabled Server Name : default Client Refresh Interval : default Client Port : default State : offline Error : none netsh interface ipv6>set teredo type=client OK netsh interface ipv6>show teredo Teredo Parameters
                                                                                        • -
Type : client Server Name : default Client Refresh Interval : default Client Port : default State : qualified Type : teredo client Network : unmanaged NAT : cone

と、きちんとTeredoアドレスの割り当てを要求してくれました。

ただ、肝心のTeredoリレーはまだインターネット上で提供されてないので、これだけではNAT内からIPv6ノード(kameとか)にはアクセス出来ないみたいです。

それなら!と思って、NAT内のTeredoクライアント同士での通信(ping6)を試みてみたのですが、Teredoアドレスに対応するプライベートIPv4アドレスの受け渡しまでは成功しているように見えるものの、Teredoインタフェイス経由でのパケット送信から受信の間で失敗してしまいました。Etherealで調べてみると、どうもethernetフレームもIPv4ヘッダも無しでいきなりIPv6ヘッダを受け取ってしまっているみたいで……。ping6プログラムがソケットオプションPROTECTION_LEVEL_UNRESTRICTEDを指定してない(?)せいなのかなぁ。