シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ACE: sticky cookie insert

    ACE sticky cookie では、set-cookie を返すよう server 側の設定を行いましたが、その動作を ACE が代わりに行うことが可能です。 これが cookie insert と呼ばれる機能で、server からの http response ACE set-cookie を追加し、client へ返信するという動作を行います。 これにより、各 server cookie set する必要がなくなります。

    # 構成

    sticky_cookie_insert_01.png

    # ACE 設定


    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 ace_cookie cookie

      cookie insert

      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

    # 設定後の ACE 出力

    ACE20/Admin# show sticky

    cookie-insert  database

    ACE20/Admin#    show sticky cookie-insert group cookie

         Cookie   |        HashKey       |           rserver-instance

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

      R3634881340 | 16088074321020195680 |    sf/sv1:0

      R3634882429 | 9958590723819974724  | sf/sv2:0

    ACE20/Admin#

    ACE20/Admin# show sticky database static group    cookie

    sticky group    : cookie

    type         : HTTP-COOKIE

    timeout      : 1440          timeout-activeconns : FALSE

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

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

      R3634882429            sv2:0                               never         -

    sticky group    : cookie

    type         : HTTP-COOKIE

    timeout      : 1440          timeout-activeconns : FALSE

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

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

      R3634881340            sv1:0                               never         -

    ACE20/Admin#

    ACE20/Admin# show stats sticky

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

    +-----------    Sticky statistics ------------+

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

    Total sticky entries reused    : 0

    prior to expiry

    Total active sticky    entries    : 2

    Total active reverse sticky    : 0

    entries

    Total active sticky conns      : 0

    Total static sticky    entries    : 2

    sticky cookie insert の場合、ACE が自分自身で cookie の値を set できるため、sticky cookie のように client server header 情報を見て entry を登録する必要がありません。 そのため、cookie insert を設定した場合、rserver operational になると static entry として sticky table に登録します。

    static entry のため、timeout がなく、time-to-expire never になります。

    # vip access 時の client 出力


    client:/# wget --spider http://192.168.71.100/

    --13:03:27--  http://192.168.71.100/

               => `index.html'

    Connecting to    192.168.71.100:80... connected.

    HTTP request    sent, awaiting response... 200 OK

    Length: 4    [text/html]

    200 OK

    #  capture

    sticky_cookie_insert_02.png

    sticky_cookie_insert_03.png

    11 行目は server -> ACE http response で、12 行目は ACE -> client http response になります。

    比較すると、後者にのみ Set-Cookie が挿入されている (ACE Set-cookie を挿入している) ことが確認できます。

    cookie なしで 3 回、sv1 用の cookie を用いて 3 回、sv2 用の cookie を用いて 3 vip access した結果は下記になります。

    cookie set されていない場合は、round robin server を選択し、各 server 用の cookie を用いた場合、server を選択していることが確認できます。

    !___ server index.html にそれぞれ sv1, sv2 という文字列を入力。

    sv1:/# echo sv1 > /var/www/index.html

    sv2:/# echo sv2 > /var/www/index.html

    !___ vip access し、3 種類の条件下におけるindex.html file a1.out - a9.out として download

    client:/# wget -o /dev/null -O a1.out http://192.168.71.100/

    client:/# wget -o /dev/null -O a2.out http://192.168.71.100/

    client:/# wget -o /dev/null -O a3.out http://192.168.71.100/

    client:/# wget -o /dev/null -O a4.out    --header cookie:ace_cookie=R3634881340 http://192.168.71.100/

    client:/# wget -o /dev/null -O a5.out    --header cookie:ace_cookie=R3634881340 http://192.168.71.100/

    client:/# wget -o /dev/null -O a6.out    --header cookie:ace_cookie=R3634881340 http://192.168.71.100/

    client:/# wget -o /dev/null -O a7.out    --header cookie:ace_cookie=R3634882429 http://192.168.71.100/

    client:/# wget -o /dev/null -O a8.out    --header cookie:ace_cookie=R3634882429 http://192.168.71.100/

    client:/# wget -o /dev/null -O a9.out    --header cookie:ace_cookie=R3634882429 http://192.168.71.100/

    client:/#

    client:/# cat a* !___ download した file の中身を表示

    sv2  !___ cookie なし

    sv1  !___ cookie なし

    sv2  !___ cookie なし

    sv1  !___ ace_cookie=R3634881340

    sv1  !___ ace_cookie=R3634881340

    sv1  !___ ace_cookie=R3634881340

    sv2  !___ ace_cookie=R3634882429

    sv2  !___ ace_cookie=R3634882429

    sv2  !___ ace_cookie=R3634882429

2633
閲覧回数
2
いいね!
0
コメント