Cisco ACNS キャッシング/ストリーミング コンフィギュレーション ガイド
コンテンツ サービス プロトコルの設定
コンテンツ サービス プロトコルの設定
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

コンテンツ サービス プロトコルの設定

ICAP の概要

ICAP サービスについて

ICAP サービスおよびベクタ ポイント

ContentEngine の ICAP サービス設定におけるワークフロー例

ローカルに配置する ContentEngine 上での ICAP 設定

使用上のガイドライン

ICAP パラメータをローカルに配置する Content Engine に設定

ICAP サービスをローカルに配置する ContentEngine に設定

ICAP サーバをローカルに配置する ContentEngine に設定

コンテンツ サービス プロトコルの設定

この章では、ICAP(Internet Content Adaptation Protocol)をローカルに配置する Content Engine に設定する方法を説明します。この章の構成は、次のとおりです。

「ICAP の概要」

「Content Engine の ICAP サービス設定におけるワークフロー例」

「ローカルに配置する Content Engine 上での ICAP 設定」


) この章で使用される CLI コマンドの構文と使用方法については、『Cisco ACNS Software Command Reference, Release 5.1』を参照してください。


ICAP の概要

ICAP(Internet Content Adaptation Protocol)は、一般的にネットワーク エッジでのコンテンツ アダプテーションに使用するオープン スタンダードなプロトコルです。コンテンツ アダプテーションには、ウィルス スキャン、コンテンツ変換、コンテンツ フィルタリング、広告挿入など、エンドユーザへのコンテンツに付加価値を付ける機能があります。ICAP は、HTTP プロキシ サーバとして稼働する Content Engine が、要求されたコンテンツのフィルタリングとアダプテーションを実行する ICAP サーバとして稼働する、外部のデバイスと通信する方法を指定します。

ICAP には、HTTP サービスに対して 2 つのコンテンツ処理モードがあります。これらのモードは、ICAP クライアントとして稼働する Content Engine と ICAP サーバの間のトランザクションを定義します。これらのモードは次のとおりです。

要求の変更(reqmod):要求がオリジン サーバに向かう途中で Content Engine から ICAP サーバに送信されるときにその要求を変更できます。ICAP サーバは、要求されたサービスに応じてこれらの要求を変更できます。

応答の変更(respmod):要求がオリジン サーバから戻された後にその要求を変更できます。ICAP サーバは、オリジン サーバから戻された後は、要求されたオブジェクトに対してのみ機能します。

ICAP サービスについて

ICAP サービスとは、そのサービス、および ICAP サービスを提供する ICAP サーバを定義する属性のグループです。1 台の Content Engine に最大 10 の ICAP サービスを設定し、1 つの ICAP サービスに 5 台まで ICAP サーバを設定できます。また、Content Engine が処理したすべての HTTP 要求に ICAP サービスを適用するか、または Rules Template(ルール テンプレート)に一致した要求にのみ ICAP 処理を適用するのかを選択できます。


ヒント ICAP サーバのクラスタ間で使用する負荷分散のタイプを選択するには、load balancing コマンドを使用してください。


ICAP サービスおよびベクタ ポイント

ICAP サービスがコンテンツに適用されるポイントをベクタ ポイントと呼んでいます。このポイントは、 vector-point コマンドを使用して指定されます。次の 3 つのベクタ ポイントがサポートされています。

クライアント要求のベクタ ポイント( reqmod-postcache ):ICAP サーバはクライアント要求に対して次のアクションのいずれかを実行します。

接続を終了する

変更されたエラー応答を送信する

要求の URL を使用してキャッシュを検索する

変更された URL を使用してキャッシュを検索する

キャッシュ ミスの場合に要求のヘッダーまたは本文を変更する

キャッシュ ミスのベクタ ポイント( reqmod-precache ):ICAP サーバは要求をオリジン サーバに転送する前に、次のアクションのいずれかを実行します。

接続を終了する

変更されたエラー応答を送信する

元の URL を使用して要求をオリジン サーバに送信する

別の URL を使用して要求をオリジン サーバに送信する

要求のヘッダーまたは本文を変更する

サーバ応答のベクタ ポイント( respmod-postcache ):ICAP サーバはオリジン サーバから応答を受信した後に、次のアクションのいずれかを実行します。

応答をクライアントに戻す

要求のヘッダーまたは本文を変更する

元の URL を使用して応答をキャッシングする

別の URL を使用して応答をキャッシングする


) 同じベクタ ポイントに割り当てられている異なる ICAP サービスは、別々の負荷分散オプションを使用できます。


次のコマンドは、2 つのベクタ ポイント ( reqmod-precache respmod-precache )で処理する必要があるウィルス スキャン サービスの一般的な設定を示しています。

ContentEngine(config)# icap apply all
ContentEngine(config)# icap service trend-reqmod
ContentEngine(config-icap-service)# enable
ContentEngine(config-icap-service)# vector-point reqmod-precache
ContentEngine(config-icap-service)# server icap://172.19.227.150/REQ-Service
ContentEngine# exit
ContentEngine# icap service trend-respmod
ContentEngine(config-icap-service)# enable
ContentEngine(config-icap-service)# vector-point respmod-precache
ContentEngine(config-icap-service)# server icap://172.19.227.150/interscan
ContentEngine# exit If an ICAP vendor supports the same service name for more than one vectoring point, you can configure a single service and add the supported vectoring points, as in the following example:
ContentEngine(config)# icap service myicap-service
ContentEngine(config-icap-service)# enable
ContentEngine(config-icap-service)# vector-point reqmod-precache
ContentEngine(config-icap-service)# vector-point respmod-precache
ContentEngine(config-icap-service)# server icap://172.19.227.150/icap-service-name
ContentEngine(config-icap-service)# exit
ContentEngine(config)#

 

Content Engine の ICAP サービス設定におけるワークフロー例

次の例では、ローカルに配置する Content Engine 上でどのように ICAP サービスを定義し、使用可能にするかのワークフローを示しています。

1. icap apply {all | rules-template} コマンドを使用して、Content Engine が受信した要求に対してどの ICAP サービスを実行するのかを指定します。たとえば、次のとおりです。

use-icap-service のルール アクションに一致する ICAP サービスのみを実行するように Content Engine に指示するには、 icap apply rules-template コマンドを使用します。

icap apply rules-template
 

受信したすべての HTTP 要求に対してすべての ICAP サービスを実行するように Content Engine に指示するには、 icap apply all コマンドを使用します。

2. icap logging enable コマンドを使用して、ICAP 関連トランザクション ロギングを使用可能にします。これは、 local1/logs/icap/ にあります。

icap logging enable
 

3. icap service service-id コマンドを使用して、さまざまな ICAP サービスをこの Content Engine に設定し、使用可能にします。

icap service trend-reqmod
enable
vector-point reqmod-precache
server icap//172.19.227.150/REQ-Service
exit
icap service trend-respmod
enable
vector-point respmod-precache
server icap//172.19.227.150/interscan
exit
 

4. rule コマンドを使用して、ICAP サービスのルールをこの Content Engine に対して定義します。

たとえば、次の例では、ある特定のトラフィック(イントラネットのドメイン トラフィックや他の信頼されるトラフィックなど)の ICAP 処理を意図的に回避しています。

rule enable
rule action use-icap-service trend-reqmod pattern-list 1 protocol all
rule action use-icap-service trend-respmod pattern-list 1 protocol all
rule pattern-list 1 domain !(.*cisco\.com|.*datek\.com)

ヒント ストリーミング メディア クライアントからの要求は、デフォルトで ICAP 処理をバイパスします。ただし、icap bypass streaming-media コマンドを使用して、必要に応じてストリーミング メディアに対するバイパス機能を使用可能にすることができます。


) Rules Template(ルール テンプレート)の詳細は、「Rules Template の設定」を参照してください。ICAP サービスの詳細は、「ICAP サービスおよびベクタ ポイント」を参照してください。


ローカルに配置する Content Engine 上での ICAP 設定

ここでは、ローカルに配置する Content Engine に ICAP を設定する方法を説明します。

使用上のガイドライン

ローカルに配置する Content Engine に ICAP を設定するには、CLI を使用して次のタスクを実行します。

1. ICAP パラメータを Content Engine に設定する

この項目に関する詳細は、「ICAP パラメータをローカルに配置する Content Engine に設定」を参照してください。

2. ICAP サービスを Content Engine に設定する

ICAP サービスを設定するには、 icap service グローバル設定コマンドを使用します(「ICAP サービスをローカルに配置する Content Engine に設定」を参照)。

3. ICAP サーバを Content Engine に設定する

この項目に関する詳細は、「ICAP サーバをローカルに配置する Content Engine に設定」を参照してください。

ICAP パラメータをローカルに配置する Content Engine に設定

ICAP パラメータをローカルに配置する Content Engine に設定するには、CLI を使用する必要があります (Content Engine GUI では、ICAP パラメータの設定は現在サポートされていません)。

icap コマンドを使用して ICAP パラメータをローカルに配置する Content Engine に設定する際は、次のガイドラインを使用してください。

icap append-x-headers コマンドを使用して append-x-headers オプションを使用可能にします。このオプションは、ICAP ハンドシェイク中に指定のヘッダーを追加します。

icap append-x-headers x-client-ip

icap append-x-headers x-client-ip

ストリーミング メディア クライアントからの要求は、デフォルトで ICAP 処理をバイパスします。

icap bypass streaming-media コマンドを使用すると、このデフォルト設定を変更して、Content Engine に対するストリーミング メディア要求(Windows、Real、QuickTime のメディア プレーヤーからの要求)に対する ICAP 処理のバイパスを使用不可にできます。

icap logging { enable | format [ custom word | standard ]} コマンドを使用して、ICAP サーバとローカルに配置する Content Engine 間における ICAP 交換のトランザクション ロギングを設定し使用可能にします。トランザクション ログを作成する形式を指定します。

ICAP の標準のロギング形式でトランザクション ログを作成したい場合は、 standard を選択します。

標準の形式にはない追加のフィールドをログしたい場合は、 custom を選択します。


) カスタマイズされた形式のトランザクション ロギングは、ACNS ソフトウェア 5.1 ではサポートされていません。Content Engine に設定されている ICAP サービスでは、標準の形式のトランザクション ログのみ使用可能です。


表 10-1 では、ICAP をローカルに配置する Content Engine に設定するための icap コマンド パラメータを説明します。

 

表 10-1 ICAP をローカルに配置する Content Engine に設定するための CLI コマンド パラメータ

パラメータ
説明

append-x-headers

ICAP プロトコル ハンドシェイク中に x-headers を追加します。

x-client-ip

x-client-IP ヘッダーを追加します。

x-server-ip

x-server-IP ヘッダーを追加します。

apply

HTTP 要求の ICAP 処理を使用可能にします。

all

すべての HTTP 要求の ICAP 処理を使用可能にします。

rules-template

rule action use-icap-service グローバル設定コマンドを使用して、Rules Template(ルール テンプレート)に一致した HTTP 要求の ICAP 処理を使用可能にします。

bypass

ある特定の要求されたコンテンツのバイパスを使用可能にします。

streaming-media

ストリーミング メディアのバイパスを使用可能にします。

logging

ICAP サービスの使用時にロギング関連のオプションを指定します。

enables

ICAP サービスの使用時にロギングを使用可能にします。

format

選択されたロギング オプションの形式を指定します。

custom

ロギング オプションで選択されているときにカスタマイズされた形式を指定します。

word

カスタマイズされたロギングの識別に使用する用語を指定します。

standard

ロギング オプションとして標準の形式を指定します。

ICAP サービスをローカルに配置する Content Engine に設定

ACNS ソフトウェア 5.1 では、「ICAP サービスおよびベクタ ポイント」で説明しているように、コンテンツ アダプテーションを使用するために 3 つのベクタ ポイントをサポートしています。

いくつかのベクタ ポイントで設定されている ICAP サーバは、HTTP 要求で過負荷になる可能性があります。特に、要求の変更(reqmod-precache)は、すべての要求がこのポイントを通過するため過負荷になります。このため、複数の ICAP サーバを 1 つのクラスタに設定でき、ICAP サーバのグループによる負荷分散が可能です。ある特定のベクタ ポイントで、さまざまなパラメータに基づいて ICAP サーバのクラスタ内で要求を負荷分散できます。たとえば、重み付けされた負荷、クライアントとサーバの IP アドレス ハッシュ ベース、ラウンド ロビン形式などを選択できます。

1 つ以上の ICAP サービスをベクタ ポイントに関連付けることができます。1 つのベクタ ポイントで設定されている 1 つの ICAP サービスでは、サーバの数に関係なく、1 つの負荷分散方式しか設定できません。しかし、1 つまたはすべてのベクタ ポイントで設定されている複数の ICAP サービスでは、複数の異なる負荷分散方式を設定できます。


ヒント Aggregate Settings オプションが適用される場合、Content Engine が属するデバイス グループに対して設定されていた ICAP サービスは、ICAP Services for Content Engine ウィンドウ内で変更または削除できません。デバイス グループに対して作成された ICAP サービスを表示することしかできません。


icap グローバル設定コマンドを使用して、ICAP サービスをローカルに配置する Content Engine に次のように設定します。

icap service service-name { enable | error-handling [ bypass | return-error ] | load-balancing [ client-ip-hash | round-robin | server-ip-hash | weighted-load ] | server url [ max-connections connection-number [ weight percentage ] | weight percentage [ max-connections connection-number ]] | vector-point [ reqmod-postcache | reqmod-precache | respmod_precache ] order order-number }

表 10-2 では、ICAP サービスをローカルに配置する Content Engine に設定するための icap service コマンド パラメータを説明します。

 

表 10-2 ICAP サービスをローカルに配置する Content Engine に設定するための CLI コマンド

パラメータ
説明

service

サービス名を設定します。

service-name

ICAP を使用する際のサービス名を指定します。

enable

ICAP サービスを使用可能にします。

error-handling

ICAP サービスを使用する際のエラー処理オプションを指定します。

bypass

このサービスを使用してエラーが発生した際にこのサービスをバイパスします。

return-error

エラーをクライアントに戻し、要求を終了します。

load-balancing

このサービスに負荷分散オプションを指定します。負荷分散オプションについては、 表 10-3 を参照してください。

client-ip-hash

クライアント IP アドレスを使用した ICAP サーバでの負荷分散を指定します。

round-robin

ICAP サーバでのラウンド ロビン負荷分散を指定します。

server-ip-hash

ICAP サーバの IP アドレスを使用した負荷分散を指定します。

weighted-load

サーバ ベースで重み付けを指定する重み付け方式を使用した負荷分散を指定します。

表 10-3 では、負荷分散オプションを説明します。

 

表 10-3 負荷分散オプション

負荷分散のタイプ
説明

Client IP Hash

クライアント IP アドレスに基づいたハッシュ ベースのアルゴリズムを使用して、クラスタ内で ICAP サーバを負荷分散します。

Round Robin

ラウンド ロビン方式を使用して、ICAP サーバが交代で要求の HTTP を処理します。

Server IP Hash

サーバ IP アドレスに基づいたハッシュ ベースのアルゴリズムを使用して、クラスタ内で ICAP サーバを負荷分散します。

Weighted

異なる負荷容量の ICAP サーバ ファームを使用します。

ICAP サーバをローカルに配置する Content Engine に設定

ICAP サーバはクライアントからの HTTP 要求を、いくつかのベクタ ポイントで設定された ICAP サービスに基づいて処理します。ICAP サーバは、HTTP 要求の処理中に設定されたベクタ ポイントで、要求または応答の変更やフィルタリングなどのコンテンツ アダプテーションを実行します。

接続の最大数、およびサーバのクラスタ内で 1 台の ICAP サーバが処理できる重みを設定できます。weight(重み)パラメータは、ICAP サーバにリダイレクトできる負荷の比率を表します。40 の重みをもつ ICAP サーバは、40 パーセントの負荷を処理することを示しています。負荷分散されたクラスタ内ですべての ICAP サーバの合計の重みが 100 を超えた場合、各 ICAP サーバに対する負荷の比率は、weight(重み)パラメータが示す比率で再計算されます。

設定されている ICAP サービスの ICAP サーバをローカルに配置する Content Engine に設定するには、次のように icap service グローバル設定コマンドを使用します。

icap service server url [ max-connections connection-number [ weight percentage ] | weight percentage [ max-connections connection-number ]] | vector-point [ reqmod-postcache | reqmod-precache | respmod_precache ] order order-number }

表 10-4 では、ICAP サーバをローカルに配置する Content Engine に設定するための icap service コマンド パラメータを説明します。

.

表 10-4 ICAP サーバを Content Engine に設定するための CLI コマンド パラメータ

パラメータ
説明

server

ICAP サービスに使用する ICAP サーバを URL 形式を使用してイネーブルにします。

url

URL を icap://ICAPserverIPaddress:1344/servicename の形式で指定します。

max-connections

特定の ICAP サーバに対する接続の最大数を指定します。

connection-number

接続の最大数を入力します (最大数 = 5000)。

weight

(オプション)重み付けされた負荷の負荷分散方式が使用されている場合に、負荷分散の重みの比率を設定します。

percentage

この ICAP サーバにリダイレクトできる負荷のパーセント値を入力します。パーセント値は 0 ~ 100 です。ICAP サービスの設定時に負荷分散方式で Weighted を選択した場合は、このパラメータは必ず設定してください。

vector-point

指定されている ICAP サービスに使用するベクタ ポイント、またはコンテンツ処理モードを指定します。

reqmod-postcache

ICAP サーバから送信され、Content Engine にキャッシングされた要求の変更を可能します。

reqmod-precache

要求がオリジン サーバに向かう途中で Content Engine から ICAP サーバに送信されるときに、その要求の変更を可能にします。

respmod-postcache

要求がオリジン サーバから戻された後にその要求の変更を可能にします。

order

使用するコンテンツ処理モードの順序を指定します。

order-number

コンテンツ処理モードが Content Engine への要求を処理する順序を入力します。