このページの本文へ

前へ 1 2 次へ

Windows Info 第456回

あらためてIPv6基本のキ

2024年11月03日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

IPoEの普及によって、日本の家庭のインターネット回線は
確実にIPv6化が進行している

 家庭用のインターネット常時接続サービスでIPoE(IP over Ethernet)が簡単に利用できるようになった。IPoEでは、簡単に言えば、自宅が1つのサブネットワークになる。そもそもIP over Ethernetとはイーサネットを流れているIPと同じということである。

 実際、ルーターにはIPv6グローバルネットワークアドレスが割り当てられ、そこから自動割り当てられたWindowsマシンのIPv6アドレスもインターネットでそのまま通用するグローバルアドレスである。

 そういうわけで、あらためてIPv6とまともに付き合う必要が出てきた。今回は、IPv6の基本の「キ」としてざっくりとした解説をする。

まずは基本となるIPv6アドレスについて

 まずはIPv6アドレスについてだ。IPv6アドレスは128bitある。このうち、上位64bitがネットワークをあらわす「プレフィックス」、下位64bitはホストを示す「インターフェースID」である。プレフィックスはプロバイダが割り当て、インターフェースIDはローカルで割り当てる。

 ただし、IPv6には自動でアドレスを割り当てる機能があり、DHCPサーバーなどを特に用意する必要はない。インターネット接続に使うルーターなどには、DHCPv6としてDHCPサーバーがあるような表記があるが、実際には「ステートレス」で自動割り当てされる。具体的には、計算とIPv6が持つ重複アドレス検出機能を組み合わせてアドレスを自動で割り当てる。

 なお、Windowsは独自のアルゴリズムを使ってインターフェースIDを割り当てる。このため、ルーター側のDHCPv6機能を使った場合とそうでない場合に割り当て方法が異なることがある。

 なお、DHCPには、IPアドレスの割り当て以外にDNSサーバーなどのLAN内のパラメーター通知機能もあるため、IPv6アドレスの割り当てをしなくても、家庭向けブロードバンドルーターには必要な機能である。

 さて、実際に割り当てられたIPアドレスを見てみよう。IPoEサービスであるなら、3つのIPv6アドレスが見えるはずだ。GUIから見るなら、「設定」→「ネットワークとインターネット」→「ネットワークの詳細設定」→「ネットワークアダプター」からインターネット接続に利用しているネットワークアダプタ(ネットワークインターフェース)にある下向き矢印をクリックして項目を開き、「追加のプロパティを表示」を選択する。

 あるいは、コマンドラインからipcondig.exeを実行する。こちらもネットワークアダプタごとにIPアドレスを表示する。

IPv6

ipconfig.exeコマンドを使うと、ネットワークアダプタごとにアドレスを表示できる。この写真で「IPv6 アドレス」と表示されているが、本文でいう「通常アドレス」である。「一時 IPv6 アドレス」は「匿名アドレス」になる

 インターネット接続がPPPoE経由でなければ、どれを見てもIPv6アドレスが表示されているのではないだろうか? しかしよく見るとIPv6アドレスが複数ある。

 IPoEで接続しているなら、プロバイダ側からプリフィックスをもらい、インターフェースIDは、OSまたは、ルーターのDHCPv6で決定する。現在では3つのIPv6アドレスを割り当てるのが通常だ(これ以上割り当てがある可能性もある)。

・リンクローカルアドレス
・一時または匿名アドレス
・通常アドレス(プライマリアドレス)

IPv6

 リンクローカルアドレスは、ネットワーク内でしか利用できない特殊なアドレスだが、MACアドレスをもとに決定されるため、他のインターフェースIDと衝突することなく、確実に割り当てられるアドレスである。

 このときのインターフェースID決定方法は、RFC 4291(IP Version 6 Addressing Architecture https://datatracker.ietf.org/doc/html/rfc4291)で定義されおり、「Modified EUI-64」と呼ばれている。これは簡単に言えば、MACアドレス48bitを並べ替えたもの。EUI-64は、IEEEで定めた48bitのMACアドレスを64bitにする方法だ。この文書では、EUI-64をアレンジして64bitのインターフェースIDを作る方法を定義している。

 もともとIPv6では、「Modified EUI-64」を使ってインターフェースIDを決定することを想定していたが、これでは、インターフェースが持つMACアドレスが特定されてしまい、プライバシー的な問題が残る。

 インターネット商用化以前は、インターネットの技術は“性善説”でよかったが、現在では“性悪説”に立たなければならない。このため、インターフェースを特定されない方法が考えられた。

 一時または匿名アドレスは、IPv6ノードがインターネットアクセスに利用する「使い捨て」のIPv6アドレスだ。通常24時間程度で破棄され、新しい匿名アドレスを割り当てる。これは、MACアドレスのほかに乱数を利用して決定される。

 IPv6には、DAD(Duplicate Address Detection)と呼ばれる機能があり、これから利用するIPv6アドレスがLAN内で先に使われていないかを調べることが可能だ。

 匿名アドレスは、乱数を利用してアドレスを求めたあと、DADを使って、重複がないかを調べる。もし重複があれば作り直すという処理を繰り返す。この方法は、RFC 8981で定義されている。

●Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6
 https://datatracker.ietf.org/doc/html/rfc8981

で定義されている。

 リンクローカルアドレスでも匿名アドレスでもないものが「通常アドレス」である。この場合のインターフェースIDは、SLAAC(Stateless Address Autoconfiguration)と呼ばれる方法で決定され、RFC 7217で定義されている。

●RFC 7217 - A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)
 https://datatracker.ietf.org/doc/html/rfc7217

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン