キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2048
閲覧回数
2
いいね!
0
コメント
yushimaz
Cisco Employee
Cisco Employee

    今回紹介する事例は、server からの HTTP response 中に Set-cookie が挿入されているにもかかわらず、次の Cookie 付き GET request が別の server に転送されるというものです。

    切り分け内容は下記になります。 ACE のどういった実装を見落としていて、どのような設定が必要か推測してください。

    --- 切り分け内容 ---

    - 7, 8 行目の HTTP request 中に cookie set されておらず、client 205 行目の Set-Cookie cookie を学習している。

    - 205 行目の HTTP response Server から Set-Cookie=sv2 を受信

    - 215 行目の HTTP request 中に Cookie:      sv_cookie=sv2 Set して送信。

    - 218 行目の HTTP response は、cookie set した sv2 ではなく、sv1 から返ってくる??? (215 行目で cookie set しているので、sv2 から response が返ってくることを期待。)

    - ACE sticky table からも、試験前後で追加されている entry sv2 であり、sv2 を使用して欲しい。

    # 構成

    sticky_case_01.png

    # 7 行目 capture

    sticky_case_02.png

    # 8 行目 capture

    sticky_case_03.png

    # 205 行目 capture

    sticky_case_04.png

    # 215 行目 capture

    sticky_case_05.png

    # 218 行目 capture

    sticky_case_06.png

    # show  sticky database

    ACE20/Admin# sh sticky database

    !___ 試験前

    ACE20/Admin# sh sticky database

    !___ 試験後

    sticky group    : cookie

    type         : HTTP-COOKIE

    timeout      : 1440          timeout-activeconns : FALSE

      sticky-entry          rserver-instance                 time-to-expire flags

      ---------------------+--------------------------------+--------------+-------+

      16345823234109072576  sv2:0                            86382          -

    ACE20/Admin#

    # show  run

    ACE20/Admin# sh run

    Generating    configuration....

    hostname    ACE20

    boot system    image:c6ace-t1k9-mz.A2_3_1.bin

    resource-class    sticky

      limit-resource all minimum 0.00 maximum    unlimited

      limit-resource sticky minimum 1.00 maximum    unlimited

    context Admin

      member sticky

    access-list    all line 8 extended permit ip any any

    rserver host    sv1

      ip address 192.168.72.11

      inservice

    rserver host    sv2

      ip address 192.168.72.12

      inservice

    serverfarm    host sf

      rserver sv1

        inservice

      rserver sv2

        inservice

    sticky    http-cookie sv_cookie cookie

      serverfarm sf

    class-map    match-all vip

      2 match virtual-address 192.168.71.100 tcp    eq www

    policy-map    type loadbalance first-match lb

      class class-default

        sticky-serverfarm cookie

    policy-map    multi-match client-vips

      class vip

        loadbalance vip inservice

        loadbalance policy lb

        loadbalance vip icmp-reply

    access-group    input all

    interface    vlan 771

      ip address 192.168.71.250 255.255.255.0

      service-policy input client-vips

      no shutdown

    interface    vlan 772

      ip address 192.168.72.250 255.255.255.0

      no shutdown

    ### 答え

    8 行目と 215 行目の ip address, port# を確認すると、同一であることが確認できます。 また、syn packet 1, 2 行目にしかないので、8, 215 行目の packet は同一 connection を使用した通信になります。(8行目が最初の GET request で、215行目が同一 connection を使用した 2 番目の GET request) ACE: Hardware architecture から見た L3/L4  と L7 の違い に書かれているように、2 番目以降の request FastPath で折り返しますので、http header を確認せず既存 connection が使用され続けます。 そのため、cookie set されていたとしても、ACE はその cookie を確認しないため、既存 connection を使用し、sv1 に転送されてしまいました。 2 番目以降の request でも http header を確認したい場合、persistence-rebalance の設定が必要になります。

    persistence-rebalance の動作については、ACE: persistence-rebalance に記載されているので合わせてご参照ください。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします