[squid-users] Squid + RHEL4 + ip_gre issue

From: Arnold Wang <arnold.wang@dont-contact.us>
Date: Wed, 02 Aug 2006 16:27:27 -0700

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.
Received on Wed Aug 02 2006 - 17:27:28 MDT

This archive was generated by hypermail pre-2.1.9 : Fri Sep 01 2006 - 12:00:01 MDT