IPv4の枯渇問題を受け、IPv6移行への取り組みが進み始めています。ただし、すべてを一気に切り替えるわけにはいかないため、さまざまな移行手段の提供も用意されつつあります。
■ 複数あるIPv6ネットワークへの接続法
前回の説明では、IPv4のアドレス数が枯渇しつつあり、これに対応するためIPv6への移行が急務というお話をしました。
その際には触れませんでしたが、2008年にはISPレベルで大規模なグローバルIPアドレスとプライベートIPアドレスの変換を行う「キャリアグレードNAT」を使って、IPv4アドレスの節約を図るという提案も行われました。ただ、技術的な課題も残されており、標準的な技術として普及するかは未知数です。
ここからは、「IPv6への移行をどうするか」という点について触れていきたいと思います。前回説明したように、すでにIPv6によるネットワークは一部で存在していますが、インターネットの大半はIPv4となり、両者が混在している形になっています。
具体的に言えば、図1のようにIPv4で構築されたネットワークと、IPv6で構築されたネットワークが二重構造になっているようなイメージです。これらのアクセス方法に関してですが、1番良いのは全ホストがIPv4とIPv6の双方に対応していることです。
一部のホストでは、こうした対応が取られつつありますが、多くはIPv4にのみ対応したホストです。また、現在ではIPv6のみに対応したホストはほとんどありませんが、2011年ないし2012年以降になるとIPv4が枯渇してしまい、現実問題としてIPv6しか割り当てられていないホストが出てきても不思議ではありません。
さて、問題はクライアントからの接続です。現時点で1番多いのは、IPv6トンネル(図2)のような仕組みです。ここでは、ISPとクライアントの間は基本的にはIPv4で接続されていますが、クライアント側にインストールしたソフトウェアを介して、IPv4上でIPv6ネットワークへの接続を可能にします(これをトンネリングと呼びます)。
最初にこうした方式のサービスを開始したのは、KDDIの「6to4(URL)」だと思うのですが、残念ながら現在ではサービスを終了しています。
図1:IPv4/v6が混在するネットワーク | 図2:IPv6トンネリング |
もちろん、根本的にISPとクライアント側がIPv6で直接接続(ネイティブ接続)する方法もあります。例えば、NTT東西のフレッツサービスではIPv6に対応したメニューを用意しています。ただし、この場合ではフレッツ網内での利用を前提しているため、外部への接続はできません(関連記事)。このため、インターネットに接続するには別途IPv4による接続が必要で、このことを「デュアルスタック」と呼びます。
それ以外の手段としては、潔くIPv4を完全に捨て去って、IPv6のみで接続することです。すでに商用サービスとして複数のISPが提供を行っていますが、いずれも法人向けに限られています。ただ、IPv6でネイティブ接続した場合、接続可能なのはIPv6対応ホストに限られ、大多数を占めるIPv4対応ホストには接続できません。
IPv4とIPv6は、アドレスのサイズや割り振り方などに差異はありますが、機能面でみると概ね同等と言えるでしょう。しかし、相互運用性は考慮されておらず、現時点では上述のように、IPv4のネットワークからIPv6のホストに直接接続する、あるいは逆のケースも行えません。
このほか、IPv6とIPv4のネットワーク間のゲートウェイとして、「NAT-PT」と呼ばれる仕様の標準化も目指されていましたが(RFC4966)、欠点や仕様の不十分さなどの課題もあり、事実上、廃案となってしまいました。NAT-PPをベースにした製品も存在はしていますが、広く一般に利用できるように公開されているわけではありません。
図3:デュアルスタック | 図4:IPv6でインターネット接続 |
■ 利用者側の環境整備も課題
また、利用する側にとってもいろいろな制限があります。前回紹介した通り、MicrosoftのWindows XP以降やAppleのMac OS X以降、LinuxやBSDなどのUNIX系OSもある程度最新に近いバージョンはIPv6の対応が済んでいますが、逆に言えばこれより古いOSを使っているとIPv6に未対応となります。ちなみに、こうしたOSの中には公式ではないものの、対応策が用意されている場合もありますが、こうした手段がない場合はIPv6の利用は難しいと言えるでしょう。例えば、Windows 2000の場合はMicrosoftがMSDNで提供する「IPv6 Technology Preview for Windows 2000(関連サイト、英文)」を利用することでIPv6対応になります。
一方、OSが対応していても、古いアプリケーションの中には、IPv6環境で動作しないケースも多いと思われます。こうしたネットワーク対応のアプリケーションは一般に以下のような手順で動作しています。
(1)DNSサーバーにホスト名を送信
(2)IPアドレスがDNSから返ってくる
(3)返ってきたIPアドレスを使って接続する
例えば、(2)のところでIPv4ならば32bitのアドレスなのに、IPv6だと128bitのアドレスが返ってきたケースを考えます。この際、アプリケーション側がIPv6をサポートしていないと、冒頭32bit分しか格納できないか、場合によってはバッファを破壊して、そのままアプリケーションが終了してしまう、といったことも起こりえます。こうした古いアプリケーションに関しては、残念ながらアップデート対応が行われない限り、IPv6には移行できません。
加えて、自宅で利用するルータもIPv6に対応している必要があります。最近発売されている製品の多くはIPv6のパススルー機能を備えているほか、アイ・オーなどの一部製品ではIPv6専用ポートを備えた製品も登場しています。一方で、過去に発売されていた製品ではIPv6に対応していない製品も少なくなく、ファームウェア更新での対応が見込まれない場合にはルータ自体の買い換えが必要になります。
しかしながら問題は、こうしてIPv6に対応した環境を用意しても、現時点ではIPv6によるメリットをほとんど得られない点です。例えば、ソニーマーケティングはIPv6マルチキャストを使った無料の動画配信サービス「branco(関連記事)」を2008年3月に開始しましたが、利用者の伸び悩みなどを理由に2009年1月末をもって終了してしまいました。
もちろん、Google検索(関連記事)や2ちゃんねるの「IPv6@2ch掲示板(関連記事)」、フリービットの「ServersMan@iPhone(関連記事)」などがIPv6に対応し始めており、移行してメリットがないわけではありません。しかし、IPv6自体はアドレスの割り当て方を変えただけですから、ユーザーから見てIPv4と比較して画期的な新機能があるわけではありません。
従って、IPv6への完全移行が完了するまでは、ISPが提供するIPv6トンネルやIPv6のデュアルスタックサービスを使う必要がありそうです。その上で、IPv6への対応を図りながら、現在のようなIPv4をメインとする使用方法になるのが実情と言えるでしょう。