Catalyst 6500 シリーズ スイッチ CSM-S インストレーション コンフィギュレーション ノート Software Release 2.1(1)
仮想サーバ、マップ、およびポリシー の設定
仮想サーバ、マップ、およびポリシーの設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 3MB) | フィードバック

目次

仮想サーバ、マップ、およびポリシーの設定

仮想サーバの設定

TCPパラメータの設定

部分的なサーバファーム フェールオーバーの設定

仮想サーバの依存関係の設定

リダイレクト仮想サーバの設定

マップの設定

ポリシーの設定

一般ヘッダー解析の設定

一般ヘッダー解析の概要

一般ヘッダー解析の設定例

HTTPヘッダー用マップの作成

ヘッダー フィールドおよび一致する値の指定

ポリシーへのHTTPヘッダー マップの割り当て

仮想サーバへのポリシーの割り当て

一般ヘッダー解析の設定例

仮想サーバ、マップ、およびポリシーの設定

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

「仮想サーバの設定」

「マップの設定」

「ポリシーの設定」

「一般ヘッダー解析の設定」

仮想サーバの設定

ここでは、仮想サーバの設定方法について説明します。

「TCPパラメータの設定」

「部分的なサーバファーム フェールオーバーの設定」

「仮想サーバの依存関係の設定」

「リダイレクト仮想サーバの設定」


) 仮想サーバをIPアドレスで設定すると、このサーバがサービス停止中であっても、この特定のIPに対するAddress Resolution Protocol(ARP;アドレス解決プロトコル)要求には応答を開始します。この機能は、動作可能な仮想サーバを既存のデバイスからContent Switching Module with SSL(CSM-S)に切り替える場合、重要となります。同一ネットワーク内のほかの装置と同じIPで設定されたCSM-S上に仮想サーバがないことを確認してください。


仮想サーバは、ポリシーによって実サーバ ファームに関連付けられた、一連の実サーバを表します。仮想サーバを設定するには、デフォルトのサーバ ファーム(デフォルトのポリシー)を指定する仮想サーバの属性を設定し、ポリシー リストを使用して他のサーバ ファームを関連付ける必要があります。デフォルト サーバ ファーム(デフォルト ポリシー)は、要求がどのServer Load Balancing(SLB;サーバ ロード バランシング)ポリシーとも一致しなかった場合、またはポリシーが仮想サーバに関連付けられていない場合に使用されます。

サーバ ファームを仮想サーバに関連付ける前に、サーバ ファームを設定する必要があります。詳細については、「サーバ ファームの設定」を参照してください。ポリシーは、仮想サーバ コンフィギュレーションに入力された順番で処理されます。詳細については、「ポリシーの設定」を参照してください。

各仮想サーバに保留接続タイムアウトを設定すると、スイッチがトラフィックで溢れた場合に、接続を迅速に切断することができます。この接続は、要求/応答プロセスが完了していないクライアントとサーバ間のトランザクションに適用されます。

カスタマーごとに異なる仮想サーバを割り当てているサービス プロバイダー環境では、CSM-Sの接続リソースの大部分または全部を特定のサーバが吸収しないように接続を分散させる必要があります。Virtual IP(VIP;仮想IP)接続ウォーターマーク機能を使用すると、CSM-Sから特定の仮想サーバに振り分けられる接続数を制限できます。この機能では、仮想サーバごとに限度を設定できるので、全仮想サーバ間で接続リソースが公平に分散されます。


) レベル4またはレベル7のどちらかで動作する仮想サーバを1つだけ設定できます。レベル4で動作する仮想サーバを設定する場合は、仮想サーバ コンフィギュレーションの中でサーバ ファーム(デフォルト ポリシー)を指定します(次の手順のステップ3を参照)。レベル7で動作する仮想サーバを設定する場合は、仮想サーバ コンフィギュレーションにSLBポリシーを追加します(次の手順のステップ7を参照)。


CSM-SはあらゆるIPプロトコルからのトラフィックに対してロードバランスを図ることができます。仮想サーバ サブモードで仮想サーバを設定するときには、仮想サーバが受け付けるIPプロトコルを定義する必要があります。


) すべてのIPプロトコルにプロトコル番号がありますが、CSM-Sでは対応する番号を入力する代わりに、名前でTCPまたはUDPを指定できます。


仮想サーバ コンフィギュレーション サブモードで仮想サーバを設定します。

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

 

コマンド
目的

ステップ 1

Router(config-module-csm)# owner owner-name address street-address-information billing-info billing-address-information email-address email-information maxconns 1:MAXULONG

仮想サーバへのアクセスを特定のオーナー オブジェクトだけに制限します。

ステップ 2

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

仮想サーバを特定し、仮想サーバ コンフィギュレーション モードを開始します12

ステップ 3

Router(config-slb-vserver)# vs-owner owner-name maxconns 1:MAXULONG

この仮想サーバのオーナー オブジェクト名を設定します。

ステップ 4

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

仮想サーバの任意のポート番号または名前、接続カップリング、および接続タイプに対応するIPアドレスを設定します2 protocol 値は tcp udp any (ポート番号は不要)、または number 値(ポート番号は不要)です。

ステップ 5

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

デフォルト サーバ ファームを仮想サーバに関連付けます23。指定できるサーバ ファームは1つだけです。サーバ ファームを指定しなかった場合、他のあらゆるポリシーと一致しなかった要求は廃棄されます。

ステップ 6

Router(config-slb-vserver)# sticky duration

(任意)クライアントからの接続が同じ実サーバを使用するように設定します23。デフォルトではstickyが無効です。

ステップ 7

Router(config-slb-vserver)# sticky group-number reverse

(任意)CSM-Sが該当する方向の接続を同じ送信元に戻すようにします。

ステップ 8

Router(config-slb-vserver)# client ip-address network-mask [ exclude ]

(任意)仮想サーバを使用できるクライアントを制限します23

ステップ 9

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

(任意)1つまたは複数のコンテント スイッチング ポリシーを仮想サーバに関連付けます2

ステップ 10

Router(config-slb-vserver)# inservice

CSMで使用できるように、仮想サーバをイネーブルにします2

ステップ 11

Router# s how module csm slot vserver [details]

コンテント スイッチング用に定義された仮想サーバの情報を表示します。

1.モードまたはサブモードを終了するには、exitコマンドを入力します。メニューのトップ レベルに戻るには、endコマンドを入力します。

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

3.これらのパラメータはデフォルトのポリシーを参照します。

次に、barnettという名前の仮想サーバを設定し、boscoという名前のサーバ ファームを関連付けて、固定グループ12への50分間の固定接続を設定する例を示します。

Router(config)# mod csm 2
Router(config-module-csm)# sticky 1 cookie foo timeout 100
Router(config-module-csm)# exit
Router(config-module-csm)#
Router(config-module-csm)# serverfarm bosco
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)#
Router(config-slb-sfarm)# vserver barnett
Router(config-slb-vserver)# virtual 10.1.0.85 tcp 80
Router(config-slb-vserver)# serverfarm bosco
Router(config-slb-vserver)# sticky 50 group 12
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# exit
Router(config-module-csm)# end
 

次に、vs1という名前の仮想サーバを設定し、2つのポリシーとともに、クライアント トラフィックが特定のポリシーと一致した場合のデフォルト サーバ ファームを指定する例を示します。仮想サーバは、そのポリシーに結合されたサーバ ファームに対して負荷が分散されます。クライアント トラフィックがどのポリシーとも一致しなかった場合、仮想サーバはboscoというデフォルト サーバ ファームに対して負荷が分散されます。

 
Router(config)# mod csm 2
Router(config-module-csm)# map map3 url
Router(config-slb-map-url)# match protocol http url *finance*
Router(config-slb-map-url)#
Router(config-slb-map-url)# map map4 url
Router(config-slb-map-url)# match protocol http url *mail*
Router(config-slb-map-url)#
Router(config-slb-map-url)# serverfarm bar1
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-real)# inservice
Router(config-slb-real)#
Router(config-slb-real)# serverfarm bar2
Router(config-slb-sfarm)# real 10.1.0.106
Router(config-slb-real)# inservice
Router(config-slb-real)#
Router(config-slb-real)# serverfarm bosco
Router(config-slb-sfarm)# real 10.1.0.107
Router(config-slb-real)# inservice
Router(config-slb-real)#
Router(config-slb-real)# policy pc1
Router(config-slb-policy)# serverfarm bar1
Router(config-slb-policy)# url-map map3
Router(config-slb-policy)# exit
Router(config-module-csm)#
Router(config-module-csm)# policy pc2
Router(config-slb-policy)# serverfarm bar2
Router(config-slb-policy)# url-map map4
Router(config-slb-policy)# exit
Router(config-module-csm)#
Router(config-module-csm)# vserver bar1
Router(config-slb-vserver)# virtual 10.1.0.86 tcp 80
Router(config-slb-vserver)# slb-policy pc1
Router(config-slb-vserver)# slb-policy pc2
Router(config-slb-vserver)# serverfarm bosco
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)#
 

TCPパラメータの設定

TCPは、既知のプロトコル メッセージを使用してTCPセッションをアクティブおよび非アクティブにするコネクション型プロトコルです。サーバのロードバランシング中に接続データベースからの接続を追加または削除すると、最終ステート マシンによってSYN、SYN/ACK、FIN、RSTなどのTCP信号が相互に関連付けられます。接続を追加すると、これらの信号を使用して、サーバの故障および回復の検出、サーバあたりの接続数の判別が行われます。

CSM-SはUDPもサポートします。UDPはコネクション型でないため、通常は、(上位層プロトコルの詳細を取得せずに)プロトコル メッセージを見分けて、UDPメッセージ交換の開始または終了を検出することはできません。UDP接続の終了は、設定可能なアイドル タイマーに基づいて検出されます。同じ実サーバに対して複数の同時接続を要求するプロトコル(FTP[ファイル転送プロトコル]など)がサポートされています。仮想IPアドレスを宛先とするInternet Control Management Protocol(ICMP)メッセージ(pingなど)も処理されます。

TCPパラメータを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

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

仮想サーバを特定し、仮想サーバ コンフィギュレーション モードを開始します45

ステップ 2

Router(config-slb-vserver)# idle duration

接続のパケット処理が行われていない場合に、接続情報を保持する時間(秒単位)を設定します2 duration の有効値は、0(接続は無期限でオープンのままである)~65535秒です。デフォルト値は3600です。


idle 0を指定した場合、接続は作成されますが接続テーブルから自動的に削除されません。そのため、この接続を削除するまですべてのリソースが消費される可能性があります。最大接続数を指定するには、
INFINITE_IDLE_TIME_MAXCONNS環境変数を使用します。


 

4.モードまたはサブモードを終了するには、exitコマンドを入力します。メニューのトップ レベルであるRouter (config)>に戻るには、endコマンドを入力します。

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

次に、仮想サーバ用のTCPパラメータを設定する例を示します。

Router(config-module-csm)# vserver barnett
Router(config-slb-vserver)# idle 10
 

CSM-Sは、分割されたTCPパケットをサポートします。TCPフラグメント機能は、レベル4ポリシーが定義されているVIPとだけ連動します。SYNパケットまたはレイヤ7ポリシーには作用しません。分割されたTCPパケットをサポートするために、CSM-SはTCPフラグメントを既存のデータ フローに一致させるか、またはブリッジングVLAN IDに一致させます。CSM-Sは、フラグメントをレイヤ7解析用に再構築しません。CSM-Sには、バッファおよびフラグメントIDバケットの最終番号があるので、ハッシュ コリジョンが発生している場合はパケットを再送信する必要があります。

TCPスプライシングがイネーブルのときは、仮想サーバにレイヤ7ポリシーがない場合でも、仮想サーバをレイヤ7装置として指定する必要があります。このオプションは、TCPプロトコルにのみ有効です。

TCPスプライシングを設定する手順は、次のとおりです。

部分的なサーバファーム フェールオーバーの設定

バックアップ サーバ ファームを設定すると、サーバ ファームを正常に維持するのに必要なアクティブな実サーバ数、およびサーバ ファームを再度アクティブ化するのに必要なアクティブな実サーバ数を指定する2つのスレッシュホールド値を定義できます。

これらのスレッシュホールド値を指定しなければ、サーバ ファーム内のすべての実サーバで障害が発生した場合、サーバ ファーム自体が機能しなくなります。この場合、サーバ ファーム内の1台の実サーバの正常に戻ると、プライマリ サーバ ファームが再び動作可能となります。

 

コマンド
目的

ステップ 1

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

仮想サーバを特定し、仮想サーバ コンフィギュレーション モードを開始します。

ステップ 2

Router(config-slb-vserver)# serverfarm primary_serverfarm [ backup backup_serverfarm [ threshold outservice real_value inservice real_value ][ sticky ]]

デフォルトのサーバ ファームを仮想サーバに関連付けし、バックアップ サーバ ファームを定義します。

outservice 値は、サーバ ファームを正常に維持するのに最小限必要なアクティブな実サーバ数を指定します。 inservice 値は、サーバ ファームを再度アクティブ化するのに必要なアクティブな実サーバ数を指定します。

いずれの値も有効範囲は、1からサポートされる最大実サーバ数までです。 outservice 値は、 inservice 値より小さい値である必要があります。

次に、サーバ ファーム内に正常な実サーバが2台以下となった場合にバックアップ サーバ ファームがアクティブとなり、サーバ ファーム内の正常な実サーバが6台となった場合にプライマリ サーバ ファームが再度アクティブとなるように設定する例を示します。

Router(config-slb-sfarm)# vserver barnett
Router(config-slb-vserver)# serverfarm bosco backup BACKUP threshold outservice 3 inservice 6
 

仮想サーバの依存関係の設定

CSM-Sで仮想サーバを追跡するように設定できます。この機能により、追跡対象の仮想サーバでサービス停止または障害が発生した場合、それに依存する仮想サーバは自動的に停止します。

仮想サーバの依存関係を設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# vserver dependent_ virtserver_name

依存する仮想サーバを特定し、仮想サーバ コンフィギュレーション モードを開始します。

ステップ 2

Router(config-slb-vserver)# virtual ip-address [ ip-mask ] protocol port-number [ service { ftp | rtsp | termination }]

依存する仮想サーバの任意のポート番号または名前、接続カップリング、および接続タイプに対応するIPアドレスを設定します2 protocol 値は tcp udp any (ポート番号は不要)、または number 値(ポート番号は不要)です。

ステップ 3

Router(config-slb-vserver)# status-tracking tracked_virtserver_nam e

追跡対象の仮想サーバを特定します。この仮想サーバでサービス停止または障害が発生すると、ステップ1で特定されたこれに依存する仮想サーバが自動的に停止します。

次に、仮想サーバBでサービス停止または障害が発生した場合に、仮想サーバAおよびCが自動的に停止するように設定する例を示します。

Router(config-slb-sfarm)# vserver A
Router(config-slb-vserver)# virtual 10.1.0.85 tcp 80
Router(config-slb-vserver)# status-tracking B
Router(config-slb-vserver)# exit
Router(config-slb-sfarm)# vserver C
Router(config-slb-vserver)# virtual 10.1.0.86 tcp 80
Router(config-slb-vserver)# status-tracking B
 

リダイレクト仮想サーバの設定

コマンド
目的

ステップ 1

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

仮想サーバを特定し、仮想サーバ コンフィギュレーション モードを開始します67

ステップ 2

Router(config-slb-vserver)# vserver tcp-protect

TCPスプライシング用の仮想サーバを指定します2

ステップ 3

Router(config-slb-vserver)# virtual 100.100.100.100 tcp any service tcp-termination

TCPスプライシングをイネーブルにします。

6.モードまたはサブモードを終了するには、exitコマンドを入力します。メニューのトップ レベルであるRouter (config)>に戻るには、endコマンドを入力します。

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

redirect-vserver コマンドは、実サーバ専用の仮想サーバを設定するためのサーバ ファーム サブモード コマンドです。このマッピングを行うと、TCPセッションを介してクライアントが実サーバに永久的に接続されます。

リダイレクト仮想サーバを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-slb-sfarm)# redirect-vserver name

実サーバ専用の仮想サーバを設定し、リダイレクト サーバ サブモードを開始します89

ステップ 2

Router(config-slb-redirect-v)# webhost relocation relocation string

このサーバ ファームに届いたHTTP要求をリダイレクトする場合の、宛先URLホスト名を設定します。再割り当て文字列に指定できるのは、URLの先頭部分だけです。残りの部分は、元のHTTP要求から取得されます2

ステップ 3

Router(config-redirect-v)# webhost backup backup string

リダイレクト サーバのサービスが停止した場合に、HTTP要求に応答して送信される再割り当て文字列を設定します。指定できるのは再割り当て文字列の先頭だけです。残りの部分は、元のHTTP要求から取得されます2

ステップ 4

Router(config-redirect-v)# virtual v_ipaddress tcp port

リダイレクト仮想サーバのIPアドレスおよびポートを設定します2

ステップ 5

Router(config-redirect-v)# idle duration

リダイレクト仮想サーバのCSM-S接続アイドル タイマーを設定します2

ステップ 6

Router(config-redirect-v)# client ip-address network-mask [exclude]

リダイレクト仮想サーバにアクセスできるクライアントを制限するために使用する、IPアドレスおよびネットワーク マスクの組み合わせを設定します2

ステップ 7

Router(config-redirect-v)# inservice

リダイレクト仮想サーバをイネーブルにし、アドバタイズを開始します2

ステップ 8

Router(config-redirect-v)# ssl port

(任意)仮想サーバによるSSL転送をイネーブルにします。

ステップ 9

Router# show module csm vserver redirect [detail]

設定されたリダイレクト サーバをすべて表示します。

8.モードまたはサブモードを終了するには、exitコマンドを入力します。メニューのトップ レベルに戻るには、endコマンドを入力します。

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

次に、リダイレクト仮想サーバを設定して、サーバ ファーム内の実サーバに仮想サーバを指定する例を示します。

Router (config)# serverfarm FARM1
Router (config-slb-sfarm)# redirect-vserver REDIR_1
Router (config-slb-redirect-)# webhost relocation 127.1.2.30 301
Router (config-slb-redirect-)# virtual 172.1.2.30 tcp www
Router (config-slb-redirect-)# inservice
Router (config-slb-redirect-)# exit
Router (config-slb-sfarm)# redirect-vserver REDIR_2
Router (config-slb-redirect-)# webhost relocation 127.1.2.31 301
Router (config-slb-redirect-)# virtual 172.1.2.31 tcp www
Router (config-slb-redirect-)# inservice
Router (config-slb-redirect-)# exit
Router (config-slb-sfarm)# real 10.8.0.8
Router (config-slb-real)# redirect-vserver REDIR_1
Router (config-slb-real)# inservice
Router (config-slb-sfarm)# real 10.8.0.9
Router (config-slb-real)# redirect-vserver REDIR_2
Router (config-slb-real)# inservice
Router (config-slb-real)# end
Router# show module csm serverfarm detail
 

マップの設定

マップを作成して、複数のURL、Cookie、HTTPヘッダー、および戻りコードをグループ内で定義すると、ポリシーを設定するときに、ポリシーをグループに関連付けることができます(ポリシーの設定を参照)。URLの正規表現(url1、url2など)は、UNIXファイル名の仕様に基づきます。詳細については、 表6-1 を参照してください。

URLマップを追加する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

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

グループを作成し、複数のURL一致条件を指定します10 11

ステップ 2

Router(config-slb-map-url)# match protocol http url url-path

要求URLと突き合せる文字列を指定します2

10.モードまたはサブモードを終了するには、exitコマンドを入力します。メニューのトップ レベルに戻るには、endコマンドを入力します。

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

表6-1 文字列と一致する特殊文字

表記
説明

*

0個以上の文字

?

1文字


) CLI(コマンドライン インターフェイス)パーサーがヘルプ要求として解釈しないように、疑問符の前にCtrl-Vコマンドを使用する必要があります。


 

\

エスケープ文字

角かっこで囲まれた範囲[0-9]

範囲内の任意の1文字と一致

範囲の先頭に^を付加

範囲内のどの文字とも一致しません。指定された文字以外のすべての文字と一致します。

.\a

アラート(ASCII 7)

.\b

バックスペース(ASCII 8)

.\f

フォーム フィード(ASCII 12)

.\n

改行(ASCII 10)

.\r

Carriage Return(CR;復帰)(ASCII 13)

.\t

タブ(ASCII 9)

.\v

垂直タブ(ASCII 11)

.\0

ヌル(ASCII 0)

.\\

バックスラッシュ

.\x##

2桁の16進表記で指定されたあらゆるASCII文字

Cookieマップを追加する手順は、次のとおりです。

コマンド
目的

ステップ 1

Router(config)# map cookie-map-name cookie

Cookieマップに複数のCookieを設定します12

ステップ 2

Router(config-slb-map-cookie)# match protocol http cookie cookie-name cookie-value cookie-value-expression

複数のCookieを設定します1

null

 

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

Router(config-module-csm)# serverfarm pl_url_url_1
Router(config-slb-sfarm)# real 10.8.0.26
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
Router(config-slb-policy)# serverfarm pl_url_url_1
Router(config-slb-policy)# url-map url_1
Router(config-slb-policy)# exit
Router(config-module-csm)# serverfarm pl_url_url_2
Router(config-slb-sfarm)# real 10.8.0.27
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
Router(config-module-csm)# map url_1 url
Router(config-slb-map-url)# match protocol http url /url1
Router(config-slb-map-url)# exit
Router(config-module-csm)# map url_2 url
Router(config-slb-map-url)# match protocol http url /url/url/url
Router(config-slb-map-url)# match protocol http url /reg/*long.*
Router(config-slb-map-url)# exit
Router(config-module-csm)# policy policy_url_1
Router(config-module-csm)# policy policy_url_2
Router(config-slb-policy)# serverfarm pl_url_url_2
Router(config-slb-policy)# url-map url_2
Router(config-slb-policy)# exit
Router(config-module-csm)# vserver vs_url_url
Router(config-slb-vserver)# virtual 10.8.0.145 tcp 80
Router(config-slb-vserver)# slb-policy policy_url_1
Router(config-slb-vserver)# slb-policy policy_url_2
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# exit
 

map コマンドを使用して、HTTPヘッダー タイプを指定し、マップ グループを作成します。 map コマンドを入力すると、サブモードが開始され、要求でCSM-Sに検索させるヘッダー フィールドおよび値を指定できます。

HTTPヘッダー用のマップを作成する手順は、次のとおりです。

 

コマンド
目的
Router(config-module-csm)# map name header

HTTPヘッダー マップ グループを作成して名前を指定します。

ヘッダー マップの詳細については、「一般ヘッダー解析の設定」を参照してください。

戻りコードをチェックするためのマップを作成する手順は、次のとおりです。

 

コマンド
目的
Router(config-module-csm)# map name retcode

戻りコード マップ グループを作成して名前を指定します。

HTTP戻りエラー コード チェックを設定する手順は、次のとおりです。

 

コマンド
目的
Router(config-slb-sfarm)# retcode- map name_of_map

HTTP戻りエラー コード チェックを設定します。

戻りコード マップの詳細については、「HTTP戻りコード チェックの概要および設定」を参照してください。

ポリシーの設定

ポリシーは、サーバ ファームにトラフィックを分散する場合に、トラフィックが満たさなければならないアクセス ルールです。ポリシーによって、CSM-Sはレイヤ7トラフィックを分散させます。1つの仮想サーバに複数のポリシーを割り当て、その仮想サーバに複数のアクセス ルールを作成できます。ポリシーを設定するときは、最初にアクセス ルール(マップ、クライアント グループ、および固定[sticky]グループ)を設定してから、これらのアクセス ルールを所定のポリシーに従って結合します。


) サーバ ファームとポリシーを関連付ける必要があります。サーバ ファームが関連付けられていないポリシーは、トラフィックを転送できません。ポリシーに関連付けられたサーバ ファームは、そのポリシーと一致するあらゆる要求を受信します。


ポリシーのマッチングを実行できる場合、CSM-Sはポリシー リスト内の最初のポリシーを選択します。ポリシーは、仮想サーバにバインドされた順序でポリシー リストに配置されます。

関連付けられたサーバ ファーム内のすべてのサーバがダウンしている場合でも、ポリシーは一致されます。この場合のポリシーのデフォルト動作は、これらの接続を受け取らず、クライアントにreset(RST)を送り返すことです。この動作を変更する場合は、このポリシーにバックアップ サーバ ファームを追加します。

backup sorry-serverfarm [ sticky ]オプションをバックアップ サーバ ファームに追加すると、プライマリ サーバ ファームに適用された固定(sticky)グループがバックアップ サーバ ファームにも適用されるかどうかも定義できます。プライマリ サーバ ファームのスティッキ性を指定しない場合、バックアップ サーバ ファームにその設定は適用されません。

たとえば、固定(sticky)グループにポリシーを設定した場合、このポリシー内のプライマリ サーバ ファームが固定されます。クライアントは、プライマリ サーバ ファームに設定された実サーバに固定されます。プライマリ サーバ ファームのすべての実サーバで障害が発生した場合、このクライアントからの新規要求はバックアップ サーバ ファームに送信されます。プライマリ サーバ ファームの実サーバが復旧して運用可能になれば、次のアクションが結果として実行されます。

バックアップ実サーバへの既存の接続は、バックアップ実サーバによって継続されます。

固定(sticky)オプションがバックアップ サーバ ファームでイネーブルの場合、クライアントからの新規要求がバックアップ実サーバに送信されます。

固定(sticky)オプションがバックアップ サーバ ファームで使用されていなければ、新規要求がプライマリ実サーバに送信されます。

リスト内のポリシーを並べ替えるには、ポリシーを削除してから、正しい順番で再入力します。ポリシーを削除して入力するには、仮想サーバ サブモードで no slb-policy policy name コマンドおよび slb-policy policy name コマンドを入力します。

ロードバランシング ポリシーを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

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

ポリシーを作成し、ポリシー サブモードを開始して、ポリシー属性を設定します13

ステップ 2

Router(config-slb-policy)# url-map url-map-name

URLマップをポリシーに関連付けます14 map コマンドを使用して、事前にURLマップ/Cookieマップを作成および設定しておく必要があります。「一般ヘッダー解析の設定」を参照してください。

ステップ 3

Router(config-slb-policy)# cookie-map cookie-map-name

Cookieマップをポリシーに関連付けます 2

ステップ 4

Router(config-slb-policy)# header-map name

HTTPヘッダー マップをポリシーに関連付けます。

ステップ 5

Router(config-slb-policy)# sticky-group group-id

このポリシーを特定の固定(sticky)グループに関連付けます 2

ステップ 6

Router(config-slb-policy)# client-group value | std-access-list-name

ポリシーに対応するクライアント フィルタを設定します。クライアント フィルタを定義する場合に使用するのは、標準IPアクセス リストだけです。

ステップ 7

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

特定のロードバランシング ポリシーを処理するサーバ ファームを設定します。1つのポリシーに設定できるサーバ ファームは1つだけです2

ステップ 8

Router(config-slb-policy)# set ip dscp dscp-value

パケットがロードバランシング ポリシーと一致した場合は、トラフィックにDifferentiated Services Code Point(DSCP)値をマークします2

ステップ 9

Router(config-slb-policy)# nat client { client-pool-name | static }

(任意)Network Address Translation(NAT;ネットワーク アドレス変換)モード クライアントをイネーブルにします2 クライアントNATプールの設定を参照)。


) サーバファームおよびポリシーの両方でクライアントNATが設定されている場合は、ポリシーがサーバ ファームより優先されます。


 

nullnull

次の例は、map1というURLマップがすでに設定されていることが前提です。サーバ ロードバランシング ポリシーを設定し、仮想サーバに関連付ける例を示します。

Router(config-slb-policy)# serverfarm pl_sticky
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-sfarm)# inservice
Router(config-slb-policy)# exit
Router(config-module-csm)# policy policy_sticky_ck
Router(config-slb-policy)# serverfarm pl_sticky
Router(config-slb-policy)# url-map map1
Router(config-slb-policy)# exit
Router(config-module-csm)# vserver vs_sticky_ck
Router(config-slb-vserver)# virtual 10.1.0.80 tcp 80
Router(config-slb-vserver)# slb-policy policy_sticky_ck
Router(config-slb-sfarm)# inservice
Router(config-slb-policy)# exit

一般ヘッダー解析の設定

ソフトウェアRelease 2.1(1)から、CSM-Sは一般HTTP要求ヘッダー解析をサポートしています。HTTP要求ヘッダーには、ユーザの要件に合わせてコンテンツをどのようにフォーマットするかを記述するフィールドがあります。

一般ヘッダー解析の概要

CSM-SはHTTPヘッダーのフィールドを解析し、照合することによって得た情報をポリシー情報とともに使用して、ロードバランシングの決定を下します。たとえば、HTTPヘッダーのブラウザ タイプ フィールドを解析することによって、CSM-Sはユーザがモバイル ブラウザでコンテンツにアクセスしているかどうかを判別し、モバイル ブラウザ用にフォーマットされたコンテンツのあるサーバを選択できます。

HTTP get要求ヘッダー レコードの1例を示します。

GET /?u HTTP/1.1<0D><0A>
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg<0D><0A>
Referer: http://www.yahoo.com/<0D><0A>
Accept-Language: en-us<0D><0A>
Accept-Encoding: gzip, deflate<0D><0A>
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)<0D><0A>
Host: finance.yahoo.com<0D><0A>
Connection: Keep-Alive<0D><0A>
Cookie: B=51g3cjstaq3vm; Y=1<0D><0A>
<0D><0A>
 

一般ヘッダー解析の設定例

一般ヘッダー解析を設定するには、HTTPヘッダーのフィールドに対するポリシー マッチングの実行をCSM-Sに指示するコマンドを入力します。次に、CSM-S上で一般ヘッダー解析を設定する方法について説明します。

「HTTPヘッダー用マップの作成」

「ヘッダー フィールドおよび一致する値の指定」

「ポリシーへのHTTPヘッダー マップの割り当て」

「仮想サーバへのポリシーの割り当て」

「一般ヘッダー解析の設定例」

HTTPヘッダー用マップの作成

map コマンドを使用して、HTTPヘッダー タイプを指定し、マップ グループを作成します。 map コマンドを入力すると、サブモードが開始され、要求でCSM-Sに検索させるヘッダー フィールドおよび値を指定できます。

HTTPヘッダー用のマップを作成する手順は、次のとおりです。

 

コマンド
目的
Router(config-module-csm)# map name header

HTTPヘッダー マップ グループを作成して名前を指定します。


) その他のマップ タイプには、URLおよびCookieがあります。


ヘッダー フィールドおよび一致する値の指定

match コマンドを使用して、フィールド名を指定し、さらにHTTP要求を受信したときにCSM-Sが照合する値を指定します。

ヘッダー フィールドおよび一致する値を指定する手順は、次のとおりです。

 

コマンド
目的
Router(config-slb-map-header)# match protocol http header field header-value expression

フィールド名および値を指定します。フィールドはCookie以外の任意のHTTPヘッダーにできます。Cookieヘッダーを設定しなければならない場合は、Cookieマップを設定できます。


) CSM-Sでは、ポリシー マッチングの条件として、1つまたは複数のHTTPヘッダー フィールドを指定できます。1つのHTTPヘッダー グループで複数のフィールドを設定した場合、この条件を満たすにはグループのすべての式が一致しなければなりません。


ポリシーへのHTTPヘッダー マップの割り当て

ポリシー サブモードで、そのポリシーに含めるヘッダー マップを指定します。ヘッダー マップには、ポリシーに含めるHTTPヘッダー条件を指定します。

ポリシーにHTTPヘッダー マップを割り当てる手順は、次のとおりです。

 

コマンド
目的

ステップ 1

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

ポリシーを作成します。

ステップ 2

Router(config-slb-policy)# header-map name

HTTPヘッダー マップをポリシーに割り当てます。


) デフォルトでは、あらゆるHTTPヘッダー情報がポリシー規則を満たします。HTTP URLおよびHTTP Cookieは、それぞれ固有のヘッダー情報タイプであり、CSM-Sによって別個に処理されます。


仮想サーバへのポリシーの割り当て

仮想サーバ サブモードで、 vserver virtserver-name コマンドを使用し、ヘッダー マップが割り当てられているポリシーの名前を指定します。

ヘッダー マップが割り当てられたポリシー名を指定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

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

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

ステップ 2

Router(config-slb-policy)# header-map name

HTTPヘッダー マップをポリシーに割り当てます。

一般ヘッダー解析の設定例

次に、一般ヘッダー解析を設定する例を示します。

Router(config)# mod csm 2
Router(config-module-csm)# !!!configure generic header map
Router(config-module-csm)# map map2 header
Router(config-slb-map-heaer)# $col http header Host header-value *.yahoo.com
 
Router(config-slb-map-header)# !!! configure serverfarm
Router(config-slb-map-header)# serverfarm farm2
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-real)# inservice
Router(config-slb-real)# exit
Router(config-slb-sfarm)# exit
 
Router(config-module-csm)# !!! configurate policy
Router(config-module-csm)# policy pc2
Router(config-slb-policy)# serverfarm farm2
Router(config-slb-policy)# header-map map2
Router(config-slb-policy)# exit
 
 
 
Router(config-module-csm)# !!! config vserver
Router(config-module-csm)# vserver vs2
Router(config-slb-vserver)# virtual 10.1.0.82 tcp 80
Router(config-slb-vserver)# slb-policy pc2
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# end
Router(config)# show module csm 2 map det