IPv6 においてはネットワーク・インタフェースに対して何もしなくてもアドレスがわりてられる. これは IPv4 との大きな違いのひとつである. インタフェースに自動的に付与されるこのアドレスをリンクローカル・アドレスという.
アドレスの自動設定は IPv4 においては DHCP (DHCPv4) を使用することによって実現されるが,この場合は DHCP サーバが必要である. すなわち,DHCP サーバはネットワーク・ノード (PC など) に対して IP アドレスを 「払い出す」. これに対して IPv6 においては DHCP サーバがなくてもルータによってアドレスを自動設定することができる. この機構を 「ステートレス自動設定」 という.
しかし,IPv6 においては,アドレス自動設定のために DHCP (DHCPv6) を使用することもできる. 両者のおもな違いは,わりあてる側であるサーバやルータが,わりあてた対象である PC などの情報を管理するかどうかである. すなわち,ステートレス自動設定においてはルータはアドレスがついた対象を記憶しないのに対して,DHCP においてはでアドレスをわりあてた対象を記憶する. それぞれの自動設定は排他的ではなく,たとえばアドレスわりあてにはステートレス自動設定を用いるがその他のパラメータの取得には DHCP を用いる,といった使い方もできる.
以下,これらの自動設定法のそれぞれについて,よりくわしく説明する.
ステートレス自動設定
ステートレス自動設定は IPv6 においてあらたに導入された自動設定法であり,最新のドラフト標準 [RFC 4862] は 2007 年 9 月に発行されたものである. ステートレス自動設定においてはホスト (PC など) に IP アドレスを手動設定する必要はなく,ルータにだけ設定すればよい. ルータのほかにサーバを必要とすることもない.
ステートレス自動設定においてはホストがそれ自体がもつ情報すなわちリンク上で一意なインタフェース識別子と,ルータから通知された情報すなわちネットワークを識別するプレフィクスとを組み合わせてアドレスを生成する. 具体的には IPv6 アドレス 128 bit のうち,下位 N bit (通常 64 bit) を機器のインターフェスが持つ MAC アドレスなどから生成し,ルータから通知された上位 128 - N bit (通常 64 bit) のネットワーク・プレフィクスを結合することによって,128 bit の IPv6 アドレスを生成する.
ステートレス自動設定においては,アドレス情報だけでなくネットワーク MTU をあわせて配布することもできる.
DHCPv6
DHCPv6 [RFC 3315] は IPv4 での DHCP (DHCPv4) におけるアドレス設定とほぼ同等であるが,つぎのような違いがある.
- 同一リンク上の DHCP サーバ / リレー・エージェントとの通信の際にリンクローカル・アドレスを使用することができる. IPv4 においてはブロードキャスト等を利用する必要がある.
- IPv6 においては機器が複数のアドレスを持つことができるため,複数のアドレスを同時に付与することができる.
IPv6 における自動設定の歴史
ステートレス自動設定は,IPv6 自身が標準化された当初からその機能の 1 つとして同時に検討されてきた (RFC 1971. 1996 年 8 月). 6bone 等のネットワークで IPv6 が利用されるようになった当時から使用可能だった (RFC 2462. 1998 年 12 月). 一方,現在の DHCPv6 に相当する “ステートフル自動設定” については,その名称自体は標準仕様に定義されていたものの,実際の標準仕様として RFC 化されたのは 2003 年 7 月である. DHCPv6 のサーバも最近はしだいに使用されるようになってきている.
この “ステートフル自動設定” は,前記のように現在の IETF 標準においては DHCPv6 という用語が使用されている. この用語が廃止された理由は DHCPv6 においてパラメータわりあてが必ずしもステートフルでない場合があるためであり,明示的にプロトコルを示すように変更された.
ステートレス自動設定の利点
ステートレス自動設定は非常に簡便であり,ネットワークを構築する側にとっても利用する側にとっても,使いやすい機能である. 多くの IPv6 対応ルータにおいては自動設定機能をオンにする,つまりルータ広告(Router Advertisement, RA)を使用することによって,そのインタフェースに付与されたアドレス情報を自動的にリンク上に広告するようになる. そのため,ネットワークに接続される機器側では,多くの場合 IPv6 機能をオンにするだけでルータからの広告を受け取り,IPv6 インターネットに接続できるようになる.
ステートレス自動設定のセキュリティ上の課題
上記の簡便さの反面,つぎのような問題点がある.
- 誰でも認証なしに接続できること
- アドレス自動設定を使用することによって,誰でも認証なしに IPv6 ネットワークに接続することができる. ところが近年は,ネットワーク・セキュリティ強化のために誰でも認証なしに接続できるのを避ける傾向がつよい. すなわち,ネットワーク利用者を限定し,特定の機器以外のネットワーク・アクセスを許可しないという環境が多くなってきた. IPv4 の DHCP 環境においても MAC アドレスでの認証が実施されている場合が多い (ただしこの場合は詐称を防ぐことができないためセキュリティ的に不完全である). IPv6 ステートレス自動設定は,そもそもネットワークにつながる機器を区別しない “ステートレス” な設定であり,こういった場面での利用は難しい. DHCPv6 を利用することができればよいが,そうでない場合には,他層の認証 (IEEE 802.1X など) と組み合わせて使用することが必要である.
- 虚偽のルータ広告や正規のルータによらない通信が容易にできること
- 虚偽のルータ広告をすることでネットワークを混乱させたり,IPv6 通信自体を正規のルータ以外を経由することが比較的容易にできるという問題がある. 実際,複数のネットワーク・インタフェースを持っている場合に設定しだいでルータ広告をしてしまう実装も存在する. 最近の多くのノート PC は無線インタフェースと有線インタフェースを持っているため,イベント会場などのネットワークにおいてノート PC がルータ広告を送信し混乱が発生したという事例も報告されている. このような事態をさけるために,ルータ広告のようなネットワーク情報のパケットを認証すること [RFC 3756] や,ルータ広告に優先度をもうける方法が存在する. しかし,どちらの方法も機構の簡便さとは反することもあり,広く利用されるかどうかは今後の動向次第である.
自動設定とサーバ・アドレスの取得 (アドレス以外のパラメータについて)
実際にインターネットを利用する場合には,アドレス情報以外にもいくつかのパラメータが必要となる. その代表的なものは DNS サーバのアドレスであり,その他にも,時刻設定のための NTP サーバのアドレス,SIP サーバのアドレスなどが必要となる場合がある. とくに,DNS サーバのアドレスは人が認識可能なホスト名を実際の IP アドレスに変換するために必須である. しかしながら現状では,IPv6 においてこの DNS サーバ・アドレスの自動設定ができる実装は多くない.
その理由の一部は,前述したように DHCPv6 が使用可能になったのが最近であり,DHCPv6 が使用可能な実装が多くないという点である. この状態で今まで問題が起きなかったのは,現在の多くの環境もそうであるが,IPv6 だけしか利用できないネットワークはほとんどなく,通常は IPv6/IPv4 デュアル・スタックだからである. 現状の IPv6 実装の多くは DNS サーバを IPv4 で利用している (IPv4 の DNS サーバのアドレスは DHCP などの手段で取得する).
なお,DNS の IPv6 対応に関してはつぎの 2 点を区別する必要がある.
- IPv6 アドレスが登録でき,ホスト名を IPv6 アドレスに変換できること.
- DNS サーバに 「IPv6 トランスポート」 で通信可能であること.
また,標準化においても DNS サーバ・アドレスの取得 (DNS Server Discovery) は混乱した経緯がある. 現在 RFC として利用可能なものとしては,つぎの 2 つがある.
- DHCPv6 を使用してサーバ・アドレスを通知する [RFC 3646].
- ステートレス・アドレス自動設定 (ルータ広告) において DNS サーバのパラメータを通知する [RFC 5006].
過去にはこれ以外にも DNS サーバに既知の (well-known な) アドレスを付与する [Oht 04] という方法が提案された. IPv6 における DNS に関してはさまざまな内容の RFC が発行されている [RFC 3364] [RFC 4074] [RFC 4472]. J. Jeong ら [RFC 4339] は上記の 3 つの方法を比較し,それらの用法を検討している. しかし,この問題はいまだ決着していない.
アドレス自動設定に関する課題
IPv6 の自動設定機構に関しては,機器の実装上もサーバ・アドレス等のパラメータの取得機能など,まだ不足している部分もある. 今後は従来 IPv4 が利用されていなかった場面での IPv6 利用が増加していくことが想定されているが,このような場面において自動設定としてどのような仕組みが必要かを検討する必要があるだろう.
(この項目の記述にあたっては “IPv6 再発見” [Fuj 05] を参照した.)
参考文献
- [Fuj 05] 藤崎 智宏,“IPv6 再発見 第 2 回 IPv6 とプラグアンドプレイ”, IPv6style, http://www.ipv6style.jp/jp/tech/20050222/index.shtml.
- [Oht 04] M. Ohta, “Preconfigured DNS Server Addresses”, draft-ohta-preconfigured-dns-01, Internet Draft, IETF, February 2004.
- [RFC 3315] R. Droms, Ed., J. Bound, B. Volz, T. Lemon, C. Perkins, and M. Carney, “Dynamic Host Configuration Protocol for IPv6 (DHCPv6) ”, RFC 3315, IETF, July 2003.
- [RFC 3364] R. Austein, “Tradeoffs in Domain Name System (DNS) Support for Internet Protocol version 6 (IPv6) ”, RFC 3364, IETF, August 2002.
- [RFC 3646] R. Droms, Ed., “DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)”, RFC 3646, IETF, December 2003.
- [RFC 3736] R. Droms, “Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6”, RFC 3736, IETF, April 2004.
- [RFC 3756] P. Nikander, Ed., J. Kempf, and E. Nordmark, “IPv6 Neighbor Discovery (ND) Trust Models and Threats”, RFC 3756, IETF, May 2004.
- [RFC 4074] Y. Morishita and T. Jinmei, “Common Misbehavior Against DNS Queries for IPv6 Addresses”, RFC 4074, IETF, May 2005.
- [RFC 4339] J. Jeong, Ed., “IPv6 Host Configuration of DNS Server Information Approaches”, RFC 4339, IETF, February 2006.
- [RFC 4472] A. Durand, J. Ihren, and P. Savola, “Operational Considerations and Issues with IPv6 DNS”, RFC 4472, IETF, April 2006.
- [RFC 4862] S. Thomson, T. Narten, and T. Jinmei, “IPv6 Stateless Address Autoconfiguration”, RFC 4862, IETF, September 2007.
- [RFC 5006] J. Jeong, Ed., S. Park, L. Beloeil, and S. Madanapalli, “IPv6 Router Advertisement Option for DNS Configuration”, RFC 5006, IETF, September 2007.
コメント (2)
大学の卒論で参考にさせて頂きました。非常に分かりやすく勉強になりました。これからもがんばってください。
投稿者: てっし | 2008年02月03日 00:38
日時: 2008-02-03 00:38
てっしさん,コメントをいただき,どうもありがとうございました. 記述にまちがいがないようにしていますが,念のため,ほかの情報源とあわせて判断していただくとよいとおもいます.
投稿者: 金田 | 2008年02月05日 22:12
日時: 2008-02-05 22:12