ICP support in DeleGate の和訳

訳者: Hiroshi Suzuki<setter AT i-red DOT info>
翻訳日:2005/01/30

コメント:
翻訳の正確さは保証しません。
必ず、原文と共に、使用してください。

BACK ( DGbeecon )


DeleGateLogo DeleGate の ICP サポート

Yutaka Sato
June 14, 1998

DeleGate における ICP version 2 は、 1998/6/14にリリースされたバージョン 5.5 で実行可能になりました。 現在、HTTP-DeleGate (HTTP クライアントのための DeleGate) はそれぞれの要求されたリソースに対するもっとも近い parent/sibling キャッシュ を選択するために ICP を利用できます。 DeleGate は、独立した ICPサーバとしても動作可能です。 (階層ファイルディレクトリのそれぞれのファイルはURLによって識別されたリソースを含みます)

あなたの HTTP-DeleGate サーバからICPサーバを参照するには、 それらサーバを、"ICP=icp-host-list" パラメータで指定します:

    delegated -P8080 SERVER=http ICP=icp-host1,icp-host2
DeleGate を ICP サーバとして動作させるには、 (キャッシュ)ディレクトリの場所を指す CACHEDIR パラメータと共に、"SERVER=icp" パラメータを指定します。
    delegated -P3130 SERVER=icp CACHEDIR=/path/of/cache
ファイアーウォール上の HTTP-DeleGate と、プロキシ ICP-DeleGate の組合せを作るには:
    delegated -P3130 SERVER=icp  ICP=icp-host1,icp-host2
    delegated -P8080 SERVER=http ICP=icp-host1,icp-host2
注)単一サーバプロセスの DeleGate で ICP-DeleGate と、HTTP-DeleGate 両方を動作させることはできません。

ICP クライアント設定

ICP-DeleGate のさらに高度な使用法の概要については、 ICP, Squid の "reference" 実装と比較するとわかり易いでしょう。 Squid での ICP 設定は、以下の書式で `cache_host' ディレクティブを指定します。 [RFC2187].

    cache_host hostname type http-port icp-port [options]
例) 2つのおとなりのキャッシュは、以下のように参照できます。
    cache_host host1 parent 8080 3130
    cache_host host2 sibling 80 3130
この例は、ICP パラメータ を使うことで、DeleGate で実現できます:
    ICP=host1/p/8080/3130,host2/s/80/3130


または、省略形で:

    ICP=host1/p,host2//80
ICP パラメータの書式は、以下のようになります:
   "ICP=" icp-servers
    icp-servers = icp-server [ "," icp-server ]*
    icp-server = host "/"  server-type "/" http-port "/" icp-port
    server-type = [ "p" | "s" | "l" ] [ "o" ] [ "n" ] [ "H" | "D" | "O" ]
サーバタイプ "p", "s", "|" は、ICP サーバのタイプを指定します: "p" は "parent(親)" キャッシュを意味し、ICP レスポンスが、HIT または、MISS の場合、HTTP リクエストは転送され、"s" は "sibling(兄弟)" を意味し、 (デフォルトで)ICPレスポンスが、HIT の場合のみ、HTTPリクエストが転送され、 "|" は "listener(リスナ)"を意味し、HTTPリクエストは転送されません。 これは、聞くだけの ICP サーバで、ログ、プリフェッチ、ロボット制御などを行います。 サーバタイプ "o" は ICP サーバに HIT_OBJ 応答を要求することを意味します。
サーバタイプ "H", "D", "O" は、オブジェクトサーバのタイプを指定します: "H" は (デフォルトで) HTTP プロキシサーバを意味し、"D" は DeleGate サーバを意味し、 "O" は 元サーバを意味します。

ICP パラメータの完全な書式は以下のようになります:

    "ICP=" icp-servers [ ":" icp-ext ]
    icp-ext = [ icp-opt ] ":" [ http-port ] ":" [ icp-port ] [ ":" conn-map ]
    conn-map = dst-protocols ":" dst-hosts ":" src-hosts
conn-map で、誰が何を要求したかによって、icp-server を選択できます: リクエスト注の プロトコルと、対象サーバ、および、要求しているソースクライアント 詳細は、 Manual.htm を見てください。

ICP サーバ設定

DeleGate(ICP-DeleGate) による ICP サーバ は、独自の HTTP プロキシ や、他のプロキシまたは、 元サーバで提供されるコンテンツの URL を、ICPでやりとりします。 ICP-DeleGate の振舞は、ICPCONF で制御できます。

   "ICPCONF=" conf-list
    conf-list = conf [ "," conf ]*
    conf = "para:" number // 並列サーバプロセスの数 [2]
     | "hitage:" age      // HIT で通知するもっとも古いキャッシュ [1d]
     | "hitobjage:" age   // HIT_OBJ で返すもっとも古いキャッシュ [1h]
     | "hitobjsize:" size // HIT_OBJ で返すデータの最大サイズ [1024]
ICP-DeleGate の アクセス制御は、DeleGate によりリレー可能な全てのプロトコルで共通で使用される、 PERMIT パラメータで達成します。
    PERMIT = dst-protocols : dst-hosts : src-hosts
クライアントの要求が許可されない場合、ICP_OP_DENIED がクライアントに返されます。

ICP-DeleGate は、CACHEDIR パラメータにより、キャッシュファイルディレクトリの場所が指定されなければなりません。

    URL: protocol://site/url-path
    file: $CACHEDIR/protocol/site/url-path
もちろん、これは、DeleGate のキャッシュディレクトリ構造であり、関係を気にする必要はありません。 通常、ICP-DeleGate サーバは、共通の CACHEDIR をもつ、HTTP-DeleGate サーバ群とともに動作させます。

[Last updated: June 14, 1998]


figure-of-frog Yutaka Sato <ysato@delegate.org> Electrotechnical Laboratory (ETL), AIST, MITI, Japan