I have struggled several days to try to set up the transparent proxy between IOS and Squid using WCCP. Since I'm running Squid, 2.5.STABLE13, on RHEL 4 with kernel 2.6.9-34.0.2.ELsmp #1, which according to my reading the ip_gre module should contain WCCP v1/2 support, I decide to use GRE tunnel mode for WCCP. The squid registers with the router properly and the client traffics are forwarded to the Squid properly. The problem is the client traffics are NOT forwarded to the Squid, or I should say there is no entry in the Squid access.log to be actuate. At first, I thought the problem was in the iptables/netfilter, however I now think the problem is in the ip_gre module after I did a tcpdump in the Squid machine. The following is the trace (Note: 204.146.97.xx is the same router as 192.168.1.7, for whatever reason the router picks that as its ID and I don't know how to change it. The 192.168.1.7 address is the dummy GRE address I configured for the router and configured as the wccp_router address in Squid): ----- begin of the trace ------ No. Time Source Destination Protocol Info 1 0.000000 192.168.1.6 192.168.1.7 WCCP 1.0 Here I am Frame 1 (96 bytes on wire, 96 bytes captured) Linux cooked capture Internet Protocol, Src: 192.168.1.6 (192.168.1.6), Dst: 192.168.1.7 (192.168.1.7) User Datagram Protocol, Src Port: 2048 (2048), Dst Port: 2048 (2048) Web Cache Coordination Protocol No. Time Source Destination Protocol Info 2 0.000960 192.168.1.7 192.168.1.6 WCCP 1.0 I see you Frame 2 (108 bytes on wire, 108 bytes captured) Linux cooked capture Internet Protocol, Src: 192.168.1.7 (192.168.1.7), Dst: 192.168.1.6 (192.168.1.6) User Datagram Protocol, Src Port: 2048 (2048), Dst Port: 2048 (2048) Web Cache Coordination Protocol No. Time Source Destination Protocol Info 3 3.408431 10.17.11.20 209.131.36.158 TCP 34121 > http [SYN] Seq=0 Len=0 MSS=1460 TSV=100191619 TSER=0 WS=2 Frame 3 (100 bytes on wire, 100 bytes captured) Linux cooked capture Internet Protocol, Src: 204.146.97.xx (204.146.97.xx), Dst: 192.168.1.6 (192.168.1.6) Generic Routing Encapsulation (WCCP) Internet Protocol, Src: 10.17.11.20 (10.17.11.20), Dst: 209.131.36.158 (209.131.36.158) Transmission Control Protocol, Src Port: 34121 (34121), Dst Port: http (80), Seq: 0, Len: 0 No. Time Source Destination Protocol Info 4 3.408469 192.168.1.6 204.146.97.xx ICMP Destination unreachable (Protocol unreachable) Frame 4 (128 bytes on wire, 128 bytes captured) Linux cooked capture Internet Protocol, Src: 192.168.1.6 (192.168.1.6), Dst: 204.146.97.xx (204.146.97.xx) Internet Control Message Protocol ----- end of the trace ------ The last packet had my attention. It's an ICMP "Destination unreachable" message from Squid to the router right after the forwarded client packet from the router. The error is "Protocol unreachable" which indicates it doesn't understand the protocol in the GRE packet, which should be WCCP. Is my reading on the trace correct? If so, does is really mean the ip_gre module comes with RHEL 4 doesn't support WCCP? Is there a way/command to verify whether the ip_gre module in my system supports WCCP? I know maybe this is maybe off the topic of this list a little bit, I just don't know where else I can ask. Thanks in advance for all your helps.