図2●6to4アドレスの構造
先頭16ビットの「2002」が6to4アドレスであることを示す。6to4ルーターのIPv4アドレスと合わせた先頭48ビットが6to4サイトのプレフィックスとなる。6to4ルーターや6to4サイト内にあるIPv6ルーターは,サブネットIDを付けて各ホストに64ビットのプレフィックスを通知する。

 自動設定トンネルを利用したトンネル接続方式について,まずは6to4の仕組みから説明する。

 6to4で使用するアドレスについては,IPアドレスの割り当てを管理するIANA(Internet Assigned Number Authority)より,「2002::/16」注1)という16ビットのIPv6プレフィックス注2)が6to4用に割り当てられている(図2[拡大表示])。6to4を利用するユーザーは,その後に32ビットのIPv4アドレスを埋め込んで48ビットのプレフィックスを生成する。

注1) 「2002:0:0:0:0:0:0:0/16」のことだが,IPv6のアドレスは0が続くところは「::」と省略できる。

注2) あるネットワークを対象に割り振られる識別子。プレフィックスのビットパターンとビット長により,IPv6アドレスがどのグループ(サイト,サブネットなど)に属しているかを示す。

サイト全体を対象とする6to4

 6to4アドレスをグローバルIPv6アドレスとするためには,生成した48ビットのプレフィックスが一意に特定されなければならない。このため6to4アドレスに埋め込むIPv4アドレスは,グローバル・アドレスでなければならない。

図3●6to4サイトの構成例
6to4サイトではサブネットIDに16ビットが割り当てられている。このため,一つのグローバルIPv4アドレスで約6万5000のサブネットを持つ6to4サイトを構築できる

 グローバルIPv4アドレスを持つユーザーは,先頭が「2002」である48ビットのIPv6プレフィックスが割り当てられたことになる。このプレフィックスを利用して,自由にIPv6ネットワーク(6to4サイト)を構築できる(図3[拡大表示])。

 例えば,10.0.0.1というグローバルIPv4アドレス注3)が割り当てられているユーザーは,2002:a00:1::/48というIPv6プレフィックスを使用することができる注4)。IPv6では通常サブネットには64ビットのプレフィックスを割り当てるので,サブネットIDは16ビットを確保できる。従って,6to4サイトでは最大2の16乗(約65000)のサブネットを作れる。IPv4インターネットへの接続点には,トンネル・ゲートウェイとなる6to4ルーターを設置し,6to4ルーターのIPv4インターネット側には,6to4アドレスを生成するのに使用したIPv4アドレスを割り当てる。ネットワークを構成しなくとも,単一ホストのみでも6to4を利用することは可能である。

注3) 10.0.0.1は本来IPv4のプライベート・アドレスだが,ここでは便宜上グローバル・アドレスとして扱っている。

注4) 10.0.0.1の各桁を16進数で表し,IPv6のアドレス表記で示すと,a00:1となる。

 なお,グローバルIPv4アドレスが固定でない場合は,生成される6to4アドレスも固定ではない,という点に注意する必要がある。従って公開サーバーを設置するなど,6to4で固定IPv6アドレスが必要な場合には,固定グローバルIPv4アドレスを使用しなければならない。


リレールーターがv4とv6の橋渡し

図4●6to4を用いたIPv6 over IPv4トンネル
IPv4インターネットに接続した6to4ルーターが,IPv6パケットをIPv4ヘッダーでカプセル化する。カプセル化されたパケットは,対向の6to4ルーターもしくはIPv6インターネットとの接点に置かれた6to4リレールーターでIPv6パケットに戻される

 6to4を利用した通信手順を,(1)6to4サイトから6to4サイト,(2)6to4サイトからIPv6インターネット,(3)IPv6インターネットから6to4サイト,の場合に分けて説明する(図4[拡大表示])。

 (1)の6to4サイトから6to4サイトへの通信は次のように行われる。6to4サイト内のホスト(以下6to4ホストと記す)からのパケットを受け取った6to4ルーターは,パケットのあて先アドレスを見て,それが2002で始まるアドレスで,かつプレフィックスが自6to4サイトと異なる場合,それは他の6to4サイトあてのパケットと判断する。その場合あて先6to4アドレスに埋め込まれたIPv4アドレスを取り出し,それをあて先とするIPv4ヘッダーをIPv6パケットに付加してIPv4インターネットに送出する。あて先の6to4ルーターはIPv4ヘッダーを取り除いてIPv6パケットを取り出し,あて先6to4ホストに転送する。

 (2)の6to4サイトからIPv6インターネットへの通信の場合,6to4ルーターが送信元6to4ホストから受け取るパケットのあて先は,6to4アドレスではないグローバルIPv6アドレスである。この場合6to4ルーターは,デフォルト・ルーターのIPv4アドレスをあて先とするIPv4ヘッダーをIPv6パケットに付加してIPv4インターネットに送出する。

 このデフォルト・ルーターは6to4リレールーターと呼ばれる。6to4リレールーターはIPv4インターネットとIPv6インターネットの境界にあり,6to4ルーターとトンネル接続を行うことで,6to4サイトとIPv6インターネットとの間の通信を中継する。

 6to4ルーターは,利用する6to4リレールーターのIPv4アドレスを明示的に指定するか,6to4リレールーターを指すエニーキャスト・アドレスである192.88.99.1(RFC3068「An Anycast Prefix for 6to4 Relay Routers」で規定)をIPv4ヘッダーのあて先アドレスとすることにより,6to4リレールーターを指定する必要がある注5)

注5) エニーキャスト・アドレスとは,マルチキャスト・アドレスと同様,あるホスト(正確にはインタフェース)のグループを識別するアドレスのことである。しかしマルチキャストとは次の点が異なる。マルチキャスト・アドレスに向けて送信されたパケットは,そのアドレスを持つすべてのホストに配送されるが,エニーキャスト・アドレスに向けて送信されたパケットは,そのアドレスを持つある一つのホスト(通常は送信元ホストからの経路が最も近いホスト)にのみ配送される。

 (3)のIPv6インターネットから6to4サイトへの通信の場合,IPv6ホストからのパケットは6to4リレールーターを経由してあて先の6to4ホストへ送信される。ここで6to4リレールーターは6to4アドレスあてのパケットを中継するために,BGP(Border Gateway Protocol)4+などのルーティング・プロトコルを用いて6to4プレフィックス(2002::/16)をIPv6インターネットに広報しておく必要がある。これにより,IPv6ホストから6to4サイトへのパケットは,IPv6インターネットでのルーティングに従い,最寄りの6to4リレールーターに送られる。あて先が6to4アドレスであるパケットを受け取った6to4リレールーターは,その6to4アドレスに埋め込まれたIPv4アドレスをあて先とするIPv4ヘッダーを付加して,あて先の6to4サイトへパケットを送る。

 なお6to4リレールーターは,IPv6インターネットにおけるルーティング・テーブルのサイズ肥大を防ぐため,IPv6インターネットに対し基本的に2002::/16のみ広報すべきとされている。このため,6to4サイトとIPv6インターネットの間の通信においては,特定の6to4リレールーターをあて先に指定する通信にはならない。この結果,往復で同じ6to4リレールーターを経由することは保証されず,通信経路は非対称になる場合が多い。

(屏 雄一郎)

屏 雄一郎
筆者はKDDI研究所 ネットワークエンジニアリンググループ研究員。学生時代は主にATMトラフィック制御を研究していた。入社後はIPネットワーク構築,運用技術,IPv4からIPv6への移行技術の研究開発などに取り組んでいる。