IPv4アドレスの枯渇問題は十数年前から訴えられ続けてきたが、ここ数年ようやく具体的な対策が講じられるようになってきた。次世代版プロトコルとなるIPv6への移行には、ハードウェアだけでなくソフトウェア側の対策も必要だ。もちろんWindows OSは以前からIPv6への対応を行ってきたが、Windows 8でもちょっとした改良が加わったという。今週もMicrosoftの各公式ブログに掲載された記事を元に、Windows 8に関する最新動向をお送りする。

Windows 8レポート集

IPv6のサポートを強化するWindows 8

IPアドレス枯渇問題は、昨日今日言われ始めた問題ではない。筆者がこの問題を知ったのは、かれこれ十数年前に読んだコンピューター雑誌の小特集記事だった。インターネットの運用が始まった1983年当時、現在のように何十億ものユーザーがインターネットに接続するような世界は想像し得ないものだったのだろう。「インターネットの父」の一人に数えられるVinton Gray Cerf(ヴィントン・グレイ・サーフ)氏は、現在Googleの副社長兼チーフインターネットエバンジェリストという役職だが、同社の公式ブログで、IPv4を設計した当時のことを"夢のまた夢であった"と述べている。

現在多くの環境で使われているIPv4は32ビットアドレスのため、単純計算すると2の32乗=約43億のIPアドレスしか管理することができない。もちろん43億でも相当な数と言えるが、十数年で爆発的に増えたユーザー数は、その相当な数を食い尽くすことになってしまう。もちろんIPv4アドレスを使っているのは日本を含むアジア地区だけではない。

世界中のインターネットに関するIPアドレスなどを管理するIANA(Internet Assigned Numbers Authority)が保有していたIPv4アドレスは2011年2月に枯渇。東部および南部アジア、太平洋エリアを担当するAPNIC(Asia-Pacific Network Information Centre)に所属中のJPNIC(日本ネットワークインフォメーションセンター)も、同月にIPv4アドレスの在庫が同年4月に枯渇すると発表した(図01)。

図01 JPNICが発表した「IPv4アドレスの在庫枯渇に関して」

この問題を知る方々は「IPv6に切り替えれば済む話だ」と思われるだろう。そもそもIPv6アドレスとは、単純計算すると2の128乗=約340澗(かん)個まで使えるように拡張した規格である。IPv6は、前述のIPアドレス枯渇問題から生まれたものだが、IPv4と互換性がないため、ルーターやOS、ソフトウェアの改良が欠かせない。そのためWebサービス提供者が中心となって、月に一日だけ自社サービスをIPv6に切り替える「World IPv6 Day」を実施して課題の発見・解決に努めている。直近では先週の6月6日に実施されたばかりだ(図02)。

図02 World IPv6 Dayの公式サイト

使用しているネットワーク機器やISP(インターネットサービスプロバイダ)によって、IPv6が使用できるか異なるものの、既にWindows OSは以前からIPv6に対応している。Windows XP時代は特定のコマンドを実行することでIPv6を有効にできるし、Windows Vista以降は初期状態で有効になっているため、ユーザー側が能動的に操作を行う必要はない。Googleが提供しているIPv6接続テストページに、ISPがPPTPを用いてIPv6アドレスを動的に割り当てるサービスを有効にすると、「既にIPv6を使用しているようです」というメッセージと共にIPv6の接続を確認できた(図03~04)。

図03 Googleが提供しているIPv6接続テストページ。使用環境によってメッセージは異なる

図04 PPTP経由でIPv6を割り当てた状態。ISPから動的なIPv6アドレスが割り当てられている

さて、本題となるWindows 8の話に移ろう。現在のインターネットはIPv4からIPv6からの移行期であり、両方のプロトコルがネット上を飛び交う状態だ。そのためWindows 8では、IPv4とIPv6の両方、もしくはそのいずれかの状態を判断し、適切な動作を取るように設計されていると、Core Networking Program ManagementチームのChristopher Palmer(クリストファー・パーマー)氏はブログ記事のなかで述べている。

まず、IPv4のみのネットワーク上にあるWindows 8で、IPv6を必要するサーバーに接続する際は、Teredo(テレード)によってIPv6パケットをIPv4でカプセル化するという従来どおりの仕組み。IPv4とIPv6の両者が有効なデュアルスタックネットワークでは、両アドレスを構成するが、ポイントとなるのは優先順位。ネットワーク接続を確立すると、Microsoftが運用するWebサーバーに対してIPv4/IPv6の接続性テストを実行。その結果を元にプロトコルの優先度を決定するという(図05)。

図05 IPv6を有効にしたWindows 8から、PowerShellの「Resolve-DnsName」を実行。IPv6レコードとIPv4レコードが確認できる

なお、このテストは毎月(30日)ごとに繰り返され、IPv6が使用できる環境であれば、Windows UpdateもIPv6を用いるそうだ。このようにWindows 8は、従来のWindows OSと同じくIPv6をサポートしながらも、接続性を高めるための処理が加わっている。そろそろ我々もISPや使用中のルーターがIPv6に対応しているか確認し、IPv4からIPv6への移行作業に取り組まなければならないようだ。