インターネットにおけるIPアドレスの枯渇問題、そしてその解決策としてのIPv6について語られるようになって、かなり長い時間が経過している。NAT/IPマスカレードの導入などで先送りできているとはいえ、いよいよIPv4アドレスの枯渇が間近な問題になってきた。遅かれ早かれ、IPv6に移行しなければならない時期がやってくるだろう。

そこで本稿では、IPv6にネイティブ対応したOS(この意味については後で解説する)であるWindows VistaやWindows Server 2008を例にとりながら、IPv6とは何か、IPv4と比較したときに何が変わって何が変わらないのか、といった基本的な事柄について解説していくことにしよう。

IPv6の位置付け

IPv6とは、OSI階層モデルの第3層(ネットワーク層)に属するプロトコルで、位置付けとしてはIPv4と変わらない。ネットワークの中で果たす機能も同じで、個々のノードにそれぞれ重複のないアドレス(IPアドレス)を割り当てて、データの搬送・中継を担当する。ただし、アドレスの体系や表記方法がまったく異なる。

IPアドレスはしばしば、「住所」にたとえられる。日本では「区画」に番地を割り振って住所としているが、アメリカでは通りの名前を基準にして端から順番に番号を振って住所としている。これと同じように、IPv4とIPv6では住所の付け方がまったく異なっているわけだ。しかし、割り振った住所の情報を基にしてデータの搬送を行う、という本質の部分については、両者に違いはない。

したがって、IPv4を利用しているときとIPv6を利用しているときで異なるのは、このネットワーク層の部分だけとなる。IPより下位の物理層やデータリンク層、あるいはIPより上位のトランスポート層やその上の階層については、IPv4でもIPv6でも違いはない。

ただし実際には、アプリケーションがIPアドレスを正しく理解する必要があるため、通信アプリケーションもIPv6に対応したものが必要になる。住所の書き方が変わったために、従来の伝票が使えなくなったようなものだと考えればよいだろう。

IPv4やIPv6は、OSI階層モデルのうちネットワーク層に属する。IPv4の部分がIPv6に変わるだけで、それより上の階層と下の階層は変わらない。

IPv6を使うには何が必要?

では、このIPv6を利用するには、何が必要になるのだろうか。

かつてのWindows 3.1などと異なり、現在ではOSが通信機能を標準装備している。つまり、LANアダプタを駆動するためのデバイスドライバや、その上で動作するプロトコルスタックもOSの一部という位置付けだ。したがって、TCP/IPプロトコルスタックのうちIPの部分をIPv4からIPv6に置き換えるのであれば、OS自身がIPv6に対応したプロトコルスタックを用意する必要がある。

Windowsの場合、ネットワーク機能を標準装備したのはWindows 95からとなる(正確にはWindows for Workgroups 3.1が最初だが、これは日本語版が存在しなかった)。しかし、IPv6を利用できるようになったのはWindows XPとWindows Server 2003からだ。この時点ではGUIによる設定ができず、IPv6関連の設定はすべてnetshコマンドを使ってコマンドラインで実施する必要があった。こうした制約を取り払い、IPv6に完全対応したのはWindows VistaとWindows Server 2008が最初になる。

MacOSの場合、MacOS 9.x以前はIPv4のみの対応であり、MacOS Xでも10.0~10.1は非対応、10.2(Jaguar)から対応している。LinuxやFreeBSDについては、USAGIプロジェクトやTHAIプロジェクトの手でIPv6に対応したプロトコルスタックを開発したため、これらを利用すればよい。

このほか、忘れてはならないのがネットワーク機器だ。スイッチングハブのようにレイヤー2で機能する機器は関係ないが、ルータやレイヤー3スイッチはネットワーク層で機能する機器なので、IPv6ネットワークを構成するにはIPv6に対応したルータやレイヤー3スイッチが必要になる。個人でも手が届く価格帯にあるIPv6対応ルータの例としては、ヤマハのNetVolanteシリーズが挙げられる。もちろん、企業向けのRTXシリーズもIPv6を利用可能だ。

なお、実際の運用ではIPv6対応ホストとIPv4対応ホストが混在する場面が大半を占めると考えられる。特にインターネットでは、既存のIPv4対応ホストが一斉にIPv6に切り替わる状況は考えられない。そのため、IPv4を切り捨ててIPv6に完全移行することはできず、IPv4とIPv6のデュアルスタック構成として、相手先に応じて使い分ける方法をとっている。

以下に、Windows Vistaでネットワーク接続設定のプロパティ画面を表示した例を示す。IPv4とIPv6のデュアル構成になっている様子が理解できるだろう。この画面では分からないが、Windows VistaではIPv6を優先的に使う設定になっており、IPv6で通信を試行して失敗した場合に、IPv4を利用する仕組みだ。

Windows VistaやWindows Server 2008は、初期状態でIPv4とIPv6のデュアルスタック構成になっており、まずIPv6を使って通信を試行する。IPv6で通信できない場合にはIPv4で通信する。

すでに使われているIPv6

OSやネットワーク機器の対応に相応の時間がかかっているため、IPv6が身近な存在になったのは最近の話だが、実はIPv6の歴史は案外と長い。

IPv6関連技術を開発する目的で、実験ネットワーク「6Bone」が立ち上がったのは今から10年以上も前、1996年の話だ。この6Boneと、米エネルギー省の研究機関が開設したESnet(Energy Science Network)により、1998年10月には「6REN(IPv6 Research and Education Networks Initiative)」が発足している。

こうした実験ネットワークの運用と平行して、前述したようにOSやネットワーク機器についても、メーカー各社がIPv6に対応するための開発作業を進めてきた。こうした土台作りの過程を通じてIPv6の運用経験を積み、関連技術の開発を進めてきた成果が、これからIPv6を本格的に普及させる際に活かされることになる。

実運用レベルでも、すでにIPv6導入に向けた動きを進めている組織がある。そのひとつがアメリカ軍だ。アメリカ軍ではGIG(Global Information Grid)という全世界規模の情報通信網を構築・運用しているが、このGIGについて2003年6月にIPv6への移行を発表、2008年には全面的にIPv6ベースに移行する計画になっている。GIGについては拙著「戦うコンピュータ」でも取り上げているので、御覧になった方がいらっしゃるかも知れない。

あまり知られていないが、最近では軍用のデータ通信網もIPベースになっている。そして、そのIPネットワークに接続するノードも、「司令部」とか「艦艇」といった大きい単位だけでなく、個々の飛行機やセンサー、個人のレベルにまで広がっている。それによりネットワークに接続するノードの数が急増しているため、広大なアドレス空間を利用できるIPv6のメリットは大きい。

このGIGのIPv6移行に伴い、2003年以降にアメリカ軍が調達するネットワーク機器はすべてIPv6への対応が必須となったが、そこから完全移行まで5年かかっていることになる。つまり、ネットワークを構成するプロトコルを入れ替えるというのは、それほど大変で手間がかかることだといえる。