Re: WCCPv2 support

From: Henrik Nordstrom <henrik@dont-contact.us>
Date: Wed, 15 Mar 2006 02:34:26 +0100

mån 2006-03-13 klockan 23:48 -0500 skrev Jeremy Hall:

> I think I understand...and this version now properly handles redirect
> assignments.

Excellent!

> I'm excited for people to test this because it doesn't seem to crash
> anything, well then there's the router that seems to have some wccp
> bug in it, but I can't figure that out.

Unfortunately I have no WCCP2 routers around to play with..

> It still doesn't handle the standard wccp (standard service0) which
> puzzles me--the router says service mismatch and doesn't provide more
> useful information. It knows it is 0:0 but something about my
> definition it doesn't like, very odd.

Odd.

Have you tried looking at the sent packets with tcpdump? Decoding WCCPv2
by hand isn't very hard, and if there is something odd you'll probably
notice as well.

> This doesn't do multicast yet, but I want to get unicast working
> first, then I'll think about multicast.

Multicast isn't that interesting unless you have very many
routers/caches..

> It doesn't check to make sure everybody is seeing him, this not really
> a problem in unicast mode but multicast mode will definitely cause
> problems no question about that.

It is supposedly important in both cases to avoid fights over who should
be the designated cache. But it is not clear what is the best option
when there is mismatches between the routers..

> For now it only handles one cache. As I finally understand the hash bits a little, there are some comments about how one might decide to roll across caches--me not being a squid developer really I don't have much thought on how one might accomplish round-robining but maybe somebody could take some of the same ideas and put them into the code.

Its just N hash buckets of destination IP addresses. You (the designated
cache) can divide them as you please among the caches.

round-robin is not an option in WCCP (any version). WCCP simply
distributes destinations, not sessions.

> It does not understand "alternate assignment"

Generally not needed in the normal Internet proxy setup.. but can be
used for finetuning the balance between the cache servers if weighted
hash bucket assignments is not sufficient to get a balanced load.

> and looks like the wccp module for hte kernel might need to be
> modified--it assumes standard/0 for service only (I think, if I
> understand the code)

Should work I think. Or which kernel are you talking about? The Linux
implementations (both ip_wccp and ip_gre) just looks for the WCCPv1
"signature", and if not found assumes it is WCCPv2. When WCCPv2 is found
it simply skips over the WCCPv2 header which isn't needed to process the
packet (just adds overhead).

More interesting in WCCPv2 is the ability to use L2 forwarding. This
routes the traffic directly to the cache server without any GRE header
which brings a number of nice benefits

  - No client->cache MTU issues.
  - Less overhead for both router and cache
  - Better supported by switching hardware in the routers allowing WCCP
redirection to run in the fast path.

> well hopefully somebody can at least get it to compile. It does seem
> to work in a multirouter setup though.

One step at a time.

Regards
Henrik

Received on Tue Mar 14 2006 - 18:34:32 MST

This archive was generated by hypermail pre-2.1.9 : Sat Apr 01 2006 - 12:00:06 MST