2006/01/11
■[IPv6][NAT]OCN IPv6はIPv6 over PPP/L2TP(not Teredo)
※今回の日記は、2005年11月24日の日記(KAMEとTeredoと「どこでもIPv6」)の続きです。
NTTコミュニケーションズのサイトでOCN IPv6の仕様書が公開されたので、僕もさっそく読んでみました。22ページしかない、短い仕様書です。
IPv6技術仕様(「OCN IPv6 ユーザ網インタフェース仕様書Ver1.0」というのがそれ)
http://www.v6.ntt.net/07_document.html
簡単にまとめると、OCN IPv6とは
- PPP/L2TPでVPNトンネルを確立して、その中にIPv6パケットを通す
- NAT越えを実現するために、クライアントはサーバへ定期的にUDPパケット(Keep-Alive)を送信する
ことでNAT越えを実現したIPv6 over IPv4トンネリングサービスのようです。
----
以前、僕は「UDPでIPv6をカプセル化」「標準ベースの技術」「Windows Vistaにも搭載」というあたりで、「OCN IPv6はTeredoじゃないか?」と予想したんですけど、全然違いましたね。申し訳ないです。
まず、L2TPはUDPベースのプロトコルなので、確かにUDPでIPv6をカプセル化してます。具体的には「IPv6 over PPP over L2TP over UDP over IPv4」*1という形で何重にもカプセル化されるのですが、L2TPはPPP接続を確立するためのトンネリングプロトコルなので、これは完全に標準に準拠した使い方です(参考:L2TPとは(e-Words))。ユーザ認証のためにどうしてもPPPが必要だったのでしょうね。
また、MicrosoftはL2TPのNAT越えを実現するためのプログラムを既に提供しているようです(Windows XP SP2には標準搭載)。これは、おそらくKeep-Aliveのサポートでしょう。
Windows XP および Windows 2000 用 L2TP/IPSec NAT-T 更新プログラム http://support.microsoft.com/default.aspx?scid=kb;ja;818043
そう考えると、現在のWindows XP SP2はOCN IPv6を提供するための機能は既にほとんど備えているわけで……Windows VistaがOCN IPv6を正式にサポートする可能性は充分あるように思えます。なるほど。うまい手があるもんですね。
----
(余談)
「OCN IPv6 ユーザ網インタフェース仕様書Ver1.0」では、Keep-Alive機能について以下のように記載しています(10ページ目)。
接続クライアントは、トンネル接続の維持のため、L2TPのControl Messageの一つである"Hello"メッセージとPPP LCPの"echo-request"メッセージを接続サーバに対して定期的に送信する。
で、僕が気になっていたKeep-Aliveの送信間隔については何も書かれてませんでした。また、TeredoのようにKeep-Aliveの送信間隔を調整する(30秒から徐々に増やしていって限界を探る)ようなことは全くやらないみたいです。ちぇっ。
まあ、実際のところ、頑張ってKeep-Aliveの送信間隔を調整してもあんまりメリット無さそうですけどね……。
*1 このプロトコルスタックの図は仕様書の7ページ目に載ってます。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。