IEの「ネットワークの設定を自動検出する」機能とは?

対象プラットフォーム

質問

Internet Explorer(IE) 5.xでは、デフォルトで図1のように「設定を自動的に検出する」というチェックボックスにチェックが付けられていますが、ヘルプをみてもどのように動作しているのか良くわかりません。 現在の環境では特に機能している様子はなく、結局このチェックボックスはオフにして使っています。この設定はどのように利用するものなのでしょうか?

図1: 「インターネット」のプロパティから「接続」タブを選択し、「LANの設定」ボタンを押すと現れる画面とそのヘルプ
「設定を自動的に検出する」というチェックボックスは、デフォルトでチェックが入っている。

回答

この機能は、 WPAD(Web Proxy Auto-Discovery) プロトコルという方式でプロキシの設定を自動的に行なう設定になります。現在のところ WPAD を利用できるブラウザは IE 5.0以降だけですが、WPAD プロトコル自体は RFC のドラフトになっていますので、今後はマイクロソフト社以外のブラウザにも実装されていくかも知れません。

WPAD が有効になっているクライアントは、図2のように自動的に DHCP サーバや DNS を参照して、Web サーバからプロキシ設定ファイルをダウンロードします。

質問中にもあるように、IE 5.x 以降ではこの機能がデフォルトで有効になっているため、WPAD を利用可能にしておけば、クライアント側の設定は全く変更することなくプロキシの設定を自動で行なうことが可能になります。 以下、この機能を利用するための設定について説明していきましょう。

図2で記述したように、プロキシ設定ファイルの位置を指定する方法には DHCP と DNS の二つがあります。 IPアドレスなどを DHCP で配布している場合は、プロキシの設定も一緒に DHCP で配布した方がよいでしょう。

DHCP サーバを利用する

DHCP を利用する場合は、 DHCP サーバ側に新しいオプションを追加する必要があります。 Windows NT Server 4.0 の場合は、 DHCP マネージャの「DHCPオプション」-「既定値」-「新規」より、Windows 2000 Server の場合は DHCP アプレット中の DHCP サーバのプロパティより、「規定のオプションの設定」-「追加」をクリックすると現れる画面で、図3のようにオプション「252」、値「文字列」として設定を行ないます。 なお名前 (ここでは仮に WPAD としています)や、説明はなんでも構いません。
オプションを追加した上で、WPADを利用した各スコープのオプションで図4のようにしてプロキシ構成ファイルを取得するURLを指定する必要があります。

Windows 2000 Windows NT

図3

図4:

次に述べるDNSの場合と異なり、プロキシ構成ファイルの名前はなんでも構いません。

DNSを利用する

WPAD が有効になっているクライアントは、 DHCP でプロキシ構成ファイルを取得していない限り、起動時に「wpad.<ドメイン名>」という名前を解決して、最終的に HTTP/1.1 を用いて「http://<解決したIPアドレス>/wpad.dat」という URL からプロキシ設定ファイルをダウンロードしようとします。 <ドメイン名>としては、クライアントが所属しているドメイン名が用いられますが、名前解決ができなかった場合は、ドメイン名を順番に短縮して再度問い合わせが行なわれます。 例えばクライアントのドメイン名が「ts.coe.nttdata.co.jp」の場合は、

  1. wpad.ts.coe.nttdata.co.jp
  2. wpad.coe.nttdata.co.jp
  3. wpad.nttdata.co.jp

のように、最大3パターンの問い合わせが行なわれます。
なお、「wpad.co.jp」や「wpad.com」などのアドレスは問い合わせないようになっているので、例えばクライアントのドメイン名が「coe.nttdata.co.jp」の場合に「wpad.co.jp」を問い合わせることはありません。 ただし、Internet Explorer 5.0 では、こうした問い合わせが行なわれてしまう問題点 (MS99-054 「WPAD Spoofing」の脆弱性に対する対策) がありますので、この機能を利用しない場合も、万一に備えて上記の例ではダミーで「wpad.nttdata.co.jp」というエントリを作っておくなどの対策をしておいた方がよいでしょう)。

プロキシ設定ファイルの作成

続いて、wpad.dat ファイルを作成し、Web サーバに配置します。UNIX のようにファイル名の大文字小文字を区別する場合、ファイル名は必ず小文字で保存するようにしてください。
このファイルの文法自体は IE 3.02 や Netscape 2.0 以降から利用できる Proxy 自動構成ファイルと全く同じもので、JavaScript を用いて記述します。詳細については、Navigator Proxy Auto-Config File Format (http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html) などを参照してください。 図5に接続先ホストが192.168.1.0/24の範囲の場合は直接接続し、それ以外の場合はプロキシ経由で接続する場合の例を示します。

function FindProxyForURL(url,host)
{
    if(isInNet(host,"192.168.1.0","255.255.255.0"))
        return "DIRECT";
   else
        return "PROXY 192.168.10.1:3128";
}

/* プロキシのIPアドレスは192.168.10.1でポートは3128の参考例 */

図5: wpad.datファイルの例

なお、DNS を利用する場合、最終的な問い合わせ先ホストは IP アドレスを用いて指定されるため、Web サーバ側で仮想ホストを用いている場合は、wpad.dat ファイルを配置する仮想サーバに注意して下さい。


図6: WPADファイルの取得

wpadホストの名前解決後にwpad.datファイルが取得される。
「HTTP: Host = 192.168.10.1」とIPアドレスで指定されているところに注意

また、本来はプロキシ設定ファイルには「application/x-ns-proxy-autoconfig」という MIME タイプが割り当てられるように Web サーバ側で設定を行なうべきなのですが、 IE は MIME タイプの設定とは別に拡張子などにより勝手にファイルの形式を判断してしまう仕様になっているため、 WPAD 機能の動作に関してだけでいえば、設定は不要です。

ブラウザの起動

ファイルの配置が完了したら、クライアント上でブラウザを起動します。 初めてWebサーバにアクセスする際に、DNS の場合は wpad ホストの名前解決、DHCP の場合は DHCP サーバに対する INFORM メッセージのやりとりが行なわれ、プロキシ構成ファイルが取得されます。 このファイルの内容を元に、プロキシの自動設定が行なわれます。 図4にDNSを利用する場合の接続例を示します。
なお、プロキシ構成ファイルの取得に失敗した場合は、以前に取得した情報がキャッシュに残っていればそれが使われ、ない場合は直接インターネットに接続します。

URLの設定を変更する場合は要注意

これらの設定を行なうことにより、仮にプロキシの設定を変更する必要が発生しても、プロキシ設定ファイルの内容を修正するだけで済むようになります。
ただし、プロキシ設定ファイルの URL 自体はクライアント上に保存されますので、サーバ側の設定を変更しただけでは変更が反映されません。 設定を変更する場合は、クライアント側の「設定を自動的に検出する」チェックボックスのチェックを一度外した上で、改めて設定しなおす必要がありました。URL自体を頻繁に変更することはないと思いますが、頭の片隅に入れておいて下さい。

参考情報

注記・補足

  1. 本文書は、日経 Windows プロ 2002 年 3 月号の「トラブル解決 Q&A コーナー」に掲載された「IEの「ネットワークの設定を自動検出する」機能とは?」の草稿を筆者の方で HTML 化して掲載しているものです。

Copyright (C) 1998-2009 TAKAHASHI, Motonobu
Last update: 2006-07-12 00:00:19 JST
webmaster@monyo.com