Webサイト管理者のための2020年版“IPv6対応入門”第5回
IPv6化が進むNWインフラからのIPv4アクセスを可能に、「IPv4 over IPv6」が必要な背景
サイト管理者や開発者が知っておきたい「IPv4/IPv6共存技術」
IPv4/IPv6共存技術:デュアルスタック/トランスレーション/トンネリング
さて、IPv4/IPv6共存技術には大きく3つ、「デュアルスタック」「トランスレーション」「トンネリング」という手法がある。デュアルスタックは個々のノードにおける共存技術、トランスレーションとトンネリングはネットワークにおける共存技術だ。第1回の記事で説明した概要を振り返りつつ、もう少し詳しく見ておこう。
まずデュアルスタックは、各ノードがIPv4/IPv6のどちらの通信にも対応できるようにソフトウェアスタックを用意し、通信相手に応じて通信プロトコルを使い分けるというものだ。現在では、主要なサーバー/PC/スマートデバイスの最新OSならばほぼ100%、IPv4/IPv6デュアルスタックになっている。
ただし、前々回、前回で見たとおり、デュアルスタックノードがIPv4/IPv6の双方に対応する設定になっているかどうかはまた別の話だ。
一方、ルーターなどのネットワーク機器においてもデュアルスタック化は進んでいる。ただし、巨大なインターネットを構成するネットワーク機器すべてがそうなっているわけではない。特にネットワーク事業者においては、ネットワークをデュアルスタックで構築/運用することで二重の運用コストなどが発生するため、あえてIPv4/IPv6のどちらかに統一する(シングルスタック)ケースが多い。ホスト間の通信経路にこうしたネットワークがあれば、通信はその制約を受けることになる。
こうした制約を解消するためのネットワーク技術が、トランスレーションやトンネリングである。大まかに言えば目的は同じだが、その手法には大きな違いがある。
トランスレーションの場合は、IPv4ネットワークとIPv6ネットワークの間で“仲介者(通訳者)”となり、「パケットそのものを書き換える」手法をとる。具体的には、パケットヘッダに書かれた宛先/送信元のIPアドレスをIPv6からIPv4へ変換して転送を行う(もちろんその逆のIPv4→IPv6という場合もある)。パケットを「小包」にたとえるならば、小包の中身には手を加えないものの、別の書式で書いた「荷札」に貼り替えて転送するイメージだ。
一方で、トンネリングは「パケットを書き換えない」手法だ。たとえばIPv4ネットワーク経由でIPv6パケットを送信したい場合、IPv4ネットワークの入口でIPv6パケットを丸ごとIPv4パケットに格納して(これを「カプセル化」と呼ぶ)転送し、IPv4ネットワークの出口で元のIPv6パケットを取り出して転送を続ける。小包のたとえで言えば、ある小包を丸ごと別の箱に入れ、別書式の荷札を貼って転送し、途中でまた元の小包を取り出して転送を続けるというイメージだ。
トランスレーションとトンネリングは、一概に「どちらが優れているか」と言えるようなものではない。それぞれの特徴と技術的制約を理解して、適用先のネットワーク構成や適用目的に応じて選択されるべきものだ。