今まで使われてきたIPv4が枯渇し、新しいIPv6が制定され、導入が進んでいます。
しかし、IPv4とIPv6には互換性がないため、インターネットワーク全体が一挙にIPv6に移行できるわけではなく、しばらくはIPv4とIPv6の両方が並存しながら徐々にIPv6へと置き換わっていくことになります。
当記事は、IPv4とIPv6を併用利用する技術についてご紹介します。
IPv4とIPv6の共存
IPv4とIPv6を共存させる、また、IPv4からIPv6への移行の際に用いられる代表的な技術は、大きく以下の3つがあります。
- デュアルスタック
- トランスレータ
- トンネリング
以下で詳しく見ていきましょう。
デュアルスタック
デュアル・スタックは、機器がIPv4とIPv6の二つのプロトコル・スタックを持つことで、機器間の通信を実現する技術です。特別な設定は必要ありません。
ルータはIPv4とIPv6用にそれぞれ別々のルーティングテーブルを持ちます。IPv4のトラフィックを受け取ったらIPv4用のルーティングテーブルを参照してルーティングを行い、IPv6のトラフィックを受け取ったらIPv6用のルーティングテーブルを参照してルーティングを行います。
現在のIPv6対応機器のほとんどはIPv4にも対応しており、デュアルスタックであると言えます。
トランスレータ
IPv4ネットワークとIPv6ネットワーク間の相互通信において利用される仕組みです。
IPv4とIPv6では、プロトコルスタックの仕様が異なっているため直接通信ができませんが、トランスレータの技術を実装することで可能となります。
トランスレータの技術の一つにNAT-PTがありますが、NAT-PT は、DNSへの依存度の高さや変換に関する全般的な制限が原因で IETF では廃止扱いとなり、スケーラブルな変換サービスを維持するには複雑すぎるテクノロジーと見なされてきました。 NAT-PT は廃止されましたが、ユーザ間の IPv6 変換は増えつつあり、NAT64 が導入されました。
トンネリング
トンネリングとは、IPv4ネットワークを介してIPv6ネットワーク間で通信を行いたい場合に利用する方法で、IPv4ネットワークを通過させるために、IPv6パケットをIPv4ヘッダでカプセル化を行います。
トンネリングの技術には以下の5つの種類があります。
- IPv6 over IPv4トンネル
- GREトンネル
- 6to4トンネル
- 6rd
- ISATAPトンネル
IPv6 over IPv4トンネル
IPv6 over IPv4トンネルは、サイト間で使用するpoint-to-pointトンネルで、トンネルのコネクションを定義する宛先IPv4アドレスを明示的に定義する手動トンネルです。つまり宛先の数だけトンネルの設定が必要です。IPv6 パケットだけを伝送できます。
GREトンネル
GREトンネルは、サイト間で使用するpoint-to-pointトンネルで、トンネルのコネクションを定義する宛先IPv4アドレスを明示的に定義する手動トンネルです。つまり宛先の数だけトンネルの設定が必要です。
GREトンネルは、IPv4に限らず、他のプロトコルを使用してエンドツーエンドのトンネルを作成することができます。Cisco独自のトンネルです。
6to4トンネル
6to4トンネルは、トンネルのコネクションを定義する宛先IPv4アドレスを明示的に定義する必要のない自動トンネルで、マルチポイント(複数宛)のトンネルで使用します。
6to4トンネリングを設定する場合、IPv6サイト内のアドレスは、「2002::/16」を設定します。6to4を設定するにはIPv4グローバルアドレスを持つ必要があります。なお、 NAT配下にあるホストやルータで6to4を動かす事はできません。
また、IPv6 IGP (RIPng,OSPFv3など)プロトコルも実行できません。
6to4で使用するIPv6アドレスは、先頭16ビットが2002で始まり、その次の32ビットがIPv4グローバルアドレスを16進数にして埋め込まれていることが特徴です。
6rd
IPv6 rapid deploymentの略で、この言葉通りISPが迅速にIPv6サービスを提供できることを主眼として開発された技術です。
6to4は全インターネットを対象としていますが、6rdは管理されたISPネットワーク内で閉じた運用を想定しています。6to4はプレフィックスとして2002::/16を使うのに対して、6rdはISPが持つIPv6グローバルユニキャストアドレスを使います。
ISATAPトンネル
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)は、あるサイト内のIPv4のネットワークにあるホストが、IPv6のルータにトンネルを張り、IPv6のネットワークに接続する方法です 。IPv4アドレスは、グローバルアドレス、プライベートアドレスのどちらでも使用でき、ISATAPインタフェース識別子は、ローカルサイトで一意となります。これを用いてリンクローカルアドレスが作成できます。また、IPv6 IGP (RIPng,OSPFv3など)プロトコルの実行が可能です。
ISATAPアドレスフォーマットは以下のようになります。6to4と異なり、IPv6アドレスに埋め込むIPv4アドレスがプライベートアドレスであっても、上位64ビットのプレフィックスがグローバルなプレフィックスであれば、そのISATAPアドレスはグローバルIPv6アドレスとなります。
アドレスを生成する際には以下のような流れで生成しています。
いかがでしたでしょうか。
ぜひお勉強の際にお役立て下さい。