IPv6移行技術 (IPv6いこうぎじゅつ、IPv6 transition mechanism )とは、インターネット において使用するプロトコル の、1981年から使われているIPv4 (Internet Protocol version 4) から、その後継技術であるIPv6 (Internet Protocol Version 6) への移行 (英語版 ) を促進するための技術である。IPv4/IPv6共存技術 [ 1] ともいう。
概要
IPv4とIPv6のネットワークは直接に相互運用可能でないため、IPv6移行技術はどちらのネットワークタイプに属するホストでも他のどのホストとも通信することが出来るように設計されている。
その技術的な基準を満たすために、IPv6には現在のIPv4からの直接の移行計画がなければならない[ 2] 。その目的に向けた移行技術を開発するために、Internet Engineering Task Force (IETF)はワーキンググループやインターネットドラフト やRFC を通じた議論を指揮している。いくつかの基本的なIPv6移行技術は RFC 4213 で定められている。
大きく分けて、IPv4ネットワーク下でIPv6通信を可能化する手法と、IPv6ネットワーク下でIPv4通信を可能化する手法がある。IPv6を推進する立場からは後者は「IPv4延命技術」とも呼ばれる。
IPv6ネットワーク下でIPv4通信を可能化する場合、トンネリング(カプセル化)やトランスレーション(ヘッダ書き換え)等の手法がある。トンネリングの場合、トンネル内ではIPv6のヘッダ分(標準 40bytes)オーバーヘッドが増える[ 注 1] 。トランスレーションでは、適用区間内で (IPv6ヘッダ - IPv4ヘッダ)分(標準 20 bytes)増加する。よって、ネットワークMTUとの関連で議論がある。またいずれの方式も、フラグメント化 されたIPv4パケットの取扱いに難がある。
IPv4上のコネクション(L3)に対してしばしば、キャリアグレードNAT (CGN)が適用される。
ステートレスIP/ICMP変換
ステートレスIP/ICMP変換 (SIIT : Stateless IP/ICMP Translation)は、IPv6とIPv4の間でパケットのヘッダフォーマットを変換する。SIITでは、「IPv4変換アドレス 」(IPv4-translated address)と呼ばれるIPv6アドレス の種類を定義する。IPv4変換アドレスはプリフィックスが::ffff:0:0:0/96 で、IPv4アドレスがa.b.c.d のとき::ffff:0:a.b.c.d のように書き表す。このプリフィックスは、トランスポート層のヘッダのチェックサム値が変化しないよう、値が0のチェックサムを与えるために選ばれた[ 3] 。
このアルゴリズムは、固定的に割り当てられたIPv4アドレスを持たないIPv6ホストが、IPv4のみのホストと通信する場合に使用される。アドレスの割当てとルーティングの詳細は、仕様に記載されていない。SIITは、ステートレスなネットワークアドレス変換 (NAT)の特別な例である。
仕様はNGTRANS IETFワーキンググループによるもので、最初にサン・マイクロシステムズ のE.Nordmarkによる RFC 2765 として、2000年2月にドラフトが発表された。RFC 2765 は、2011年に RFC 6145 によって廃止された[ 4] 。RFC 2765 のアドレス・フォーマットの一部は、 RFC 6052 で定められている[ 5] 。IPv4/IPv6変換の枠組みは、RFC 6144 で定められている[ 6] 。
トンネルブローカー
トンネルブローカー は、IPv6のトラフィックをIPv4による接続の中にカプセル化することによって、IPv6による接続を提供する。一般的には6in4 (英語版 ) が使用される。これは、IPv4ネットワークの中にIPv6トンネルを確立する方法である。トンネルは、Tunnel Setup Protocol (英語版 ) (TSP)やAnything In Anything (英語版 ) (AYIYA)で管理される。初のトンネルブローカーは、1999年2月に公開された[ 7] 。
6rd
6rd は、インターネットサービスプロバイダ (ISP)がIPv4基盤を通してIPv6サービスを迅速に提供することを容易にする技術である。IPv4とIPv6の間でステートレスなアドレスマッピングを使用し、顧客ノードの間でIPv4パケットと同様に最適化されたルートをたどる自動的に生成されたトンネルを通してIPv6パケットを送る。
2007年の RFC 5569 [ 8] によって定義され、ネイティブアドレスに対するIPv6サービスの初期の大規模な展開のために使われた。プロトコルの標準化過程の仕様は RFC 5969 である[ 9] 。
Transport Relay Translation
RFC 3142 ではTransport Relay Translation (TRT )が定められている。この方法は、NAT-PT/NAPT-PTとほぼ同一であるが、DNSのAAAAレコードとAレコードの変換に RFC 2694 で定められたDNS-ALG を使用する。
NAT64
NAT64とDNS64
NAT64 (英語版 ) は、IPv6ホストがIPv4サーバーと通信することができるようにする技術である。NAT64サーバは、少なくとも1つのIPv4アドレスと、32ビット(例:64:ff9b::/96 )のIPv6ネットワークセグメントを持つエンドポイントである( RFC 6052 , RFC 6146 )。
IPv6クライアントは、これらのビットを用いて通信することを望むIPv4アドレスを埋め、結果として生じるアドレスにパケットを送る。NAT64サーバーはIPv6とIPv4アドレスの間でNATマッピングを作成し、クライアントと相手先が通信できるようにする[ 10] 。
DNS64
DNS64 は、ドメインのAAAAレコード を要求されるためにDNSサーバーを記述するが、Aレコード だけしか見つけられなかった場合は、AレコードからAAAAレコードを合成する。合成されたIPv6アドレスの最初の部分はIPv6/IPv4トランスレータを指し、第2の部分はAレコードからIPv4アドレスで埋める。トランスレータは、通常NAT64サーバーである。DNS64の標準化過程の仕様は RFC 6147 である[ 11] 。
DNS64には、以下の2つの問題がある。
DNSが遠隔ホストアドレスを見つけた場合にしか働かない。IPv4リテラルが使われるならば、DNS64サーバーは決して関与しない。
DNS64サーバーがドメインのオーナーで特定されない記録を返す必要があるので、変換しているDNSサーバーがドメインのオーナーのサーバーでない場合、ルートに対するDNSSEC 確認は失敗する。
ISATAP
464XLAT
464XLAT (RFC 6877 )は、IPv6のみのネットワークの上のクライアントがIPv4のみのインターネットサービス(Skypeなど)にアクセスできるようにする[ 12] [ 13] 。
クライアント(例えばSkypeクライアント)は、IPv6のみのネットワークを通してNAT64トランスレーター(上述)に送るために、SIITトランスレーター(上述)を使用してIPv4パケットをIPv6に変換する。NAT64トランスレーターは、IPv4が使用可能なネットワークを通してIPv4のみのサーバ(例えばSkypeサーバ)に送るために、IPv6パケットをIPv4に変換する。SIITトランスレーター(CLAT)は、(特別なソフトウェアとして)クライアントそのものとして、または中間のIPv4が使用可能なLAN(ただし、それにはIPv4インターネット接続性があるなら、464XLATは必要でない)として実装される。NAT64トランスレーター(PLAT)は、サーバーとクライアント(CLATを通して)に到達できなければならない。NAT64の使用は、UDP、TCP、ICMPを用いたクライアントサーバモデルの接続に制限される。
464XLATはトランスレーションであり、CPE あるいは端末に置かれるCLATはステートレス、PE[ 注 2] に置かれるPLATはステートフルとなる。[ 14]
実装
Dual-Stack Lite (DS-Lite)
DS-Lite
Dual-Stack Lite (デュアルスタックライト、DS-Lite)は、 RFC 6333 で定義されている。DS-Liteでは、インターネット接続を提供するためにグローバルIPv4アドレスをカスタマ構内設備 (CPE)に割り当てる必要がない。
CPEは、ISPから割り当てられた範囲でLANクライアントにプライベートIPv4アドレス を配信する。CPEは、IPv6パケットの中にIPv4パケットをカプセル化 (英語版 ) する。CPEはパケットをISPのキャリアグレードNAT (CGN)に届けるためにグローバルなIPv6接続を使用する。ISPのCGNにはグローバルなIPv4アドレスが割り当てられている。ISPのCGNは、元のIPv4パケットをデカプセル化し、IPv4パケットにNATを実行し、グローバルのIPv4インターネットに送信する。CGNは、セッションごとにCPEのグローバルIPv6アドレス、プライベートIPv4アドレス、TCPまたはUDPのポート番号を記録することにより、個々のトラフィックフローを識別する[ 16] 。
MAP
Mapping of Address and Port (英語版 ) (MAP )は、Cisco によるIPv6移行技術の提案で、A+P (英語版 ) [ 注 3] のポートアドレス変換と、ISP内部のIPv6ネットワークの上にIPv4のトンネリングを行う技術を複合させる[ 17] 。2012年9月 (2012-09 ) 現在[update] 、MAPはInternet Draftの標準化過程(standards-track)の状態にあった。
IPv4パケットをIPv6にカプセル化しトンネリングする方式がMAP-E (RFC 7597 )である。トンネリングではなく、NAT64によりトランスレーション(ヘッダ書き換え)を行う方式はMAP-T (RFC 7599 )と呼ぶ。[ 18]
いずれの方法も、CPE 側 (CE)でNAPT実施(ステートフル)し、PE側[ 注 2] (BR:Border Relay) はステートレスとなる。
提案中の草案
以下の方法は、まだ議論中であるか、IETFによって放棄された。
4rd
4rd (IPv4 Residual Deployment)は、 RFC 7600 で定義された、IPv6ネットワークを通してIPv4サービスの提供を容易にするための技術である。6rd のように、IPv6とIPv4の間でステートレスなアドレスマッピングを使用する。トランスポート層ポートに基づくIPv4アドレスの拡張をサポートする。これは、A+P (英語版 ) モデルのステートレスな変種である。
4rd-U (Unified) とは異なる。MAP-Eの原型。
非推奨の方法
以下の方法は、IETFによって非推奨とされた。
NAT-PT
ネットワークアドレス変換/プロトコル変換 (NAT-PT: Network Address Translation/Protocol Translation)は RFC 2766 で定められたが、多くの問題のために、 RFC 4966 によって廃止された。一般的に、NAT-PTはDNS アプリケーション・レベル・ゲートウェイ (英語版 ) (DNS-ALG)実装とともに用いられる。
NAPT-PT
ネットワークアドレスポート変換/プロトコル変換 (NAPT-PT: Network Address Port Translation/Protocol Translation)は、 RFC 2766 で定められた。NAT-PTとほとんど同じであるが、アドレスだけでなくポート番号の変換も行う。この方法は、 RFC 4966 によって廃止された。
その他の方法
dIVI (英語版 )
dIVI = double IVI。MAP-Tの原型
4rd-U
ヘッダ情報のマッピング。MAP-EとMAP-Tの統合。4rdとは異なる。
LW4o6 (英語版 )
実装
脚注
注釈
出典
参考文献
IPv6 in Practice , Benedikt Stockebrand (2006), ISBN 3-540-24524-3
RFC 2767 , Bump-in-the-Stack
RFC 3338 , Bump-in-the-API
RFC 3089 , Socks-based Gateway
RFC 6219 , The China Education and Research Network (CERNET) IVI Translation Design and Deployment for the IPv4/IPv6 Coexistence and Transition
外部リンク
標準化過程(Standards Track) 実験的(Experimental) 情報(Informational) 草案(Drafts) 非推奨(Deprecated)