みなさんは「IRS」(Interdomain Routing Security)というグループを聞いたことがあるでしょうか?

 そもそもあまり有名なグループではありませんが,IRSは2004年7月に,BGP(border gateway protocol)をはじめとするInterdomain環境でのセキュリティ問題などに関して議論するために発足したグループです。NTTコミュニケーションズの吉田さんをリーダーに据え,私をはじめとする数名でコーディネーションして,業界の皆様に支えられながら,先日10月22日に18回目のミーティングを開催したところです。

 Interdomainというのは,ISPなどのBGPを運用している組織(これをドメインといいます)を相互接続しているような環境のことを指します。IRSは,Interdomainのような相互接続環境におけるセキュリティ関連の話題について議論していくグループです。

 IRSでの主な話題は経路制御ということになるのですが,最近ではインターネット全体を視野に入れ,どのような運用が望ましいかなども議論されるようになってきました。

 先日開催されたミーティング「IRS18」では,最近話題になっている「4octets-AS」(AS番号を従来の2バイトから4バイトに拡張したもの)のインターネットに対する経路の伝搬に関する話題や,AS間でのフィルタ,そしてIPv4ネットワークとIPv6ネットワークをつなぐ「6to4」という技術を使ったプロジェクトが紹介されました。

 今回は,この「6to4」を使った「tokyo6to4.netプロジェクト」についてご紹介したいと思います。ちょうどIRSでこのプロジェクトの推進をしているしらはたしんさんからいただいた資料があるので,それを見て私の感想もこめながら簡単にご説明しましょう。

「6to4」って何だろう?

 6to4というのは,端的にいえば「IPv4ネットワーク上でIPv6パケットを転送するための技術」ということになります。ここで詳しくお話しすると説明が長くなってしまいそうなので,簡単に概略だけをお話ししましょう。興味のある方はこちらも参考にしてください。

 そもそも6to4は,IPv6のネットワークが普及する前の状態──IPv6ネットワークがIPv4ネットワークに比較して非常に小さい場合──に,特に有効に働きます。このような環境では,多くのネットワーク利用者はISPからIPv4を使ったインターネット接続サービスだけを提供され,IPv6でアクセスする環境がありません。このとき6to4は,IPv4ネットワークだけに接続した端末からトンネルのような技術を使ってIPv6へのゲートウエイとなるルーターへ接続することで,IPv6ネットワークと通信するための方法を提供するのです。

 6to4の特徴は,(1)明示的なトンネルの設定が不要であること,(2)IPv6ネットワークの立ち上がり時期に有効な技術であること――の二つがあります。

 6to4を使うためには,IPv4のインターネット上に6to4のゲートウエイ・ルーターを置く必要があります。このゲートウエイ・ルーターは,2008年10月現在,世界中で約35台設置されています。しかし,アジアに限って見てみると設置台数は2台だけです。日本では,かつてKDDI研究所が設置していましたが,今はサービスを停止しているので,なんと6to4のゲートウエイ・ルーターは1台もない状況なのです。

 その環境を見かねたしらはたしんさんがIRSでこの話題を取り上げたことをきっかけに,数名の方が立ち上がってこの「tokyo6to4.netプロジェクト」をけん引し始めたのです。

 アドバイザや協力者の方々の面々を見てみると,IPv6では既に有名な江崎先生や加藤先生をはじめ,業界で著名な方々が名を連ねています。

IPv4アドレスからIPv6アドレスを自動生成

 ではこの6to4は具体的にどのように動くのでしょうか? 図1にアドレスの使い方,図2にネットワークの様子を示しました。

 まずアドレス体系を見てみましょう。IPv6に対応していてもIPv4ネットワークにしかつながっていない端末は,すべてのやりとりにIPv4を使わざるを得ません。そこでこうした端末は,自分に割り当てられたIPv4アドレスから自分のIPv6アドレスを自動的に生成します。このIPv6アドレス生成方式を解説したのが図1になります。

図1●IPv4グローバル・アドレスがIPv6アドレスにマッピングされるしくみ
図1●IPv4グローバル・アドレスがIPv6アドレスにマッピングされるしくみ

 端末はこのIPv6アドレスを基に,まずIPv6パケットを生成します。送信元アドレス(source address)はここで生成したIPv6アドレス,あて先アドレス(destination address)は通信相手となるIPv6端末のアドレスになります。

 端末は,このIPv6パケットをIPv4パケットにカプセル化してIPv4ネットワークに送り出します。IPv4パケットの送り先は,インターネット上におかれた6to4ゲートウエイ・ルーターです。ここでは,「Anycast」と呼ばれる技術を使います。Anycast技術とは,特定のグループに属する機器の中で,送信元から一番近い機器にデータを送る通信技術です。ゲートウエイ・ルーターのIPv4アドレスは,6to4用としてあらかじめ割り当てられている値(192.88.99.1)を使うので,初期設定さえ済ませば,ユーザーは気にする必要がありません。

 6to4ゲートウエイ・ルーターは,受信したパケットのIPv4ヘッダーを外し,IPv6パケットを取り出します。このIPv6パケットを目的のIPv6端末に送り出します。返信のパケットは,IPv6パケットのsource addressあてに送り返されることになります。source addressは,2002::/16の範囲のアドレスを持ちますが,これもまたAnycast技術によって近くの6to4ゲートウエイ・ルーターに送られます。そのあと,6to4ゲートウエイ・ルーターがIPv6パケットを元の端末に送り返し,やりとりが完了します。この様子を示したのが図2です。

図2●行きと帰りの経路が非対称になることがある
図2●行きと帰りの経路が非対称になることがある
IPv4ノードは192.88.99.0/24を,IPv6ノードは2002::/16をそれぞれAnycast技術を使って転送している。Anycastによって,各ノードに一番近いルーターが転送に使われる。そのルーターが異なることで,行きと帰りの経路が変わる