Catalyst 6500 シリーズ スイッチ コンテント スイッチング モジュール インストレーション コンフィギュレーション ノート Software Release 4.1(2)
仮想サーバ、マップ、およびポリシー の設定
仮想サーバ、マップ、およびポリシーの設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

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

仮想サーバの設定

TCPパラメータの設定

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

マップの設定

ポリシーの設定

一般ヘッダー解析の設定

一般ヘッダー解析の概要

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

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

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

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

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

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

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

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

「仮想サーバの設定」

「マップの設定」

「ポリシーの設定」

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

仮想サーバの設定

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

「TCPパラメータの設定」

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


) 仮想サーバをIPアドレスで設定すると、このサーバがサービス停止中であっても、この特定の IP に対する ARP 要求には応答を開始します。これは、動作可能な仮想サーバを既存のデバイスから CSM に切り替える場合、特に重要なことです。同一ネットワーク内の他の装置と同一 IP で設定された CSM 上に仮想サーバがないことを確認してください。


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

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

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

カスタマーごとに異なる仮想サーバを割り当てているサービス プロバイダー環境では、CSM の接続リソースの大部分または全部を特定のサーバが吸収しないように接続を分散させる必要があります。

VIP 接続ウォーターマーク機能を使用すると、CSM から特定の仮想サーバに割り振る接続数を制限できます。この機能を使用すると、仮想サーバごとに上限を設定できるので、全仮想サーバ間で接続リソースが公平に分散されます。


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


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


) すべての IP プロトコルにプロトコル番号がありますが、CSM では対応する番号を入力する代わりに、名前で 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が該当する方向の接続を同じ送信元に戻すようにします。

ステップ 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パラメータの設定

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

CSM は User Datagram Protocol(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

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

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

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

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

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

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

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

 

コマンド
目的

ステップ 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接続アイドル タイマーを設定します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文字

\

エスケープ文字

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

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

範囲の先頭に^を付加

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

.\a

アラート(ASCII 7)

.\b

バックスペース(ASCII 8)

.\f

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

.\n

改行(ASCII 10)

.\r

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

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

 

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

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 に検索させるヘッダー フィールドおよび値を指定できます。

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


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


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

関連付けられたサーバ ファーム内のすべてのサーバがダウンしている場合でも、ポリシーは照合されます。この場合のポリシーのデフォルト動作は、これらの接続を受け取らず、クライアントに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

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

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

次の例は、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

一般ヘッダー解析の設定

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

一般ヘッダー解析の概要

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

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に指示するコマンドを入力します。次に、CSM上で一般ヘッダー解析を設定する方法について説明します。

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

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

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

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

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

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

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

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

 

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

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


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


HTTP のヘッダー挿入とは、CSM がクライアント IP アドレスなどの情報を HTTP ヘッダーに挿入する機能です。HTTPのヘッダー挿入は、ヘッダー マップ内から設定します。設定情報については、「「HTTP のヘッダー挿入」」を参照してください。

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

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

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

 

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

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


) CSMでは、ポリシー マッチングの条件として、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によって別個に処理されます。


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

仮想サーバ サブモードで、 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