Catalyst 6500 シリーズ スイッチ コンテント スイッチング モジュール インストレーション コンフィギュレーション ノート Software Release 4.1(2)
追加機能とオプションの設定
追加機能とオプションの設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

追加機能とオプションの設定

セッションの永続性(スティッキ性)の設定

固定(sticky)グループの設定

Cookie 挿入

Cookie 固定のオフセットおよび長さ

URLラーニング

RHIの設定

RHIについて

RHIの概要

RHIを使用しないVIPアドレスへのルーティング

RHIを使用するVIPアドレスへのルーティング

CSMがVIPの可用性を判別する仕組み

VIPの可用性情報の伝播

仮想サーバ用RHIの設定

環境変数

永続接続の設定

HTTP のヘッダー挿入

GSLB の設定

GSLB拡張機能セット オプションの使用

GSLBの設定

ネットワーク管理の設定

実サーバの SNMP トラップの設定

XMLインターフェイスの設定

Server Application State Protocol の設定

SASP グループの設定

GWM の設定

代替 bind_id の設定

CSM の固有 の ID の設定

重み付けのスケーリングの設定

バックエンドでの暗号化

クライアント側の設定

サーバ側の設定

バックエンド サーバとしての CSM の設定

バックエンド サーバとしての実サーバの設定

追加機能とオプションの設定

この章では、コンテント スイッチングの設定方法について説明します。この章の構成は次のとおりです。

「セッションの永続性(スティッキ性)の設定」

「RHIの設定」

「環境変数」

「永続接続の設定」

「HTTP のヘッダー挿入」

「GSLB の設定」

「ネットワーク管理の設定」

「Server Application State Protocol の設定」

「バックエンドでの暗号化」

セッションの永続性(スティッキ性)の設定

セッションの永続性(スティッキ性)とは、同一クライアントから同一サーバへ常時複数の(同時または永続的な)接続を送信する機能です。この機能は、特定のロード バランス環境で一般的に必要です。

通常、アプリケーションのトランザクションを完全に処理するには(Web サイトをブラウズしながら、各種の購入アイテムを選択して、チェックアウトする場合など)、複数の接続、場合によっては何百、何千の同時接続または連続した接続が必要になります。こういった処理の多くは、一時的に重要な情報を生成して、それを使用します。情報は処理を実行する特定のサーバに保存され、修正されます。このトランザクションをすべて処理するには数分から数時間かかることがあり、クライアントはその間同一サーバにデータを送信する必要があります。

バックエンド共有データベースによる多層設計でも部分的にこの問題を解決できますが、ローカル サーバ キャッシュを利用することで、アプリケーションの処理性能をさらに改善できます。ローカル サーバのキャッシュを使用すると、新しいサーバが選択されるたびにデータベースに接続して、トランザクションに固有の情報を取得する必要がなくなります。

複数のサーバに接続するクライアントを一意に特定する方法もサーバ固定(stickness)に関する大きな問題です。クライアントを識別するために使用できる情報であれば、ロード バランス装置はその情報を保存し、現在処理を実行しているサーバにそれを関連付ける必要があります。


) CSMは256.000の固定データベースのエントリを保持できます。


CSM は個々のクライアントを識別して、次の方法で固定処理を実行します。

送信元IPアドレスの固定

CSM に送信元 IP アドレス全体(32 ビットのネットマスクを含めて)を学習させるか、またはその一部を学習させるかを設定できます。

SSL識別情報の固定

クライアントおよびサーバが SSL を介して情報のやり取りをしている場合、複数のサーバ接続に対応した一意の SSL ID 番号が保持されます。SSL バージョン 3.0 または TLS 1.0 では、この ID 番号を暗号化しない(クリア テキスト)で伝送される必要があります。CSMはこの値を使用して、特定の処理を識別できます。ただし、このSSL IDは再度ネゴシエートできるため、SSL IDを常に正しいサーバに固定できるわけではありません。SSL ID ベースで固定する方法は、常に SSL ID を再利用できるので、SSL 終端装置のパフォーマンスを向上できます。


) CSM を Catalyst 6500 SSL モジュールと一緒に使用する場合、各 Catalyst 6500 SSL モジュールの MAC アドレスが SSL ID 内の特定のオフセットに挿入されるため、SSL ID の再ネゴシエートを介して SSL ID を固定することができます。この方法を設定するには、仮想サーバのコンフィギュレーション サブモードでssl-stickyコマンドを使用します。

スティッキ接続の設定情報については、『Catalyst 6500 Series Switch SSL Services Module Configuration Note』の第 5 章「Configuring Different Modes of Operation」を参照してください。

ssl-stickyコマンドについては、『Catalyst 6500 シリーズ スイッチ コンテント スイッチング モジュール コマンド リファレンス』を参照してください。


ダイナミックCookieラーニング

特定の Cookie 名を検索して、クライアント要求 HTTP ヘッダーまたはサーバの「Set-Cookie」メッセージから自動的にその値を学習するように CSM を設定できます。

デフォルトでは Cookie 値全体を学習するように CSM は設定されています。CSM ソフトウェア リリース 4.1(1) でオプションのオフセットと長さが導入されたことで機能が拡張され、CSM に Cookie 値の一部分のみを学習するように指定できるようになりました。「Cookie 固定のオフセットおよび長さ」を参照してください。

ダイナミック Cookie ラーニング機能は、同一の Cookie 内にセッション ID またはユーザ ID を複数保存する J2EE のようなアプリケーションを使用する場合に役立ちます。Cookie値の特定のバイトのみスティッキ性と関連付けられるためです。

CSM ソフトウェア リリース 4.1(1) では、URL の一部として Cookie 情報を検索(およびその結果を学習、または固定)する機能が追加されたため、ダイナミック Cookie の固定機能も改善されています。「URLラーニング」 を参照してください。URL ラーニング機能は、Cookie 情報を HTTP URL の一部として挿入するアプリケーションに役立ちます。場合によっては、この機能を使用して Cookie を受け付けないクライアントにも対応できます。

Cookie挿入

CSM はサーバの代わりに Cookie を挿入して、サーバが Cookie を設定しない場合でもクライアントが Cookie によるサーバ接続を固定できるようにします。Cookieには、CSMが特定の実サーバへの永続接続を確実に実行するための情報が含まれています。

固定(sticky)グループの設定

固定(sticky)グループの設定には、固定方法(送信元IP、SSL ID、Cookie)とグループのパラメータの設定、およびポリシーへの関連付けが含まれます。固定(sticky)タイムアウトは、スティッキ情報がスティッキ テーブルに確保される期間を指定します。デフォルトの固定タイムアウト値は1440分(24時間)です。特定のエントリの固定(sticky)タイマーは、そのエントリに一致する新規接続が開かれるたびにリセットされます。


) 複数のポリシーまたは仮想サーバは、潜在的に同一固定グループに設定できます。その場合、それらのポリシーまたは仮想サーバへのすべての接続に、その固定処理が適用されます。ポリシー 1 および 2、または仮想サーバ 1 および 2 が同一固定グループに設定されている場合、ポリシー 1 または仮想サーバ 1 を介してサーバ A に固定されるクライアントが、ポリシー 2 または仮想サーバ 2 を介して同一のサーバAに固定されるため、これらの接続は「buddy 接続」とも呼ばれます。



注意 複数のポリシーまたは仮想サーバで同一固定グループを使用している場合、すべてが同一サーバ ファームか、またはグループ内で同一サーバを指定している異なるサーバ ファームを間違いなく使用することが重要です。

固定グループを設定する手順は、次のとおりです。

 

コマンド
目的
Router(config-module-csm)# sticky sticky-group-id {netmask netmask | cookie name | ssl} [address [source | destination | both]][timeout sticky-time ]

同じポリシーと一致する同一クライアントからの接続には、同一実サーバが使用されるようにします1

1.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

次に、固定グループを設定して、ポリシーに関連付ける例を示します。

Router(config-module-csm)# sticky 1 cookie foo timeout 100
Router(config-module-csm)# serverfarm pl_stick
Router(config-slb-sfarm)# real 10.8.0.18
Router (config-slb-real)# inservice
Router(config-slb-sfarm)# real 10.8.0.19
Router (config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
Router(config-module-csm)# policy policy_sticky_ck
Router(config-slb-policy)# serverfarm pl_stick
Router(config-slb-policy)# sticky-group 1
Router(config-slb-policy)# exit
Router(config-module-csm)# vserver vs_sticky_ck
Router(config-slb-vserver)# virtual 10.8.0.125 tcp 90
Router(config-slb-vserver)# slb-policy policy_sticky_ck
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# exit
 

Cookie 挿入

サーバが現在適切な Cookie を設定していない場合にセッション Cookie を固定するには、Cookie挿入機能を使用します。この機能をイネーブルにすると、CSMはクライアントからサーバへの応答に Cookie を挿入します。CSM は次にサーバからクライアントへのトラフィック フローに Cookie を挿入します。

次に、永続性を確保するために Cookie を指定する例を示します。

Cat6k-2(config-module-csm)# sticky 5 cookie mycookie insert
 

Cookie 固定のオフセットおよび長さ

Cookie 値は、クライアント/サーバ間の処理で、一部を残して変更される場合があります。その場合、特定サーバへの永続接続を確保するために、変更されない部分を使用できます。接続を固定または確保するために、Cookie の変更されない部分は cookie offset num [ length num ]コマンドを使用して、オフセットおよび長さの値で指定できます。

オフセット(Cookie 値を先頭のバイトから数える)および長さ(Cookie の一部を指定する)はいずれもバイト単位で指定します。このオフセットと長さは、固定接続を確保するために使用します。これらの値はスティッキ テーブルに保存されます。

オフセットおよび長さは0~4000バイトの範囲で指定できます。Cookie 値がオフセットより長く、オフセットと Cookie の長さを加えたものより短い場合、CSM はオフセットの後ろの Cookie 部分に応じて接続を固定します。

次に、Cookieのオフセットおよび長さを指定する例を示します。

Cat6k-1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cat6k-1(config)# module csm 4
Cat6k-1(config-module-csm)# sticky 20 cookie SESSION_ID
Cat(config-slb-sticky-cookie)# cookie offset 10 length 6
 

URLラーニング

URLラーニングによるCookie固定機能により、CSMはSet-CookieフィールドまたはURL埋め込みCookieのセッション情報をキャプチャできます。CSMは、サーバ応答の Set-Cookie HTTP ヘッダーに埋め込まれた特定の Cookie 値に基づいて、固定テーブルのエントリを作成します。

URL ラーニングを設定すると、CSM は次の 3 通りの方法で Cookie 値を学習できます。

Cookie メッセージがサーバからクライアント方向に設定される

クライアント要求内の Cookie

URLに埋め込まれたCookie値

最初の 2 つの方法は標準のダイナミック Cookie ラーニング機能ですでにサポートされています。3 番目の方法は URL ラーニング機能として追加されました。

ほとんどの場合、そのあとの一連のHTTP要求内において、クライアントは同じCookie値を戻します。CSM は、それに一致する値に基づいて同じサーバにクライアントを固定します。ただし、クライアントによってはブラウザで Cookie をディセーブルにしているため、このタイプの Cookie 固定接続ができない場合もあります。URL Cookie ラーニングの新機能で、CSM は URL 文字列に埋め込まれた Cookie 名および値を抽出できます。この機能が実行されるのは、サーバが Web ページのURLリンクに Cookie を埋め込んでいる場合だけです。

クライアント要求に Cookie が含まれていない場合、CSM は、CSM で設定したセッション ID 文字列(?session-id=)を探します。この文字列に関連した値が、CSMがキャッシュ内で探しているセッションID番号です。セッション ID は、要求情報が指定されるサーバと照合されて、クライアント要求は送信されます。

セッションCookieおよびURLセッションIDは異なる可能性があるため、Cisco IOSの sticky id cookie name コマンドがアップデートされました。次の例で、正しい構文を示します。


) 今回のリリースのCookie固定オフセット機能をサポートするために、アップデートされたコマンドにはオフセットおよび長さを指定する構文が含まれています。「Cookie 固定のオフセットおよび長さ」を参照してください。


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

Set-Cookie: session_cookie = 123
 

また、URL は次のようになることがあります。

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

sticky コマンドの name フィールドには、Cookieヘッダーに表示されるCookie名を指定します。このコマンドに追加された secondary session_id には、URLに表示される対応するCookie名を指定します。

次に、URLラーニング機能の設定例を示します。

Cat6k-1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cat6k-1(config)# module csm 4
Cat6k-1(config-module-csm)# sticky 30 cookie session_cookie
Cat(config-slb-sticky-cookie)# cookie secondary session-id
Cat(config-slb-sticky-cookie)#
 

RHIの設定

ここでは、Route Health Injection(RHI)の設定方法について説明します。

「RHIについて」

「仮想サーバ用RHIの設定」

RHIの概要

CSM に RHI を使用すると、VIP アドレスの可用性をネットワーク全体にアドバタイズできます。また、ネットワーク全体に、同一 VIP アドレスおよびサービスをもつ複数のCSM装置を配置できます。あるCSMは、他の装置でサーバ ロードバランシング サービスを利用できなくなった場合に、他の装置のサービスを変更できます。この CSM は、他のサーバ ロードバランス装置よりクライアントシステムに論理上近いので、サービスの提供もできます。


) CSM は VIP アドレスをホスト ルートとしてアドバタイズしますが、ほとんどのルータはホスト ルート情報をインターネットに伝播しないので、RHI の用途はイントラネットに限定されます。


RHIをイネーブルにするには、次のようにCSMを設定します。

実サーバをプローブし、使用可能な仮想サーバおよびVIPアドレスを識別します。

変更が発生するたびに、VIPアドレスの可用性情報を MSFC に正確にアドバタイズします。


) 電源投入時にRHIがイネーブルの場合、各VIPアドレスが使用可能になるので、CSMはMSFCにメッセージを送信します。


MSFC は RHI が提供する VIP アドレスの可用性情報を定期的に伝播します。


) セキュリティ上の理由から、ほとんどのルータはホスト ルート情報をインターネットに伝播しないので、通常、RHIの用途はイントラネットに限定されます。


RHIを使用しないVIPアドレスへのルーティング

RHI を使用しない場合、トラフィックは VIP アドレスが属すクライアント VLAN へのルートを経由して、VIP アドレスに到達します。CSMの電源を投入すると、MSFCはルーティング テーブルにクライアントVLANへのルートを作成し、このルート情報を他のルータと共有します。VIPに到達するために、クライアント システムはルータを使用して、各VIPアドレスが属すネットワーク サブネット アドレスに要求を送信します。

サブネットまたはセグメントに到達可能であっても、その場所にあるCSMの仮想サーバが動作していない場合、要求は失敗します。他のCSM装置はさまざまな場所に配置することができます。ただし、ルータは単に論理的な距離に基づいてサブネットに要求を送信します。

RHIを使用しないと、VIPアドレスを使用できるかどうかが検証されずに、トラフィックがVIPアドレスに送信されます。この場合は、VIPに接続された実サーバがアクティブではないこともあります。


) デフォルトでは、CSMは設定されたVIPアドレスをアドバタイズしません。


RHIを使用するVIPアドレスへのルーティング

RHIを使用すると、VIPアドレスが使用可能になったときに、CSM は MSFC にアドバタイズを送信し、使用不可能な VIP アドレスに対してアドバタイズを取り消します。ルータはルーティング テーブルを参照して、要求をクライアントからVIPアドレスに送信するために必要なパス情報を検索します。RHI機能が有効な場合、一致した中で最も固有性の高いものがVIPアドレス情報としてアドバタイズされます。クライアントに対する要求は、アクティブなVIPサービスを使用して、CSMへの到達パスを経由して送信されます。

VIPアドレスのインスタンスが複数存在する場合、クライアント ルータはVIPアドレスのインスタンスごとに必要な情報(可用性およびホップ数)を受信して、そのVIPアドレスに対する最適なルートを判別できます。ルータはCSMが論理上、クライアント システムに近くなるようにパスを選択します。


) CSMはコンテンツを処理する実サーバをすべてプローブすることによって、指定されたVIPアドレスに到達できるかどうかを判別します。したがって、RHIを使用する場合はプローブも設定する必要があります。VIPアドレスに到達できるかどうかを判別したあと、CSMはこの可用性情報をMSFCと共有します。次に、MSFCはこのVIP可用性情報をイントラネットの他の装置に伝播します。


CSMがVIPの可用性を判別する仕組み

VIPが使用可能かどうかをCSMが判断できるようにするには、プローブ(HTTP、ICMP、Telnet、TCP、FTP、SMTP、DNS のいずれか)を設定し、それをサーバ ファームに関連付ける必要があります。プローブが設定されている場合、CSMは次の確認を行います。

プローブ用に設定されたすべてのサーバ ファーム上のすべての実サーバをプローブします。

到達可能な(到達可能な実サーバを1台以上含む)サーバ ファームを識別します。

到達可能な(到達可能なサーバ ファームを1つ以上含む)仮想サーバを識別します。

到達可能な(到達可能な仮想サーバを1台以上含む)VIPを識別します。

VIPの可用性情報の伝播

RHI を使用すると、CSM は使用可能な VIP アドレスを含むアドバタイズ メッセージを MSFC に送信します。MSFCは、CSMから受信するVIPアドレスごとに、ルーティング テーブルにエントリを追加します。MSFCで動作中のルーティング プロトコルは、他のルータにルーティング テーブル アップデートを送信します。VIPアドレスが使用不可能になると、そのルートはアドバタイズされなくなり、エントリはタイムアウトし、ルーティング プロトコルは変更を伝播します。


) RHI を CSM で動作させるには、CSM が取り付けられているシャーシ内の MSFC で Cisco IOS Release 12.1.7(E) 以降を稼働し、その MSFC をクライアント側ルータとして設定する必要があります。


仮想サーバ用RHIの設定

仮想サーバ用のRHIを設定する手順は、次のとおりです。


ステップ 1 VLAN が設定されていることを確認します( 第 4 章「VLANの設定」 を参照)。

ステップ 2 プローブをサーバ ファームに関連付けます(「ヘルス モニタリング用プローブの設定」を参照)。

ステップ 3 実サーバをプローブするように CSM を設定します(「ヘルス モニタリング用プローブの設定」を参照)。

ステップ 4 advertise active SLB virtual server コマンドを入力して、仮想サーバごとに RHI をイネーブルにします。

Router(config-module-csm)# vserver virtual_server_name
Router(config-slb-vserver)# advertise active
 


 

次に、vserver1という名前の仮想サーバに対してRHIをイネーブルにする例を示します。

Router(config-module-csm)# vserver vserver1
Router(config-slb-vserver)# advertise active
 

環境変数

variable name string コマンドを使用して、コンフィギュレーションの環境変数をイネーブルにできます。 表 8-1 では、CSM 環境変数の値を示しています。

 

表 8-1 CSM 環境変数の値

名前
デフォルト
有効値
説明

ARP_INTERVAL

300

整数
(15~31536000)

設定したホストのARP要求の間隔(秒)

ARP_LEARNED_INTERVAL

14400

整数
(60~31536000)

学習したホストのARP要求の間隔(秒)

ARP_GRATUITOUS_INTERVAL

15

整数
(10~31536000)

意味のない(gratuitous)ARP 要求の間隔(秒)

ARP_RATE

10

整数(1~60)

ARP 再試行の間隔(秒)

ARP_RETRIES

3

整数(2~15)

ホスト ダウン フラグを立てる前に ARP を再試行する回数

ARP_LEARN_MODE

1

整数(0~1)

CSMが応答のみ(0)のMACアドレスを学習するか、すべてのトラフィック(1)のMACアドレスを学習するか指定します。

ARP_REPLY_FOR_NO_INSERVICE_VIP

D

0

整数(0~1)

ADVERTISE_RHI_FREQ

10

整数(1~65535)

CSM が RHI アップデートをチェックする頻度(秒)

AGGREGATE_BACKUP_SF_STATE_TO_VS

0

整数(0~1)

仮想サーバの状態に、バックアップ サーバ ファームの動作可能状態を含めるかどうかを指定します。

COOKIE_INSERT_EXPIRATION_DATE

Fri, 1
Jan 2010 01:01:50 GMT

文字列
(2~63文字)

CSMによって挿入されるHTTP Cookieの期限切れの時間および日付を設定します。

DEST_UNREACHABLE_MASK

65535

整数(0~65535)

ICMP宛先到達不能コードの転送をビットマスクで指定します。

FT_FLOW_REFRESH_INT

60

整数(1~65535)

フォールト トレラントのスロー パス フローのリフレッシュ間隔(秒)

HTTP_CASE_SENSITIVE_MATCHING

1

整数(0~1)

URL(Cookie、ヘッダー)の照合および固定で、大文字と小文字を区別するかどうかを指定します。

HTTP_URL_COOKIE_DELIMITERS

/?&#+

文字列
(1~64文字)

URL文字列のCookieの区切り文字のリストを設定します。

MAX_PARSE_LEN_MULTIPLIER

1

整数(1~16)

設定したmax-parse-lenをこの総数で乗算します。

NAT_CLIENT_HASH_SOURCE_PORT

0

整数(0~1)

送信元ポートを使用してクライアントのNAT IPアドレスを取得するかどうかを指定します。

ROUTE_UNKNOWN_FLOW_PKTS

0

整数(0~1)

既存のフローと一致しない non-SYN パケットをルーティングするかどうかを指定します。

NO_RESET_UNIDIRECTIONAL_FLOWS

0

整数(0~1)

設定されている場合、タイムアウト時に単一方向フローをリセットしないように指定します。

SWITCHOVER_RP_ACTION

0

整数(0~1)

Supervisor Engine Route Processor(RP)のスイッチオーバーが発生してから、復旧(0)または停止/再起動(1)するかどうかを指定します。

SWITCHOVER_SP_ACTION

0

整数(0~1)

Supervisor Engine Switch Processor(SP)のスイッチオーバーが発生してから、復旧(0)または停止/再起動(1)するかどうかを指定します。

SYN_COOKIE_INTERVAL

3

整数(1~60)

新しいSyn-Cookieキーが生成される間隔を指定します(秒)。

SYN_COOKIE_THRESHOLD

5000

整数
(0~1048576)

Syn-Cookieの動作のスレッシュホールドを指定します(中断されているセッション数)。

TCP_MSS_OPTION

1460

整数(1~65535)

レイヤ7の処理に対してCSMが送信できる最大セグメント サイズ(MSS)値を指定します。

TCP_WND_SIZE_OPTION

8192

整数(1~65535)

レイヤ7の処理に対してCSMが送信できるウィンドウ サイズ値を指定します。

VSERVER_ICMP_ALWAYS_RESPOND

false

文字列
(1~5文字)

「true」の場合、仮想サーバの状態に関わらず ICMP プローブに応答します。

XML_CONFIG_AUTH_TYPE

Basic

文字列
(5~6文字)

Xml-Config に対して HTTP 認証タイプ(Basic または Digest)を指定します。

コンフィギュレーションの環境変数を表示する例を示します。

Router# show mod csm 5 variable
 
variable value
----------------------------------------------------------------
ARP_INTERVAL 300
ARP_LEARNED_INTERVAL 14400
ARP_GRATUITOUS_INTERVAL 15
ARP_RATE 10
ARP_RETRIES 3
ARP_LEARN_MODE 1
ARP_REPLY_FOR_NO_INSERVICE_VIP 0
ADVERTISE_RHI_FREQ 10
AGGREGATE_BACKUP_SF_STATE_TO_VS 0
DEST_UNREACHABLE_MASK 0xffff
FT_FLOW_REFRESH_INT 60
GSLB_LICENSE_KEY (no valid license)
HTTP_CASE_SENSITIVE_MATCHING 1
MAX_PARSE_LEN_MULTIPLIER 1
NAT_CLIENT_HASH_SOURCE_PORT 0
ROUTE_UNKNOWN_FLOW_PKTS 0
NO_RESET_UNIDIRECTIONAL_FLOWS 0
SYN_COOKIE_INTERVAL 3
SYN_COOKIE_THRESHOLD 5000
TCP_MSS_OPTION 1460
TCP_WND_SIZE_OPTION 8192
VSERVER_ICMP_ALWAYS_RESPOND false
XML_CONFIG_AUTH_TYPE Basic
Cat6k-2#
 

コンフィギュレーションの現在の環境変数セットのすべての情報を表示するには、次のように show module csm slot variable [ detail ]コマンドを使用します。

Cat6k-2# show mod csm 5 variable detail
Name:ARP_INTERVAL Rights:RW
Value:300
Default:300
Valid values:Integer (15 to 31536000)
Description:
Time (in seconds) between ARPs for configured hosts
 
Name:ARP_LEARNED_INTERVAL Rights:RW
Value:14400
Default:14400
Valid values:Integer (60 to 31536000)
Description:
Time (in seconds) between ARPs for learned hosts
 
Name:ARP_GRATUITOUS_INTERVAL Rights:RW
Value:15
Default:15
Valid values:Integer (10 to 31536000)
Description:
Time (in seconds) between gratuitous ARPs
 
Name:ARP_RATE Rights:RW
Value:10
Default:10
Valid values:Integer (1 to 60)
Description:
Seconds between ARP retries
 
Name:ARP_RETRIES Rights:RW
Value:3
Default:3
Valid values:Integer (2 to 15)
Description:
Count of ARP attempts before flagging a host as down
 
Name:ARP_LEARN_MODE Rights:RW
Value:1
Default:1
Valid values:Integer (0 to 1)
Description:
Indicates whether CSM learns MAC address on responses only (0) or all traffic (1)
 
Name:ARP_REPLY_FOR_NO_INSERVICE_VIP Rights:RW
Value:0
Default:0
Valid values:Integer (0 to 1)
Description:
Whether the CSM would reply to ARP for out-of-service vserver
 
Name:ADVERTISE_RHI_FREQ Rights:RW
Value:10
Default:10
Valid values:Integer (1 to 65535)
Description:
The frequency in second(s) the CSM will check for RHI updates
 
Name:AGGREGATE_BACKUP_SF_STATE_TO_VS Rights:RW
Value:0
Default:0
Valid values:Integer (0 to 1)
Description:
Whether to include the operational state of a backup serverfarm into the state of a virtual server
 
Name:DEST_UNREACHABLE_MASK Rights:RW
Value:0xffff
Default:65535
Valid values:Integer (0 to 65535)
Description:
Bitmask defining which ICMP destination unreachable codes are to be forwarded
 
Name:FT_FLOW_REFRESH_INT Rights:RW
Value:60
Default:60
Valid values:Integer (1 to 65535)
Description:
FT slowpath flow refresh interval in seconds
 
Name:GSLB_LICENSE_KEY Rights:RW
Value:(no valid license)
Default:(no valid license)
Valid values:String (1 to 63 chars)
Description:
License key string to enable GSLB feature
 
Name:HTTP_CASE_SENSITIVE_MATCHING Rights:RW
Value:1
Default:1
Valid values:Integer (0 to 1)
Description:
Whether the URL (Cookie, Header) matching and sticky to be case sensitive
 
Name:MAX_PARSE_LEN_MULTIPLIER Rights:RW
Value:1
Default:1
Valid values:Integer (1 to 16)
Description:
Multiply the configured max-parse-len by this amount
 
Name:NAT_CLIENT_HASH_SOURCE_PORT Rights:RW
Value:0
Default:0
Valid values:Integer (0 to 1)
Description:
Whether to use the source port to pick client NAT IP address
 
Name:ROUTE_UNKNOWN_FLOW_PKTS Rights:RW
Value:0
Default:0
Valid values:Integer (0 to 1)
Description:
Whether to route non-SYN packets that do not matched any existing flows
 
Name:NO_RESET_UNIDIRECTIONAL_FLOWS Rights:RW
Value:0
Default:0
Valid values:Integer (0 to 1)
Description:
If set, unidirectional flows will not be reset when timed out
 
Name:SYN_COOKIE_INTERVAL Rights:RW
Value:3
Default:3
Valid values:Integer (1 to 60)
Description:
The interval, in seconds, at which a new syn-cookie key is generated
 
Name:SYN_COOKIE_THRESHOLD Rights:RW
Value:5000
Default:5000
Valid values:Integer (0 to 1048576)
Description:
The threshold (in number of pending sessions) at which syn-cookie is engaged
 
Name:TCP_MSS_OPTION Rights:RW
Value:1460
Default:1460
Valid values:Integer (1 to 65535)
Description:
Maximum Segment Size (MSS) value sent by CSM for L7 processing
 
Name:TCP_WND_SIZE_OPTION Rights:RW
Value:8192
Default:8192
Valid values:Integer (1 to 65535)
Description:
Window Size value sent by CSM for L7 processing
 
Name:VSERVER_ICMP_ALWAYS_RESPOND Rights:RW
Value:false
Default:false
Valid values:String (1 to 5 chars)
Description:
If "true" respond to ICMP probes regardless of vserver state
 
Name:XML_CONFIG_AUTH_TYPE Rights:RW
Value:Basic
Default:Basic
Valid values:String (5 to 6 chars)
Description:
HTTP authentication type for xml-config:Basic or Digest

永続接続の設定

CSM では、HTTP ヘッダー内の URL、Cookie、またはその他のフィールドに基づいて HTTP 接続をスイッチングできます。CSM の永続接続サポートにより、永続接続での後続HTTP要求はそれぞれ別々にスイッチング可能です。新規に HTTP 要求が届いた場合、その要求は前回要求したときと同じサーバにスイッチングしたり、別のサーバにスイッチングしたり、またはクライアントにリセットしてその要求が完了しないように設定することができます。

ソフトウェア リリース 2.1(1) では、CSM は HTTP 1.1 の永続接続をサポートしています。この機能によって、ブラウザは 1 回の永続接続で複数のHTTP要求を送信できます。永続接続が確立してから、サーバは同一クライアントからさらに要求が届く可能性を想定して、設定可能なインターバルの間、接続をオープンな状態にしておきます。永続接続によって、要求するたびに新規に TCP 接続が確立されることに伴うオーバーヘッドが排除されます。

HTTP 1.1 の永続機能はデフォルトでは、レイヤ7ポリシーで設定されたすべての仮想サーバでイネーブルです。永続接続をディセーブルにする場合は、 no persistent rebalance コマンドを入力します。永続接続をイネーブルにするには、 persistent rebalance コマンドを入力します。

次に、永続接続を設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with
CNTL/Z.
Router(config)# mod csm 2
!!! configuring serverfarm
Router(config-module-csm)# serverfarm sf3
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-real)# inservice
!!! configuring vserver
Router(config-slb-real)# vserver vs3
Router(config-slb-vserver)# virtual 10.1.0.83 tcp 80
Router(config-slb-vserver)# persistent rebalance
Router(config-slb-vserver)# serverfarm sf3
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# end
 

HTTP のヘッダー挿入

HTTP のヘッダー挿入とは、CSM がクライアント IP アドレスなどの情報を HTTP ヘッダーに挿入する機能です。この機能は、CSMが送信元 NAT を実行していて、さらにサーバ側のアプリケーションがまだ最初の送信元 IP を要求している場合に特に役立ちます。

CSM は、クライアントからサーバ方向のヘッダーに、クライアントからの送信元IPアドレスを挿入できます。

HTTP ヘッダーに情報を挿入するには、 insert protocol http header name header-value value コマンドを使用します。

name:HTTPヘッダー内の一般フィールドの文字どおりの名前。名前は 1~63 文字の文字列です。

value:要求内に挿入するヘッダー値の文字列を文字どおり指定します。

また、ヘッダー値の特殊パラメータ %is および %id を使用できます。%is値はHTTPヘッダーに送信元IPアドレスを挿入し、%id値はHTTPヘッダーに宛先IPアドレスを挿入します。特殊パラメータはそれぞれヘッダー マップごとに 1 回だけ指定できます。


) ヘッダー マップには、複数の挿入ヘッダーが含まれることがあります。スペースを含む複数のキーワードからなるヘッダー値を挿入する場合、全体を二重引用符で囲む必要があります。


HTTP のヘッダー挿入を設定する場合、ヘッダー マップおよびポリシーを使用する必要があります。HTTP のヘッダー挿入を機能させるには、デフォルトのポリシーは適用できません。

次に、ヘッダー フィールドと値を指定して、要求を検索する例を示します。

Cat6k-2(config-module-csm)# natpool TESTPOOL 10.10.110.200 10.10.110.210 netmask 255.255.255.0
!
Cat6k-2(config-module-csm)# map HEADER-INSERT header
Cat6k-2(config-slb-map-header)# insert protocol http header Source-IP header-value %is
Cat6k-2(config-slb-map-header)# insert protocol http header User-Agent header-value "MyBrowser 1.0"
!
Cat6k-2(config-module-csm)# real SERVER1
Cat6k-2(config-slb-real)# address 10.10.110.10
Cat6k-2(config-slb-real)# inservice
Cat6k-2(config-module-csm)# real SERVER2
Cat6k-2(config-slb-real)# address 10.10.110.20
Cat6k-2(config-slb-real)# inservice
!
Cat6k-2(config-module-csm)# serverfarm FARM-B
Cat6k-2(config-slb-sfarm)# nat server
Cat6k-2(config-slb-sfarm)# nat client TESTPOOL
Cat6k-2(config-slb-real)# real name SERVER1
Cat6k-2(config-slb-real)# inservice
Cat6k-2(config-slb-real)# real name SERVER2
Cat6k-2(config-slb-real)# inservice
!
Cat6k-2(config-module-csm)# policy INSERT
Cat6k-2(config-slb-policy)# header-map HEADER-INSERT
Cat6k-2(config-slb-policy)# serverfarm FARM-B
!
Cat6k-2(config-module-csm)# vserver WEB
Cat6k-2(config-slb-vserver)# virtual 10.10.111.100 tcp www
Cat6k-2(config-slb-vserver)# persistent rebalance
Cat6k-2(config-slb-vserver)# slb-policy INSERT
Cat6k-2(config-slb-vserver)# inservice

GSLB の設定

ここでは、CSM Global Server Load Balancing(GSLB;グローバル サーバ ロードバランシング)の拡張機能セット オプション、およびその使用方法について説明します。拡張機能セット オプションを使用する前に「はじめに」の 「ライセンス」 と表紙の裏に記述されているソフトウェア仕様許諾書の各条項を入念に確認ください。


) ソフトウェアをダウンロードまたはインストールすることにより、使用許諾書に同意することになります。この許諾書のすべての条項に同意できない場合は、ソフトウェアをダウンロード、インストール、または使用しないでください。


GSLB拡張機能セット オプションの使用

GSLBをイネーブルにするには、イネーブル モードで次の手順を実行します。

 

コマンド
目的
Router# config t
Router(config)# mod csm 5

コンフィギュレーション モードを開始して、特定のCSM(たとえば、ここで使用されているモジュール5など)のCSMコンフィギュレーション モードを開始します。

Router(config-module-csm)# variable name value

次のような名前と値を使用して、GSLBをイネーブルにします。
名前= 2
値=

Router(config-module-csm)# exit
Router (config)# write mem

CSMモジュール コンフィギュレーション モードを終了して、設定の変更を保存します。

Router#: hw-module slot number reset

CSMを再起動して、変更をアクティブにします。

2.GSLBでは、別途ライセンスを購入する必要があります。ご使用のGSLBのライセンスを購入する場合は、製品を購入された代理店にご連絡ください。

表 8-2 では、CSM で使用する GSLB の環境変数の値を示しています。

 

表 8-2 GSLB環境変数の値

名前
デフォルト
有効値
説明

GSLB_LICENSE_KEY

(有効なライセンスはありません)

文字列(1~63文字)

GSLB機能をイネーブルにするライセンス キーの文字列

GSLB_KALAP_UDP_PORT

5002

整数(1~65535)

GSLB KAL-AP UDPのポート番号を指定します。

GSLB_KALAP_PROBE_FREQ

45

整数(45~65535)

GSLB KAL-APプローブの頻度を指定します。

GSLB_KALAP_PROBE_RETRIES

3

整数(1~65535)

GSLB KAL-APプローブの最大再試行回数を指定します。

GSLB_ICMP_PROBE_FREQ

45

整数(45~65535)

GSLB ICMPプローブの頻度を指定します。

GSLB_ICMP_PROBE_RETRIES

3

整数(1~65535)

GSLB ICMPプローブの最大再試行回数を指定します。

GSLB_HTTP_PROBE_FREQ

45

整数(45~65535)

GSLB HTTPプローブの頻度を指定します。

GSLB_HTTP_PROBE_RETRIES

3

整数(1~65535)

GSLB HTTPプローブの最大再試行回数を指定します。

GSLB_DNS_PROBE_FREQ

45

整数(45~65535)

GSLB DNSプローブの頻度を指定します。

GSLB_DNS_PROBE_RETRIES

3

整数(1~65535)

GSLB DNSプローブの最大再試行回数を指定します。

GSLBの設定

GSLB は、利用可能な負荷に基づき、DNS を通してさまざまなサーバ ファームおよび実サーバにクライアント接続を割り振ることによって、散在している複数のホスト サイト間でロード バランスを実行します。GSLBは、アクセス リスト、マップ、サーバ ファーム、およびロードバランス アルゴリズムを使用して実行されます。表 8-3 では、CSM 上で GSLB を設定するための要件を示しています。

 

表 8-3 GSLBの動作

クライアント要求(起点)
ドメイン(目的)
サーバ ファーム(終点)
アルゴリズム(方法)

アクセス リストを使用して、着信 DNS 要求をフィルタリングできます。着信 DNS 要求に設定されているマップ、クライアント グループ、およびサーバ ファームを関連付けるには、ポリシーを使用します。

マップを設定して、クライアント要求と照合する必要のあるドメイン名を指定します。正規表現の構文を使用できます。

たとえば、ドメイン名は cnn.com または yahoo.com であり、これにクライアント要求を照合します。ドメイン名が指定されたポリシー マップと一致した場合、プライマリ サーバ ファームに対して、要求に応答できる実サーバがあるかどうかを問い合わせます。

サーバ ファームでは、クライアント要求を満たす情報の検索先として、実サーバ グループを指定します。

ターゲット実サーバの可用性を判別するために、GSLBプローブを使用できます。実サーバに設定されているプローブ タイプを使用します。

GSLB サーバ ファーム プレディクタは、ラウンドロビン式の最小負荷、順序付きリスト、ハッシュ アドレス ソース、ハッシュ ドメイン、ハッシュ ドメイン アドレス ソースです。

図 8-1では、GSLBの基本的な設定を示しています。

図 8-1 GSLB の設定

 

図 8-1 の設定例にあわせて、この設定作業に関する注意事項を次に示します。

CSM 1は GSLB および SLB の両方を実行しますが、CSM 2 および CSM 3 が実行するのは SLB だけです。

CSM 1 には、SLB 用の仮想サーバと GSLB 用の仮想サーバがあります。SLB 用の仮想サーバでは、サーバ ファームの実サーバはローカル サーバの IP アドレスです。

DNS ポリシーではプライマリ サーバ ファームを使用します。実サーバの 1 つがローカルで、他の 2 つの実サーバは、それぞれ CSM 2 および CSM 3 上で設定された仮想サーバです。

両方のリモート ロケーション、ローカル実サーバ、および仮想サーバにプローブを追加する必要があります。

CSM 1の管理用IPアドレス(CSM 1のVLANアドレスまたはエイリアス IP)に送信された DNS 要求は、サーバ ファーム GSLBFARM で設定された3つの実サーバ IP アドレスのうちの 1 つを応答として受け取ります。

GSLB を設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-slb-vserver)# serverfarm serverfarm-name

仮想サーバに関連付けるサーバ ファームを作成します。

ステップ 2

Router(config-module-csm)# vserver virtserver-name

CSM 1上でSLB用の仮想サーバを指定し、仮想サーバ サブモードを開始します。

ステップ 3

Router(config-slb-vserver)# virtual ip-address [ip-mask] protocol port-number [service ftp ]

仮想サーバの属性を設定します。

ステップ 4

Router(config-slb-vserver)# inservice

仮想サーバのロードバランシングをイネーブルにします。

ステップ 5

Router(config-module-csm)# vserver virtserver-name dns

GSLB用の仮想サーバを指定し、仮想サーバ サブモードを開始します。

ステップ 6

Router(config-slb-vserver)# dns-policy [ group group-id ] [ netmask ip-netmask ]

同一クライアントからの接続には同一サーバ ファームが使用されるようにします。

ステップ 7

Router(config-slb-vserver)# inservice

仮想サーバのGSLBをイネーブルにします。

ステップ 8

Router(config-module-csm)# serverfarm GSLBFARM dns-vip

GSLBFARM サーバ ファーム(実際にはフォワーディング ポリシー)を作成して名前を指定し、サーバ ファーム コンフィギュレーション モードを開始します。

ステップ 9

Router(config-slb-sfarm)# predictor hash address source

サーバ ファームにロードバランス プレディクタのハッシュ アドレス ソースを設定します。

ステップ 10

Router(config-module-csm)# real ip-addres

実サーバのエイリアスIPアドレスを指定し、実サーバ コンフィギュレーション サブモードを開始します。

ステップ 11

Router (config-slb-real)# inservice

仮想サーバのロードバランシングをイネーブルにします。

ステップ 12

Router(config-module-csm)#
map dns-map-name dns

DNSマップを設定します。

ステップ 13

Router(config-dns-map)# match protocol dns domain name

DNSマップにDNS名を追加します。

ステップ 14

Router(config-module-csm)#
policy policy name

ポリシーを設定します。

ステップ 15

Router(config-slb-policy)# dns map map_name

ポリシーにDNSマップ属性を追加します。

ステップ 16

Router(config-slb-policy)#
serverfarm primary-serverfarm [ backup sorry-serverfarm [ sticky ]]

サーバ ファームとポリシーを関連付けます。

ステップ 17

Router(config-module-csm)# vserver virtserver-name

CSM 2上で仮想サーバを設定し、仮想サーバ サブモードを開始します。

ステップ 18

Router(config-slb-vserver)# virtual ip-address [ip-mask] protocol port-number [service ftp ]

仮想サーバの属性を設定します。

ステップ 19

Router(config-slb-vserver)# serverfarm serverfarm-name

サーバ ファームと仮想サーバを関連付けます。

ステップ 20

Router(config-slb-vserver)# inservice

仮想サーバのロードバランシングをイネーブルにします。

ステップ 21

Router(config-module-csm)# vserver virtserver-name

CSM 3上で仮想サーバを設定し、仮想サーバ サブモードを開始します。

ステップ 22

Router(config-slb-vserver)# virtual ip-address [ip-mask] protocol port-number [service ftp ]

仮想サーバの属性を設定します。

ステップ 23

Router(config-slb-vserver)# serverfarm serverfarm-name

サーバ ファームと仮想サーバを関連付けます。

ステップ 24

Router(config-slb-vserver)# inservice

仮想サーバのロードバランシングをイネーブルにします。

次に、GSLBを設定する例を示します。

CSM 1上で:

Router(config-module-csm)# serverfarm WEBFARM
Router(config-slb-sfarm)# predictor round-robin
Router(config-slb-sfarm)# real 3.5.5.5
Router(config-slb-real)# inservice
Router(config-slb-sfarm)# real 3.5.5.6
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
 
Router(config-module-csm)# vserver WEB
Router(config-slb-vserver)# virtual 10.10.10.10 tcp www
Router(config-slb-vserver)# serverfarm WEBFARM
Router(config-slb-vserver)# inservice
 
Router(config-module-csm)# serverfarm GSLBSERVERFARM dns-vip
Router(config-slb-sfarm)# predictor round-robine
Router(config-slb-sfarm)# real 10.10.10.10
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# real 20.20.20.20
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# real 30.30.30.30
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
 
Router(config-module-csm)# map MAP1 dns
Router(config-dns-map)# match protocol dns domain foobar.com
Router(config-dns-map)# exit
 
Router(config-module-csm)# policy DNSPOLICY dns
Router(config-slb-policy)# dns map MAP1
Router(config-slb-policy)# serverfarm primary GSLBSERVERFARM ttl 20 responses 1
Router(config-slb-policy)# exit
 
Router(config-module-csm)# vserver DNSVSERVER dns
Router(config-slb-vserver)# dns-policy DNSPOLICY
Router(config-slb-vserver)# inservice
 
 

CSM 2上で:

Router(config-module-csm)# serverfarm WEBFARM
Router(config-slb-sfarm)# predictor round-robin
Router(config-slb-sfarm)# real 4.5.5.5
Router(config-slb-real)# inservice
Router(config-slb-sfarm)# real 4.5.5.6
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
 
Router(config-module-csm)# vserver WEB
Router(config-slb-vserver)# virtual 20.20.20.20 tcp www
Router(config-slb-vserver)#s erverfarm WEBFARM
Router(config-slb-vserver)# inservice
 

CSM 3上で:

Router(config-module-csm)# serverfarm WEBFARM
Router(config-slb-sfarm)# predictor round-robin
Router(config-slb-sfarm)# real 5.5.5.5
Router(config-slb-real)# inservice
Router(config-slb-sfarm)# real 5.5.5.6
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
Router(config-module-csm)# vserver WEB
Router(config-slb-vserver)# virtual 30.30.30.30 tcp www
Router(config-slb-vserver)# serverfarm WEBFARM
Router(config-slb-vserver)# inservice
 

ネットワーク管理の設定

ここでは、ネットワーク上での CSM の管理方法について説明します。

「実サーバの SNMP トラップの設定」

「XMLインターフェイスの設定」

実サーバの SNMP トラップの設定

SNMP トラップがイネーブルになっていると、実サーバのステートが変わるたびに(たとえば、サーバがサービスを開始または停止するたびに)外部の管理装置に送信されます。トラップには、実サーバ トラップであることを示す Object Identifier(OID; オブジェクト識別子)が含まれます。


) 実サーバ トラップのOIDは1.3.6.1.4.1.9.9.161.2です。


トラップには、サーバ ステートが変わった理由を示すメッセージも含まれます。

Catalyst 6500 シリーズ スイッチの SLB 機能に関連付けられたフォールトトレラント トラップをイネーブルまたはディセーブルにするには、 snmp-server enable traps slb ft コマンドを使用します。フォールトトレラント トラップは、SLB のフォールトトレラントの要素を扱います。たとえば、フォールトトレラント トラップがイネーブルで、SLB装置がフォールトトレラント ピアの障害を検出した場合、そのSLB装置はスタンバイからアクティブに変わるときに、SNMPトラップを送信します。

実サーバ用のSNMPトラップを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router (config)# snmp-server community public

通知動作で送信される、パスワードと同様のコミュニティ ストリングを定義します。 public はその一例です。

ステップ 2

Router (config)# snmp-server host host-addr

トラップの送信先となる、外部ネットワーク管理装置のIPアドレスを定義します。

ステップ 3

Router (config)# snmp-server enable traps slb csrp

実サーバ用のSNMPトラップをイネーブルにします3

3.SNMPフォールトトレラント トラップ機能をディセーブルにする場合は、このコマンドのno形式を使用します。

XMLインターフェイスの設定

従来のリリースでは、Cisco IOS CLI が CSM を設定する唯一の手段でした。XML により、Document Type Definition(DTD)を使用する CSM を設定できます。XML DTDの例については、 付録 C「CSM XMLのDTD」 を参照してください。

CSMでXMLを使用する場合、注意事項は次のとおりです。

同時に使用できるクライアント接続は最大で5つです。

XMLの設定はIP SLBモードとは無関係ですが、 csm_module slot='x' sense='no' コマンドの場合は例外的に所定の結果をもたらし、XML エラーを生成します。

パイプラインのHTTP POSTはサポートされません。

すべてのクライアント通信が30秒でタイムアウトします。

クライアント証明書が不良だった場合、Cisco IOSのシステム ログにメッセージが送信されます。

異なるスロット属性を指定することによって、1 つの CSM を他の CSM コンフィギュレーションのプロキシにすることができます。

この機能をイネーブルにすると、ネットワーク管理装置がCSMに接続し、新しい設定を装置に送信することがあります。ネットワーク管理装置は、標準のHTTPプロトコルを使用して、コンフィギュレーション コマンドをCSMに送信します。HTTP POSTのデータ部分で、XML文書をCSMに送信することによって、新しい設定が適用されます。

HTTP とのやり取りの例を示します。

******** Client **************
POST /xml-config HTTP/1.1
Authorization: Basic VTpQ
Content-Length: 95
 
<?xml version="1.0"?>
<config><csm_module slot="4"><vserver name="FOO"/></csm_module></config>
******** Server **************
HTTP/1.1 200 OK
Content-Length: 21
 
<?xml version="1.0"?>
******** Client **************
POST /xml-config HTTP/1.1
Content-Length: 95
 
<?xml version="1.0"?>
<config><csm_module slot="4"><vserver name="FOO"/></csm_module></config>
******** Server **************
HTTP/1.1 401 Unauthorized
Connection: close
WWW-Authenticate: Basic realm=/xml-config
 

表 8-4 では、サポート対象の HTTP リターン コードを示しています。

 

表 8-4 XMLに関するHTTPの戻りコード

戻りコード
説明

200

OK

400

不良要求

401

未承認(要求した証明書が提出されなかった)

403

禁止(無効な証明書が提出され、syslog も生成された)

404

見つからない (「/xml-config」が指定されていない)

408

要求のタイムアウト(受信待ちで 30 秒以上経過)

411

コンテンツ長の脱落(Content-Length フィールドが脱落またはゼロ)

500

内部サーバ エラー

501

実装されていない(「POST」が指定されていない)

505

サポートされない HTTP バージョン(「1.0」または「1.1」が指定されていない)

サポートされている HTTP ヘッダーは次のとおりです。

Content-Length(すべての POST にゼロ以外の値が必要)

Connection(close 値は要求を永続 [persistent] させないことを指定)

WWW-Authenticate(要求した証明書がない場合にクライアントに送信)

Authorization(base64符号化方式による基本証明書を指定するためにクライアントから送信)

XML機能を動作させるには、ネットワーク管理システムがスイッチ インターフェイスのIPアドレスではなく、CSMのIPアドレスに接続する必要があります。

コマンドライン インターフェイスの場合と同様、コンフィギュレーションのマスター コピーを Cisco IOS に保管しなければならないので、XML コンフィギュレーション要求を受信した CSM は、これらの要求をスーパーバイザ エンジンに送信する必要があります。


) XMLコンフィギュレーションによって、1つのCSMを同一スイッチ シャーシに取り付けられたすべてのCSMのプロキシとして動作させることができます。たとえば、あるCSM用のコンフィギュレーションが含まれるXMLページを、同じスイッチ シャーシに取り付けられた別のCSMから正しく提供できます。


現在、一般公開されている Document Type Description (DTD) は、作成する XML コンフィギュレーション文書の基盤となっています( 付録 C「CSM XMLのDTD」 を参照)。XML 文書は HTTP POST 要求によって、CSM に直接送信されます。XML を使用するには、Cisco IOS CLI を使用して、事前に CSM 上で最小限のコンフィギュレーションを作成しておく必要があります。 xml-config コマンドについては、『Catalyst 6500 シリーズ コンテント スイッチング モジュール コマンド リファレンス』を参照してください。

応答は要求をミラー化した XML 文書です。問題のある要素にはチャイルド エラー要素でフラグが設定され、エラー コードおよびエラー文字列が示されます。XML文書でルート要素の属性を使用することによって、無視すべきエラーのタイプを指定できます。

特定の CSM インターフェイスが XML コンフィギュレーションに対応できるように、Cisco IOS CLI に追加される予定です。TCP ポートのイネーブル/ディセーブル機能に加え、クライアント アクセス リストのセキュリティ オプションおよび HTTP 認証がサポートされます。

CSM上でXMLを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# module csm slot

モジュールおよびスロット番号を指定します。

ステップ 2

Router(config-module-csm)# xml-config

CSM上でXMLをイネーブルにして、XMLコンフィギュレーション モードを開始します。

ステップ 3

Router(config-slb-xml)# port port-number

CSM HTTPサーバが待ち受けるTCPポートを指定します。

ステップ 4

Router(config-slb-xml)# vlan id

CSM HTTPサーバが指定されたVLANからの接続だけを受け付けるように制限します。

ステップ 5

Router(config-slb-xml)# client-group [ 1-99 | name ]

CSM XML コンフィギュレーション インターフェイスが受け付けるのは、クライアント グループと一致する IP アドレスからの接続だけであることを指定します。

ステップ 6

Router(config-slb-xml)# credentials user-name password

ユーザ名とパスワードの組み合わせを 1 つまたは複数設定します。 credentials コマンドを1つまたは複数設定した場合、CSM HTTPサーバはRFC 2617で規定された基本認証方式を使用して、ユーザ アクセスを認証します。

ステップ 7

Router# show module csm 4 xml stats

XML統計情報のリストを表示します。


) 統計情報のカウンタは32ビットです。


CSM上でXMLを設定する例を示します。

Router(config-module-csm)# configure terminal
Router(config-module-csm)# m odule csm 4
Router(config-module-csm)# xml-config
Router(config-slb-xml)# port 23
Router(config-slb-xml)# vlan 200
Router(config-slb-xml)# client-group 60
Router(config-slb-xml)# credentials eric @#$#%%@
Router# show module csm 4 xml stats
 

許容できないXMLエラーが発生した場合は、HTTP応答に200というコードが含まれます。エラーが発生した元のXML文書の一部が、エラー タイプと説明を示したエラー要素とともに戻されます。

仮想サーバ名が抜け落ちている場合のエラー応答の例を示します。

<?xml version="1.0"?>
<config>
<csm_module slot="4">
<vserver>
<error code="0x20">Missing attribute name in element
vserver</error>
</vserver>
</csm_module>
</config>
 

リターン エラー コードは、コンフィギュレーション要素のエラー許容属性のビットと対応しています。リターン XMLエラー コードは、次のとおりです。

XML_ERR_INTERNAL = 0x0001,
XML_ERR_COMM_FAILURE = 0x0002,
XML_ERR_WELLFORMEDNESS = 0x0004,
XML_ERR_ATTR_UNRECOGNIZED = 0x0008,
XML_ERR_ATTR_INVALID = 0x0010,
XML_ERR_ATTR_MISSING = 0x0020,
XML_ERR_ELEM_UNRECOGNIZED = 0x0040,
XML_ERR_ELEM_INVALID = 0x0080,
XML_ERR_ELEM_MISSING = 0x0100,
XML_ERR_ELEM_CONTEXT = 0x0200,
XML_ERR_IOS_PARSER = 0x0400,
XML_ERR_IOS_MODULE_IN_USE = 0x0800,
XML_ERR_IOS_WRONG_MODULE = 0x1000,
XML_ERR_IOS_CONFIG = 0x2000
 

デフォルトのerror_tolerance値は0x48です。これは、認識されない属性および要素のビットをそれぞれ加えた値と対応しています。

Server Application State Protocol の設定

Server Application State Protocol(SASP)を使用すると、CSM はトラフィックの重み付けに関する推奨事項を Workload Manager(WM)から受け取ることができます。これをWM に登録すると、WM は新しいロード バランシング グループのメンバーを CSM に通知します。

SASP は Cisco IOS 12.1(13)E3 以降のリリースでサポートされます。Cisco IOS ソフトウェア リリース 4.1.2 以降が必要です。

SASP を設定するには、特別な bind_id をサーバ ファーム(SASP グループ)および 使用する WM(SASP Global Workload Manager など)を表す DFP エージェントに関連付ける必要があります。

SASP グループの設定

SASP グループは、CSM 上のサーバ ファームと同等です。グループを設定するには、 serverfarm コンフィギュレーション コマンドを使用します。グループのメンバーはすべてサーバ ファーム下で設定される実サーバになります。このグループを GWM に関連付けるには、GWM と一致する SASP bind_id を割り当てます。SASP グループを設定するには、サーバファーム コンフィギュレーション サブメニューから bindid コマンドを使用します。

Router(config-slb-sfarm)# bindid 7
 

GWM の設定

GWM は DFP エージェントとして設定されます。GWM を設定するには、CSM コンフィギュレーション コマンドの dfp サブメニューを開始する必要があります。DFP エージェントとして GWM を設定する例を示します。

Router(config-slb-dfp)# agent ip.address port bind_id
 

) CLI を使用すると、bind_id は入力できません。ただし、bind_id は DFP を GWM エージェントとして、設定するときに必要です。CLI は「動作のタイムアウト」または「keepalive」として、bind_id キーワードを記述します。また、CLI を使用すると、2 つの値を追加して入力できます。SASP 環境では問題がない限り、この 2 つの値を入力しないでください。


他にも、GWM は次のように設定できます。

Router(config-slb-dfp)# agent ip.address port bind_id flags
 

または

Router(config-slb-dfp)# agent ip.address port bind_id flags keep-alive-interval
 

keepalive 間隔は、秒数で表します。デフォルトは 180 です。複数のフラグで CSM が GWM に登録する方法を制御します。フラグのデフォルト値はゼロです。


) フラグを設定するのは主にデバッグを目的としているので、フラグの値は、ゼロにしておくことをお勧めします。また、CSM はメンバーが開始している動作(trust)をサポートしていないので、34、35、38 および 39 の値は、サポートされません。


フラグの意味については、 表 8-5 を参照してください。

.

表 8-5 SASP のフラグ

フラグの値
意味

0

CSM のデフォルト登録フラグ(37)を使用します。

32

GWM のデフォルトのロード バランシング登録を指定します。ロード バランサは重み付けを新規に取得するために「Get Weights」メッセージを送信して、GWM から重み付けを引き出します。

GWM は重み付けをこのロード バランサに送信する場合、グループのメンバー全員の重み付けを含める必要があります(重み付けが変更されないメンバーも含みます)。

33

ロード バランサが「Send Weights」メッセージを使用して、重み付けを受信することを指定します(GWM は重み付けをロード バランサに入れます)。

34

GWM がメンバーが開始した登録、登録解除を信頼し、送信する重み付けの登録または登録解除をすぐに更新することを許可します。

35

33 および 34 と同じ。

36

GWM には前回以降、重み付けが変更されていないメンバーは含んではいけないことを指定します。

37

33 および 36 と同じ。

38

34 および 36 と同じ。

39

33、34 および 36 と同じ。

代替 bind_id の設定

デフォルトでは、1 つの bind_id が SASP bind_id、すなわち 65520 になるように設定されています。ただし、連続的な範囲 bind_id は使用できます。この範囲の先頭の bind_id は、1 ~ 65525 の任意の値です。その範囲の先頭の bind_id を設定する例を示します。

Router(config-module-csm)# variable SASP_FIRST_BIND_ID value
 

SASP で使用される bind_id の最大数は 8 です。また、この数字は、GWM がサポートの最大数です。bind_id の最大数は、0 ~ 8 の任意の値に設定できます。bind_id の値を設定する例を示します。

Router(config-module-csm)# variable SASP_GWM_BIND_ID_MAX value
 

2 つの変数を使用して、その変数に設定する内容を次に示します。

variable SASP_FIRST_BIND_ID 12
variable SASP_GWM_BIND_ID_MAX 3
 

これは bind_id 12、13、および 14 を使用して、3 つの異なる GWM が設定できることを表しています。


) これらの環境変数のいずれかを変更したら、CSM を再起動してください。


CSM の固有 の ID の設定

デフォルトでは、CSM には固有の識別文字列「Cisco-CSM」があります。CSM コンフィギュレーション コマンドを使用して、その文字列を設定する例を示します。

Router(config-module-csm)# variable SASP_CSM_UNIQUE_ID text
 

) これらの環境変数のいずれかを変更したら、CSM を再起動してください。


重み付けのスケーリングの設定

CSM 上の実サーバの重み付けは、0 ~ 100 の数です。メンバーの SASP 重み付けは、0 ~ 65536 です。GWM が CSM 範囲内での重み付けを生成しているだけの場合、スケーリングは不要です。GWM が SASP 範囲を完全に使用している場合、この範囲がマップされます。次に、SASP の重み付けをスケールする例を示します。

Router(config-module-csm)# variable SASP_SCALE_WEIGHTS value
 

SASP_SCALE_WEIGHTS の範囲は、0 ~ 12 です。0 ~ 11 の値は SASP の重み付けを 2 の n 乗値で分割することになります。12 という値は、65536 個の値全体を CSM 0-100 の重み付け範囲にマップします。

次に、SASP GWM の詳細を表示する例を示します。

Router# show module csm 3 dfp detail
DFP Agent 64.100.235.159:3860 Connection state: Connected
Keepalive = 65521 Retry Count = 33 Interval = 180 (Default)
Security errors = 0
Last message received: 03:33:46 UTC 01/01/70
Last reported Real weights for Protocol any, Port 0
Host 10.9.10.22 Bind ID 65521 Weight 71
Host 10.10.12.10 Bind ID 65521 Weight 70
Host 10.10.12.12 Bind ID 65521 Weight 68
Last reported Real weights for Protocol any, Port 44
Host 10.9.10.9 Bind ID 65521 Weight 69
DFP manager listen port not configured
No weights to report to managers
 

次に、SASP グループを表示する例を示します。

Router# show module csm 3 serverfarms detail
SVRFARM2, type = SLB, predictor = RoundRobin, nat = SERVER
virtuals inservice: 0, reals = 4, bind_id = 65521, fail action = none
inband health config: <none>
retcode map = <none>
Real servers:
10.10.12.10, weight = 78, OUTOFSERVICE, conns = 0
10.10.12.12, weight = 76, OPERATIONAL, conns = 0
10.9.10.9:44, weight = 77, OPERATIONAL, conns = 0
10.9.10.22, weight = 79, OUTOFSERVICE, conns = 0
Total connections = 0
 

次に、SASP 環境変数を表示する例を示します。

Router# show module csm 3 variable
variable value
----------------------------------------------------------------
ARP_INTERVAL 300
&133;
ROUTE_UNKNOWN_FLOW_PKTS 0
SASP_FIRST_BIND_ID 65520
SASP_GWM_BIND_ID_MAX 2
SASP_CSM_UNIQUE_ID paula jones
&133;

XML_CONFIG_AUTH_TYPE Basic

バックエンドでの暗号化

バックエンドで暗号化すると、セキュアなエンドツーエンド環境を構築することができます。クライアント(7.100.100.1)は VLAN 7 にアクセスするときにポート 6/47 に切り替えるために接続されます(図 8-2)。サーバ(191.162.2.8)は VLAN 190 にアクセスするときにポート 10/2 に切り替えるために接続されます。

SSL プロキシ VLAN 7 の設定は次のとおりです。

IP address:7.100.100.150

スタティック ルートおよびゲートウェイ:

ルート 191.0.0.0

ゲートウェイ 7.100.100.100

ゲートウェイ IP アドレス(MSFC 上のインターフェイス VLAN 7 の IP アドレス)が設定されているので、未知のネットワークを宛先とするクライアント側のトラフィックは、クライアントに続けてルーティングを行うゲートウェイ IP アドレスに転送されます。

クライアント側のゲートウェイ:7.100.100.100(MSFC 上で設定された VLAN の IP アドレス)

クライアントのプロキシ サービスの仮想 IP アドレス:7.100.100.150:81

サーバの IP アドレス:191.162.2.8

図 8-2 バックエンドでの暗号化

 

クライアント側の設定

次に、SSL プロキシ サービスを設定する例を示します。

ssl-proxy(config)# ssl-proxy service S1
ssl-proxy(config-ssl-proxy)# virtual ipaddr 10.1.0.21 protocol tcp port 443 secondary
ssl-proxy(config-ssl-proxy)# server ipaddr 10.2.0.100 protocol TCP port 80
ssl-proxy(config-ssl-proxy)# inservice
 

次に、CSM 仮想サーバを設定する例を示します。

Cat6k-2(config-module-csm)# serverfarm SSLfarm
Cat6k-2(config-slb-sfarm)# real 10.1.0.21 local
Cat6k-2(config-slb-real)# inservice
 
Cat6k-2(config-module-csm)# vserver VS1
Cat6k-2(config-slb-vserver)# virtual 10.1.0.21 tcp https
Cat6k-2(config-slb-vserver)# serverfarm SSLfarm
Cat6k-2(config-slb-vserver)# inservice
 

CSM 上では SSL ロード バランシング、また混合モードでは SSL Services Module をそれぞれ実行できます。

CSM は SSL-ID 固定機能を使用して、SSL 接続を同一 SSL Services Module に固定します。CSM は、SSL-ID を調べるためにクライアント側の TCP 接続を終端する必要があります。その後、ロード バランシングの決定が行われると、CSM は SSL Services Module への TCP 接続を開始する必要があります。

トラフィックでは、CSM は仮想サーバが受信したトラフィックを SSL Services Module にすべて渡します。このとき TCP の終端処理は SSL Services Module 上で行われます。SSL 固定機能をイネーブルにすると、CSM と SSL Services Module の接続は、完全に TCP 接続になります。

次に、混合モードで SSL ロード バランシングを設定する例を示します。

Cat6k-2(config-module-csm)# sticky 10 ssl timeout 60
Cat6k-2(config-module-csm)# serverfarm SSLfarm
Cat6k-2(config-slb-sfarm)# real 10.1.0.21 local
Cat6k-2(config-slb-sfarm)# inservice
Cat6k-2(config-slb-sfarm)# real 10.2.0.21
Cat6k-2(config-slb-sfarm)# inservice
Cat6k-2(config-module-csm)# vserver VS1
Cat6k-2(config-slb-vserver)# virtual 10.1.0.21 tcp https
Cat6k-2(config-slb-vserver)# sticky 60 group 10
Cat6k-2(config-slb-vserver)# serverfarm SSLfarm
Cat6k-2(config-slb-vserver)# persistent rebalance
Cat6k-2(config-slb-vserver)# inservice
 

CSM がクライアント側の TCP 接続の終端処理を必要とするときには、トラフィックが SSL Services Module に流れるように内部で生成された設定を調整する必要があります。サーバ ファーム SSLfarm 内で、同一 IP アドレスまたは各ローカル実サーバのポートを使用して仮想サーバを作成する必要があります。内部では、この仮想サーバは自分自身に流れるように設計されているトラフィックをすべて SSL Services Module に流すように設定できます。

内部で生成される設定を調整しなければならないのは、ローカル実サーバの IP アドレスと CSM 仮想サーバのアドレスが同一にする必要があるからです。CSM がこのローカル実サーバに接続を開始すると、SYN フレームと CSM との間で送信と受信が行われます。CSM が SYN を受信して、宛先 IP アドレスまたはポートが仮想サーバ VS1 と同一になると、より特化した仮想サーバが追加されない限り、CSM は VS1 を照合します。

サーバ側の設定

SSL Services Module が CSM をバックエンド サーバとして使用する場合、標準的な仮想サーバ設定はレイヤ 4 およびレイヤ 7 でのロード バランシング用になっています。

この仮想サーバがSSL Services Module からのトラフィックだけを受信するように制限を加えるには、VLAN ローカル仮想サーバのサブモード コマンドを次のように使用します。

Cat6k-2(config-module-csm)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-sfarm)# real 10.2.0.20
Cat6k-2(config-slb-sfarm)# inservice
 
Cat6k-2(config-module-csm)# vserver VS2
Cat6k-2(config-slb-vserver)# virtual 10.2.0.100 tcp www
Cat6k-2(config-slb-vserver)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-vserver)# vlan local
Cat6k-2(config-slb-vserver)# inservice
 

次に、実サーバをバックエンド サーバとして設定する例を示します。

Cat6k-2(config-module-csm)# serverfarm SSLpredictorforward
Cat6k-2(config-slb-sfarm)# predictor forward
 
Cat6k-2(config-module-csm)# vserver VS3
Cat6k-2(config-slb-vserver)# virtual 0.0.0.0 0.0.0.0 tcp www
Cat6k-2(config-slb-vserver)# serverfarm SSLpredictorforward
Cat6k-2(config-slb-vserver)# inservice
 

バックエンド サーバとしての CSM の設定

仮想サーバおよびサーバ ファームを設定すると、実サーバをバックエンド サーバとして使用できます。「クライアント側の設定」 で説明されている設定を使用して、CSM をバックエンド サーバとして使用できるように SSL ドーター カードを設定します。

次に、レイヤ 7 のロード バランシング用に CSM 仮想サーバを設定する例を示します。

Cat6k-2(config-module-csm)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-sfarm)# real 10.2.0.20
Cat6k-2(config-slb-real)# inservice
 
Cat6k-2(config-module-csm)# serverfarm SLBjpgfarm
Cat6k-2(config-slb-sfarm)# real 10.2.0.21
 
Cat6k-2(config-module-csm)# map JPG url
Cat6k-2(config-slb-map-cookie)# match protocol http url *jpg*
 
Cat6k-2(config-module-csm)# policy SLBjpg
Cat6k-2(config-slb-policy)# url-map JPG
Cat6k-2(config-slb-policy)#serverfarm SLBjpgfarm
 
Cat6k-2(config-module-csm)# vserver VS2
Cat6k-2(config-slb-vserver)# virtual 10.2.0.100 tcp www
Cat6k-2(config-slb-vserver)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-vserver)# slb-policy SLBjpg
Cat6k-2(config-slb-vserver)# inservice
 

次に、レイヤ 4 のロード バランシング用に CSM 仮想サーバを設定する例を示します。

Cat6k-2(config-module-csm)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-sfarm)# real 10.2.0.20
Cat6k-2(config-slb-real)# inservice
 
Cat6k-2(config-module-csm)# vserver VS2
Cat6k-2(config-slb-vserver)# virtual 10.2.0.100 tcp www
Cat6k-2(config-slb-vserver)# serverfarm SLBdefaultfarm
Cat6k-2(config-slb-vserver)# vlan local
Cat6k-2(config-slb-vserver)# inservice
 

バックエンド サーバとしての実サーバの設定

実サーバをバックエンド サーバとして使用するサーバ側のトラフィック フロー設定は、クライアント側の設定とよく似ています。「クライアント側の設定」で説明されている設定を使用して、実サーバをバックエンド サーバとして使用できるように SSL Services Module を設定します。

SSL Services Module のプロキシ サービス設定の場合は、新規に設定する必要はありません。次に、ユーザには意識させずに、内部的に設定を行う例を示します。

ssl-proxy(config)# ssl-proxy service S1
ssl-proxy(config-ssl-proxy)# virtual ipaddr 10.1.0.21 protocol tcp port 443 secondary
ssl-proxy(config-ssl-proxy)# server ipaddr 10.2.0.20 protocol TCP port 80
ssl-proxy(config-ssl-proxy)# inservice
 

次に、CSM 仮想サーバを設定する例を示します。

Cat6k-2(config-module-csm)# serverfarm SSLreals
 
Cat6k-2(config-slb-sfarm)# real 10.2.0.20
Cat6k-2(config-slb-sfarm)# inservice
 
Cat6k-2(config-module-csm)# serverfarm SSLpredictorforward
Cat6k-2(config-slb-sfarm)# predictor forward
 
Cat6k-2(config-module-csm)# vserver VS3
Cat6k-2(config-slb-vserver)# virtual 0.0.0.0 0.0.0.0 tcp www
Cat6k-2(config-slb-vserver)# serverfarm SSLpredictorforward
Cat6k-2(config-slb-vserver)# inservice