Windows Vista/7ならIPv6環境がすぐ使える
まず、IPv6が利用可能になっていることを確認しよう。Windows 7およびWindows Vistaは、初期状態でIPv6が利用可能になっている。そのため、IPv6を故意に無効としない限りは問題なく使えるはずだが、念のため確認しておこう。
Windows 7では、コントロールパネルの「ネットワークと共有センター」を開き、画面左側にある「アダプターの設定の変更」をクリックし、「ローカルエリア接続」をダブルクリックする。すると表示される「ローカルエリア接続の状態」ダイアログで「プロパティ」を選ぶ。これで表示される画面で、画面1のように「インターネット プロトコル バージョン6(TCP/IPv6)」の行にチェックが入っていればIPv6は有効になっている。
また、Windows Vistaであれば、「ネットワークと共有センター」から「ローカルエリア接続の状態」欄の「状態の表示」をクリックすると「ローカルエリア接続の状態」が表示されるので、プロパティをクリックする。そして、Windows 7の場合と同様に「インターネット プロトコル バージョン6(TCP/IPv6)」の行にチェックが入っていればよい。
一方、Windows XPは初期状態でIPv6がインストールされていない。そのため、以下の手順でインストールする必要がある。
スタートメニューからコントロールパネルを開き、「ネットワーク接続」→「ローカルエリア接続」を進む。「ローカルエリア接続のプロパティ」が開いたら、「インストール」→「プロトコル」→「Microsoft TCP/IP version 6」を選択して「OK」をクリック。あとは、画面の指示に従い、PCを再起動すれば完了だ。
IPv4と異なり、IPv6はインストールするだけでアドレスなどが自動設定される。プラグ&プレイが相当なレベルで実現されているのだ。TCP/IPの設定状態を調べるには、コマンドプロンプトで「ipconfig」コマンドを利用する。
Windows 7のIPv6では、この「イーサネット アダプタ ローカル エリア接続:」のほかに、いくつかの「Tunnel adapter ……」というブロックが表示される。これはIPv4とIPv6の共存のために使用する仮想インターフェイスの情報だ。Windows 7でIPv6を有効にすると、物理的なNICが1つしかなくても、複数の論理的なインターフェイスが自動的に構成される。
さて、リンクローカルIPv6アドレスとして表示される値は、IPv6アドレス+"%"インターフェイスインデックス(NICの識別番号)となる。リンクローカルIPv6アドレスは、PCのすべてのNICに自動的に設定されるため、このようにインターフェイスインデックスと一緒に表記することになっている。ここでは、"fe80::4163:ee0e:40ff:8b23"がIPv6アドレスで、"11"が該当するNICのインターフェイスインデックスだ。
IPv6アドレスの表記法
IPv6のアドレスの長さは、128ビットである。これを16ビットずつ8つに分割し、それぞれを16進数(4桁)で表記し、区切りにコロン(:)を入れて並べた形式で表記する。たとえば、手元のPCのリンクローカルIPv6アドレスの正式な表記は、
fe80:0000:0000:0000:4163:ee0e:40ff:8b23
である。
しかし、これでは長すぎるので、以下の方法により表記を短縮できる。
まず、コロン(:)で挟まれた4桁の16進数は、前置き(左側)の0を省略する。"0101"であれば"101"といった具合だ。また、4桁すべてが0の場合は、1つの0となる。つまり、"0000"は"0"となる。すると、上のアドレスは
fe80:0:0:0:4163:ee0e:40ff:8b23
になる。
さらに、"0:0:0"のように0が続く部分は、アドレス全体で1カ所だけだが"::"と省略できる。これで、
fe80::4163:ee0e:40ff:8b23
と短くなった。この表記は、ipconfigコマンドの出力結果と一致する。PCやルーターなどの機器の設定を行なう際には、この形式がもっともよく用いられる。
IPv6アドレスの構造
IPv6アドレスには、図2のように「ネットワークプレフィックス」と「インターフェイス識別子(ID)」の2つの要素がある。
プレフィックスはIPv4のネットワークアドレスに相当し、以下のように表記する。
プレフィックス値/プレフィックス長
よって、「アドレス"fe80::4163:ee0e:40ff:8b23"のネットワークプレフィクスは"fe80::/64"」のように表現する。通常、プレフィックス長は64ビットである。
インターフェイスIDには、
EUI-64(Extended Unique Identifier-64)という変換規則により、NICのMACアドレスから機械的に生成される値
乱数によりランダムに生成された値
の2つが使われる。初期のIPv6の実装ではEUI-64が多く、Windows XP、Mac OS XのIPv6はEUI-64を使っている。
ここではWindows XP SP2 の例を先に示そう。NICのMACアドレス情報まで表示させるには、「ipconfig」コマンドに「/all」というオプションを付けて実行する。注目してほしいのは、画面3の部分である。6オクテットのMACアドレス(Physical Address)のうち、2オクテット目から6オクテット目までが、インターフェイスID(IPv6アドレスの下位8オクテット)に含まれていることがわかるだろう。
しかしながら、EUI-64で生成されるインターフェイスIDを使うと、IPv6をアドレスを見ただけでコンピュータのMACアドレスを特定できてしまうので、インターネット上ではセキュリティ上の問題が生じる。そこで、Vista以降ではEUI-64により値を生成するのをやめ、ランダムな値を使うようになった。Windows 7で「ipconfig /all」を実行してみよう。
MACアドレス(物理アドレス)の"00-16-36-F7-73-D2"から、インターフェイスIDをEUI-64で生成すると"0216:36ff:fef7:73d2"になる。しかし、画面4のリンクローカルIPv6アドレスのインターフェイスIDは、まったく異なる値になっている。これは、Windows Vistaで実行しても、同様の結果だ。Windows Vista以降のWindowsでは、このように、リンクローカルIPv6アドレスのインターフェイスIDから、MACアドレス(物理アドレス)を推測できないようになっている。
IPv6のアドレス
IPv4には多くの種類のアドレスがあるが、そのうち重要なのはグローバルアドレスとプライベートアドレスの2種類である。同様に、IPv6も多くの種類のアドレスがあり、そのうち重要なのは以下の3種類のアドレスだ。これだけは絶対に覚えておこう。
1.グローバルアドレス
インターネット上では、IPv4と同じくインターネット内で一意の(重複しない)グローバルアドレスを利用する。グローバルアドレスの構造は、IPv6アドレスの配布状況や技術動向に応じて修正される。現時点で実際に配布されるグローバルアドレスは、上位3ビットが「001」固定、次の61〜45ビットがグローバルルーティングプレフィックス、その次の16〜0ビットがサブネットID、下位64ビットがインターフェイス識別子である。
2.ユニークローカルアドレス
ユニークローカルアドレスはIPv4のプライベートアドレスに相当し、組織内で閉じたイントラネットなどで利用する。以前はサイトローカルアドレスがこの目的で使われていたが、さまざまな問題が生じたため、RFC4193でユニークローカルユニキャストアドレスに置き換えられた。ユニークローカルアドレスの上位7ビットは"1111110"で、アドレスの範囲は"fc00::/7"である。ただし、8桁目が"0"のアドレスの使用が禁止されているため、現時点でイントラネットで実際に使えるアドレスの範囲は"fd00::/8"に限られる。
ユニークローカルアドレスは、インターネットとの接続は想定していない。しかし、40ビットのGlobal IDは重複しないよう乱数により決定する。これにより、企業の合併や統合により複数のネットワークが接続された場合でも、アドレスを付け直さなくて済む。
3.リンクローカルアドレス
IPv6では、Ethernetのブロードキャストの到達範囲(ブロードキャストドメイン)を「リンク」と呼ぶ。リンクローカルアドレスは、ノードの起動時にインターフェイスに自動的に割り当てられるアドレスで、グローバルアドレスなどの設定を自動化するために用いられる。
リンクローカルアドレスは、リンク内では一意性が保証されるが、ルーターを超える通信では使用できない。アドレスの形式は、上位10ビットが"1111111010"、次の54ビットがすべて0、そして下位64ビットがインターフェイス識別子である。
インターフェイス識別子は、ノードの起動時やインターフェイスを有効にした際に例外なく自動設定され、手動で設定することはできない。リンクローカルアドレスは"fe80::インターフェイス識別子"と表記でき、プレフィクスは"fe80::/64"である。
0 件のコメント:
コメントを投稿