Hi,
I'm testing WCCP in a lab environment (Another checkbox on my way to CCIE).
The setup- a WS-C3560-8PC switch running IOS 15.0(1), IP Services with crypto.
- Two client computers connected by wire to the switch, running Windows 7.
- A virtual machine in bridged mode running on one of the machines, running OpenBSD 5.0 with Squid 2.7 installed and running.
- Everything in the same subnet: 192.168.163.0/24, the OpenBSD is at .5, the switch at .3 and functions as the default-gateway for the computers with no ICMP redirects (the real gateway is at .1 but the switch forwards everything).
Squid seems to work, albeit inefficient, but that's not the issue. Filling in the IP of the OpenBSD in the browser as proxy with the proper port works.
Since the 3560 does only support WCCP over layer 2 adjacencies and masks, not hash buckets, I've configured these options on both the Squid and the 3560.
3560 relevant configuration:
Code:
ip wccp web-cache
ip wccp 0 group-list ACL-WCCP
int vlan1
ip wccp 0 redirect in
Standard IP access list ACL-WCCP
10 permit any
Extended IP access list ACL-PROXY
5 deny ip host 192.168.163.5 any
10 permit tcp 192.168.163.0 0.0.0.255 any eq www
20 deny ip any any
It should be noted that if I do a 'ip wccp 0 redirect-list ACL-PROXY', the command works, but the 'ip wccp 0 group-list ACL-WCCP' disappears from the running config, and visa versa. Mutually exclusive and it's not clear to me why.
The Squid config under /etc/squid/squid.conf:
Code:
wccp2_router 192.168.163.3
wccp2_forwarding_method 2 (1 = GRE, 2 = layer 2 forwarding to Squid)
wccp2_return_method 2 (1 = GRE, 2 = layer 2 return traffic)
wccp2_assignment_method 2 (1 = hash, 2 = mask)
wccp2_service standard 0
wccp2_weight 10000 (0, the default, does not change anything)
The logdataWireshark capture:
http://cloudshark.org/captures/adea08a50624Logging output on the 3560 with debugging:
Code:
WS-C3560-8PC#
Jul 23 22:19:18.852: WCCP-EVNT:S0: updating wc orig assign info
Jul 23 22:19:18.852: WCCP-EVNT:S0: allocate wc orig mask info (28 bytes)
Jul 23 22:19:18.852: WCCP-PKT:S0: Sending I_See_You packet to 192.168.163.5 w/ rcv_id 0000020B
WS-C3560-8PC#
Jul 23 22:19:28.818: WCCP-EVNT:S0: updating wc orig assign info
Jul 23 22:19:28.818: WCCP-EVNT:S0: reuse wc orig mask info (28 bytes)
Jul 23 22:19:28.818: WCCP-EVNT:S0: no srvc grp mask data to validate
Jul 23 22:19:28.818: WCCP-EVNT:S0: nexthop update oce for wc 192.168.163.5 0x5529170
Jul 23 22:19:28.818: WCCP-EVNT:S0: track nexthop for wc 192.168.163.5 (OK)
Jul 23 22:19:28.818: WCCP-EVNT:S0: created adjacency interest, 192.168.163.5
Jul 23 22:19:28.818: WCCP-EVNT:S0: L2 adjacency added for 192.168.163.5
Jul 24 00:19:28.818: %WCCP-5-SERVICEFOUND: Service web-cache acquired on WCCP Client 192.168.163.5
WS-C3560-8PC#
Jul 23 22:19:28.818: WCCP-PKT:S0: Received valid Here_I_Am packet from 192.168.163.5 w/rcv_id 0000020B
Jul 23 22:19:28.818: WCCP-EVNT:S0: Building new router view
Jul 23 22:19:28.818: WCCP-EVNT:S0: deallocate rtr_view (24 bytes)
Jul 23 22:19:28.818: WCCP-EVNT:S0: allocate mask rtr_view (60 bytes)
Jul 23 22:19:28.818: WCCP-EVNT:S0: copy orig info (28 bytes)
Jul 23 22:19:28.818: WCCP-EVNT:S0: Assignment wait timer started
Jul 23 22:19:28.826: WCCP-EVNT:S0: Built new router view: 1 routers, 1 usable WCCP clients, change # 00000008
Jul 23 22:19:28.826: WCCP-PKT:S0: Sending I_See_You packet to 192.168.163.5 w/ rcv_id 0000020C
WS-C3560-8PC#
Jul 23 22:19:38.784: WCCP-EVNT:S0: updating wc orig assign info
Jul 23 22:19:38.784: WCCP-EVNT:S0: reuse wc orig mask info (28 bytes)
Jul 23 22:19:38.784: WCCP-EVNT:S0: no srvc grp mask data to validate
Jul 23 22:19:38.792: WCCP-EVNT:S0: L2 adjacency added for 192.168.163.5
Jul 23 22:19:38.792: WCCP-PKT:S0: Sending I_See_You packet to 192.168.163.5 w/ rcv_id 0000020D
WS-C3560-8PC#
Jul 23 22:19:43.767: WCCP-EVNT:S0: setting up wc mask assignments
Jul 23 22:19:43.767: WCCP-EVNT:S0: allocate current assign info (1052 bytes)
Jul 23 22:19:43.767: WCCP-EVNT:S0: set wc current assign info (1052 bytes)
Jul 23 22:19:43.767: WCCP-EVNT:S0: verifying mask-value adjacency map (64)
Jul 23 22:19:43.767: WCCP-EVNT:S0: Building new router view
Jul 23 22:19:43.767: WCCP-EVNT:S0: reuse rtr_view (44 of 60 bytes)
Jul 23 22:19:43.767: WCCP-EVNT:S0: copy blank current info
Jul 23 22:19:43.767: WCCP-EVNT:S0: Assignment wait timer stopped
Jul 23 22:19:43.767: WCCP-EVNT:S0: Built new router view: 1 routers, 1 usable WCCP clients, change # 00000008
WS-C3560-8PC#
Jul 23 22:19:43.767: WCCP-EVNT:S0: Redirect_Assignment packet from 192.168.163.5, cache info updated
Jul 23 22:19:43.767: WCCP-PKT:S0: Received valid Redirect_Assignment packet from 192.168.163.5 w/rcv_id 0000020D
WS-C3560-8PC#show ip wccp 0 view
WCCP Routers Informed of:
-none-
WCCP Clients Visible:
-none-
WCCP Clients NOT Visible:
-none-
WS-C3560-8PC#
Jul 23 22:19:48.758: WCCP-EVNT:S0: updating wc orig assign info
Jul 23 22:19:48.758: WCCP-EVNT:S0: reuse wc orig mask info (28 bytes)
Jul 23 22:19:48.758: WCCP-EVNT:S0: wc assignment validated
Jul 23 22:19:48.758: WCCP-EVNT:S0: L2 adjacency added for 192.168.163.5
Jul 23 22:19:48.758: WCCP-PKT:S0: Sending I_See_You packet to 192.168.163.5 w/ rcv_id 0000020E
WS-C3560-8PC#
After that it just loops the last lines.
The problemThe problem is that a WCCP neighborship seems to form between Squid and the switch, and the switch even reacts to the WCCP frames sent out by Squid, but the switch does not start any actual forwarding of http traffic towards Squid. Wireshark only shows WCCP control frames and an occasional ARP, but nothing else is sent towards 192.168.163.5 .
Any thoughts or input are welcome!