Saturday, April 5, 2014

Fortigate as WCCP client - Adjusting assignment weight between WCCP clients in the pool

From Cisco IOS Viewpoint

Cisco-IOS#show ip wccp 70 detail
WCCP Client information:
        WCCP Client ID:          x.x.x.x
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      7FF7FFBFFDFFEFFEFFF7FFBFFDFFDFFE
                                 FFF7FFBFFBFFDFFEFFF7FF7FFBFFDFFD
        Hash Allotment:          235 (91.79%)
        Packets s/w Redirected:  1337
        Connect Time:            22:36:58
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0

        WCCP Client ID:          x.x.x.y
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      80080040020010010008004002002001
                                 00080040040020010008008004002002
        Hash Allotment:          21 (8.20%)
        Packets s/w Redirected:  1282
        Connect Time:            21:56:44
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0

From VDOM1

VUFG1 # config vdom

VUFG1 (vdom) # edit VUWF101
current vf=VUWF101:2

VUFG1 (VUWF101) # show system wccp
path=system, objname=wccp, tablename=(null), size=228
config system wccp
    edit "70"
        set cache-id x.x.x.x
        set router-list "z.z.z.z"
        set ports 80 443
        set protocol 6
        set assignment-weight 235
    next
end

From VDOM2

VUFG1 # config vdom

VUFG1 (vdom) # edit VUWF102
current vf=VUWF102:1

VUFG1 (VUWF102) # show system wccp
path=system, objname=wccp, tablename=(null), size=228
config system wccp
    edit "70"
        set cache-id x.x.x.y
        set router-list "z.z.z.z"
        set ports 80 443
        set protocol 6
        set assignment-weight 20
    next
end

What If VDOM1 stop WCCP?

After a few seconds, the HASH allocation change to 100% on VDOM2

Cisco-IOS#show ip wccp 70 detail
WCCP Client information:
        WCCP Client ID:          x.x.x.y
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      80080040020010010008004002002001
                                 00080040040020010008008004002002
        Hash Allotment:          21 (8.20%)
        Packets s/w Redirected:  1282
        Connect Time:            22:01:43
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0

Cisco-IOS#show ip wccp 70 detail
WCCP Client information:
        WCCP Client ID:          x.x.x.y
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                                 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
        Hash Allotment:          256 (100.00%)
        Packets s/w Redirected:  1282
        Connect Time:            22:01:45
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0
What Happens if the Hash Weight doesn't add up to 255?

Assignment will be done in porportion

In this case, VDOM1 wieght is 100, VDOM2 weight is 20.   VDOM1 will get 100/120, and VDOM2 will get 20/120 of the traffic.

VUFG1 # config vdom

VUFG1 (vdom) # edit VUWF101
current vf=VUWF101:2

VUFG1 (VUWF101) # show system wccp
path=system, objname=wccp, tablename=(null), size=228
config system wccp
    edit "70"
        set cache-id x.x.x.x
        set router-list "z.z.z.z"
        set ports 80 443
        set protocol 6
        set assignment-weight 235
    next
end

Cisco-IOS#show ip wccp 70 detail
WCCP Client information:
        WCCP Client ID:          x.x.x.x
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      EFBEFBEFBEFBEFBEFBEFBEFBEFBEFBEF
                                 BEFBEFBEFBEFBEFBEFBEFBEFBEFBEFBD
        Hash Allotment:          213 (83.20%)
        Packets s/w Redirected:  0
        Connect Time:            00:00:30
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0

        WCCP Client ID:          x.x.x.y
        Protocol Version:        2.0
        State:                   Usable
        Redirection:             GRE
        Packet Return:           GRE
        Assignment:              HASH
        Initial Hash Info:       00000000000000000000000000000000
                                 00000000000000000000000000000000
        Assigned Hash Info:      10410410410410410410410410410410
                                 41041041041041041041041041041042
        Hash Allotment:          43 (16.79%)
        Packets s/w Redirected:  1285
        Connect Time:            22:05:36
        Bypassed Packets
          Process:               0
          CEF:                   0
          Errors:                0