IPv4網を経由してIPv6マシン間で通信することを,一般にIPv6トンネルと呼ぶ。6to4は,手軽にIPv6トンネルを実行する方法のこと。その特徴は,IPv6アドレスをあらかじめプロバイダに割り当ててもらわなくても,グローバル・アドレスを作れることにある。

 128ビットで構成されるIPv6アドレスは,前半64ビットと後半64ビットで役割が違う。前半64ビットはIPv6ネットワークを識別するために使われ,一般にプレフィクスと呼ばれる。後半64ビットは一つのIPv6ネットワーク内での識別子で,通常はMACアドレスを基に自動生成する。

 プレフィクスは世界中のIPv6ネットワークの中から,目的のIPv6ネットワークを見つけ出すために使われる識別子なので,世界的にユニークでなければならない。このため,通常のIPv6接続サービスではプレフィクスのユニーク性をプロバイダが管理する前提でアドレス割り当てが進められている。具体的には,プロバイダごとに/35のアドレス空間を持ち,その空間の一部となる/48のアドレス空間をユーザーに割り当てている。

 例えば,NTTコミュニケーションは2001:0218::/35というアドレス空間を管理している。このため,NTTコミュニケーションが提供するIPv6ユーザーにはその空間の一部(例えば2001:0218:049d::/48など)が割り当てられる。

 ユーザーはプロバイダに割り当ててもらった/48のアドレス空間の範囲で/64のプレフィクスを自由に決めることができる。64-48=16なので,ユーザーが自ら設定できる/64のプレフィクスは2の16乗。/64のプレフィクスをルーターに設定すれば,そこにつながっているマシンは自ら生成したインタフェースIDとプレフィクスを組み合わせて,自分自身のIPv6アドレスを作る。

 これに対して6to4は,6to4を起動したマシンが,自分のIPv4アドレスからプレフィクスを作ってしまう。64ビットの中にうまくIPv4アドレスを埋め込むことで,一つのIPv4アドレスに対して一つの/48のアドレス空間を対応付けるようになっている。この結果,6to4方式におけるプレフィクスのユニーク性は,IPv4アドレスのユニーク性によって保証される。

 なお,プロバイダから割り当てられたプレフィクスと,6to4で生成したプレフィクスが重なることはない。それぞれが別のアドレス空間に収まるように設計されているからである。具体的には,プロバイダが割り当てるプレフィクス(およびIPv6アドレス)は2001/16というアドレス空間に,6to4で生成されるプレフィクス(およびIPv6アドレス)は2002/16というアドレス空間にある。



6to4の仕様
ftp://ftp.isi.edu/in-notes/rfc3056.txt