2011-02-24 08:35 AM
ACEでは、ある一つのVIPに接続されてきたHTTPリクエストを、
URL文字列の複数の条件により、後段にある複数のIPアドレス・ポート番号の
サーバへ、複数のスティッキおよびラウンドロビンの設定を行うことができるでしょうか。
具体的には、10.0.0.1:443のVIPに接続されてきたHTTPリクエストを、
・URLに sv=001 かつ type=100 が含まれていれば、10.0.1.1:8080に振り分ける
・URLに sv=002 かつ type=100 が含まれていれば、10.0.1.2:8080に振り分ける
・URLに sv=003 かつ type=100 が含まれていれば、10.0.1.3:8080に振り分ける
・上記以外で、URLに sv=001 が含まれていれば、10.0.1.1:80に振り分ける
・上記以外で、URLに sv=002 が含まれていれば、10.0.1.2:80に振り分ける
・上記以外で、URLに sv=003 が含まれていれば、10.0.1.3:80に振り分ける
・上記全てに当てはまらなければ、10.0.1.1:80、10.0.1.2:80、10.0.1.3:80にラウンドロビンに振り分ける
という振り分けを行うことができるでしょうか。
もしよろしければ、具体的な設定方法を教えていただけないでしょうか。
解決済! 解決策の投稿を見る。
2011-03-02 02:04 AM
質問の内容から、おそらく、
GET /index.html?sv=001+type=100 HTTP/1.1
のような、request を想定しているのかと思います。
その場合、下記のように、secondary cookie の値を見て判断することで実現可能です。
rserver host sv1
ip address 10.0.1.1
inservice
rserver host sv2
ip address 10.0.1.2
inservice
rserver host sv3
ip address 10.0.1.3
inservice
serverfarm host sf
rserver sv1 80
inservice
rserver sv2 80
inservice
rserver sv3 80
inservice
serverfarm host sv1_80
rserver sv1 80
inservice
serverfarm host sv1_8080
rserver sv1 8080
inservice
serverfarm host sv2_80
rserver sv2 80
inservice
serverfarm host sv2_8080
rserver sv2 8080
inservice
serverfarm host sv3_80
rserver sv3 80
inservice
serverfarm host sv3_8080
rserver sv3 8080
inservice
class-map type http loadbalance match-any sv001
2 match http cookie secondary sv cookie-value "001"
class-map type http loadbalance match-any sv002
2 match http cookie secondary sv cookie-value "002"
class-map type http loadbalance match-any sv003
2 match http cookie secondary sv cookie-value "003"
class-map type http loadbalance match-any type100
2 match http cookie secondary type cookie-value "100"
class-map type http loadbalance match-all sv001type100
2 match class-map sv001
3 match class-map type100
class-map type http loadbalance match-all sv002type100
2 match class-map sv002
3 match class-map type100
class-map type http loadbalance match-all sv003type100
2 match class-map sv003
3 match class-map type100
class-map match-all test
2 match virtual-address 10.0.0.1 tcp eq 443
policy-map type loadbalance first-match lb
class class-default
serverfarm sf
policy-map type loadbalance first-match secondarycookie
class sv001type100
serverfarm sv1_8080
class sv002type100
serverfarm sv2_8080
class sv003type100
serverfarm sv3_8080
class sv001
serverfarm sv1_80
class sv002
serverfarm sv2_80
class sv003
serverfarm sv3_80
class class-default
serverfarm sf
policy-map multi-match client-vips
class test
loadbalance vip inservice
loadbalance policy secondarycookie
loadbalance vip icmp-reply
vip address を 10.0.0.1:443 としていますが、http ではなく、https request を使用する
場合、証明書や鍵の import、及び ssl-proxy の設定が必要になります。
(上記設定例では、10.0.0.1:443 宛ての http request が送信された場合を想定しています。)
ご質問の "サーバへ、複数のスティッキおよびラウンドロビンの設定" というのは、
sv= や type= の条件に当てはまるものを特定の server へ転送、それ以外のもの
は roundrobin で server を選択という意味かと判断したので、sticky の設定は入れ
ていません。 (ACE の場合、sticky というと、connection 切断後も同じ server へ
転送することを指します。)
また、同一 connection における 2 番目以降の request に対しても、url を確認し、
再度 server を選択しなおすのであれば reblance の設定が必要になります。
ssl の設定に関しては、下記に例があるので必要に応じてご参照ください。
https://supportforums.cisco.com/docs/DOC-12491
rebalance に関しては、下記に例があるので必要に応じてご参照ください。
2011-03-02 02:04 AM
質問の内容から、おそらく、
GET /index.html?sv=001+type=100 HTTP/1.1
のような、request を想定しているのかと思います。
その場合、下記のように、secondary cookie の値を見て判断することで実現可能です。
rserver host sv1
ip address 10.0.1.1
inservice
rserver host sv2
ip address 10.0.1.2
inservice
rserver host sv3
ip address 10.0.1.3
inservice
serverfarm host sf
rserver sv1 80
inservice
rserver sv2 80
inservice
rserver sv3 80
inservice
serverfarm host sv1_80
rserver sv1 80
inservice
serverfarm host sv1_8080
rserver sv1 8080
inservice
serverfarm host sv2_80
rserver sv2 80
inservice
serverfarm host sv2_8080
rserver sv2 8080
inservice
serverfarm host sv3_80
rserver sv3 80
inservice
serverfarm host sv3_8080
rserver sv3 8080
inservice
class-map type http loadbalance match-any sv001
2 match http cookie secondary sv cookie-value "001"
class-map type http loadbalance match-any sv002
2 match http cookie secondary sv cookie-value "002"
class-map type http loadbalance match-any sv003
2 match http cookie secondary sv cookie-value "003"
class-map type http loadbalance match-any type100
2 match http cookie secondary type cookie-value "100"
class-map type http loadbalance match-all sv001type100
2 match class-map sv001
3 match class-map type100
class-map type http loadbalance match-all sv002type100
2 match class-map sv002
3 match class-map type100
class-map type http loadbalance match-all sv003type100
2 match class-map sv003
3 match class-map type100
class-map match-all test
2 match virtual-address 10.0.0.1 tcp eq 443
policy-map type loadbalance first-match lb
class class-default
serverfarm sf
policy-map type loadbalance first-match secondarycookie
class sv001type100
serverfarm sv1_8080
class sv002type100
serverfarm sv2_8080
class sv003type100
serverfarm sv3_8080
class sv001
serverfarm sv1_80
class sv002
serverfarm sv2_80
class sv003
serverfarm sv3_80
class class-default
serverfarm sf
policy-map multi-match client-vips
class test
loadbalance vip inservice
loadbalance policy secondarycookie
loadbalance vip icmp-reply
vip address を 10.0.0.1:443 としていますが、http ではなく、https request を使用する
場合、証明書や鍵の import、及び ssl-proxy の設定が必要になります。
(上記設定例では、10.0.0.1:443 宛ての http request が送信された場合を想定しています。)
ご質問の "サーバへ、複数のスティッキおよびラウンドロビンの設定" というのは、
sv= や type= の条件に当てはまるものを特定の server へ転送、それ以外のもの
は roundrobin で server を選択という意味かと判断したので、sticky の設定は入れ
ていません。 (ACE の場合、sticky というと、connection 切断後も同じ server へ
転送することを指します。)
また、同一 connection における 2 番目以降の request に対しても、url を確認し、
再度 server を選択しなおすのであれば reblance の設定が必要になります。
ssl の設定に関しては、下記に例があるので必要に応じてご参照ください。
https://supportforums.cisco.com/docs/DOC-12491
rebalance に関しては、下記に例があるので必要に応じてご参照ください。
2011-03-25 06:25 PM
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド
下記より関連するコンテンツにアクセスできます