NTで万能Proxy・Delegateを動かそう



なぜNTでProxyサーバを動かすのか

  それは、特に意味はないです(笑)。たまたま近くにあったのがNTだったというだけです。強いて理由を挙げるならばLinuxやBreeBSDでDelegateを動かしている例は腐るほど見かけますがNTで動かしている例が少ないと言うのと、NTで動くProxyサーバで納得いくものが他になかったという事もあります。

なぜDelegateを選んだのか

  私がDelegateに行き着くまでに試したProxyは、WingateとVegas95の二つです。どちらも悪くはないんですが、Wingateは速度面とフリー版だと接続数に制限がある事で使用を止めました。Vegas95は自動巡回等できていいのですが、私の環境では安定的に動作しなかった為(頻繁にハングアップする)止めました。で、フリーで安定して管理しやすいと言う事で約1ヶ月程度試した後Delegateを採用したのです。

不動作状況確認

  DelegateはNT4.0 + SP4では動かない事を確認しています。正確には動くのですがクライアントからDelegateに接続できません。その為意味なし役立たずになってしまします。私の環境はNT4.0+SP3+SP3以降のPatch(10種程度)では問題なく動作しています。

最新の5.9.3とSP5の組み合わせで問題なく動作する事を確認済みです。

入手方法

Delegateのホームページはhttp://wall.etl.go.jp/delegate/  です。
ftpサイトはftp://ftp.etl.go.jp/pub/DeleGate/ です。

設定方法

  詳しくはマニュアルを参照、と書いてしまうとこのページの存在意味がなくなってしまいますので (^^; 私のパラメータを例に説明致します。

現在の設定
D:\UTIL\delegate\dg5_9_3.exe -P8080 SERVER=http MANAGER=kisara@ceres.dti.ne.jp CACHEDIR=d:\cache CACHEFILE=$[server:%P/%h/%L/%p] PERMIT="*:*:*" EXPIRE=12h CHARCODE=sjis RES_NS=127.0.0.1
(場合によっては改行しているように見えるかもしれませんが、1行です。)
 

-P8080

  これはDelegateの使用するポートを指定します。慣例的にKnown port + 8000です。もっとも他と重複しなければ何でもいいんですけどね。

SERVER=http

  使用するプロトコルを指定します。他にもnews・pop3・smtp・ftp等も指定できます。

MANAGER=kisara@ceres.dti.ne.jp

  管理者のメールアドレスを指定します。

CACHEDIR=d:\cache

  キャッシュデータをどこに保存するかを指定します。デフォルトはNTの場合 c:\program files\delegate\cacheになります。

CACHEFILE=$[server:%P/%h/%L/%p]

  これはキャッシュしたファイルをどういった分類で保存するかです。指定がない場合、CACHEDIR\プロトコル名\URL(FQDN+Path) という形になります。このままだと大量にデータを保存した場合検索にやたら時間がかかるようになります(一つのフォルダ内に数千のサブフォルダができます)。そこで私はCACHEDIR\プロトコル名\トップレベルドメイン\セカンドレベルドメイン\ホスト名\FQDN\URL\となるように指定しています。

PERMIT="*:*:*"

  アクセス制限を行います。引数は順にProto:Dst:Srcの意味です。私の場合は完全開放しています。

CHARCODE=sjis

 コード変換を行います。私は訳ありなので断腸の思いでsjisにしています。他にEUC・JISが指定できます。

RES_NS=127.0.0.1

 これはDelegateが名前解決に使用するDNSを指定します。私の場合はProxyサーバがDNSサーバと同居しているのでループバックさせています。(基本的にDelegateは自力で名前解決しようとするみたいです)

EXPIRE=12h

 ズバリ、キャッシュの賞味期間です。私は12時間にしています。この時間を経過してもファイルは消えませんので別の手段で(CRON等で)増えていくファイルを消さなくてはだめです。

動作確認方法

そりゃぁ、ブラウザでDelegate経由でアクセスする事でしょう(笑)。幸運(!?)にして動かなかった場合は -V オプションを付けてメッセージを表示させながら動かしてみましょう。あとはエラーログを見る事ですね。FireWallの内側でDelegateが名前解決できなくても動かないです(ハマりました)。




 

今後の課題

  原因は特定できていないんですが、思ったよりもパフォーマンスが上がりません。反応速度にムラがあり十分データが貯まるまでは体感速度が落ちます(実速度は上がります)。ディスクアクセス・CPU・回線速度、いずれもネックにはなっていないんですが設定が甘いのが原因かと思っています。

謎は全て解けた!

  速度が出なかった原因は名前解決のキャッシュが貯まっていなかったのが原因のようです。Delegateは自分で名前解決をしてその情報を貯めていきます。その情報の貯まり具合が少なかったので余分な時間がかかっていたようです。