Cisco Application Control Engine モジュール サーバ ロード バランシング コンフィギュレーション ガイド
スティッキ機能の設定
スティッキ機能の設定
発行日;2012/01/30 | 英語版ドキュメント(2010/02/25 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 7MB) | フィードバック

目次

スティッキ機能の設定

スティッキ機能の概要

スティッキ機能の目的

スティッキ グループ

スティッキ方式

IP アドレス スティッキ

レイヤ 4 ペイロード スティッキ機能

HTTP コンテンツ スティッキ機能

HTTP cookie スティッキ機能

HTTP ヘッダー スティッキ

RADIUS アトリビュート スティッキ

RTSP セッション ヘッダー スティッキ

SIP コール ID ヘッダー スティッキ

SSL セッション ID スティッキ

スティッキ テーブル

スティッキ機能によるサーバ ファーム動作のバックアップ

スティッキ設定についての設定の要件および考慮事項

IP アドレス スティッキの設定

IP アドレス スティッキ設定のクイック スタート

IP アドレス スティッキ グループの作成

IP アドレス スティッキのタイムアウトの設定

IP アドレス スティッキ タイムアウトによるアクティブ接続の無効化

IP アドレス スティッキ テーブル エントリの複製

スタティック IP アドレス スティッキ テーブル エントリの設定

サーバ ファームと IP アドレス スティッキ グループの関連付け

IP アドレス スティッキの設定例

レイヤ 4 ペイロード スティッキの設定

レイヤ 4 ペイロード スティッキ設定のクイック スタート

レイヤ 4 ペイロード スティッキ グループの作成

レイヤ 4 ペイロード スティッキ タイムアウトの設定

レイヤ 4 ペイロード タイムアウトによるアクティブ接続の無効化

レイヤ 4 ペイロード スティッキ エントリの複製

サーバ応答に対するスティッキ ラーニングのイネーブル化

レイヤ 4 ペイロード スティッキ パラメータの設定

スタティック レイヤ 4 ペイロード スティッキ エントリの設定

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

HTTP コンテンツ スティッキの設定

HTTP コンテンツ スティッキ設定のクイック スタート

HTTP コンテンツ スティッキ グループの作成

HTTP コンテンツ スティッキ タイムアウトの設定

スティッキ コンテンツ タイムアウトによるアクティブ接続の無効化

スティッキ コンテンツ エントリの複製

HTTP コンテンツ スティッキ パラメータの設定

スタティック HTTP コンテンツ の設定

サーバ ファームと HTTP コンテンツ スティッキ グループの関連付け

HTTP cookie スティッキの設定

HTTP cookie スティッキ設定のクイック スタート

HTTP cookie スティッキ グループの作成

cookie スティッキのタイムアウトの設定

スティッキ cookie タイムアウトによるアクティブ接続の無効化

cookie スティッキ エントリの複製

cookie 挿入のイネーブル化

HTTP cookie のオフセットと長さの設定

セカンダリ cookie の設定

スタティック cookie の設定

サーバ ファームと HTTP cookie スティッキ グループの関連付け

HTTP cookie スティッキの設定例

HTTP ヘッダー スティッキの設定

HTTP ヘッダー スティッキ設定のクイック スタート

HTTP ヘッダー スティッキ グループの作成

HTTP ヘッダー スティッキのタイムアウトの設定

HTTP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

HTTP ヘッダー スティッキ エントリの複製

HTTP ヘッダーのオフセットと長さの設定

スタティック HTTP ヘッダー スティッキ エントリの設定

サーバ ファームと HTTP ヘッダー スティッキ グループの関連付け

HTTP ヘッダー スティッキの設定例

RADIUS アトリビュート スティッキの設定

RADIUS アトリビュート スティッキ設定のクイック スタート

RADIUS アトリビュート スティッキ グループの作成

RADIUS アトリビュート スティッキのタイムアウトの設定

RADIUS アトリビュート スティッキ タイムアウトによるアクティブ接続の無効化

RADIUS アトリビュート スティッキ エントリの複製

サーバ ファームと RADIUS アトリビュート スティッキ グループの関連付け

RTSP セッション スティッキの設定

RTSP セッション スティッキ設定のクイック スタート

RTSP ヘッダー スティッキ グループの作成

RTSP セッション スティッキのタイムアウトの設定

RTSP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

RTSP ヘッダー スティッキ エントリの複製

RTSP ヘッダーのオフセットと長さの設定

スタティック RTSP ヘッダー スティッキ エントリの設定

サーバ ファームと RTSP ヘッダー スティッキ グループの関連付け

SIP コール ID スティッキの設定

SIP コール ID スティッキ設定のクイック スタート

SIP ヘッダー スティッキ グループの作成

SIP コール ID スティッキのタイムアウトの設定

SIP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

SIP ヘッダー スティッキ エントリの複製

スタティック SIP ヘッダー スティッキ エントリの設定

サーバ ファームと SIP ヘッダー スティッキ グループの関連付け

SSL セッション ID スティッキの設定

設定の要件および考慮事項

SSL セッション ID スティッキ設定のクイック スタート

レイヤ 4 ペイロード スティッキ グループの作成

レイヤ 4 ペイロード スティッキ タイムアウトの設定

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

SSL サーバからの SSL セッション ID ラーニングのイネーブル化

SSL セッション ID のオフセット、長さ、開始パターンの設定

32 バイト SSL セッション ID の SSL セッション ID スティッキ設定の例

スティッキの SLB トラフィック ポリシーの設定

スティッキの設定および統計情報の表示

スティッキ設定の表示

スティッキ データベース エントリの表示

スティッキの統計情報の表示

スティッキ統計情報の消去

ダイナミック スティッキ データベース エントリの消去

スティッキの設定例

次の作業

スティッキ機能の設定

この章では、ACE モジュールにスティッキ機能(セッション固定と呼ばれることもあります)を設定する方法について説明します。この章の内容は次のとおりです。

スティッキ機能の概要

スティッキ設定についての設定の要件および考慮事項

IP アドレス スティッキの設定

レイヤ 4 ペイロード スティッキの設定

HTTP コンテンツ スティッキの設定

HTTP cookie スティッキの設定

HTTP ヘッダー スティッキの設定

RADIUS アトリビュート スティッキの設定

RTSP セッション スティッキの設定

SIP コール ID スティッキの設定

SSL セッション ID スティッキの設定

スティッキの SLB トラフィック ポリシーの設定

スティッキの設定および統計情報の表示

スティッキ統計情報の消去

ダイナミック スティッキ データベース エントリの消去

スティッキの設定例

次の作業

スティッキ機能の概要

スティッキとは、同じクライアントが 1 つのセッション中に、同一の実サーバと、同時に複数の TCP または IP 接続、または後続の複数の TCP または IP 接続を維持できるようにする ACE 機能です。セッションとは、あるクライアントとサーバの間の一定期間(数分から数時間まで)における連続したトランザクションと定義されています。スティッキは、オンライン ショッピング、特にショッピング カートの確立やチェックアウト プロセス中など、クライアントが同じサーバとの間で複数の接続を維持する必要があるような e-コマース アプリケーションに便利な機能です。

ACE は、設定済みの SLB ポリシーに応じて、使用するロード バランシング方式を判断してから、適切なサーバにクライアントを「固定」します。ACE は、クライアントが特定のサーバにすでに固定されていると判断した場合、一致ポリシーに指定されているロード バランシング基準に関係なく、そのクライアントの要求をそのサーバに送信します。クライアントが特定のサーバに固定されていないと判断した場合、ACE はそのコンテンツ要求に通常のロード バランシング規則を適用します。

ここでは、次の内容について説明します。

スティッキ機能の目的

スティッキ グループ

スティッキ方式

スティッキ テーブル

スティッキ機能によるサーバ ファーム動作のバックアップ

スティッキ機能の目的

e-コマース サイトを訪問するクライアントは、サイトをブラウズすることからインターネット上のウィンドウ ショッピングを始めます。サイトのアプリケーションによっては、接続確立後すぐにクライアントが 1 つのサーバに「固定される」ことが必要な場合もあります。また、クライアントがショッピング カートの確立を開始するまで、このアクションは必要ない場合もあります。

いずれにしても、クライアントがショッピング カートに品物を入れてからは、そのクライアントのすべての要求が同じサーバに送信され、すべての品が 1 つのサーバ上の 1 つのショッピング カートに入るようにすることが重要です。顧客のショッピング カートのインスタンスは通常、特定の Web サーバ上にあり、複数のサーバに重複してはいません。

このようなスティッキ性が必要とされるのは、e-コマース アプリケーションだけではありません。バンキング アプリケーションやオンライン取引など、クライアントの情報を維持するような Web アプリケーションはスティッキ性を必要とする可能性があります。FTP および HTTP のファイル転送にも、スティッキが使用されます。

スティッキ グループ

ACE ではスティッキ グループの考え方を利用してスティッキ機能を設定します。スティッキ グループを使用することによって、スティッキ アトリビュートを指定できます。スティッキ グループとそのアトリビュートの設定後、そのスティッキ グループを、レイヤ 7 SLB ポリシー マップの match ステートメントまたはレイヤ 7 ポリシー マップ アクションと関連付けます。各コンテキストに最大 4096 のスティッキ グループを作成できます。ACE に設定された各スティッキ グループには、次の事項を決定する一連のパラメータが含まれています。

スティッキ方式

Timeout

複製

cookie のオフセットおよびその他の cookie 関連アトリビュート

HTTP、RTSP、または SIP ヘッダーのオフセットおよびその他のヘッダー関連アトリビュート

RADIUS アトリビュート

スティッキ方式

アプリケーションでは個々のユーザやユーザ グループを区別しなければなりません。そのため、ACE は、特定のユーザを特定の Web サーバに固定する手段を必要とします。ACE は次のスティッキ方式をサポートしています。

送信元および宛先の IP アドレスまたはそのいずれか

レイヤ 4 ペイロード

Hypertext Transfer Protocol(HTTP; ハイパーテキスト転送プロトコル)コンテンツ

HTTP cookie

HTTP ヘッダー

Remote Access Dial-In User Service(RADIUS)アトリビュート

Real-Time Streaming Protocol(RTSP)ヘッダー

Session Initiation Protocol(SIP)ヘッダー

SSL セッション ID

特定の e-コマース ベンダーにこれらのどの方式が適しているかは、多くの場合、使用する e-コマース アプリケーションによって異なります。

ここでは、次の内容について説明します。

IP アドレス スティッキ

レイヤ 4 ペイロード スティッキ機能

HTTP コンテンツ スティッキ機能

HTTP cookie スティッキ機能

HTTP ヘッダー スティッキ

RADIUS アトリビュート スティッキ

RTSP セッション ヘッダー スティッキ

SIP コール ID ヘッダー スティッキ

SSL セッション ID スティッキ

IP アドレス スティッキ

IP ネットマスクに基づいて送信元 IP アドレス、宛先 IP アドレス、またはその両方を使用すると、スティッキを目的として個々のクライアントとその要求を識別できます。ただし、企業やサービス プロバイダーがメガプロキシを使用してインターネットへのクライアント接続を確立している場合、送信元 IP アドレスは、要求の真の送信元として信頼できるインジケータにはなりません。このような場合は、セッションを確実に固定するために cookie またはその他のいずれかのスティッキ方式を使用します。

レイヤ 4 ペイロード スティッキ機能

レイヤ 4 ペイロード スティッキ機能を使用すると、レイヤ 4 フレームのデータに基づきクライアントをサーバに固定できます。開始パターンと終了パターン、解析するバイト数、データの始点から無視するバイト数を指定するオフセットを指定できます。

HTTP コンテンツ スティッキ機能

HTTP コンテンツ スティッキ機能を使用すると、HTTP パケットのコンテンツに基づきクライアントをサーバに固定できます。開始パターンと終了パターン、解析するバイト数、データの始点から無視するバイト数を指定するオフセットを指定できます。

HTTP cookie スティッキ機能

クライアントの cookie によって、ACE およびコンテンツ提供サーバに接続するクライアントを一意に識別できます。cookie は、HTTP ヘッダー内の小さなデータ構造であり、サーバはこれを使用して Web クライアントにデータを送信し、クライアントがその情報を保存するように要求します。一部のアプリケーションでは、クライアントは情報をサーバに返し、クライアントとサーバの間の接続状態または固定状態を維持します。

ACE は、コンテンツ要求を検証し、ポリシーの一致によってそのコンテンツがスティッキ状態であると判断すると、そのコンテンツ要求の cookie または URL を調べます。ACE は、cookie または URL 内の情報を使用して、該当するサーバにコンテンツ要求を転送します。ACE がサポートする cookie スティッキには次のタイプがあります。

ダイナミック cookie ラーニング - クライアント要求の HTTP ヘッダーまたはサーバの応答内の server Set-Cookie メッセージで特定の cookie 名を探し、自動的にその値を学習するように ACE を設定できます。ダイナミック cookie ラーニングは、同じ cookie 内のセッション ID またはユーザ ID だけでなくその他の情報も保存するようなアプリケーションを扱う場合に適しています。スティッキに使われるのは、cookie 内の特定のバイト値だけです。

デフォルトでは、ACE は cookie 値全体を学習します。オプションとして、オフセットと長さを指定し、cookie 値の一部だけを学習するように ACE に指示することもできます。

あるいは、HTTP 要求内の URL ストリングに示される第 2 の cookie 値を指定することもできます。このオプションでは、ACE は URL の一部として cookie 情報を探索します(最終的には学習または固定します)。URL ラーニングは、HTTP URL の一部として cookie 情報を挿入するアプリケーションに適しています。場合によっては、この機能を使用して cookie を拒否するクライアントに対処することもできます。

cookie 挿入 - サーバの代わりに ACE が リターン要求に cookie を挿入し、サーバが cookie を入れるように設定されていなくても、cookie スティッキを実行できるようにします。この cookie には、ACE が特定の実サーバへの固定を確実に実行するために使用する情報が入っています。

HTTP ヘッダー スティッキ

HTTP ヘッダー情報を使用してスティッキを提供することも可能です。HTTP ヘッダー スティッキ方式では、ヘッダーのオフセットを指定して、HTTP ヘッダーの一意の部分に基づいてスティッキを提供できます。

RADIUS アトリビュート スティッキ

ACE は、RADIUS アトリビュートに基づきスティッキをサポートします。RADIUS スティッキ グループでは、次のアトリビュートがサポートされます。

Framed IP

Framed IP および発信側端末 ID

Framed IP およびユーザ名

RTSP セッション ヘッダー スティッキ

ACE は、RTSP セッション ヘッダー フィールドに基づきスティッキをサポートします。RTSP ヘッダー スティッキ方式では、ヘッダーのオフセットを指定して、RTSP ヘッダーの一意の部分に基づいてスティッキを提供できます。

SIP コール ID ヘッダー スティッキ

ACE は、SIP コール ID ヘッダー フィールドに基づきスティッキをサポートします。SIP ヘッダー スティッキ方式では、SIP ヘッダー全体が必要であるため、オフセットは指定できません。

SSL セッション ID スティッキ

この機能を利用すると、ACE は SSL セッション ID に基づき同じクライアントを同じ SSL サーバに固定できます。この機能は、SSLv3 でだけ利用できます。SSL セッション ID は、同じクライアントからの複数の接続全体を通じて一意であるため、ACE が SSL トラフィックのロード バランシングをするよう設定され、これを終了しない場合、この機能を使用してクライアントを特定の SSL サーバに固定できます。この機能を使用するには、スティッキ ラーニング用総称プロトコル解析ポリシーを設定する必要があります。ACE は、SSL サーバまたは他の SSL 終端デバイスから SSL セッション ID を学習します。

SSL サーバは既知のクライアントからの新しい接続に同じ SSL セッション ID を再使用できるため、SSL ハンドシェイク時間が削減されます。ハンドシェイク時間が削減すると、サーバの計算回数が少なくなり、CPU 使用率が低下するため、SSL TPS(トランザクション/秒)が増加します。

スティッキ テーブル

スティッキ接続のトラックを維持するために、ACE はスティッキ テーブルを使用します。テーブルのエントリには、次の項目が含まれています。

スティッキ グループ

スティッキ方式

スティッキ接続

実サーバ

スティッキ テーブルには最大 400 万のエントリを保存できます(同時に 400 万のユーザ)。テーブルが最大エントリ数に達してから、スティッキ接続が追加されると、テーブルが循環して最初のユーザとその該当サーバとのスティッキが解除されます。

ACE は設定可能なタイムアウト メカニズムによってスティッキ テーブルのエントリをエージング アウトします。エントリがタイムアウトになると、そのエントリは再利用できる状態になります。接続率が高ければ、スティッキ エントリがタイムアウトになる前にエージング アウトされることもあります。このような場合、ACE は有効期限に最も近いエントリを再利用します。

スティッキ エントリには、ダイナミック エントリとスタティック(ユーザ設定)エントリがあります。スタティック スティッキ エントリを作成すると、ACE はスティッキ テーブル内に即座にそのエントリを置きます。スタティック エントリは、ユーザが設定から削除するまで、スティッキ データベース内に残ります。各コンテキストに最大 4096 のスタティック スティッキ エントリを作成できます。

なんらかの理由(プローブ エラー、no inservice コマンド、または ARP タイムアウト)で ACE が実サーバをアウト オブ サービス状態にした場合、ACE はそのサーバに関連付けられているスティッキ エントリをすべてデータベースから削除します。

スティッキ機能によるサーバ ファーム動作のバックアップ

serverfarm コマンドを使用してサーバ ファームをスティッキ グループに関連付けると、プライマリ サーバ ファームはそのスティッキ グループのスティッキ性を継承します。ACE は、ユーザがスティッキ グループに設定したスティッキの種類に基づいて、同じクライアントからの要求を、プライマリ サーバ ファーム内の同じサーバに送信します。さらに、同じコマンドの backup オプションを使用してバックアップ サーバ ファームを設定すると、オプションの sticky キーワードを設定することにより、そのバックアップ サーバ ファームもスティッキ状態にすることができます。

プライマリ サーバ ファーム内のすべてのサーバが停止した場合、ACE は、すべての新しい要求をバックアップ サーバ ファームに送信します。プライマリ サーバ ファームが復旧した場合(少なくとも 1 つのサーバがアクティブになった場合)

sticky オプションがイネーブルである場合

バックアップ サーバ ファーム内の実サーバの既存のスティッキ テーブルのエントリに一致するすべての新しいスティッキ接続は、バックアップ サーバ ファームの同じ実サーバに固定されます。

すべての新しい非スティッキ接続およびスティッキ テーブルにエントリがないスティッキ接続は、プライマリ サーバ ファームの実サーバにロード バランシングされます。

sticky オプションがイネーブルでない場合、ACE は、プライマリ サーバ ファームの実サーバにすべての新しい接続をロード バランシングします。

バックアップ サーバ ファーム内のサーバへの既存の非スティッキ接続は、バックアップ サーバ ファーム内で完了できます。


) 部分的なサーバ ファーム フェールオーバーを設定することにより、プライマリ サーバ ファームがフェールオーバーして再び使用可能になる条件を微調整できます。部分的なサーバ ファーム フェールオーバーの詳細については、 「実サーバおよびサーバ ファームの設定」「部分サーバ ファーム フェールオーバーの設定」を参照してください。


ソーリー サーバを設定し、プライマリ サーバ ファームの復旧後、既存の接続をプライマリ サーバ ファームに戻したい場合は、スティッキ機能を使用しないでください。バックアップ サーバ ファームおよびソーリー サーバの設定に関する詳細は、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

スティッキ設定についての設定の要件および考慮事項

ACE にスティッキを設定する際には、次の要件および考慮事項に従うことを推奨します。

スティッキを設定する各コンテキストに対し、次のことを実行する必要があります。

スティッキを設定する 1 つ以上のコンテキストと関連付けることのできる Admin コンテキストに、リソース クラスを設定します。

limit-resource sticky コマンドを使用して、そのリソース クラスのスティッキにリソースの最小パーセンテージ(0 以外)を割り当てます。

1 つ以上のユーザ コンテキストをそのリソース クラスに関連付けます。

リソース グループの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

同じスティッキ グループを複数のポリシーまたは仮想サーバに設定できます。その場合、これらのポリシーまたはクラス マップへのすべての接続にスティッキ動作が適用されます。このような接続は、 buddy 接続 と呼ばれています。ポリシーまたはクラス マップの 1 と 2 の両方を同じスティッキ グループに設定した場合、ポリシーまたはクラス マップ 1 でサーバ A に固定されたクライアントは、ポリシーまたはクラス マップ 2 でも同じサーバ A に固定されます。

同じスティッキ グループを複数のポリシーに関連付ける場合は、すべてのポリシーに同じサーバ ファームを使用するか、あるいは同じサーバが含まれている別のサーバ ファームを使用することが重要です。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの正規表現(regex)のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

IP アドレス スティッキの設定

IP アドレス スティッキでは、トランザクションの完了に必要な場合は、クライアントの送信元 IP アドレス、宛先 IP アドレス、またはその両方を使用して、後続の複数の接続に関して、クライアントを同じサーバに固定できます。サービス プロバイダーまたは企業がクライアントとインターネットの接続にメガプロキシを使用している場合は、cookie またはこの章で説明するその他のスティッキ方式の 1 つを使用してください。

ここでは、次の内容について説明します。

IP アドレス スティッキ設定のクイック スタート

IP アドレス スティッキ グループの作成

IP アドレス スティッキのタイムアウトの設定

IP アドレス スティッキ タイムアウトによるアクティブ接続の無効化

IP アドレス スティッキ テーブル エントリの複製

スタティック IP アドレス スティッキ テーブル エントリの設定

サーバ ファームと IP アドレス スティッキ グループの関連付け

IP アドレス スティッキの設定例

IP アドレス スティッキ設定のクイック スタート

表 5-1 は、ACE にスティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-1 以降のセクションを参照してください。

 

表 5-1 IP アドレス スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. スティッキ IP グループを作成し、スティッキ IP コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky ip-netmask 255.255.255.0 address both GROUP1
host1/Admin (config-sticky-ip)#

5. IP アドレス スティッキのタイムアウトを設定します。

host1/Admin (config-sticky-ip) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky-ip) # timeout activeconns

7. 冗長構成のスイッチオーバーに備えて、スタンバイ コンテキストへのスティッキ テーブル情報の複製をイネーブルにします。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky-ip) # replicate sticky

8. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-ip) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)スタティック IP アドレス スティッキ エントリを設定します(各コンテキストに最大 65535 のスタティック エントリ)。

host1/Admin (config-sticky-ip) # static client source 192.168.12.15 destination 172.16.27.3 rserver SERVER1 2000

10. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

11. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. IP アドレス スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

15. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

IP アドレス スティッキ グループの作成

IP アドレス スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

IP アドレス スティッキのスティッキ グループを作成するには、コンフィギュレーション モードで sticky ip-netmask コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky ip-netmask netmask address { source | destination | both } name

キーワードおよび引数は、次のとおりです。

ip netmask netmask - ACE が IP アドレスに適用するネットワーク マスクを指定します。ドット付き 10 進表記でネットワーク マスクを入力します(例:255.255.255.0)。

address - スティッキに使用される IP アドレスを指定します。address キーワードの後ろに次のいずれかのオプションを入力します。

source - ACE がクライアントをサーバに固定するために送信元 IP アドレスを使用するように指定します。Web アプリケーション環境では通常、このキーワードを使用します。

destination - ACE がクライアントをサーバに固定するために宛先アドレスを使用するように指定します。キャッシュ環境では通常、このキーワードを使用します。

both - ACE がクライアントをサーバに固定するために送信元 IP アドレスと宛先 IP アドレスの両方を使用するように指定します。

name - スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、送信元 IP アドレスと宛先 IP アドレスの両方に基づく IP アドレス スティッキを使用するスティッキ グループを作成するには、次のように入力します。

host1/Admin(config)# sticky ip netmask 255.255.255.0 address both GROUP1
host1/Admin(config-sticky-ip)#
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky ip netmask 255.255.255.0 address both GROUP1

IP アドレス スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後、スティッキ テーブル内のそのクライアント接続の IP アドレス スティッキ情報を ACE が維持する時間です。モジュールが特定のスティッキ テーブル エントリと一致する新しい接続をオープンしたり、既存の接続上で新たな HTTP GET を受信するたびに、ACE はエントリのスティッキ タイマーをリセットします。接続率が高ければ、スティッキ エントリがタイムアウトになる前にエージング アウトされることもあります。

IP アドレス スティッキ タイムアウトを設定するには、スティッキ IP コンフィギュレーション モードで timeout minutes コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-ip)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-ip)# no timeout 720

IP アドレス スティッキ タイムアウトによるアクティブ接続の無効化

デフォルトでは、ACE は、スティッキ テーブル エントリのタイムアウト時間が経過し、そのエントリと一致するアクティブ接続がなければ、そのエントリをエージング アウトします。スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が IP アドレス スティッキ テーブルのエントリを タイムアウトにするように指定するには、スティッキ IP コンフィギュレーション モードで timeout activeconns コマンドを使用します。

このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-ip)# timeout activeconns
 

アクティブな接続がある場合は IP アドレス スティッキ エントリをタイムアウトにしないというデフォルトの動作に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-ip)# no timeout activeconns

IP アドレス スティッキ テーブル エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に IP アドレス スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE に IP アドレス スティッキ テーブル エントリを複製するように設定するには、スティッキ IP コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上の IP アドレス スティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-ip)# replicate sticky
 

ACE をデフォルト値に戻し、IP アドレス スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-ip)# no replicate sticky

スタティック IP アドレス スティッキ テーブル エントリの設定

送信元 IP アドレス、宛先 IP アドレス、または実サーバ名とポートに基づいてスタティック スティッキ テーブル エントリを設定できます。スタティック スティッキ IP 値は時間が経過しても変化しません。また複数のスタティック エントリを設定できます。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック スティッキ IP テーブル エントリを設定するには、スティッキ IP コンフィギュレーション モードで static client コマンドを使用します。このコマンドの構文は、スティッキ グループ作成時に選択した address オプションによって異なります。「IP アドレス スティッキ グループの作成」を参照してください。

スティッキ グループに source オプションを設定した場合、このコマンドの構文は次のようになります。

static client source ip_address rserver name [ number ]

スティッキ グループに destination オプションを設定した場合、このコマンドの構文は次のようになります。

static client destination ip_address rserver name [ number ]

スティッキ グループに both オプションを設定した場合、このコマンドの構文は次のようになります。

static client source ip_address [ destination ip_address ]{ rserver name [ number ]}

キーワード、引数、およびオプションは、次のとおりです。

source ip_address - 送信元 IP アドレスに基づくスタティック エントリを指定します。ドット付き 10 進表記で IP アドレスを入力します(例:192.168.12.15)。

destination ip_address - 宛先 IP アドレスに基づくスタティック エントリを指定します。ドット付き 10 進表記で IP アドレスを入力します(例:172.16.27.3)。

rserver name - 実サーバ名に基づくスタティック エントリを指定します。スペースを含まず引用符のない英数字で既存の実サーバ名を入力します(最大 64 文字)。

number - (任意)実サーバのポート番号。1 ~ 65535 の整数を入力します。

たとえば、送信元 IP アドレス、宛先 IP アドレス、およびサーバ名とポート番号に基づくスタティック スティッキ エントリを設定するには、次のように入力します。

host1/Admin(config-sticky-ip)# static client source 192.168.12.15 destination 172.16.27.3 rserver SERVER1 2000
 

スティッキ テーブルからスタティック エントリを削除するには、次のように入力します。

host1/Admin(config-sticky-ip)# no static client source 192.168.12.15 destination 172.16.27.3 rserver SERVER1 2000

サーバ ファームと IP アドレス スティッキ グループの関連付け

スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ IP コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。


) サーバ ファームのすべてのサーバで障害が発生し、バックアップ サーバ ファームを設定しなかった場合、ACE はコンテンツ要求に対してクライアントにリセット(RST)を送信します。デフォルトでバックアップ サーバ ファームを設定した場合、ACE はバックアップ サーバ ファームのすべての実サーバの状態を考慮してから、VIP を非稼動にします。プライマリ サーバ ファームのすべての実サーバに障害が起こり、動作中のバックアップ サーバ ファーム内に 1 つ以上の実サーバがある場合、ACE は VIP の稼動状態を維持します。


sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-ip)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-ip)# no serverfarm

IP アドレス スティッキの設定例

次の例は、IP アドレス スティッキを定義している実行コンフィギュレーションです。この例では、IP アドレス スティッキの設定を太字で示してあります。

これは、IP アドレス スティッキを使用する ACE の設定例です。この設定では、トランザクションの完了に必要な場合、クライアントの送信元 IP アドレス、宛先 IP アドレス、またはその両方により、後続の複数の接続に関してクライアントを同じサーバに固定できます。

access-list ACL1 line 10 extended permit ip any any
 
probe icmp ICMP
interval 2
faildetect 2
passdetect interval 2
 
rserver host SERVER1
ip address 192.168.252.240
inservice
rserver host SERVER2
ip address 192.168.252.241
inservice
rserver host SERVER3
ip address 192.168.252.242
inservice
 
serverfarm host SFARM1
probe ICMP
rserver SERVER1
inservice
rserver SERVER2
inservice
rserver SERVER3
inservice
 
sticky ip-netmask 255.255.255.255 address both SGROUP1
timeout 20
replicate sticky
serverfarm SFARM1
 
class-map match-all L4STICKY-IP_115:ANY_CLASS
2 match virtual-address 192.168.120.115 any
policy-map type loadbalance first-match L7PLBSF_STICKY-NETMASK_POLICY
class class-default
sticky-serverfarm SGROUP1
policy-map multi-match L4SH-Gold-VIPs_POLICY
class L4STICKY-IP_115:ANY_CLASS
loadbalance vip inservice
loadbalance policy L7PLBSF_STICKY-NETMASK_POLICY
loadbalance vip icmp-reply
nat dynamic 1 VLAN 120
 
interface vlan 120
description Upstream VLAN_120 - Clients and VIPs
ip address 192.168.120.1 255.255.255.0
fragment chain 20
fragment min-mtu 68
access-group input ACL1
nat-pool 1 192.168.120.70 192.168.120.70 netmask 255.255.255.0 pat
service-policy input L4SH-Gold-VIPs_POLICY
no shutdown
ip route 10.1.0.0 255.255.255.0 192.168.120.254

レイヤ 4 ペイロード スティッキの設定

ここでは、TCP ストリームまたは UDP パケットのデータ ストリングに基づいてスティッキを設定する方法を説明します。クラス マップおよびポリシー マップを総称プロトコル(ACE によって明示的にサポートされていないプロトコル)と一致するように設定し、ユーザ ID などのプロトコル パケットのデータ(ペイロード)部分のストリングに基づいてクライアントを特定のサーバに固定できます。スティッキ設定では、ストリングは正規表現(regex)として定義し、ペイロード内での位置はオフセットおよび長さとして定義します。詳細については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

正規表現で大量のメモリを使用するのを避けるため、レイヤ 4 ペイロード スティッキを設定する場合は、次の注意事項に従うことを推奨します。

1 つの VIP につき 1 つの一般規則だけを使用します。

同じ VIP ではすべての一般規則について同じオフセットを使用します。

アプリケーションで機能する、できるだけ小さなオフセットを使用します。

可能な場合は、レイヤ 4 ペイロード スティッキとレイヤ 4 ペイロード照合を同時に導入するのを避けます( 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照)。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

レイヤ 4 ペイロード スティッキ設定のクイック スタート

レイヤ 4 ペイロード スティッキ グループの作成

レイヤ 4 ペイロード スティッキ タイムアウトの設定

レイヤ 4 ペイロード タイムアウトによるアクティブ接続の無効化

レイヤ 4 ペイロード スティッキ エントリの複製

レイヤ 4 ペイロード スティッキ パラメータの設定

スタティック レイヤ 4 ペイロード スティッキ エントリの設定

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

レイヤ 4 ペイロード スティッキ設定のクイック スタート

表 5-2 は、ACE にスティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-2 以降のセクションを参照してください。

 

表 5-2 レイヤ 4 ペイロード スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. レイヤ 4 ペイロード スティッキ グループを作成し、スティッキ レイヤ 4 コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky layer4-payload L4_PAYLOAD_GROUP
host1/Admin (config-sticky-l4payloa)#

5. レイヤ 4 ペイロード スティッキのタイムアウトを設定します。

host1/Admin (config-sticky-l4payloa) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky-l4payloa) # timeout activeconns

7. 冗長構成のスイッチオーバーに備えて、スタンバイ コンテキストへのスティッキ テーブル情報の複製をイネーブルにします。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky-l4payloa) # replicate sticky

8. サーバからの応答に対するスティッキ ラーニングをイネーブルにします。

host1/Admin (config-sticky-l4payloa) # response sticky

9. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-l4payloa) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

10. (任意)レイヤ 4 ペイロードのオフセットと長さを指定し、ACE にスティッキのデータ部分だけを解析するよう指示します。

host1/Admin (config-sticky-l4payloa) # layer4-payload offset 250 length 750 begin-pattern abc123

11. (任意)1 つ以上のスタティック スティッキ ペイロード エントリを設定します。

host1/Admin (config-sticky-l4payloa) # static layer4-payload stingray rserver RS1 4000

12. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

15. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

16. レイヤ 4 ペイロード スティッキ設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

17. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

レイヤ 4 ペイロード スティッキ グループの作成

レイヤ 4 ペイロード スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

レイヤ 4 ペイロード スティッキ グループを作成するには、コンフィギュレーション モードで sticky layer4-payload コマンドを使用します。このコマンドの構文は次のとおりです。

sticky layer4-payload name

name 引数は、スティッキ グループの固有識別情報です。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、次のように入力します。

host1/Admin(config)# sticky layer4-payload L4_PAYLOAD_GROUP
host1/Admin(config-sticky-l4payloa)#
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky layer4-payload L4_PAYLOAD_GROUP
 

レイヤ 4 ペイロード スティッキ タイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続のレイヤ 4 ペイロード スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで timeout minutes コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no timeout 720

レイヤ 4 ペイロード タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が レイヤ 4 ペイロード スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# timeout activeconns
 

アクティブな接続がある場合はレイヤ 4 ペイロード スティッキ エントリをタイムアウトにしないというデフォルトの動作に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no timeout activeconns
 

レイヤ 4 ペイロード スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE にレイヤ 4 ペイロード スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE に スティッキ テーブル エントリを複製するように設定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# replicate sticky

 

ACE をデフォルト値に戻し、スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no replicate sticky

サーバ応答に対するスティッキ ラーニングのイネーブル化

レイヤ 4 ペイロード スティッキでは、ACE は指定されたオフセット、長さ、およびパターンに基づき、クライアント要求を解析します。「レイヤ 4 ペイロード スティッキ パラメータの設定」を参照してください。

ACE がサーバ応答を解析し、スティッキ ラーニングを実行するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで response sticky コマンドを使用します。ACE は、サーバ応答バイトのハッシュを使用して、スティッキ データベースにデータを入力します。ACE は、次回同じバイトでクライアント要求を受信した場合、そのクライアントを同じサーバに固定します。このコマンドの構文は次のとおりです。

response sticky

たとえば、ACE がサーバからの応答バイトを解析してスティッキ ラーニングを実行できるようにするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# response sticky
 

サーバ応答を解析せずに、スティッキ ラーニングを実行するというデフォルトの動作に ACE をリセットするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no response sticky
 

レイヤ 4 ペイロード スティッキ パラメータの設定

レイヤ 4 ペイロード値は時間の経過とともに変化し、クライアントとサーバ間のトランザクション全体を通じて変化しないのはごくわずかな部分だけです。ACE が特定サーバに接続を固定するために、ペイロードの変化しない部分を使用するように設定できます。ACE に使用させたいペイロード部分を定義するには、ペイロードのオフセットと長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

また、ACE がクライアントを特定のサーバに固定するために使用する正規表現に基づき、開始パターンと終了パターンを指定することもできます。正規表現の詳細については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 を参照してください。

ペイロードのオフセット、長さ、開始パターン、および終了パターンを設定するには、スティッキ レイヤ 4 ペイロードコンフィギュレーション モードで layer4-payload コマンドを使用します。このコマンドの構文は次のとおりです。

layer4-payload [ offset number1 ] [ length number2 ] [ begin-pattern expression1 ] [ end-pattern expression2 ]

キーワード、引数、およびオプションは、次のとおりです。

offset number1 - ペイロードの最初のバイトから無視するバイト数を示すことにより、ACE が特定のサーバにクライアントを固定するために使用するペイロード部分を指定します。0 ~ 999 の整数を入力します。デフォルトは 0 です。デフォルトでは、ACE はペイロードのどの部分も除外しません。

length number2 - ACE がクライアントをサーバに固定するために使用するペイロード部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。1 ~ 1000 の整数を入力します。デフォルトはペイロード全体です。

TCP 接続では、 max-parse length 値が offset 値後の残りのパケット部分の値以下である場合に限り、ACE は解析を停止します。 max-parse length 値が、残りのパケット サイズより大きい場合は、ACE は、継続して待機し、クライアントからさらにデータを受信します。

UDP では、ACE はパケットの最後に到達すると解析を停止します。


) 同じ layer4-payload コマンドで length オプションと end-pattern オプションの両方は指定できません。


begin-pattern expression1 - レイヤ 4 ペイロードの開始パターンおよびハッシュを行う前に照合するパターン ストリングを指定します。開始パターンを指定しない場合、ACE はオフセット バイトの直後に解析を開始します。同じトラフィック分類に属する異なるサーバ ファームには、異なる開始パターンと終了パターンを設定できません ( 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照)。設定するパターンごとに、引用符で囲まずにスペースを入れないで、255 文字以内で英数字を入力します。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。ACE は、ストリング式の照合に正規表現を使用することをサポートします。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 には、ストリング式の照合に使用できる、サポート対象文字の一覧があります。


) データ ストリングの照合時の正規表現では、ピリオド(.)および疑問符(?)が文字通りの意味を持たないことに注意してください。これらの記号を照合する場合は、角カッコ([ ])を使用します。たとえば、www.xyz.com の代わりに www[.]xyz[.]com を入力します。ドット(.)または疑問符(?)のエスケープとしてバックスラッシュ(\)を使用することもできます。


end-pattern expression2 - ハッシュの終了をマークするパターンを指定します。終了パターンまたは長さを指定しない場合、ACE はフィールドまたはパケットの終了に到達するか、あるいは最大本体解析長に到達するまでデータの解析を継続します。同じトラフィック分類に属する異なるサーバ ファームには、異なる開始パターンと終了パターンを設定できません ( 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照)。


) 同じ layer4-payload コマンドで length オプションと end-pattern オプションの両方は指定できません。


設定するパターンごとに、引用符で囲まずにスペースを入れないで、255 文字以内で英数字を入力します。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。ACE は、ストリング式の照合に正規表現を使用することをサポートします。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 には、ストリング式の照合に使用できる、サポート対象文字の一覧があります。

たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# layer4-payload offset 250 length 750 begin-pattern abc123
 

設定からペイロードのオフセットと長さを削除するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no layer4-payload

スタティック レイヤ 4 ペイロード スティッキ エントリの設定

ACE が レイヤ 4 ペイロード(オプションとして実サーバ名とポート)に基づいてエントリのスタティック スティッキ エントリを使用するように設定できます。スタティック ペイロード値は常に一定です。複数のスタティック ペイロード エントリを設定できますが、1 つのスタティック ペイロード値に対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック レイヤ 4 ペイロード スティッキ エントリを設定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで static layer4-payload コマンドを使用します。このコマンドの構文は次のとおりです。

static layer4-payload value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - ペイロード ストリング値 スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。1 ~ 65535 の整数を入力します。

たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# static layer4-payload STINGRAY rserver SERVER1 4000
 

設定からスタティック ペイロード エントリを削除するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no static layer4-payload STINGRAY rserver SERVER1 4000
 

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ レイヤ 4 ペイロードコンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no serverfarm

HTTP コンテンツ スティッキの設定

ここでは、HTTP パケットのコンテンツ(ヘッダーではなくデータ)に基づいてスティッキ機能を設定する方法を説明します。開始パターンおよび終了パターンとともに正規表現として HTTP コンテンツのストリングを定義します。さらにパケット データ内の位置をオフセットおよび長さとして定義します。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

HTTP コンテンツ スティッキ設定のクイック スタート

HTTP コンテンツ スティッキ グループの作成

HTTP コンテンツ スティッキ タイムアウトの設定

スティッキ コンテンツ タイムアウトによるアクティブ接続の無効化

スティッキ コンテンツ エントリの複製

HTTP コンテンツ スティッキ パラメータの設定

スタティック HTTP コンテンツ の設定

サーバ ファームと HTTP コンテンツ スティッキ グループの関連付け

HTTP コンテンツ スティッキ設定のクイック スタート

表 5-3 は、ACE に HTTP コンテンツ スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-3 以降のセクションを参照してください。

 

表 5-3 HTTP コンテンツ スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. HTTP コンテンツ スティッキ グループを作成し、スティッキ コンテンツ コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky http-content HTTP_CONTENT_GROUP
host1/Admin (config-sticky-content)#

5. HTTP コンテンツ スティッキのタイムアウトを設定します。

host1/Admin (config-sticky-content) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky-content) # timeout activeconns

7. 冗長構成のスイッチオーバーに備えて、スタンバイ コンテキストへのスティッキ テーブル情報の複製をイネーブルにします。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky-content) # replicate sticky

8. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-content) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)スティッキ コンテンツの開始パターン、終了パターン 、オフセット、および長さを設定して、ACE がコンテンツの一部(コンテンツの変化しない部分)だけをスティッキに使用するようにします。

host1/Admin (config-sticky-content) # content begin-pattern abc123* end-pattern *xyz890 offset 3000 length 1000

10. (任意)1 つ以上のスタティック スティッキ コンテンツ エントリを設定します。

host1/Admin (config-sticky-content) # static content stingray rserver RS1 4000

11. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

15. HTTP コンテンツ スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

16. 設定の変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

HTTP コンテンツ スティッキ グループの作成

HTTP コンテンツ スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

ACE がスティッキに HTTP コンテンツを使用するように設定するには、コンフィギュレーション モードで sticky http-content コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky http-content name

name 引数は、スティッキ グループの固有識別情報です。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、コンテンツ スティッキ用のスティッキ グループを作成するには、次のように入力します。

host1/Admin(config)# sticky http-content HTTP_CONTENT_GROUP
host1/Admin(config-sticky-content)#
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky http-content HTTP_CONTENT_GROUP

HTTP コンテンツ スティッキ タイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の HTTP コンテンツ スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ コンテンツ コンフィギュレーション モードで timeout minutes コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-content)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-content)# no timeout 720

スティッキ コンテンツ タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が HTTP コンテンツ スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ コンテンツ コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-content)# timeout activeconns
 

アクティブ接続があれば HTTP コンテンツ スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-content)# no timeout activeconns

スティッキ コンテンツ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に HTTP コンテンツ スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE に スティッキ テーブル エントリを複製するように設定するには、スティッキ コンテンツ コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-content)# replicate sticky

 

ACE をデフォルト値に戻し、スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-content)# no replicate sticky

HTTP コンテンツ スティッキ パラメータの設定

HTTP コンテンツは時間の経過とともに変化し、クライアントとサーバ間のトランザクション全体を通じて変化しないのはごくわずかな部分だけです。ACE が特定サーバに接続を固定するために、コンテンツの変化しない部分を使用するように設定できます。ACE に使用させたいコンテンツ部分を定義するには、開始パターン、終了パターン、オフセット、および長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

HTTP コンテンツ スティッキ パラメータを設定するには、スティッキ コンテンツ コンフィギュレーション モードで content コマンドを使用します。このコマンドの構文は次のとおりです。

content [ offset number1 ] [ length number2 ] [ begin-pattern expression1 ] [ end-pattern expression2 ]

キーワード、引数、およびオプションは、次のとおりです。

offset number1 - (任意)ペイロードの最初のバイトから無視するバイト数を示すことにより、ACE が特定のサーバにクライアントを固定するために使用するコンテンツ部分を指定します。0 ~ 999 の整数を入力します。デフォルトは 0 です。デフォルトでは、ACE はコンテンツのどの部分も除外しません。

オフセットと長さは 0 ~ 1000 バイトまで変更できます。コンテンツ ストリングがオフセットよりも長く、オフセット + ストリングの長さの値よりも短い場合、ACE は、オフセット値の後ろのバイトを始点とし、オフセット + 長さで指定されるバイトを終点するコンテンツ部分に基づいて接続を固定します。オフセットと長さの合計は、1000 バイト以下にする必要があります。

length number2 - ACE がクライアントをサーバに固定するために使用するコンテンツ部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。1 ~ 1000 の整数を入力します。デフォルトはペイロード全体です。


) 同じ content コマンドで length オプションと end-pattern オプションの両方は指定できません。


begin-pattern expression1 - (任意)HTTP コンテンツ ペイロードの開始パターンおよびハッシュを行う前に照合するパターン ストリングを指定します。開始パターンを指定しない場合、ACE はオフセット バイトの直後に解析を開始します。同じトラフィック分類に属する異なるサーバ ファームには、異なる開始パターンと終了パターンを設定できません ( 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照)。

設定するパターンごとに、引用符で囲まずにスペースを入れないで、255 文字以内で英数字を入力します。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。ACE は、ストリング式の照合に正規表現を使用することをサポートします。ストリング表現の照合に使用できる、サポート対象文字の一覧については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 を参照してください。


) データ ストリングの照合時の正規表現では、ピリオド(.)および疑問符(?)が文字通りの意味を持たないことに注意してください。これらの記号を照合する場合は、角カッコ([ ])を使用します。たとえば、www.xyz.com の代わりに www[.]xyz[.]com を入力します。ドット(.)または疑問符(?)のエスケープとしてバックスラッシュ(\)を使用することもできます。


end-pattern expression2 - (任意)ハッシュの終了パターンを指定します。終了パターンまたは長さを指定しない場合、ACE はフィールドまたはパケットの終了に到達するか、あるいは最大本体解析長に到達するまでデータの解析を継続します。同じトラフィック分類に属する異なるサーバ ファームには、異なる開始パターンと終了パターンを設定できません ( 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照)。

設定するパターンごとに、引用符で囲まずにスペースを入れないで、255 文字以内で英数字を入力します。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。ACE は、ストリング式の照合に正規表現を使用することをサポートします。ストリング表現の照合に使用できる、サポート対象文字の一覧については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 を参照してください。


) 同じ content コマンドで length オプションと end-pattern オプションの両方は指定できません。


たとえば、次のように入力します。

host1/Admin(config-sticky-content)# content begin-pattern abc123* end-pattern *xyz890 offset 500 length 1000
 

コンフィギュレーションから コンテンツ パラメータを削除するには、次のように入力します。

host1/Admin(config-sticky-content)# no content offset

スタティック HTTP コンテンツ の設定

ACE が スタティック コンテンツ エントリ(オプションとして実サーバ名とポート)を使用するよう設定できます。スタティック コンテンツ エントリは常に一定です。複数のスタティック コンテンツ エントリを設定できますが、1 つのスタティック コンテンツ ストリングに対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック コンテンツ エントリを設定するには、スティッキ コンテンツ コンフィギュレーション モードで static content コマンドを使用します。このコマンドの構文は次のとおりです。

static content value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - コンテンツ ストリング値 スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。1 ~ 65535 の整数を入力します。

たとえば、スタティック コンテンツ エントリを作成するには、次のように入力します。

host1/Admin(config-sticky-content)# static content STINGRAY rserver SERVER1 4000
 

設定からスタティック コンテンツ エントリを削除するには、次のように入力します。

host1/Admin(config-sticky-content)# no static content STINGRAY rserver SERVER1 4000

サーバ ファームと HTTP コンテンツ スティッキ グループの関連付け

スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ コンテンツ コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-content)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-content)# no serverfarm

HTTP cookie スティッキの設定

ここでは、HTTP cookie に基づくスティッキの設定方法を説明します。ACE は次の箇所から cookie 値を学習します。

クライアントの要求内の HTTP ヘッダー

サーバがクライアントに送信する Set-Cookie メッセージ

Web ページの URL

クライアントがサーバに HTTP を要求すると、サーバは通常、クライアントへの応答内の Set-Cookie メッセージで cookie を送信します。ほとんどの場合、クライアントは後続の HTTP 要求で同じ cookie 値を返します。ACE はこの一致値に基づいて、クライアントを同じサーバに固定します。通常の Web クライアントが Web を使用する場合は、通常この方式が使用されます。

ただし、使用環境によっては、クライアントのブラウザが cookie をサポートできないこともあります。その場合、この cookie スティッキ接続は使用できません。この問題に対処するため、ACE は URL ストリングに埋め込まれた cookie の名前と値を抽出できます。この機能を使用できるのは、サーバが Web ページ上の URL リンクに cookie を埋め込む場合だけです。

クライアントとサーバの動作およびフレーム シーケンスによっては、HTTP ヘッダーや Set-Cookie メッセージ内、または URL 内に埋め込まれた標準 HTTP cookie に同じ cookie 値が示されることもあります。実際の cookie 名は、その cookie がURL に埋め込まれるのか、HTTP ヘッダーに表示されるのかによって異なる場合もあります。cookie と URL で異なる名前が使用されるのは、これら 2 つのパラメータがサーバ上で設定可能であり、異なる名前に設定されることが多いためです。たとえば、Set-Cookie 名は次のように設定される場合があります。

Set-Cookie: session_cookie = 123
 

URL は次のように設定される場合があります。

http://www.example.com/?session-id=123
 

クライアントの要求に cookie が含まれていない場合、ACE は、ACE に設定されているセッション ID ストリング(?session-id=)を探します。このストリングに関連付けられている値は、ACE がキャッシュで探索するセッション ID 番号です。ACE は要求情報を持つサーバとセッション ID を照合し、一致すれば、そのサーバにクライアントの要求を送信します。

sticky コマンドの name 引数は、HTTP ヘッダー内の cookie 名です。 cookie secondary コマンドの name 引数は、URL に示される cookie 名です。

デフォルトでは、cookie、HTTP ヘッダーまたは URL のチェックのために ACE が解析するバイト数は最大 2048 です。cookie、HTTP ヘッダーまたは URL がこのデフォルト値を超えると、ACE はそのパケットを廃棄し、クライアントのブラウザに RST(reset)を送信します。ACE に解析させるバイト数を増やすには、HTTP パラメータ マップ コンフィギュレーション モードで set header-maxparse-length コマンドを使用します。最大解析長の設定に関する詳細は、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

また、HTTP パラメータ マップ コンフィギュレーション モードで length-exceed コマンドを使用して、cookie、ヘッダー、または URL の長さが最大解析長を超過した場合の ACE のデフォルト動作を変更することもできます。詳細については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの正規表現(regex)のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

HTTP cookie スティッキ設定のクイック スタート

HTTP cookie スティッキ グループの作成

cookie スティッキのタイムアウトの設定

スティッキ cookie タイムアウトによるアクティブ接続の無効化

cookie スティッキ エントリの複製

cookie 挿入のイネーブル化

HTTP cookie のオフセットと長さの設定

セカンダリ cookie の設定

スタティック cookie の設定

サーバ ファームと HTTP cookie スティッキ グループの関連付け

HTTP cookie スティッキの設定例

HTTP cookie スティッキ設定のクイック スタート

表 5-4 は、ACE にスティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-4 以降のセクションを参照してください。

 

表 5-4 HTTP cookie スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. HTTP cookie スティッキ グループを作成し、スティッキ cookie コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky http-cookie cisco.com GROUP2
host1/Admin (config-sticky-cookie)#

5. HTTP cookie スティッキのタイムアウトを設定します。

host1/Admin (config-sticky-cookie) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky-cookie) # timeout activeconns

7. 冗長構成のスイッチオーバーに備えて、スタンバイ コンテキストへのスティッキ テーブル情報の複製をイネーブルにします。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky-cookie) # replicate sticky

8. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバと結合します。

host1/Admin (config-sticky-cookie) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)cookie 挿入をイネーブルにして、ACE がサーバからクライアントへの応答の Set-Cookie ヘッダーに cookie を挿入できるようにします。サーバが適切な cookie を設定しない場合は、このコマンドを使用してください。

host1/Admin (config-sticky-cookie) # cookie insert browser-expire

10. (任意)cookie スティッキのオフセットと長さを設定して、ACE が cookie の一部(cookie の変化しない部分)だけをスティッキに使用するようにします。

host1/Admin (config-sticky-cookie) # cookie offset 3000 length 1000

11. (任意)ACE がクライアントからの HTTP 要求の URL ストリングに示される代替 cookie を使用するように設定します。

host1/Admin (config-sticky-cookie) # cookie secondary arrowpoint.com

12. (任意)1 つ以上のスタティック スティッキ cookie エントリを設定します。

host1/Admin (config-sticky-cookie) # static cookie-value corvette rserver SERVER1 4000

13. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

15. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

16. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

17. HTTP cookie スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

18. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

HTTP cookie スティッキ グループの作成

HTTP cookie スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

クライアント要求の HTTP ヘッダーまたはサーバがクライアントに送信する Set-Cookie メッセージから ACE が cookie を学習するように設定できます。ACE は、学習した cookie を使用して、トランザクション中にクライアントとサーバを固定します。

ACE がスティッキに HTTP cookie を使用するように設定するには、コンフィギュレーション モードで sticky http-cookie コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky http-cookie name1 name2

キーワードおよび引数は、次のとおりです。

http-cookie name1 - ACE がクライアント要求の HTTP ヘッダーまたはサーバからの Set-Cookie メッセージから cookie 値を学習するように設定します。スペースを含まず引用符のない英数字で cookie の固有識別情報を入力します(最大 64 文字)。

name2 - スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、cookie スティッキ用のスティッキ グループを作成するには、次のように入力します。

host1/Admin(config)# sticky http-cookie cisco.com GROUP3
host1/Admin(config-sticky-cookie)#
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky http-cookie cisco.com GROUP3

cookie スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の HTTP cookie スティッキ情報を ACE が維持する時間です。ACE は、モジュールが特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびにそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ cookie コンフィギュレーション モードで timeout minutes コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-cookie)# no timeout 720

スティッキ cookie タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が HTTP cookie スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ cookie コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# timeout activeconns
 

アクティブ接続があれば、HTTP cookie スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-cookie)# no timeout activeconns

cookie スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に HTTP cookie スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE にスティッキ テーブル エントリを複製するように設定するには、スティッキ cookie コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# replicate sticky

 

ACE をデフォルト値に戻し、スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-cookie)# no replicate sticky

cookie 挿入のイネーブル化

サーバが適切な cookie を設定しない場合にセッション cookie による固定を実行するには、cookie 挿入機能を使用します。この機能をイネーブルにすると、ACE はサーバからクライアントへの応答の Set-Cookie ヘッダーに cookie を挿入します。ACE は、クライアントが受信する応答の送信元サーバを識別できるように cookie 値を選択します。同じトランザクションの後続の接続については、クライアントは cookieを 使用して同じサーバに固定します。


) TCP サーバ再利用または持続性再バランスのどちらかがイネーブルの場合、ACE はあらゆるクライアント要求に cookie を挿入します。TCP サーバの再利用については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」「TCP サーバ再利用の設定」を参照してください。固定再バランスについては、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」「HTTP 持続性再バランスのイネーブル化」を参照してください。


cookie 挿入をイネーブルにするには、スティッキ cookie コンフィギュレーション モードで cookie insert コマンドを使用します。このコマンドの構文は次のとおりです。

cookie insert [ browser-expire ]

オプションの browser-expire キーワードを使用すると、クライアントのブラウザはセッション終了時に cookie を期限切れにします。

たとえば、cookie 挿入をイネーブルにして、ブラウザが cookie を期限切れにするように設定するには、次のように入力します。

host1/Admin(config-sticky-cookie)# cookie insert browser-expire
 

cookie 挿入をディセーブルにするには、次のように入力します。

host1/Admin(config-sticky-cookie)# no cookie insert browser-expire

HTTP cookie のオフセットと長さの設定

HTTP cookie 値は時間の経過とともに変化し、クライアントとサーバ間のトランザクション全体を通じて変化しないのはごくわずかな部分だけです。ACE が特定サーバに接続を固定するために、cookie の変化しない部分を使用するように設定できます。ACE に使用させたい cookie 部分を定義するには、cookie のオフセットと長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

cookie のオフセットと長さを設定するには、スティッキ cookie コンフィギュレーション モードで cookie offset コマンドを使用します。このコマンドの構文は次のとおりです。

cookie offset number1 length number2

キーワードおよび引数は、次のとおりです。

offset number1 - cookie の最初のバイトから無視するバイト数を示すことにより、ACE が特定のサーバにクライアントを固定するために使用する cookie 部分を指定します。0 ~ 999 の整数を入力します。デフォルトは 0 です。デフォルトでは、ACE は cookie のどの部分も除外しません。

length number2 - ACE がクライアントをサーバに固定するために使用する cookie 部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。1 ~ 1000 の整数を入力します。デフォルト値は 1000 です。

たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# cookie offset 500 length 1000
 

設定から cookie のオフセットと長さを削除するには、次のように入力します。

host1/Admin(config-sticky-cookie)# no cookie offset

セカンダリ cookie の設定

サーバ上の Web ページの URL ストリングに示されている代替 cookie 名を設定することもできます。ACE は、クライアントとサーバのスティッキ接続を維持するためにこの cookie を使用し、スティッキ テーブルにセカンダリ エントリを追加します。セカンダリ cookie を設定するには、スティッキ cookie コンフィギュレーション モードで cookie sedondary コマンドを使用します。このコマンドの構文は次のとおりです。

cookie secondary name

スペースを含まず、引用符なしの英数字で cookie 名を入力します(最大 64 文字)。

たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# cookie secondary mysite.com
 

設定からセカンダリ cookie を削除するには、次のように入力します。

host1/Admin(config-sticky-cookie)# no cookie secondary mysite.com

スタティック cookie の設定

ACE が cookie 値(オプションとして実サーバ名とポート)に基づいてエントリのスタティック cookie を使用するように設定できます。スタティック cookie 値は常に一定です。複数のスタティック cookie エントリを設定できますが、1 つのスタティック cookie 値に対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック cookie を設定するには、スティッキ cookie コンフィギュレーション モードで static cookie-value コマンドを使用します。このコマンドの構文は次のとおりです。

static cookie-value value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - cookie ストリング値 スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。ただし、ストリングを引用符(")で囲む場合は、スペースを含むテキスト ストリングを入力できます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。1 ~ 65535 の整数を入力します。

たとえば、次のように入力します。

host1/Admin(config-sticky-cookie)# static cookie-value CORVETTE rserver SERVER1 4000
 

設定からスタティック cookie を削除するには、次のように入力します。

host1/Admin(config-sticky-cookie)# no static cookie-value CORVETTE rserver SERVER1 4000

サーバ ファームと HTTP cookie スティッキ グループの関連付け

スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ cookie コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-cookie)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-cookie)# no serverfarm

HTTP cookie スティッキの設定例

次の例は、HTTP cookie スティッキを定義している実行コンフィギュレーションです。この例では、HTTP cookie スティッキの設定が太字で示してあります。

この設定では、ACE は HTTP cookie スティッキを使用して、トランザクション中にサーバ ファームの指定サーバとの特定の接続が維持されるようにします。

access-list ACL1 line 10 extended permit ip any any
 
probe icmp ICMP
interval 2
faildetect 2
passdetect interval 2
 
rserver host SERVER1
ip address 192.168.252.240
inservice
rserver host SERVER2
ip address 192.168.252.241
inservice
rserver host SERVER3
ip address 192.168.252.242
inservice
serverfarm host SFARM1
probe ICMP
rserver SERVER1
inservice
rserver SERVER2
inservice
rserver SERVER3
inservice
 
sticky http-cookie COOKIE_TEST COOKIE-GROUP
serverfarm SFARM1
 
class-map match-all L4STICKY-COOKIE-VIP_127:80_CLASS
2 match virtual-address 192.168.120.127 tcp eq www
policy-map type loadbalance first-match L7PLBSF_STICKY-COOKIE_POLICY
class class-default
sticky-serverfarm COOKIE-GROUP
policy-map multi-match L4SH-Gold-VIPs_POLICY
class L4STICKY-COOKIE-VIP_127:80_CLASS
loadbalance vip inservice
loadbalance policy L7PLBSF_STICKY-COOKIE_POLICY
loadbalance vip icmp-reply
nat dynamic 1 vlan 120
appl-parameter http advanced-options PERSIST-REBALANCE
 
interface vlan 120
description Upstream VLAN_120 - Clients and VIPs
ip address 192.168.120.1 255.255.255.0
fragment chain 20
fragment min-mtu 68
access-group input ACL1
nat-pool 1 192.168.120.70 192.168.120.70 netmask 255.255.255.0 pat
service-policy input L4SH-Gold-VIPs_POLICY
no shutdown
ip route 10.1.0.0 255.255.255.0 192.168.120.254

HTTP ヘッダー スティッキの設定

クライアントは、サーバのサービスを要求する際に、ACE に要求を送信します。要求には、ACE がスティッキの提供に使用できるフィールドが含まれる HTTP ヘッダーが含まれています。このプロセスによって、同じクライアントからの接続が同じ SLB ポリシーと一致すれば、後続の接続には HTTP ヘッダー フィールドに基づいて確実に同じサーバが使用されます。HTTP については、任意のサポートされているプロトコル ヘッダー名を指定することも、また標準プロトコル ヘッダーの 1 つを選択することもできます。

デフォルトでは、ACE CLI は大文字と小文字を区別します。たとえば、ACE はスティッキ グループ名 http_sticky_group1 と HTTP_STICKY_GROUP1 を異なるグループ名として処理します。CLI が HTTP 関連のすべてのパラメータに対して大文字と小文字を区別しないように設定するには、HTTP パラメータ マップに case-insensitive コマンドを入力し、そのパラメータ マップをレイヤ 3 およびレイヤ 4 SLB ポリシー マップと関連付けるだけです。詳細は、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 「HTTP パラメータ マップの設定」を参照してください。

デフォルトでは、cookie、HTTP ヘッダーまたは URL のチェックのために ACE が解析するバイト数は最大 2048 です。cookie、HTTP ヘッダーまたは URL がこのデフォルト値を超えると、ACE はそのパケットを廃棄し、クライアントのブラウザに RST(reset)を送信します。ACE に解析させるバイト数を増やすには、HTTP パラメータ マップ コンフィギュレーション モードで set header-maxparse-length コマンドを使用します。最大解析長の設定に関する詳細は、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

また、HTTP パラメータ マップ コンフィギュレーション モードで length-exceed コマンドを使用して、cookie、ヘッダー、または URL の長さが最大解析長を超過した場合の ACE のデフォルト動作を変更することもできます。詳細については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

HTTP ヘッダー スティッキ設定のクイック スタート

HTTP ヘッダー スティッキ グループの作成

HTTP ヘッダー スティッキのタイムアウトの設定

HTTP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

HTTP ヘッダー スティッキ エントリの複製

HTTP ヘッダーのオフセットと長さの設定

スタティック HTTP ヘッダー スティッキ エントリの設定

サーバ ファームと HTTP ヘッダー スティッキ グループの関連付け

HTTP ヘッダー スティッキの設定例

HTTP ヘッダー スティッキ設定のクイック スタート

表 5-5 は、ACE にヘッダー スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-5 以降のセクションを参照してください。

 

表 5-5 HTTP ヘッダー スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. HTTP ヘッダー スティッキ グループを作成し、スティッキ ヘッダー コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky http-header Host HTTP_GROUP
host1/Admin (config-sticky- header )#

5. ヘッダー スティッキのタイムアウトを設定します。

host1/Admin (config-sticky- header ) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky- header ) # timeout activeconns

7. スイッチオーバーに備えて、ヘッダー スティッキ テーブル情報をスタンバイ コンテキストに複製する機能をイネーブルにします。このコマンドは冗長構成で使用します。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky- header ) # replicate sticky

8. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-ssl) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)ヘッダー スティッキのオフセットと長さを設定して、ACE が ヘッダー の一部(ヘッダーの変化しない部分)だけをスティッキに使用するようにします。

host1/Admin (config-sticky- header ) # header offset 3000 length 1000

10. (任意)1 つ以上のスタティック ヘッダー スティッキ エントリを設定します。

host1/Admin (config-sticky- header ) # static header Host rserver SERVER1 4000

11. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

15. ヘッダー スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

16. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

HTTP ヘッダー スティッキ グループの作成

ヘッダー スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

ヘッダー スティッキ グループを作成して、ACE が HTTP ヘッダー フィールドに基づいてクライアント接続を同じ実サーバに固定できるようにするには、コンフィギュレーション モードで sticky http-header コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky http-header name1 name2

キーワードおよび引数は、次のとおりです。

http-header name1 - HTTP ヘッダーに基づくスティッキを指定します。スペースを含まず引用符なしの英数字で HTTP ヘッダー 名を入力します(最大 64 文字)。あるいは、 表 5-6 に記載されている標準 HTTP ヘッダーの 1 つを選択することもできます。

 

表 5-6 標準 HTTP ヘッダー フィールド

フィールド名
説明

Accept

要求への応答で受け入れることのできる表現スキーム(コンテンツ タイプ メタ情報値)のリスト(項目間の区切りはセミコロン)

Accept-Charset

応答に受け入れることのできる文字セット。このフィールドによって、より広範囲の文字セットまたは特定目的の文字セットを理解できるクライアントは、これらの文字セットで文書を表現できるサーバに、その能力を知らせます。

Accept-Encoding

ユーザがサーバから受け入れることのできるコンテンツ符号化方式

Accept-Language

その文書の言語の ISO コード。この言語コードは、ISO 3316 言語コードと、国による差異を指定するオプションの ISO639 国コードです。

Authorization

ユーザ エージェントが通常、401 応答を受信したあとで、サーバに対して自ら認証することを指定します。

Cache-Control

要求-応答チェーンのすべてのキャッシング メカニズムが従わなければならないディレクティブ。このディレクティブはキャッシュが要求または応答に悪影響を及ぼすのを防ぐための動作を指定します。

Connection

送信側が接続オプションを指定できるよう指定します。

Content-MD5

エンドツーエンド インテグリティ チェックを提供する entity-body の MD5 ダイジェスト。このヘッダー フィールドを生成できるのは、クライアントまたはオリジン サーバだけです。

Expect

クライアントが要求する動作をサーバに伝えるためにクライアントが使用します。

From

要求側ユーザ エージェントを制御する担当者の E メール アドレス

Host

要求されているリソースのインターネット ホストおよびポート番号(ユーザまたは参照リソースによって与えられたオリジナルの URI から取得)。Host フィールドの値は、オリジナル URL に示されるオリジン サーバ、またはゲートウェイの命名機関を表していなければなりません。

If-Match

条件付きの方式で使用します。リソースから以前に 1 つ以上のエンティティを取得したクライアントは、If-Match ヘッダー フィールド内に、関連付けられているエンティティ タグのリストを含めることによって、これらのいずれかのエンティティが最新の値であることを確認できます。この機能により、最小のトランザクション オーバーヘッドでキャッシュ情報を効率的にアップデートできます。この機能は、要求のアップデート時にリソースの不適切なバージョンによる改悪を防ぐためにも使用されます。特殊な例として、値「*」はリソースのあらゆる最新エンティティと一致します。

Pragma

Pragma ディレクティブを通じて、サーバはこのディレクティブが何に該当するかを理解します。構文は、HTTP の他の複数値フィールド( accept フィールドなど)と同じで、カンマ区切り方式のエントリ リストです。オプションのパラメータはセミコロンで区切られます。

Referer

要求内の URI の取得元リソースのアドレス(URI)

Transfer-Encoding

送信者と受信者の間で安全に伝送するために、どのタイプのトランスフォーメーションがメッセージ ボディに適用されたか(該当する場合)。

User-Agent

ユーザ エージェントについての情報(要求の送信元ソフトウェア プログラムなど)。この情報は、統計、プロトコル違反のトレース、特定ユーザ エージェントの制限を回避するための応答カスタマイズに対するユーザ エージェントの自動認識などに使用されます。

Via

要求上のユーザ エージェントとサーバの間、および応答上のオリジン サーバとクライアントの間にある中間のプロトコルおよび受信者を示すためにゲートウェイとプロキシが使用します。

name2 - スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、HTTP ヘッダー スティッキ用のグループを作成するには、次のように入力します。

host1/Admin(config-sticky-header)# sticky http-header Host HTTP_GROUP
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no sticky http-header Host HTTP_GROUP

HTTP ヘッダー スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の HTTP ヘッダー スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout 720

HTTP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が HTTP ヘッダー スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout activeconns
 

アクティブ接続があればヘッダー スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout activeconns

HTTP ヘッダー スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に HTTP ヘッダー スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE にヘッダー スティッキ テーブル エントリを複製するように設定するには、スティッキ ヘッダー コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-header)# replicate sticky
 

ACE をデフォルト値に戻し、スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-header)# no replicate sticky

HTTP ヘッダーのオフセットと長さの設定

特定サーバに接続を固定するために、ACE が HTTP ヘッダーの一部を使用するように設定できます。ACE に使用させたいヘッダー部分を定義するには、ヘッダーのオフセットと長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

ヘッダーのオフセットと長さを設定するには、スティッキ ヘッダー コンフィギュレーション モードで header コマンドを使用します。このコマンドの構文は次のとおりです。

header offset number1 length number2

キーワードおよび引数は、次のとおりです。

offset number1 - ヘッダーの最初のバイトから無視するバイト数を示すことにより、ACE が特定のサーバにクライアントを固定するために使用するヘッダー部分を指定します。0 ~ 999 の整数を入力します。デフォルトは 0 です。デフォルトでは、ACE はヘッダーのどの部分も除外しません。

length number2 - ACE がクライアントをサーバに固定するために使用するヘッダー部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。1 ~ 1000 の整数を入力します。デフォルト値は 1000 です。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# header offset 500 length 1000
 

設定からヘッダーのオフセットと長さを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no header offset

スタティック HTTP ヘッダー スティッキ エントリの設定

HTTP ヘッダー値(オプションで実サーバ名およびポート)に基づくスタティック ヘッダー スティッキ エントリを設定できます。スタティック スティッキ値は常に一定です。複数のヘッダー スタティック エントリを設定できますが、1 つのスタティック ヘッダー スティッキ値に対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック HTTP ヘッダー を設定するには、スティッキ ヘッダー コンフィギュレーション モードで static header-value コマンドを使用します。このコマンドの構文は次のとおりです。

static header-value value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - ヘッダー値。スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。ただし、ストリングを引用符(")で囲む場合は、スペースを含むテキスト ストリングを入力できます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。1 ~ 65535 の整数を入力します。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# static header-value 12345678 rserver SERVER1 3000
 

スティッキ テーブルからスタティック ヘッダー エントリを削除するには、次のように入力します。

host1/Admin(config-sticky- header )# no static header-value 12345678 rserver SERVER1 3000

サーバ ファームと HTTP ヘッダー スティッキ グループの関連付け

HTTP ヘッダー スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ ヘッダー コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 -(任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky -(任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-header)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-header)# no serverfarm

HTTP ヘッダー スティッキの設定例

次の例は、HTTP ヘッダー スティッキを定義している実行コンフィギュレーションです。この例では、HTTP ヘッダー スティッキの設定が太字で示してあります。

この設定では、ACE は HTTP ヘッダー スティッキを使用して、トランザクション中、サーバ ファームの指定サーバとの特定の接続が維持されるようにします。

access-list ACL1 line 10 extended permit ip any any
 
probe http HTTP
interval 5
passdetect interval 10
receive 5
expect status 200 200
open 3
 
rserver host SERVER1
ip address 192.168.252.240
inservice
rserver host SERVER2
ip address 192.168.252.241
inservice
rserver host SERVER3
ip address 192.168.252.242
inservice
rserver host SERVER4
ip address 192.168.252.243
inservice
rserver host SERVER5
ip address 192.168.252.244
inservice
rserver host SERVER6
ip address 192.168.252.245
inservice
rserver host SERVER7
ip address 192.168.252.246
inservice
rserver host SERVER8
ip address 192.168.252.247
inservice
rserver host SERVER9
ip address 192.168.252.248
inservice
 
serverfarm host SFARM1
probe HTTP
rserver SERVER1
inservice
rserver SERVER2
inservice
rserver SERVER3
inservice
serverfarm host SFARM2
probe HTTP
rserver SERVER4
inservice
rserver SERVER5
inservice
rserver SERVER6
inservice
serverfarm host DEFAULT
probe ICMP
rserver SERVER7
inservice
rserver SERVER8
inservice
rserver SERVER9
inservice
 
sticky http-header MSISDN HEADER-GROUP1
timeout 30
serverfarm SFARM1
sticky http-header TestHeader HEADER-GROUP2
header offset 15 length 7
timeout 30
serverfarm SFARM2
 
class-map match-all L4STICKY-HEADER_129:80_CLASS
2 match virtual-address 192.168.120.129 tcp eq www
class-map type http loadbalance match-all L7MSISDN_CLASS
2 match http header MSISDN header-value ".*"
class-map type http loadbalance match-all L7TESTHEADER_CLASS
2 match http header TestHeader header-value ".*"
policy-map type loadbalance first-match L7PLBSF_STICKY-HEADER_POLICY
class L7MSISDN_CLASS
sticky-serverfarm HEADER-GROUP1
class L7TESTHEADER_CLASS
sticky-serverfarm HEADER-GROUP2
class class-default
serverfarm DEFAULT
policy-map multi-match L4SH-Gold-VIPs_POLICY
class L4STICKY-HEADER_129:80_CLASS
loadbalance vip inservice
loadbalance policy L7PLBSF_STICKY-HEADER_POLICY
loadbalance vip icmp-reply active
nat dynamic 1 VLAN 120
appl-parameter http advanced-options PERSIST-REBALANCE
 
interface vlan 120
description Upstream VLAN_120 - Clients and VIPs
ip address 192.168.120.1 255.255.255.0
fragment chain 20
fragment min-mtu 68
access-group input ACL1
nat-pool 1 192.168.120.70 192.168.120.70 netmask 255.255.255.0 pat
service-policy input L4SH-Gold-VIPs_POLICY
no shutdown
ip route 10.1.0.0 255.255.255.0 192.168.120.254

RADIUS アトリビュート スティッキの設定

ここでは、ACE に RADIUS アトリビュート スティッキを設定する方法を説明します。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

RADIUS アトリビュート スティッキ設定のクイック スタート

RADIUS アトリビュート スティッキ グループの作成

RADIUS アトリビュート スティッキのタイムアウトの設定

RADIUS アトリビュート スティッキ タイムアウトによるアクティブ接続の無効化

RADIUS アトリビュート スティッキ エントリの複製

サーバ ファームと RADIUS アトリビュート スティッキ グループの関連付け

RADIUS アトリビュート スティッキ設定のクイック スタート

表 5-7 は、ACE にRADIUS アトリビュート スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-7 以降のセクションを参照してください。

 

表 5-7 RADIUS アトリビュート スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. RADIUS アトリビュート スティッキ グループを作成し、スティッキ ヘッダー コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky radius framed-ip RADIUS_GROUP
host1/Admin (config-sticky- radius )#

5. RADIUS アトリビュート スティッキのタイムアウトを設定します。

host1/Admin (config-sticky- radius ) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky- radius ) # timeout activeconns

7. スイッチオーバーに備えて、RADIUS アトリビュート スティッキ テーブル情報をスタンバイ コンテキストに複製する機能をイネーブルにします。このコマンドは冗長構成で使用します。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky- radius ) # replicate sticky

8. サーバ ファームをスティッキ接続用の RADIUS アトリビュート スティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-radius) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

10. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

11. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. RADIUS アトリビュート スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

14. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

RADIUS アトリビュート スティッキ グループの作成

RADIUS アトリビュート スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

RADIUS アトリビュート スティッキ グループを作成して、ACE が RADIUS アトリビュートに基づいてクライアント接続を同じ実サーバに固定できるようにするには、コンフィギュレーション モードで sticky radius framed-ip コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。

このコマンドの構文は次のとおりです。

sticky radius framed-ip [ calling-station-id | username ] name

キーワード、引数、およびオプションは、次のとおりです。

calling-station-id - (任意)RADIUS Framed IP アトリビュートおよび発信側端末 ID アトリビュートに基づきスティッキを指定します。

username - (任意)RADIUS Framed IP アトリビュートおよびユーザ名アトリビュートに基づきスティッキを指定します。

name - RADIUS スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、RADIUS アトリビュート スティッキ用のグループを作成するには、次のように入力します。

host1/Admin(config-sticky-radius)# sticky radius framed-ip calling-station-id RADIUS_GROUP
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config-sticky-radius)# no sticky radius framed-ip calling-station-id RADIUS_GROUP

RADIUS アトリビュート スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の RADIUS アトリビュート スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ RADIUS コンフィギュレーション モードで timeout コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-radius)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-radius)# no timeout 720

RADIUS アトリビュート スティッキ タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、たとえアクティブ接続があっても、ACE が RADIUS アトリビュート スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ RADIUS コンフィギュレーション モードで timeout activeconns コマンドを使用します。

このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-radius)# timeout activeconns

アクティブ接続があれば RADIUS アトリビュート スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-radius)# no timeout activeconns

RADIUS アトリビュート スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に RADIUS アトリビュート スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE に RADIUS アトリビュート スティッキ テーブル エントリを複製するように設定するには、スティッキ RADIUS コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-radius)# replicate sticky
 

ACE をデフォルト値に戻し、RADIUS アトリビュート スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-radius)# no replicate sticky

サーバ ファームと RADIUS アトリビュート スティッキ グループの関連付け

RADIUS アトリビュート スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。RADIUS アトリビュート スティッキ グループのサーバ ファーム エントリを設定するには、スティッキ RADIUS コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - RADIUS アトリビュート スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-radius)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-radius)# no serverfarm
 

RTSP セッション スティッキの設定

ここでは、ACE に RTSP セッション スティッキを設定する方法を説明します。ACE は、スティッキのセッション ヘッダー フィールドだけをサポートします。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

RTSP セッション スティッキ設定のクイック スタート

RTSP ヘッダー スティッキ グループの作成

RTSP セッション スティッキのタイムアウトの設定

RTSP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

RTSP ヘッダー スティッキ エントリの複製

RTSP ヘッダーのオフセットと長さの設定

スタティック RTSP ヘッダー スティッキ エントリの設定

サーバ ファームと RTSP ヘッダー スティッキ グループの関連付け

RTSP セッション スティッキ設定のクイック スタート

表 5-8 は、ACE に RTSP セッション スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-8 以降のセクションを参照してください。

 

表 5-8 RTSP セッション スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に指定のない限り、説明の目的で Admin コンテキストを使用します。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. RTSP ヘッダー スティッキ グループを作成し、スティッキ ヘッダー コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky rtsp-header Session RTSP_GROUP
host1/Admin (config-sticky- header )#

5. RTSP ヘッダー スティッキのタイムアウトを設定します。

host1/Admin (config-sticky- header ) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky- header ) # timeout activeconns

7. スイッチオーバーに備えて、RTSP ヘッダー スティッキ テーブル情報をスタンバイ コンテキストに複製する機能をイネーブルにします。このコマンドは冗長構成で使用します。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky- header ) # replicate sticky

8. サーバ ファームを スティッキ接続用の RTSP ヘッダー スティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-header) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)1 つ以上のスタティック RTSP ヘッダー スティッキ エントリを設定します。

host1/Admin (config-sticky- header ) # static header Session rserver SERVER1 4000

10. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

11. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. RTSP ヘッダー スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

15. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

RTSP ヘッダー スティッキ グループの作成

RTSP ヘッダー スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

RTSP ヘッダー スティッキ グループを作成して、ACE が RTSP セッション ヘッダー フィールドに基づいてクライアント接続を同じ実サーバに固定できるようにするには、コンフィギュレーション モードで sticky rtsp-header コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky rtsp-header Session name

キーワードおよび引数は、次のとおりです。

Session - RTSP セッション ヘッダー フィールドに基づきスティッキを指定します。

name - RTSP スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、RTSP ヘッダー スティッキ用のグループを作成するには、次のように入力します。

host1/Admin(config)# sticky rtsp-header Session RTSP_GROUP
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky rtsp-header Session RTSP_GROUP

RTSP セッション スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の RTSP ヘッダー スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout 720
 

RTSP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、アクティブ接続があっても、ACE が RTSP ヘッダー スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout activeconns
 

アクティブ接続があればヘッダー スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout activeconns

RTSP ヘッダー スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に RTSP ヘッダー スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE にヘッダー スティッキ テーブル エントリを複製するように設定するには、スティッキ ヘッダー コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-header)# replicate sticky
 

ACE をデフォルト値に戻し、RTSP ヘッダー スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-header)# no replicate sticky

RTSP ヘッダーのオフセットと長さの設定

特定サーバに接続を固定するために、ACE が RTSP セッション ヘッダーの一部を使用するように設定できます。ACE に使用させたいセッション ヘッダー部分を定義するには、ヘッダーのオフセットと長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

RTSP セッション ヘッダーのオフセットと長さを設定するには、スティッキ ヘッダー コンフィギュレーション モードで header コマンドを使用します。このコマンドの構文は次のとおりです。

header offset number1 length number2

キーワードおよび引数は、次のとおりです。

offset number1 - ヘッダーの最初のバイトから無視するバイト数を示すことにより、ACE が特定のサーバにクライアントを固定するために使用するヘッダー部分を指定します。0 ~ 999 の整数を入力します。デフォルトは 0 です。デフォルトでは、ACE はヘッダーのどの部分も除外しません。

length number2 - ACE がクライアントをサーバに固定するために使用するヘッダー部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。1 ~ 1000 の整数を入力します。デフォルト値は 1000 です。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# header offset 500 length 1000
 

設定からヘッダーのオフセットと長さを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no header offset

スタティック RTSP ヘッダー スティッキ エントリの設定

ヘッダー値(オプションで実サーバ名およびポート)に基づくスタティック RTSP ヘッダー スティッキ エントリを設定できます。スタティック スティッキ値は常に一定です。複数のヘッダー スタティック エントリを設定できますが、1 つのスタティック ヘッダー スティッキ値に対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック ヘッダーを設定するには、スティッキ ヘッダー コンフィギュレーション モードで static header-value コマンドを使用します。このコマンドの構文は次のとおりです。

static header-value value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - ヘッダー値。スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。
1 ~ 65535 の整数を入力します。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# static header-value 12345678 rserver SERVER1 3000
 

スティッキ テーブルから RTSP ヘッダー エントリを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no static header-value 12345678 rserver SERVER1 3000
 

サーバ ファームと RTSP ヘッダー スティッキ グループの関連付け

RTSP ヘッダー スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。RTSP スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ ヘッダー コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - RTSP ヘッダー スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 -(任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky -(任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-header)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-header)# no serverfarm
 

SIP コール ID スティッキの設定

ここでは、SIP コール ID スティッキを ACE に設定する方法を説明します。ACE は、スティッキの SIP コール ID ヘッダー フィールドだけをサポートします。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの regex のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

SIP コール ID スティッキ設定のクイック スタート

SIP ヘッダー スティッキ グループの作成

SIP コール ID スティッキのタイムアウトの設定

SIP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

SIP ヘッダー スティッキ エントリの複製

スタティック SIP ヘッダー スティッキ エントリの設定

サーバ ファームと SIP ヘッダー スティッキ グループの関連付け

SIP コール ID スティッキ設定のクイック スタート

表 5-9 は、ACE に SIP コール ID スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。各機能および CLI コマンドに関連付けられているすべてのオプションについての詳細は、 表 5-9 以降のセクションを参照してください。

 

表 5-9 SIP コール ID スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付ける作業が完了していることを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。リソース クラスの設定およびリソースの割り当てに関する詳細は、『 Cisco Application Control Engine Module Virtualization Configuration Guide 』を参照してください。

4. SIP コール ID スティッキ グループを作成し、スティッキ ヘッダー コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky sip-header Call-ID SIP_GROUP
host1/Admin (config-sticky- header )#

5. SIP ヘッダー スティッキのタイムアウトを設定します。

host1/Admin (config-sticky- header ) # timeout 720

6. (任意)タイムアウトによるアクティブ接続の無効化をイネーブルにします。

host1/Admin (config-sticky- header ) # timeout activeconns

7. スイッチオーバーに備えて、ヘッダー スティッキ テーブル情報をスタンバイ コンテキストに複製する機能をイネーブルにします。このコマンドは冗長構成で使用します。ACE の冗長構成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

host1/Admin (config-sticky- header ) # replicate sticky

8. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-header) # serverfarm SFARM1 backup BKUP_SFARM2 sticky

9. (任意)1 つ以上のスタティック ヘッダー スティッキ エントリを設定します。

host1/Admin (config-sticky- header ) # static header Call-ID rserver SERVER1 4000

10. レイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーを設定します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

11. レイヤ 7 SLB トラフィック ポリシーを設定し、スティッキ グループをレイヤ 7 ポリシー マップに関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. レイヤ 7 SLB トラフィック ポリシーをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

14. ヘッダー スティッキの設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

15. (任意)設定変更をフラッシュ メモリに保存します。

host1/Admin# copy running-config startup-config

SIP ヘッダー スティッキ グループの作成

SIP ヘッダー スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

SIP ヘッダー スティッキ グループを作成して、ACE が SIP コール ID ヘッダー フィールドに基づいてクライアント接続を同じ実サーバに固定できるようにするには、コンフィギュレーション モードで sticky sip-header コマンドを使用します。各 ACE に、最大 4096 のスティッキ グループを作成できます。このコマンドの構文は次のとおりです。

sticky sip-header Call-ID name

キーワードおよび引数は、次のとおりです。

sip-header Call-ID - SIP コール ID ヘッダー フィールドに基づきスティッキを指定します。

name - スティッキ グループの固有識別情報。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、SIP ヘッダー スティッキ用のグループを作成するには、次のように入力します。

host1/Admin(config-sticky-header)# sticky sip-header Call-ID SIP_GROUP
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no sticky sip-header Call-ID SIP_GROUP

SIP コール ID スティッキのタイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の SIP ヘッダー スティッキ情報を ACE が維持する時間です。ACE が特定のスティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout 720
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout 720

SIP ヘッダー スティッキ タイムアウトによるアクティブ接続の無効化

スティッキ タイマーの満了後、アクティブ接続があっても、ACE が SIP ヘッダー スティッキ テーブルのエントリをタイムアウトにするように指定するには、スティッキ ヘッダー コンフィギュレーション モードで timeout activeconns コマンドを使用します。このコマンドの構文は次のとおりです。

timeout activeconns

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# timeout activeconns
 

アクティブ接続があれば SIP ヘッダー スティッキ エントリをタイムアウトにしないというデフォルトの設定に ACE を戻すには、次のように入力します。

host1/Admin(config-sticky-header)# no timeout activeconns

SIP ヘッダー スティッキ エントリの複製

冗長構成を使用している場合は、スタンバイ ACE に SIP ヘッダー スティッキ テーブル エントリを複製するように ACE を設定すると、スイッチオーバー発生時にも新しいアクティブ ACE で既存のスティッキ接続を維持できます。ACE がスタンバイ ACE に SIP ヘッダー スティッキ テーブル エントリを複製するように設定するには、スティッキ ヘッダー コンフィギュレーション モードで replicate sticky コマンドを使用します。このコマンドの構文は次のとおりです。

replicate sticky


) スタンバイ ACE 上のスティッキ テーブル エントリのタイマーは、そのエントリがアクティブ ACE のエントリと同期化されるたびにリセットされます。したがって、スタンバイ スティッキ エントリのライフタイムは、アクティブ エントリの最大 2 倍となる可能性があります。ただし、アクティブ ACE でそのエントリの期限が切れたり、新しい実サーバが選択されて新しいエントリが作成されると、スタンバイ ACE 上の古いエントリは置き換えられます。


たとえば、次のように入力します。

host1/Admin(config-sticky-header)# replicate sticky
 

ACE をデフォルト値に戻し、SIP ヘッダー スティッキ テーブル エントリが複製されないようにするには、次のように入力します。

host1/Admin(config-sticky-header)# no replicate sticky

スタティック SIP ヘッダー スティッキ エントリの設定

ヘッダー値(オプションで実サーバ名およびポート)に基づくスタティック ヘッダー スティッキ エントリを設定できます。スタティック スティッキ値は常に一定です。複数の SIP ヘッダー スタティック エントリを設定できますが、1 つのスタティック SIP ヘッダー スティッキ値に対応付けることができるのは、重複しない 1 つの実サーバ名だけです。


) スタティック エントリを設定すると、ACE はこれを即座にスティッキ テーブルに入力します。最大 4096 のスタティック エントリを作成できます。


スタティック SIP ヘッダーを設定するには、スティッキ ヘッダー コンフィギュレーション モードで static header-value コマンドを使用します。このコマンドの構文は次のとおりです。

static header-value value rserver name [ number ]

キーワード、引数、およびオプションは、次のとおりです。

value - SIP ヘッダー値。スペースを含まず引用符なしの英数字を入力します(最大 255 文字)。または、ストリング全体を引用符(")で囲むことによって、スペースが含まれるテキスト ストリングを入力することもできます。

rserver name - 既存の実サーバのホスト名を指定します。

number - (任意)実サーバのポート番号。
1 ~ 65535 の整数を入力します。

たとえば、次のように入力します。

host1/Admin(config-sticky-header)# static header-value 12345678 rserver SERVER1 3000
 

スティッキ テーブルからスタティック ヘッダー エントリを削除するには、次のように入力します。

host1/Admin(config-sticky-header)# no static header-value 12345678 rserver SERVER1 3000

サーバ ファームと SIP ヘッダー スティッキ グループの関連付け

SIP ヘッダー スティッキ グループの設定を完了するには、グループにサーバ ファーム エントリを設定する必要があります。スティッキ グループにサーバ ファーム エントリを設定するには、スティッキ ヘッダー コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1 [ backup name2 [ sticky ] [ aggregate-state ]]

キーワード、引数、およびオプションは、次のとおりです。

name1 - スティッキ グループと関連付ける既存のサーバ ファームの識別子。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

backup name2 - (任意)バックアップ サーバ ファームとして ACE に使用させる既存のサーバ ファームの識別子を指定します。プライマリ サーバ ファームが停止した場合、ACE は設定されているバックアップ サーバ ファームを使用します。クライアントがバックアップ サーバ ファームに固定されると、プライマリ サーバ ファームが再びアクティブになっても、そのクライアントはバックアップ サーバ ファームに固定されたままになります。バックアップ サーバ ファームに関する詳細は、「スティッキ機能によるサーバ ファーム動作のバックアップ」を参照してください。

sticky - (任意)バックアップ サーバ ファームにスティッキ機能を指定します。

aggregate-state - このオプションは廃止予定であり、すでに VIP の状態には有効ではありません。デフォルトでは、ACE は、VIP をアウト オブ サービスにする前にバックアップ サーバ ファーム内のすべての実サーバのステートを考慮します。プライマリ サーバ ファームのすべての実サーバに障害が起きても、バックアップ サーバ ファームに動作中の実サーバが 1 つ以上あれば、ACE は VIP の稼動状態を維持します。

たとえば、サーバ ファームをスティッキ グループに関連付けて、スティッキ バックアップ サーバ ファームを指定するには、次のように入力します。

host1/Admin(config-sticky-header)# serverfarm SFARM1 backup BKUP_SFARM2 sticky
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-header)# no serverfarm

SSL セッション ID スティッキの設定

ここでは、SSL セッション ID スティッキを ACE に設定する方法を説明します。この機能を利用すると、ACE は SSL セッションの期間中、一意の SSL セッション ID に基づき同じクライアントを同じ SSL サーバに固定できます。

クライアントが SSL サーバとの新しい SSL 接続を要求した場合、最初の TCP 接続には 0 の SSL セッション ID が含まれます。この 0 値は、サーバに新しい SSL セッションを設定して、SSL セッション ID を生成する必要があることを示します。サーバはその応答で、この新しい SSL セッション ID を SSL ハンドシェークの一部としてクライアントに送信します。ACE は、サーバから新しい SSL セッション ID を学習し、スティッキ テーブルにその値を入力します。同じクライアントからの後続の SSL 接続については、ACE は SSL セッションの期間中スティッキ テーブル内の SSL セッション ID 値を使用してクライアントを同じ SSL サーバに固定します。ただし、SSL セッション ID が再ネゴシエーションされていないことが条件です。

SSL セッション ID スティッキは ACE の特定の設定の GPP(総称プロトコル解析)機能を使用します。ここで使用されるコマンドの一部は構文と説明が簡易化されており、SSL セッション ID スティッキの設定に必要なものについてだけ詳細を説明しています。ここで参照されているすべてのスティッキ関係コマンドの完全な説明については、「レイヤ 4 ペイロード スティッキの設定」を参照してください。


) 1 つのレイヤ 4 ポリシー マップに、同タイプの正規表現(regex)のインスタンスを最大 1024 関連付けることができます。この制限は、generic、HTTP、RADIUS、RDP、RTSP、SIP など、すべてのレイヤ 7 ポリシー マップ タイプに適用されます。regex を設定できる場所は、次のとおりです。

レイヤ 7 クラス マップの match ステートメント

レイヤ 7 ポリシー マップのインライン match ステートメント

サーバ ファームのレイヤ 7 ハッシュ プレディクタ

スティッキ グループ内のレイヤ 7 スティッキ表現

レイヤ 7 アクション リスト内のヘッダー挿入および再書き込み(SSL URL 再書き込みを含む)表現


 

ここでは、次の内容について説明します。

設定の要件および考慮事項

SSL セッション ID スティッキ設定のクイック スタート

レイヤ 4 ペイロード スティッキ グループの作成

レイヤ 4 ペイロード スティッキ タイムアウトの設定

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

SSL サーバからの SSL セッション ID ラーニングのイネーブル化

SSL セッション ID のオフセット、長さ、開始パターンの設定

32 バイト SSL セッション ID の SSL セッション ID スティッキ設定の例

設定の要件および考慮事項

SSL セッション ID スティッキを設定する場合、次の設定要件および考慮事項を念頭に置いてください。

リソース クラスを設定し、リソースの最小パーセンテージをスティッキに割り当て、SSL セッション ID スティッキを設定する 1 つ以上のコンテキストをリソース クラスに関連付けたことを確認します。「スティッキ設定についての設定の要件および考慮事項」を参照してください。

この機能は、SSLv3 および TLS1 だけをサポートします。SSLv2 は暗号化データ内に SSL ID を置きます。これによって ACE または他のロード バランサは、SSL ID をインスペクションできなくなります。

ACE は、1 ~ 32 バイトの SSL セッション ID をサポートします。

SSL セッション ID スティッキは通常、ACE が SSL トラフィックを終了しない場合にだけ必要です。

GPP ポリシー マップを設定する必要があります。

ACE で解析する TCP ペイロードの最大バイト数を指定するために、総称パラメータ マップを設定します。最大解析長の値は必ず 70 にする必要があります。

SSL セッション ID スティッキ設定のクイック スタート

表 5-10 は、ACE に 32 バイト SSL セッション ID スティッキを設定するために必要な手順を簡潔にまとめたものです。各手順には、その作業を完了するために必要な CLI コマンド、または手順の参照先が含まれています。CLI コマンドに関連付けられている各タスクおよび詳細の完全な説明については、 表 5-10 以降のセクションを参照してください。

 

表 5-10 32 バイト SSL セッション ID スティッキ設定のクイック スタート

作業およびコマンドの例

1. 複数のコンテキストを使用している場合は、CLI プロンプトに注意し、目的のコンテキスト内で作業を実行していることを確認します。必要な場合は、正しいコンテキストに変更するか、または正しいコンテキストに直接ログインしてください。

host1/Admin# changeto C1
host1/C1#
 

この表の以降の例では、特に記載がない限り、Admin コンテキストが使用されています。コンテキストの作成に関する詳細は、『 Cisco Application Control Engine Module Administration Guide 』を参照してください。

2. コンフィギュレーション モードを開始します。

host1/Admin# config
host1/Admin (config)#

3. SSL サーバの実サーバを設定し、これを SSL サーバ ファームに関連付けます。 「実サーバおよびサーバ ファームの設定」 を参照してください。

4. 32 バイト (デフォルト長) SSL ID のレイヤ 4 ペイロード スティッキ グループを作成し、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードを開始します。

host1/Admin(config)# sticky layer4-payload SSL_GROUP
host1/Admin (config-sticky-l4payloa)#

5. SSL セッション ID スティッキのタイムアウトの設定

host1/Admin (config-sticky-l4payloa) # timeout 600

6. サーバ ファームをスティッキ接続用のスティッキ グループと関連付けて、任意でバックアップ サーバ ファームの状態をプライマリ サーバ ファームのすべての実サーバおよびバックアップ サーバ ファームのすべての実サーバの状態と結合します。

host1/Admin (config-sticky-l4payloa) # serverfarm SSL_SFARM1

7. ACE がサーバ応答から SSL セッション ID を学習できるようスティッキ ラーニングを設定します。

host1/Admin (config-sticky-l4payloa) # response sticky

8. レイヤ 4 ペイロードのオフセット、長さ、および開始パターンを設定し、ACE に 32 バイト SSL ID を含むペイロードの部分だけを解析するよう指示します。

host1/Admin (config-sticky-l4payloa) # layer4-payload offset 43 length 32 begin-pattern “\x20”
host1/Admin (config-sticky-l4payloa) # exit

9. ACE で解析する TCP ペイロードの最大バイト数を指定するために、総称パラメータ マップを設定します。

host1/Admin (config)# parameter-map type generic SSLID_PARAMMAP
host1/Admin (config-parammap-generi)# set max-parse-length 70
host1/Admin (config)# exit

10. レイヤ 7 総称ポリシー マップを設定します。

host1/Admin (config)# policy-map type loadbalance generic first-match SSLID_32_POLICY
host1/Admin (config-pmap-lb-generic)# class class-default
host1/Admin (config-pmap-lb-generic-c)# sticky serverfarm SSL_GROUP
host1/Admin (config-pmap-lb-generic-c)# exit
host1/Admin (config-pmap-lb-generic)# exit
host1/Admin (config)#

11. レイヤ 3 およびレイヤ 4 サーバ ロード バランシング トラフィック ポリシーを設定します。レイヤ 7 SLB トラフィック ポリシーおよび総称パラメータ マップをレイヤ 3 およびレイヤ 4 SLB トラフィック ポリシーと関連付けます。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

12. サーバ ポリシーを使用して、レイヤ 3 およびレイヤ 4 トラフィック ポリシーをインターフェイスに適用します。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

13. SSL セッション ID スティッキ設定を表示します。必要に応じて設定を変更し、再度 show コマンドを入力して、設定変更を確認します。

host1/Admin# show running-config sticky

レイヤ 4 ペイロード スティッキ グループの作成

SSL セッション ID スティッキ用レイヤ 4 ペイロード スティッキ グループの設定を開始する前に、スティッキにリソースが割り当てられていることを確認します(「スティッキ設定についての設定の要件および考慮事項」を参照)。

コンフィギュレーション モードで sticky layer4-payload コマンドを使用してレイヤ 4 ペイロード スティッキ グループを作成する方法。このコマンドの構文は次のとおりです。

sticky layer4-payload name

name 引数は、スティッキ グループの固有識別情報です。スペースを含まず引用符なしの英数字を入力します(最大 64 文字)。

たとえば、SSL ID スティッキ グループを設定するには、次のように入力します。

host1/Admin(config)# sticky layer4-payload SSL_GROUP
host1/Admin(config-sticky-l4payloa)#
 

設定からスティッキ グループを削除するには、次のように入力します。

host1/Admin(config)# no sticky layer4-payload SSL_GROUP

レイヤ 4 ペイロード スティッキ タイムアウトの設定

スティッキ タイムアウトは、最後のクライアント接続終了後にスティッキ テーブル内のそのクライアント接続の SSL セッション ID スティッキ情報を ACE が維持する時間です。ACE が特定の SSL ID スティッキ テーブル エントリと一致する新しい接続をオープンするたびに モジュール はそのエントリのスティッキ タイマーをリセットします。

スティッキ タイムアウトを設定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで timeout minutes コマンドを使用します。このコマンドの構文は次のとおりです。

timeout minutes

minutes 引数には、1 ~ 65535 の整数を入力します。デフォルトは 1440 分(24 時間)です。

たとえば、次のように入力します。

host1/Admin(config-sticky-l4payloa)# timeout 600
 

1440 分のデフォルト値にタイムアウトをリセットするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no timeout 600

サーバ ファームとレイヤ 4 ペイロード スティッキ グループの関連付け

各スティッキ グループごとに、1 つのサーバ ファームをグループと関連付ける必要があります。サーバ ファーム をスティッキ グループと関連付けるには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで serverfarm コマンドを使用します。このコマンドの構文は次のとおりです。

serverfarm name1

name1 引数は、スティッキ グループと関連付ける既存のサーバ ファームの識別子を指定します。各スティッキ グループにサーバ ファームを 1 つ関連付けることができます。

たとえば、サーバ ファームをスティッキ グループと関連付けるには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# serverfarm SSL_SFARM1
 

サーバ ファームとスティッキ グループの関連付けを解除するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no serverfarm

SSL サーバからの SSL セッション ID ラーニングのイネーブル化

ACE が SSL サーバ応答を解析し、SSL セッション ID ラーニングを実行するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで replicate sticky コマンドを使用します。ACE は、SSL サーバ応答バイトのハッシュを使用して、スティッキ データベースにデータを入力します。ACE は、次回同じ SSL セッション ID でクライアント要求を受信した場合、そのクライアントを同じ SSL サーバに固定します。このコマンドの構文は次のとおりです。

response sticky

たとえば、ACE が SSL サーバからの応答バイトを解析し、SSL セッション ID を学習できるようにするには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# response sticky
 

SSL サーバ応答を解析せずに、スティッキ ラーニングを実行するというデフォルトの動作に ACE をリセットするには、次のコマンドを入力します。

host1/Admin(config-sticky-l4payloa)# no response sticky
 

SSL セッション ID のオフセット、長さ、開始パターンの設定

SSLv3/TLS1 については、SSL セッション ID は常に TCP パケット ペイロードの同じ場所に表示されます。ACE が特定の SSL サーバに接続を固定するために、ペイロードの変化しない部分を使用するように設定できます。ACE に使用させたいペイロード部分を定義するには、ペイロードのオフセットと長さの値を指定します。ACE はこれらの値をスティッキ テーブルに保存します。

また、ACE がクライアントを特定の SSL サーバに固定するために使用する正規表現に基づき開始パターンを指定することもできます。正規表現の詳細については、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 を参照してください。

ペイロードのオフセット、長さ、および開始パターンを設定するには、スティッキ レイヤ 4 ペイロード コンフィギュレーション モードで layer4-payload コマンドを使用します。このコマンドの構文は次のとおりです。

layer4-payload offset number1 length number2 begin-pattern expression

キーワード、引数、およびオプションは、次のとおりです。

offset number1 - ペイロードの最初のバイトから無視するバイト数を示すことにより、ACE が特定の SSL サーバにクライアントを固定するペイロード部分を指定します。SSLv3 については、SSL ID が常に表示されるオフセットである 43 を入力します。

length number2 - ACE がクライアントを SSL サーバに固定するために使用するペイロード部分の長さ(オフセット値の後ろのバイトからの長さ)を指定します。32 バイト SSL ID については、 32 を入力します。

begin-pattern expression - ペイロードの開始パターンおよびハッシュを行う前に照合するパターン ストリングを指定します。開始パターンを指定しない場合、ACE はオフセット バイトの直後に解析を開始します。32 バイト SSL ID については、 「\x20」 を入力します。ACE は、ストリング式の照合に正規表現を使用することをサポートします。 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 表 3-3 には、ストリング式の照合に使用できる、サポート対象文字の一覧があります。

たとえば、32 バイト SSL セッション ID を指定するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# layer4-payload offset 43 length 32 begin-pattern “\x20”
 

設定からペイロードのオフセット、長さ、および開始パターンを削除するには、次のように入力します。

host1/Admin(config-sticky-l4payloa)# no layer4-payload

32 バイト SSL セッション ID の SSL セッション ID スティッキ設定の例

次の設定例は、32 バイト SSL セッション ID の SSL セッション ID スティッキを設定する方法を示したものです。ここには、SSL セッション ID スティッキ コマンドに加えて通常のロード バランシング ポリシーが含まれています。SSL セッション ID スティッキ特定のコマンドおよび関連するコマンドは太字で示してあります。

resource-class RC1
limit-resource sticky minimum 10.00 maximum equal-to-min
 
access-list ACL1 line 10 extended permit ip any any
 
parameter-map type generic SSLID_PARAMMAP
set max-parse-length 70
 
rserver SSL_SERVER1
ip address 192.168.12.2
inservice
rserver SSL_SERVER2
ip address 192.168.12.3
inservice
 
serverfarm SSL_SFARM1
rserver SSL_SERVER1
inservice
rserver SSL_SERVER2
inservice
 
sticky layer4-payload SSL_GROUP
timeout 600
serverfarm SSL_SFARM1
response sticky
layer4-payload offset 43 length 32 begin-pattern “\x20”
 
class-map match-any L4_CLASS
match virtual-address 172.27.16.2 tcp eq any
 
policy-map type loadbalance generic first-match SSLID_32_POLICY
class class-default
sticky-serverfarm SSL_GROUP
 
policy-map multi-match L4_POLICY
class L4_CLASS
loadbalance vip advertise active
loadbalance vip inservice
loadbalance vip icmp-reply active
loadbalance policy SSLID_32_POLICY
appl-parameter generic advanced-options SSLID-PARAMMAP
 
interface vlan 200
ip address 172.27.16.1 255.255.255.0
access-group input ACL1
service-policy input L4_POLICY
 
interface vlan 300
ip address 192.168.12.1 255.255.255.0
 
context Admin
member RC1
 

) 異なった長さのセッション ID の SSL セッション ID スティッキについては、必要なだけクラス マップを設定することができます。


スティッキの SLB トラフィック ポリシーの設定

スティッキ グループに特定タイプのスティッキを制御するパラメータを設定したら、レイヤ 3 およびレイヤ 4 トラフィック ポリシーとレイヤ 7 トラフィック ポリシーを作成する必要があります。たとえば、HTTP ヘッダー スティッキの SLB ポリシーを設定するには、次の手順を実行します。


ステップ 1 レイヤ 7 クラス マップとレイヤ 7 ポリシー マップを設定してから、そのクラス マップとポリシー マップを関連付けます。

host1/Admin(config)# class-map type http loadbalance match-any L7SLBCLASS
host1/Admin(config-cmap-http-lb)# match http 1 -value field=stream
host1/Admin(config-cmap-http-lb)# exit
host1/Admin(config)# policy-map type loadbalance first-match L7SLBPOLICY
host1/Admin(config-pmap-lb)# class L7SLBCLASS
host1/Admin(config-pmap-lb-c)#
 

ステップ 2 レイヤ 7 ポリシー マップのアクションとしてスティッキ グループを関連付けます。

host1/Admin(config-pmap-lb-c)# sticky-serverfarm STICKY_GROUP1
 

ステップ 3 レイヤ 7 HTTP パラメータ マップを設定します。アプリケーションの必要に応じてパラメータを設定します。HTTP パラメータ マップの設定に関する詳細は、「HTTP パラメータ マップの設定」を参照してください。

host1/Admin(config)# parameter-map type http HTTP_PARAM_MAP
host1/Admin(config-parammap-http)# set header-maxparse-length 8192
host1/Admin(config-parammap-http)# length-exceed continue
host1/Admin(config-parammap-http)# persistence-rebalance
host1/Admin(config-parammap-http)# exit
 

ステップ 4 レイヤ 3 およびレイヤ 4 のクラス マップとポリシー マップを設定してから、そのクラス マップとポリシー マップを関連付けます。

host1/Admin(config)# class-map L4VIPCLASS
host1/Admin(config-cmap)# match virtual-address 192.168.1.10 tcp eq 80
host1/Admin(config-cmap) exit
host1/Admin(config)# policy-map multi-match L4POLICY
host1/Admin(config-pmap)# class L4VIPCLASS
host1/Admin(config-pmap-c)#
 

ステップ 5 レイヤ 7 ポリシー マップをレイヤ 3 およびレイヤ 4 ポリシー マップと関連付けます。

host1/Admin(config-pmap-c)# loadbalance policy L7SLBPOLICY
host1/Admin(config-pmap-c)# loadbalance vip inservice
 

ステップ 6 HTTP パラメータ マップをレイヤ 3 およびレイヤ 4 ポリシー マップと関連付けます。

host1/Admin(config-pmap-c)# appl-parameter http advanced-options HTTP_PARAM_MAP
host1/Admin(config-pmap-c)# exit
 

ステップ 7 レイヤ 3 およびレイヤ 4 ポリシー マップをインターフェイスに適用します(サービス ポリシーを使用して各インターフェイスに適用するか、または現在のコンテキストのすべてのインターフェイスにグローバルに適用します)。

host1/Admin(config)# interface vlan 100
host1/Admin(config-if)# service-policy input L4POLICY
 

または

host1/Admin(config)# service-policy input L4POLICY
 


 

SLB トラフィック ポリシーの設定に関する詳細は、 「サーバ ロード バランシングに関するトラフィック ポリシーの設定」 を参照してください。

スティッキの設定および統計情報の表示

ここでは、スティッキの設定および統計情報の表示に使用できる show コマンドについて説明します。具体的な内容は次のとおりです。

スティッキ設定の表示

スティッキ データベース エントリの表示

スティッキの統計情報の表示

スティッキ設定の表示

現在のスティッキ設定を表示するには、EXEC モードで show running-config コマンドを使用します。このコマンドの構文は次のとおりです。

show running-config sticky

このコマンドの出力には、設定されているスティッキ グループとそのアトリビュートが表示されます。

スティッキ データベース エントリの表示

ACE は、次のカテゴリの情報に基づいてスティッキ データベースにスティッキ エントリを保存します。

クライアントの IP アドレス

スティッキ グループ ID

HTTP コンテンツ値

HTTP cookie 値

HTTP ヘッダー値

レイヤ 4 ペイロード

実サーバ名

スタティック スティッキ データベース エントリ

スティッキ グループ タイプ

スティッキ データベース エントリ情報を表示するには、EXEC モードで show sticky database コマンドを使用します。このコマンドの構文は次のとおりです。

show sticky database [ static ] [ client ip_address | group name1 | http-content value1 | http-cookie value2 | http-header value3 | layer4-payload value4 | rserver name2 | rtsp-header value5 | sip-header value6 | type { http-cookie | http-header | ip-netmask | radius }]

キーワード、引数、およびオプションは、次のとおりです。

static - (任意)後ろに指定されるスタティック スティッキ エントリ タイプのスタティック スティッキ データベース エントリを表示します。

client ip_address - (任意)指定のクライアント送信元 IP アドレスのスティッキ データベース エントリを表示します。

group name1 - (任意)指定スティッキ グループ名のスティッキ データベース エントリを表示します。

http-content value1 - (任意)指定 HTTP コンテンツ値のスティッキ データベース エントリを表示します。

http-cookie value2 - (任意)指定 HTTP cookie 値のスティッキ データベース エントリを表示します。

http-header value3 - (任意)指定 HTTP ヘッダー値のスティッキ データベース エントリを表示します。

layer4-payload value4 - (任意)指定レイヤ 4 ペイロード値のスティッキ データベース エントリを表示します。

rserver name2 - (任意)指定の実サーバ名のスティッキ データベース エントリを表示します。

rtsp-header value5 - (任意)指定 RTSP ヘッダー値のスティッキ データベース エントリを表示します。

sip-header value6 - (任意)指定 SIP ヘッダー値のスティッキ データベース エントリを表示します。

type - (任意)次のいずれかのスティッキ グループ タイプのスティッキ データベース エントリを表示します。

http-cookie

http-header

ip-netmask

radius

たとえば、次のように入力します。

host1/Admin# show sticky database
sticky group : src-ip
type : IP
timeout : 1440 timeout-activeconns : FALSE
sticky-entry rserver-instance time-to-expire flags
---------------------+-----------------------+----------+-------+
3232236541 rs1:0 86399 -
 

表 5-11 に、 show sticky database コマンドで出力される各フィールドの説明を示します。

 

表 5-11 show sticky database コマンドの出力フィールド

フィールド
説明

Sticky Group

スティッキ グループの名前

Type

スティッキ グループのタイプ(HTTP-HEADER など)

Timeout

スティッキ テーブル内のエントリのタイムアウト(分)

Timeout-
Activeconns

timeout activeconns コマンドがイネーブルかディセーブルかを示します。このコマンドがイネーブルの場合は、アクティブな接続があってもスティッキ接続はタイムアウトになります。値は TRUE(イネーブル)または FALSE(ディセーブル)です。

Sticky-Entry

データベース内のスティッキ エントリのハッシュ値

Rserver-instance

そのスティッキ グループに関連付けられている実サーバの名前およびオプションのポート(rs1:81 など)。サーバ ファーム内の実サーバにポートが設定されていない場合、ポートは 0 として表示されます(rs1:0 など)。

Time-To-Expire

スティッキ タイムアウトの残り時間(秒)。期限のないスティッキ エントリの場合、値は「never」になります。スタティック スティッキ エントリの値は常に「never」です。

Flags

将来使用できるように確保されています。

Sticky Replicate

冗長構成で ACE がピアの ACE にスティッキ エントリを複製するかどうかを示します。

スティッキの統計情報の表示

現在のコンテキストのグローバル スティッキ統計情報を表示するには、EXEC モードで show stats sticky コマンドを使用します。このコマンドの構文は次のとおりです。

show stats sticky

表 5-12 に、 show stats sticky コマンドで出力される各フィールドの説明を示します。

 

表 5-12 show stats sticky コマンド出力のフィールド

フィールド
説明

Total Sticky Entries Reused Prior to Expiry

エントリの期限が切れていなくとも、データベースがいっぱいであったり、新しいスティッキ接続が受信されたなどの理由で ACE が消去する必要のあるスティッキ データベースの古いスティッキ エントリの総数

Total Active Sticky Entries

現在マッピングされているフローがあるスティッキ データベースのエントリの総数

Total Active Sticky Conns

現在アクティブであるスティッキ接続の総数

Total Static Sticky Entries

スティッキ データベースにある設定されたスタティック エントリの総数

スティッキ統計情報の消去

現在のコンテキストのすべてのスティッキ統計情報を消去するには、EXEC モードで clear stats sticky コマンドを使用します。このコマンドの構文は次のとおりです。

clear stats sticky

たとえば、Admin コンテキストのすべてのスティッキ統計情報を消去するには、次のように入力します。

host1/Admin# clear stats sticky
 

) 冗長性構成の場合は、アクティブとスタンバイ両方の ACE で、スティッキ統計情報を明示的に消去する必要があります。アクティブ モジュール上の統計情報を消去しても、スタンバイ モジュールの統計情報は古い値のまま残ります。


ダイナミック スティッキ データベース エントリの消去

ダイナミック スティッキ データベース エントリを消去するには、EXEC モードで clear sticky database コマンドを使用します。このコマンドの構文は次のとおりです。

clear sticky database { all | group group_name }

キーワードおよび引数は、次のとおりです。

all - そのコンテキストのすべてのダイナミック スティッキ データベース エントリを消去します。

group group_name - 指定スティッキ グループのすべてのダイナミック スティッキ データベース エントリを消去します。


) このコマンドでは、スタティック スティッキ データベース エントリは消去されません。スタティック スティッキ データベース エントリを消去する場合は、static コマンドの no 形式を使用してください。


たとえば、スティッキ グループ名 GROUP1 のダイナミック スティッキ データベースをすべて消去する場合は、次のように入力します。

host1/Admin# clear sticky database GROUP1

スティッキの設定例

ここでは、スティッキの設定例を示します。

resource-class RC1
limit-resource all minimum 0.00 maximum unlimited
limit-resource sticky minimum 10.00 maximum unlimited
 
context Admin
member RC1
 
rserver SERVER1
address 192.168.12.15
probe PROBE1
inservice
 
rserver SERVER2
address 192.168.12.16
probe PROBE2
inservice
 
serverfarm SFARM1
rserver SERVER1
inservice
rserver SERVER2
inservice
 
sticky http-header Host GROUP4
serverfarm SFARM1
timeout 720
timeout activeconns
replicate sticky
header offset 3000 length 1000
static header Host rserver SERVER1 4000
 
class-map match-any L4CLASS
10 match virtual-address 192.168.12.15 netmask 255.255.255.0 tcp port eq 80
 
class-map type http loadbalance match-any L7CLASS
10 match http header Host header-value .*cisco.com
 
policy-map multi-match L4POLICY
sequence interval 10
class L4CLASS
loadbalance policy L7POLICY
 
policy-map type loadbalance first-match L7POLICY
class L7CLASS
sticky-serverfarm GROUP4
insert-http Host header-value *.cisco.com
 
interface vlan 193
ip address 192.168.3.13 255.255.255.0
service-policy input L4POLICY
no shutdown
 
context Admin
member RC1
 

次の作業

ファイアウォール ロード バランシング(FWLB)を設定する場合は、 「ファイアウォール負荷分散の設定」 を参照してください。