コンシューマーOSとして大きなシェアを持っているWindowsが、Windows XPでIPv6通信機能を搭載したことで、IPv6は気軽に試すことのできる身近なものとなった。ここではWindows XPを例に、2回に分けてIPv6の世界を味わってみたい。
IPv6はWindows XP Professional、Home Editionのどちらにも含まれている。当初は開発者向けとして、一般ユーザーに対するサポートの対象外となっていたが、Service Pack-1(以下、XP SP-1)で正式にサポートされた。XP SP-1では、IPv6のインストール手順や関連コマンドで新たに追加されている部分があるが、以下では適宜違いを示しながら解説する。
IPv6をインストールする
通常のOSインストールでは、IPv6は自動的にインストールされない。コマンドプロンプトを表示させ、画面1のように、
ipv6 install
と入力することで行う。
![]() |
| 画面1:IPv6をインストールして情報を表示 |
XP SP-1では、ほかのネットワーキングプロトコルの追加のように、ネットワーク設定からGUIでインストールできるようになった。ネットワークコンポーネントの追加で「プロトコル」を選択し、表示されるプロトコルのリストから「Microsoft IPv6 Developer Edition」を選んでインストールする。
以後の設定はコマンドラインで行う。ここでもXP SP-1で変更があり、ipv6コマンド群に加え、netsh interface ipv6コマンド群が用意された。今後はnetsh interface ipv6コマンド群に統一されていくとのことだが、ここではXPとXP SP-1に共通なipv6コマンド群を中心として解説する。なお、ipv6コマンド群と、netsh interface ipv6コマンド群を対照させた表を、この記事の末尾に掲載したので参考にしていただきたい。
画面1では、PCがまったくネットワークに接続していない状態でIPv6のインストールを行ったあと、
ipv6 if
というコマンドでネットワークインターフェイスの情報を表示してみた。これだけでもすでに“Interface 5”(無線LANインターフェイス)、および“Interface 4”(有線のイーサネットインターフェイス)において、“preferred Link-local”として、リンクローカルアドレスが表示されていることが分かる。
では、このPCをIPv6ネイティブなネットワークに有線で接続してみる。先ほどと同じ
ipv6 if
コマンドを打つと、イーサネットインターフェイスに“preferred global”として、グローバルアドレスが構成されているのが分かる(画面2)。IPv6の自動構成機能の威力はこうしたところに現われる。人間が介入して設定しなくとも、グローバルアドレスを自動的に取得して、通信ができる状態になってしまう。
![]() |
| 画面2:IPv6ネイティブネットワークに接続している状態 |
いろいろなアドレスが存在する
すでに、1つのインターフェイスに複数のIPアドレスが自動的に構成されることを見てきた。IPv6では、スコープという考え方があり、リンクローカル、サイトローカル、グローバルの3種類のIPアドレスがある。各端末ではこれらすべてのアドレスを1つのネットワークアダプタ上で同時に持つことができる。これは目的や適用範囲によって使い分けができる。
リンクローカルアドレスは、端末(のインタフェース)がネットワーク接続されると、まず最初に構成されるアドレスである。しかし、同一リンク上でしか有効ではない。つまり、このアドレスを使った通信はルータを越えないことになっている。リンクローカルアドレスは一般的なデータ通信には使われず、制御のために使われている。サイトローカルアドレスは特定の拠点(サイト)内で使われることになっている。社内のみに有効な通信などである。しかし、IPv6に接続されたコンピュータは通常グローバルアドレスを使う。
アドレスの自動構成の仕組み
Windows XPでIPv6ネットワークへ接続すると、即座にグローバルIPv6アドレスが自動的に作られてしまう。文字通り「プラグ・アンド・プレイ」そのものである。IPv6でおもしろいのは、各端末がサーバー等に頼ることなく、ルーターから通知を受けた64ビットのネットワークプレフィックス(アドレスのネットワーク部)と、自分自身で生成する64ビットのインターフェイスID(アドレスのホスト部)を組み合わせて、128ビットのグローバルアドレスを構成してしまうことである。
インターフェイスIDの生成のために使われる情報は、イーサネットのネットワークアダプタの場合、MACアドレスである。MACアドレスとは、16進法で表される48ビットの情報で、前半24ビットが製造者を示す番号となっており、IEEEによって管理されている。後半24ビットは各製造者によって割り振られた各部品に固有の番号だ。したがって、MACアドレスが重複することはあり得ないということになっている。
画面2では、「link layer address 08-00-46-45-07-00」と表示されている。これがこのイーサネットアダプタのMACアドレスだ。そして「preferred global」の「(public)」のほうのアドレスを見ると、「2001:2a0:4ff:0:a00:46ff:fe45:700」となっている。このアドレスの後半部分は、MACアドレスから自動生成されたものなのだ。
MACアドレスは48ビットなので、ホスト部として確保されている64ビットのスペースを埋めるにはあと16ビット足りない。そこでMACアドレスの間に「fffe」という固定の値を詰めこむなどの処理を行っている。
では、ネットワークプレフィックスの部分はどうやって取得するのか。ここでリンクローカルアドレスが活躍する。リンクローカルアドレスでは、上位64ビットが「FE::/64」に定められている。端末がネットワークに新たに接続されると、その端末が持つ各ネットワークインターフェイスでは、自身がMACアドレスを基に生成したインターフェイスIDと「FE::/64」を組み合わせることで、まずリンクローカルアドレスを生成する。次に、同一リンク上に同一のアドレスを持ったインターフェイスがほかにないかを確認すれば、とりあえず同一リンク上でのIP通信ができる状態になる。
一方、ルーターは「Router Advertisement」(RA)と呼ばれるメッセージを一定間隔で流す。これにはネットワークプレフィックス情報が含まれており、端末側ではリンクローカルアドレスを使ってこれを受け取り、自分のインターフェイスIDと組み合わせて、グローバルなユニキャストアドレスを生成する。
端末のインターフェイスは、RAを待たずに「Router Solicitation」(RS)というメッセージを出し、プレフィックス情報を自ら要求することもできる。この際、端末側ではルーターのアドレスが分かっていないが、ルーターであれば必ず受け付けなくてはならないことになっている「FF02::2」というマルチキャストアドレスを使う。このリンクローカルのマルチキャストアドレスを送信先アドレスとしてRSを発行すると、一番近いルーターが応答し、RAを送信することになっている。
RAにはほかにも、デフォルトルーター設定やIPv6ヘッダーに設定されるデフォルトのHop Limit値、ローカル接続におけるMTU(最大送信単位)値などの情報が含まれる。
| 前のページ 1/2 次のページ | |
この記事のトラックバックURL
http://www.ipv6style.jp/trackback/310




