セッションの持続性(スティッキ性)の設定
セッションの固定(スティッキ性)は、同一のクライアントから同一のサーバへ常時複数の(同時または連続した)接続を送信する機能です。この機能は、特定のロードバランシング環境で一般的に必要です。
アプリケーションのトランザクションを完了する(ブラウザでWebサイトにアクセスし、購入するさまざまな品目を選択してからチェックアウトするなど)には、通常、複数(ときには何百、何千)の同時または連続接続が必要です。こういったトランザクションの多くは、一時的に重要な情報を生成して、それを使用します。この情報はトランザクションを処理する特定のサーバ上で保存したり修正したりします。このトランザクションの完了までに数分から数時間かかる可能性があり、クライアントはその間同じサーバに何度も送信する必要があります。
バックエンド共有データベースによる多層設計でも問題の一部は解決できますが、ローカル サーバ キャッシュを利用することで、アプリケーションのパフォーマンスをさらに改善できます。ローカル サーバのキャッシュを使用するとデータベースに接続する必要がなくなり、新しいサーバが選択されるたびにトランザクション固有の情報が得られます。
持続性に関する問題の中でも最も難しいのは、複数の接続にわたって個々のクライアントをどのように特定するかということです。ロードバランシング デバイスはクライアントの識別に使用できるあらゆる情報を保存し、現在トランザクションを処理しているサーバにその情報を関連付ける必要があります。
(注) Content Switching Module(CSM;コンテント スイッチング モジュール)は、256,000のエントリからなるスティッキ データベースを維持できます。
CSMは個々のクライアントを識別して、次の方法で固定処理を実行します。
• 送信元IPアドレスの固定
CSMに送信元IPアドレス全体(32ビットのネットマスクを含めて)を学習させるか、またはその一部を学習させるかを設定できます。
• SSL識別情報の固定
クライアントおよびサーバがSecure Socket Layer(SSL)を介して通信している場合、複数の接続にわたって一意のSSL識別番号が維持されます。SSLバージョン3.0またはTransport Layer Security(TLS)1.0では、クリア テキストでこの識別番号を伝送する必要があります。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 SSL Services Module
Configuration Note』のChapter 5「Configuring Different Modes of Operation」を参照してください。
ssl-stickyコマンドについては、『Catalyst 6500 Series Switch Content Switching Module
Command Reference』を参照してください。
• ダイナミックCookieラーニング
特定のCookie名を探して、クライアント要求のHTTPヘッダーまたはサーバの「Set-Cookie」メッセージから自動的にその値を学習するようにCSMを設定できます。
CSMはデフォルトで、Cookie値全体を学習します。この機能はCSMソフトウェアRelease 4.1.(1)において、オプションのオフセットおよび長さを取り入れて拡張され、Cookie値の一部分だけを学習するようにCSMに対して指示できるようになりました。「Cookie固定のオフセットおよび長さ」を参照してください。
ダイナミックCookieラーニングは、同一のCookie内にセッションIDまたはユーザIDを複数保存するアプリケーションを扱う場合に役立ちます。スティッキ性に関連があるのは、Cookie値の特定のバイトだけです。
CSMソフトウェアRelease 4.1(1)には、ダイナミックCookieスティッキ機能も追加されています。これは、URLの一部としてのCookie情報を検索する(さらに学習して固定する)機能です。詳細については、「URLラーニング」を参照してください。URLの学習は、HTTP URLにCookie情報を組み込むアプリケーションで有用です。場合によっては、この機能を使用してCookieを拒否するクライアントに対処できます。
• Cookie挿入
CSMはサーバに代わってCookieを挿入するので、サーバがCookieを設定しない場合でもCookie固定を実行できます。Cookieには、CSMが特定の実サーバ固定を確実に実行するための情報が含まれています。
• HTTPヘッダーの固定
CSMは、Mobile Station ISDN Number(MSISDN;モバイル ステーションISDN番号)、サービス キー、セッションIDなどのHTTPヘッダー情報の内容に基づいて固定を実行します。
固定(sticky)グループの設定
固定(sticky)グループを設定するには、固定方法(送信元IP、SSL ID、Cookie、またはHTTPヘッダー)とそのグループのパラメータを設定し、さらにポリシーと関連付ける必要があります。固定(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 | header
name } [address [source | destination | both]][timeout
sticky-time ]
|
同じポリシーと一致する同じクライアントからの接続で、同じ実サーバが使用されるようにします。 |
次に、固定グループを設定して、ポリシーに関連付ける例を示します。
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を指定する例を示します。
Router(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のオフセットおよび長さを設定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# module csm 4
Router(config-module-csm)# sticky 20 cookie SESSION_ID
Router(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ラーニング機能の設定例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# module csm 4
Router(config-module-csm)# sticky 30 cookie session_cookie
Router(config-slb-sticky-cookie)# cookie secondary session-id
Router(config-slb-sticky-cookie)#
HTTPヘッダーの固定
クライアントがプロキシ デバイスの後ろに配置されている場合、送信元IPアドレスなどの一部の情報が失われます。HTTPヘッダーの内容(たとえば、MSISDN、サービス キー、セッションIDなど)に基づいてクライアント セッションを一意に識別できます。指定したHTTPヘッダーの内容に基づいて固定を実行するようにCSMを設定できます。
HTTPヘッダーの固定を設定する手順は、次のとおりです。
|
|
|
ステップ 1 |
Router (config-module-csm)#
sticky
sticky-group-id
header
header_name
timeout
timeout
|
HTTPヘッダーの固定をイネーブルにし、スティッキヘッダー サブモードを開始します。 |
ステップ 2 |
Router (config-slb-sticky-header)#
header offset
offset
length
length
|
(任意) offset オプションは、ヘッダーの先頭から無視するバイト数を指定します。 length オプションは、ヘッダー内で解析するバイト数を指定します。 |
次に、HTTPヘッダーの固定を設定し、ヘッダー オフセットと長さを指定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# module csm 4
Router(config-module-csm)# sticky 10 header msisdn timeout 20
Router(config-slb-sticky-header)# header offset 5 length 50
RHIの設定
ここではRoute Health Injection(RHI)の設定方法について説明します。
• 「RHIについて」
• 「仮想サーバ用RHIの設定」
RHIの概要
RHIは、CSMにVIPアドレスの可用性をネットワーク全体にアドバタイズさせます。また、ネットワーク全体にわたって同一のVIPアドレスおよびサービスを持つ複数のCSM装置を配置できます。あるCSMは、ほかの装置でサーバ ロードバランス サービスを利用できなくなった場合に、ほかの装置のサービスを変更できます。このCSMは、ほかのサーバ ロードバランシング デバイスよりクライアント システムに論理上近いので、サービスの提供もできます。
(注) CSMはVIPアドレスをホスト ルートとしてアドバタイズしますが、ほとんどのルータはホスト ルート情報をインターネットに伝播しないので、RHIの用途はイントラネットに限定されます。
RHIをイネーブルにするには、次のようにCSMを設定します。
• 実サーバをプローブし、使用可能な仮想サーバおよびVIPアドレスを識別します。
• 変更が発生するたびに、VIPアドレスの可用性情報をMultilayer Switch Feature Card(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アドレスが使用可能になって、使用不可能なVIPアドレスのアドバタイズが取り消された場合に、CSMはMSFCにアドバタイズを送信します。ルータはルーティング テーブルを参照して、要求をクライアントから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仮想サーバ コマンドを入力して、仮想サーバごとに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 |
0 |
整数(0~1) |
CSMが停止している実サーバのARPに応答(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の期限切れの時刻および日付を設定します。 |
CSM_FAST_FIN_TIMEOUT |
10 |
整数(10~65535) |
FINが検出された後、接続をリセットするためのタイムアウト(秒)を指定します。 |
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の区切り文字のリストを設定します。 |
INFINITE_IDLE_TIME_MAXCONNS |
1024 |
0~4294967295 |
無限アイドル時間を指定できる最大接続数を設定します。 |
MAX_PARSE_LEN_MULTIPLIER |
1 |
整数(1~16) |
設定したmax-parse-lenをこの総数で乗算します。 |
MAX_VSERVERS_PER_VIP |
10 |
整数(7~10) |
同じIPアドレスを保持できる仮想サーバの最大数を指定します。値は2の乗数(たとえば、2^7=128、2^10=1024)として指定されます。 |
MSTS_RDP_VIP_LIST |
なし |
ストリング(最大256バイト) |
Microsoft Terminal Services Remote Desktop Protocol(MSTS-RDP)をサポートするVIPのリストを設定します。 |
NAT_CLIENT_HASH_SOURCE_PORT |
0 |
整数(0~1) |
送信元ポートを使用してクライアントのNAT IPアドレスを取得するかどうかを指定します。 |
NO_RESET_UNIDIRECTIONAL_FLOWS |
0 |
整数(0~1) |
設定されている場合、タイムアウト時に単一方向フローをリセットしないように指定します。 |
REAL_SLOW_START_ENABLE |
3 |
整数(0~10) |
スロースタート サーバへ送信される平均接続数を指定し、スロースタート機能をディセーブルまたはイネーブルにします。値は2の乗数として指定されます。 |
ROUTE_UNKNOWN_FLOW_PKTS |
0 |
整数(0~2) |
既存のフローと一致しないSYNまたはnon-SYNパケットをルーティングするかどうかを指定します。 |
SECURE_HTTP_PRIV_KEY_FILE |
なし |
ストリング (0~256文字) |
HTTPサーバが使用するプライベート キー ファイルを指定します。 |
SECURE_HTTP_PORT |
443 |
整数(1~65535) |
HTTPSサーバのポート番号を指定します。 |
SECURE_HTTP_SERVER_CERTIFICATE |
なし |
ストリング (0~256文字) |
HTTPSサーバが使用する証明書ファイルを指定します。 |
SECURE_HTTP_SSL_METHOD |
0 |
整数(0~3) |
HTTPSサーバが使用するSSLのバージョンを指定します。 |
SECURE_HTTP_TFTP_HOST_IPADDRESS |
なし |
ストリング (0~16文字) |
HTTPサーバの証明書を持つTFTPサーバのIPアドレスを指定します。 この変数が設定されていない場合は、MSFCがデフォルトTFTPサーバになり、CSMは暗黙でMSFCファイルシステム上の証明書を検索します。 |
SECURE_SASP_ENABLE |
0 |
整数(0~1) |
セキュアServer Application State Protocol(SASP)機能をイネーブル(1)にするかどうかを指定します。 |
SECURE_SASP_SSL_METHOD |
0 |
整数(0~3) |
SASPクライアントが使用するSSLのバージョンを指定します。 |
SECURE_SASP_TFTP_HOST_IPADDRESS |
なし |
ストリング(0~16文字) |
SASPクライアントの証明書を持つTFTPサーバのIPアドレスを指定します。この変数が設定されていない場合は、MSFCがデフォルトのTFTPサーバになり、CSMは暗黙的にMSFCファイルシステム上の証明書を検索します。 |
SECURE_SASP_SERVER_CERTIFICATE |
なし |
ストリング (0~256文字) |
セキュアSASPクライアントが使用する証明書ファイルを指定します。 |
SECURE_SASP_PRIV_KEY_FILE |
なし |
ストリング(0~256文字) |
セキュアSASPクライアントが使用するプライベート キー ファイルを指定します。 |
SWITCHOVER_RP_ACTION |
0 |
整数(0~1) |
スーパバイザ エンジンRoute Processor(RP)のスイッチオーバーが発生したあとで、復旧(0)または停止/再起動(1)するかどうかを指定します。 |
SWITCHOVER_SP_ACTION |
0 |
整数(0~1) |
スーパバイザ エンジン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
----------------------------------------------------------------
ARP_LEARNED_INTERVAL 14400
ARP_GRATUITOUS_INTERVAL 15
ARP_REPLY_FOR_NO_INSERVICE_VIP 0
AGGREGATE_BACKUP_SF_STATE_TO_VS 0
COOKIE_INSERT_EXPIRATION_DATE Fri, 1 Jan 2010 01:01:50 GMT
DEST_UNREACHABLE_MASK 0xffff
GSLB_LICENSE_KEY (no valid license)
HTTP_CASE_SENSITIVE_MATCHING 1
HTTP_URL_COOKIE_DELIMITERS /?&#+
INBAND_STATE_CHANGED_MSG_RATE 4
INFINITE_IDLE_TIME_MAXCONNS 1024
MAX_PARSE_LEN_MULTIPLIER 1
NAT_CLIENT_HASH_SOURCE_PORT 0
NO_RESET_UNIDIRECTIONAL_FLOWS 0
ROUTE_UNKNOWN_FLOW_PKTS 0
SASP_CSM_UNIQUE_ID Cisco-CSM
SYN_COOKIE_THRESHOLD 5000
VSERVER_ICMP_ALWAYS_RESPOND false
XML_CONFIG_AUTH_TYPE Basic
MSTS_RDP_VIP_LIST MSTS-RDP-200 XML_TEST1
SECURE_HTTP_TFTP_HOST_IPADDRESS
SECURE_HTTP_SERVER_CERTIFICATE
SECURE_HTTP_PRIV_KEY_FILE
SECURE_SASP_TFTP_HOST_IPADDRESS
SECURE_SASP_SERVER_CERTIFICATE
SECURE_SASP_PRIV_KEY_FILE
コンフィギュレーションの現在の環境変数セットのすべての情報を表示するには、次のように show module csm slot variable detail コマンドを使用します。
Router# show mod csm 5 variable detail
Name:ARP_INTERVAL Rights:RW
Valid values:Integer (15 to 31536000)
Time (in seconds) between ARPs for configured hosts
Name:ARP_LEARNED_INTERVAL Rights:RW
Valid values:Integer (60 to 31536000)
Time (in seconds) between ARPs for learned hosts
Name:ARP_GRATUITOUS_INTERVAL Rights:RW
Valid values:Integer (10 to 31536000)
Time (in seconds) between gratuitous ARPs
Valid values:Integer (1 to 60)
Seconds between ARP retries
Name:ARP_RETRIES Rights:RW
Valid values:Integer (2 to 15)
Count of ARP attempts before flagging a host as down
Name:ARP_LEARN_MODE Rights:RW
Valid values:Integer (0 to 1)
Indicates whether CSM learns MAC address on responses only (0) or all traffic (1)
Name:ARP_REPLY_FOR_NO_INSERVICE_VIP Rights:RW
Valid values:Integer (0 to 1)
Whether the CSM would reply to ARP for out-of-service vserver
Name:ADVERTISE_RHI_FREQ Rights:RW
Valid values:Integer (1 to 65535)
The frequency in second(s) the CSM will check for RHI updates
Name:AGGREGATE_BACKUP_SF_STATE_TO_VS Rights:RW
Valid values:Integer (0 to 1)
Whether to include the operational state of a backup serverfarm into the state of a virtual server
Name:COOKIE_INSERT_EXPIRATION_DATE Rights:RW
Value:Fri, 1 Jan 2010 01:01:50 GMT
Default:Fri, 1 Jan 2010 01:01:50 GMT
Valid values:String (2 to 63 chars)
Configuring the expiration time and date for the HTTP Cookie inserted by the CSM
Name: CSM_FAST_FIN_TIMEOUT Rights: RW
Valid values: Integer (10 to 65535)
Timeout (in seconds) for connection reset after FIN is deteted
Name:DEST_UNREACHABLE_MASK Rights:RW
Valid values:Integer (0 to 65535)
Bitmask defining which ICMP destination unreachable codes are to be forwarded
Name:FT_FLOW_REFRESH_INT Rights:RW
Valid values:Integer (1 to 65535)
FT slowpath flow refresh interval in seconds
Name:GSLB_LICENSE_KEY Rights:RW
Default:(no valid license)
Valid values:String (1 to 63 chars)
License key string to enable GSLB feature
Name:HTTP_CASE_SENSITIVE_MATCHING Rights:RW
Valid values:Integer (0 to 1)
Whether the URL (Cookie, Header) matching and sticky to be case sensitive
Name:HTTP_URL_COOKIE_DELIMITERS Rights:RW
Valid values:String (1 to 64 chars)
Configuring the list of delimiter characters for Cookies in the URL string
Name:INBAND_STATE_CHANGED_MSG_RATE Rights:RW
Valid values:Integer (0 to 32)
Maximum logging messages per second when real server changed state within inband
Name:INFINITE_IDLE_TIME_MAXCONNS Rights:RW
Valid values:Integer (1 to 4294967295)
Maximum number of connectins with infinite idle timout
Name:MAX_PARSE_LEN_MULTIPLIER Rights:RW
Valid values:Integer (1 to 16)
Multiply the configured max-parse-len by this amount
Name:NAT_CLIENT_HASH_SOURCE_PORT Rights:RW
Valid values:Integer (0 to 1)
Whether to use the source port to pick client NAT IP address
Name:NO_RESET_UNIDIRECTIONAL_FLOWS Rights:RW
Valid values:Integer (0 to 1)
If set, unidirectional flows will not be reset when timed out
Name:REAL_SLOW_START_ENABLE Rights:RW
Valid values:Integer (0 to 10)
Disable or Enable Slow Start feature with average number of conn sent to the slowstart server. It is represented in powers of 2
Name:ROUTE_UNKNOWN_FLOW_PKTS Rights:RW
Valid values:Integer (0 to 3)
Whether to route non-SYN packets that do not matched any existing flows
Name:SASP_CSM_UNIQUE_ID Rights:RW
Valid values:String (3 to 63 chars)
Text identifier of this CSM to GWM running SASP
Name:SASP_FIRST_BIND_ID Rights:RW
Valid values:Integer (1 to 65525)
Treat DFP bind_ids as SASP IDs starting at this value
Name:SASP_GWM_BIND_ID_MAX Rights:RW
Valid values:Integer (0 to 8)
Maximum number of GWMS/bind_ids using SASP
Name:SASP_SCALE_WEIGHTS Rights:RW
Valid values:Integer (0 to 12)
Scale SASP weights by N, 12 means map range to CSM range
Name:SSL_DEFAULT_STICKY Rights:RW
Valid values:Integer (0 to 1)
Stick to Source IP Sticky on Unknown or BAD SSL format
Name:SWITCHOVER_RP_ACTION Rights:RW
Valid values:Integer (0 to 1)
Whether to recover (0) or halt/reboot (1) after a Supervisor RP switchover occurs
Name:SWITCHOVER_SP_ACTION Rights:RW
Valid values:Integer (0 to 1)
Whether to recover (0) or halt/reboot (1) after a Supervisor SP switchover occurs
Name:SYN_COOKIE_INTERVAL Rights:RW
Valid values:Integer (1 to 60)
The interval, in seconds, at which a new syn-cookie key is generated
Name:SYN_COOKIE_THRESHOLD Rights:RW
Valid values:Integer (0 to 1048576)
The threshold (in number of pending sessions) at which syn-cookie is engaged
Name:TCP_MSS_OPTION Rights:RW
Valid values:Integer (1 to 65535)
Maximum Segment Size (MSS) value sent by CSM for L7 processing
Name:TCP_WND_SIZE_OPTION Rights:RW
Valid values:Integer (1 to 65535)
Window Size value sent by CSM for L7 processing
Name:VSERVER_ICMP_ALWAYS_RESPOND Rights:RW
Valid values:String (1 to 5 chars)
If "true" respond to ICMP probes regardless of vserver state
Name:XML_CONFIG_AUTH_TYPE Rights:RW
Valid values:String (5 to 6 chars)
HTTP authentication type for xml-config:Basic or Digest
Name:MSTS_RDP_VIP_LIST Rights:RW
Value:MSTS-RDP-200 XML_TEST1
Valid values:String (0 to 256 chars)
List of VIPs supporting MSTS-RDP Protocol
Name:MAX_VSERVERS_PER_VIP Rights:RW
Valid values:Integer (7 to 10)
Configure the maximum limit for Virtual servers having the same IP address. It is represented in powers of 2
Name:SECURE_HTTP_PORT Rights:RW
Valid values:Integer (1 to 65535)
Name:SECURE_HTTP_SSL_METHOD Rights:RW
Valid values:Integer (0 to 3)
SSL version used by the HTTPS server
Name:SECURE_HTTP_TFTP_HOST_IPADDRESS Rights:RW
Valid values:String (0 to 16 chars)
IP address of TFTP Server that contains the HTTP server Certificates
Name:SECURE_HTTP_SERVER_CERTIFICATE Rights:RW
Valid values:String (0 to 256 chars)
Certificate file used by the HTTPS server
Name:SECURE_HTTP_PRIV_KEY_FILE Rights:RW
Valid values:String (0 to 256 chars)
Private Key file used by the HTTPS server
Name:SECURE_SASP_ENABLE Rights:RW
Valid values:Integer (0 to 1)
Name:SECURE_SASP_SSL_METHOD Rights:RW
Valid values:Integer (0 to 3)
SSL version used by the secure SASP client
Name:SECURE_SASP_TFTP_HOST_IPADDRESS Rights:RW
Valid values:String (0 to 16 chars)
IP address of TFTP Server that contains the SASP client Certificates
Name:SECURE_SASP_SERVER_CERTIFICATE Rights:RW
Valid values:String (0 to 256 chars)
Certificate file used by the SASP client
Name:SECURE_SASP_PRIV_KEY_FILE Rights:RW
Valid values:String (0 to 256 chars)
Private Key file used by the SASP client
連続(persistent)接続の設定
CSMでは、HTTPヘッダー内のURL、Cookie、またはその他のフィールドに基づいてHTTP接続をスイッチングできます。CSMの連続(persistent)接続サポートにより、連続接続での後続HTTP要求はそれぞれ別々にスイッチング可能です。新しいHTTP要求が届いた場合その要求は、前の要求と同じサーバにスイッチングしたり、別のサーバにスイッチングしたり、またはクライアントにリセットしてその要求が完了しないように設定することができます。
ソフトウェアRelease 2.1(1)の時点で、CSMはHTTP 1.1の連続機能(persistence)をサポートしています。この機能によって、ブラウザは1つの連続接続で複数のHTTP要求を送信できます。連続接続の確立後、サーバは同じクライアントからさらに要求が届く可能性を想定して、設定可能なインターバルの間、接続をオープンな状態にしておきます。連続接続によって、要求のたびに新しいTCP接続を確立することに伴うオーバーヘッドが排除されます。
HTTP 1.1の連続機能はデフォルトとして、レイヤ7ポリシーで設定されたすべての仮想サーバでイネーブルです。連続接続をディセーブルにする場合は、 no persistent rebalance コマンドを入力します。連続接続をイネーブルにする場合は、 persistent rebalance コマンドを入力します。
次に、連続接続を設定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with
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
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が送信元Network Address Translation(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ヘッダー挿入を機能させるには、デフォルトのポリシーは適用できません。
次に、ヘッダー フィールドと値を指定して、要求を検索する例を示します。
Router(config-module-csm)# natpool TESTPOOL 10.10.110.200 10.10.110.210 netmask 255.255.255.0
Router(config-module-csm)# map HEADER-INSERT header
Router(config-slb-map-header)# insert protocol http header Source-IP header-value %is
Router(config-slb-map-header)# insert protocol http header User-Agent header-value "MyBrowser 1.0"
Router(config-module-csm)# real SERVER1
Router(config-slb-real)# address 10.10.110.10
Router(config-slb-real)# inservice
Router(config-module-csm)# real SERVER2
Router(config-slb-real)# address 10.10.110.20
Router(config-slb-real)# inservice
Router(config-module-csm)# serverfarm FARM-B
Router(config-slb-sfarm)# nat server
Router(config-slb-sfarm)# nat client TESTPOOL
Router(config-slb-real)# real name SERVER1
Router(config-slb-real)# inservice
Router(config-slb-real)# real name SERVER2
Router(config-slb-real)# inservice
Router(config-module-csm)# policy INSERT
Router(config-slb-policy)# header-map HEADER-INSERT
Router(config-slb-policy)# serverfarm FARM-B
Router(config-module-csm)# vserver WEB
Router(config-slb-vserver)# virtual 10.10.111.100 tcp www
Router(config-slb-vserver)# persistent rebalance
Router(config-slb-vserver)# slb-policy INSERT
Router(config-slb-vserver)# inservice
GSLBの設定
ここでは、CSM Global Server Load Balancing(GSLB;グローバル サーバ ロードバランシング)の拡張機能セット オプション、およびその使用方法について説明します。拡張機能セット オプションを使用する前に、「はじめに」の「ライセンス」および表紙裏に記載されているソフトウェア使用許諾書の諸条件を入念に確認してください。
(注) ソフトウェアをダウンロードまたはインストールすることにより、使用許諾書に同意することになります。この許諾書のすべての条項に同意できない場合は、ソフトウェアをダウンロード、インストール、または使用しないでください。
GSLB拡張機能セット オプションの使用
GSLBをイネーブルにするには、イネーブル モードで次の手順を実行します。
|
|
Router(config)#
mod csm 5
|
コンフィギュレーション モードを開始して、特定のCSM(たとえば、ここで使用されているモジュール5など)のCSMコンフィギュレーション モードを開始します。 |
Router(config-module-csm)#
variable
name
value
|
次のように名前と値を指定して、GSLBをイネーブルにします。 • Name= • Value= |
Router(config-module-csm)#
exit
Router (config)#
write mem
|
CSMモジュール コンフィギュレーション モードを終了して、設定の変更を保存します。 |
Router#:
hw-module
slot number
reset
|
CSMを再起動して、変更をアクティブにします。 |
表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は、利用可能な負荷に基づき、Domain Name Server(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トラップをイネーブルにします。 |
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
<config><csm_module slot="4"><vserver name="FOO"/></csm_module></config>
******** Server **************
******** Client **************
POST /xml-config HTTP/1.1
<config><csm_module slot="4"><vserver name="FOO"/></csm_module></config>
******** Server **************
HTTP/1.1 401 Unauthorized
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から正しく提供できます。
現在、一般公開されているDTDは、作成するXMLコンフィギュレーション文書の基盤です( 付録C「CSM XMLのDTD」 を参照)。XML文書はHTTP POST要求によって、CSMに直接送られます。XMLを使用するには、Cisco IOSのCLIを使用して、前もってCSM上で最小限のコンフィギュレーションを作成しておく必要があります。 xml-config コマンドについては、『 Catalyst 6500 Series Content Switching Module Command Reference 』を参照してください。
応答は要求をミラー化したXML文書です。問題のある要素にはチャイルド エラー要素でフラグが設定され、エラー コードおよびエラー文字列が示されます。XML文書でルート要素の属性を使用することによって、無視すべきエラーのタイプを指定できます。
Cisco IOS CLIには、特定のCSMインターフェイスのXMLコンフィギュレーション機能をイネーブルにするコマンドが追加される予定です。イネーブル/ディセーブル機能とともに、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文書の一部が、エラー タイプと説明を示したエラー要素とともに戻されます。
仮想サーバ名が脱落している場合のエラー応答の例を示します。
<error code="0x20">Missing attribute name in element
戻されるエラー コードは、コンフィギュレーション要素のエラー許容属性のビットとも対応しています。戻される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です。これは、認識されない属性および要素の無視と対応しています。
SASPの設定
SASPによって、CSMはWorkload Manager(WM)のレジスタからトラフィック ウェイトに関する推奨を受けることができます。さらに、WMからCSMに新しいロードバランシング グループ メンバーを推奨できます。
SASPは、Cisco IOS Release 12.1(13)E3以降のリリースでサポートされます。また、4.1.2以降のリリースをサポートするCisco IOSリリースが必要です。
SASPを設定するには、サーバ ファーム(SASPグループなど)、およびWM(SASP Global Workload Manager [GWM]など)の代理になっているDFPエージェントに特殊なbind_idを関連付ける必要があります。
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を入力することはできません。ただし、このエージェントをGWMとして設定するには、bind_idが必須です。CLIでは、bind_idキーワードを「アクティビティ タイムアウト」または「キープアライブ」として記述します。さらに2つの値を追加できます。ただし、SASP環境のトラブルシューティング時を除き、追加の値は入力しないでください。
代わりに、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
キープアライブ インターバルは秒数です。デフォルトは180です。フラグはCSMがGWMにどのように登録するかを制御します。デフォルト値はゼロです。
(注) このコンフィギュレーションは主にデバッグに使用されるため、フラグはゼロのままにしておくことを推奨します。また、CSMはメンバーが開始したアクション(信頼)をサポートしません。したがって、値34、35、38、および39はサポートされていません。
フラグの意味については、 表8-5 を参照してください。
.
表8-5 SASPフラグ
|
|
0 |
CSMのデフォルトの登録フラグ(37)を使用 |
32 |
GWMのデフォルト ロードバランシング登録を指定。ロードバランサは「Get Weights」メッセージを送信して新しいウェイトを取得し、GWMからそのウェイトを引き出します(pull)。 GWMには、このロードバランサにウェイトを送信するときに、(ウェイトが変わらないメンバーを含めて)すべてのグループ メンバーのウェイトを組み込む必要があります。 |
33 |
ロードバランサが「Send Weights」メッセージを介してウェイトを受信することを指定(GWMはロードバランサにウェイトを格納[push]) |
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を設定できます。
(注) これらの環境変数を1つでも変更した場合は、CSMを再起動してください。
CSM固有のID設定
CSMにはデフォルトで、「Cisco-CSM」という固有の識別ストリングが与えられます。次に、CSMのコンフィギュレーション コマンドを使用して、このストリングを設定する例を示します。
Router(config-module-csm)# variable SASP_CSM_UNIQUE_ID text
(注) これらの環境変数を1つでも変更した場合は、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)
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>
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
次に、SASP環境変数の表示例を示します。
Router# show module csm 3 variable
----------------------------------------------------------------
ROUTE_UNKNOWN_FLOW_PKTS 0
SASP_CSM_UNIQUE_ID paula jones
XML_CONFIG_AUTH_TYPE Basic
バックエンドの暗号化
バックエンドの暗号化によって、安全なエンドツーエンド環境が実現します。図8-2では、クライアント(7.100.100.1)はスイッチ ポート6/47に接続してVLAN 7にアクセスします。サーバ(191.162.2.8)は、スイッチ ポート10/2に接続してVLAN 190にアクセスします。
SSLプロキシであるVLAN7の設定は、次のとおりです。
• IPアドレス ― 7.100.100.150
• スタティック ルートおよびゲートウェイ:
–ルート191.0.0.0
–ゲートウェイ7.100.100.100
ゲートウェイのIPアドレス(MSFC上のVLAN 7のIPアドレス)は、未知のネットワークを宛先とするクライアント側のトラフィックがこのアドレスに転送され、そこからクライアントにルーティングされるように設定されています。
• クライアント側ゲートウェイ ― 7.100.100.100(MSFC上で設定されたVLAN 7の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仮想サーバの設定例を示します。
Router(config-module-csm)# serverfarm SSLfarm
Router(config-slb-sfarm)# real 10.1.0.21 local
Router(config-slb-real)# inservice
Router(config-module-csm)# vserver VS1
Router(config-slb-vserver)# virtual 10.1.0.21 tcp https
Router(config-slb-vserver)# serverfarm SSLfarm
Router(config-slb-vserver)# inservice
SSLロードバランシングは、混在モードのCSMおよびSSL Services Module上で実行できます。
CSMはSSL-ID固定(sticky)機能を使用して、同じSSL Services ModuleにSSL接続を固定します。CSMは、SSL-IDを調べるためにクライアント側のTCP接続を終端させなければなりません。CSMはさらに、ロードバランシングが決定された時点で、SSL Services Module(SSLSM)へのTCP接続を開始しなければなりません。
トラフィック フローには、仮想サーバで受信したあらゆるトラフィックをSSLSM上で終端するTCPでSSLSMに渡すCSMが含まれます。SSL固定(sticky)機能をイネーブルにすると、CSMとSSLSM間の接続が完全なTCP接続になります。
次に、混在モードのSSLロードバランシングを設定する例を示します。
Router(config-module-csm)# sticky 10 ssl timeout 60
Router(config-module-csm)# serverfarm SSLfarm
Router(config-slb-sfarm)# real 10.1.0.21 local
Router(config-slb-sfarm)# inservice
Router(config-slb-sfarm)# real 10.2.0.21
Router(config-slb-sfarm)# inservice
Router(config-module-csm)# vserver VS1
Router(config-slb-vserver)# virtual 10.1.0.21 tcp https
Router(config-slb-vserver)# sticky 60 group 10
Router(config-slb-vserver)# serverfarm SSLfarm
Router(config-slb-vserver)# persistent rebalance
Router(config-slb-vserver)# inservice
CSMがクライアント側のTCP接続を終端させなければならないときに、SSLSMでトラフィックを転送するコンフィギュレーションを内部生成の形で作成する必要があります。サーバ ファーム SSLfarm のローカルな各実サーバの同じIPアドレスまたはポートを指定して、仮想サーバを作成する必要があります。この仮想サーバは内部で、その仮想サーバ宛てのあらゆるトラフィックをSSLSMに転送するように設定されます。
内部生成の形でコンフィギュレーションを作成しなければならないのは、ローカル実サーバのIPアドレスとCSM仮想サーバのアドレスを一致させなければならないからです。CSMがこのローカル実サーバへの接続を開始すると、CSMがSYN(同期)フレームを送受信します。CSMがSYNを受信し、宛先IPアドレスまたはポートが仮想サーバのVS1と同じだった場合、CSMはさらに具体的な仮想サーバが追加されないかぎり、VS1と一致したとみなします。
サーバ側の設定
SSLSMがバックエンド サーバとしてCSMを使用する場合、レイヤ4およびレイヤ7のロードバランシングには、仮想サーバの標準設定を使用します。
次に、SSLSMからのトラフィックだけを受信するように、この仮想サーバに制限を加える例を示します。
Router(config-module-csm)# serverfarm SLBdefaultfarm
Router(config-slb-sfarm)# real 10.2.0.20
Router(config-slb-sfarm)# inservice
Router(config-module-csm)# vserver VS2
Router(config-slb-vserver)# virtual 10.2.0.100 tcp www
Router(config-slb-vserver)# serverfarm SLBdefaultfarm
Router(config-slb-vserver)# vlan local
Router(config-slb-vserver)# inservice
次に、バックエンド サーバとして実サーバを設定する例を示します。
Router(config-module-csm)# serverfarm SSLpredictorforward
Router(config-slb-sfarm)# predictor forward
Router(config-module-csm)# vserver VS3
Router(config-slb-vserver)# virtual 0.0.0.0 0.0.0.0 tcp www
Router(config-slb-vserver)# serverfarm SSLpredictorforward
Router(config-slb-vserver)# inservice
バックエンド サーバとしてのCSMの設定
仮想サーバおよびサーバ ファームの設定により、実サーバをバックエンド サーバとして使用できます。CSMをバックエンド サーバとして使用するには、「クライアント側の設定」で説明した設定を使用し、さらにSSL daughter cardを設定します。
次に、CSM仮想サーバにレイヤ7ロードバランシングを設定する例を示します。
Router(config-module-csm)# serverfarm SLBdefaultfarm
Router(config-slb-sfarm)# real 10.2.0.20
Router(config-slb-real)# inservice
Router(config-module-csm)# serverfarm SLBjpgfarm
Router(config-slb-sfarm)# real 10.2.0.21
Router(config-module-csm)# map JPG url
Router(config-slb-map-cookie)# match protocol http url *jpg*
Router(config-module-csm)# policy SLBjpg
Router(config-slb-policy)# url-map JPG
Router(config-slb-policy)#serverfarm SLBjpgfarm
Router(config-module-csm)# vserver VS2
Router(config-slb-vserver)# virtual 10.2.0.100 tcp www
Router(config-slb-vserver)# serverfarm SLBdefaultfarm
Router(config-slb-vserver)# slb-policy SLBjpg
Router(config-slb-vserver)# inservice
次に、CSM仮想サーバにレイヤ4ロードバランシングを設定する例を示します。
Router(config-module-csm)# serverfarm SLBdefaultfarm
Router(config-slb-sfarm)# real 10.2.0.20
Router(config-slb-real)# inservice
Router(config-module-csm)# vserver VS2
Router(config-slb-vserver)# virtual 10.2.0.100 tcp www
Router(config-slb-vserver)# serverfarm SLBdefaultfarm
Router(config-slb-vserver)# vlan local
Router(config-slb-vserver)# inservice
バックエンド サーバとしての実サーバの設定
実サーバをバックエンド サーバとした、サーバ側コンフィギュレーションのトラフィック フローは、クライアント側のコンフィギュレーションと同様です。実サーバをバックエンド サーバとして使用するには、「クライアント側の設定」で説明した設定を使用し、さらにSSLSMを設定します。
SSLSM プロキシ サービスに関して、新しい設定は不要です。次に、設定を内部で開始し、ユーザにわからないようにする例を示します。
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仮想サーバの設定例を示します。
Router(config-module-csm)# serverfarm SSLreals
Router(config-slb-sfarm)# real 10.2.0.20
Router(config-slb-sfarm)# inservice
Router(config-module-csm)# serverfarm SSLpredictorforward
Router(config-slb-sfarm)# predictor forward
Router(config-module-csm)# vserver VS3
Router(config-slb-vserver)# virtual 0.0.0.0 0.0.0.0 tcp www
Router(config-slb-vserver)# serverfarm SSLpredictorforward
Router(config-slb-vserver)# inservice