[squid-users] Multicast WCCPv2 + Squid 3.3.8

Amos Jeffries squid3 at treenet.co.nz
Fri Nov 13 02:51:36 UTC 2015


On 11/11/2015 5:25 p.m., Fatah Mumtaz wrote:
> Hi everyone,
> Currently i'm building lab for my thesis on the topic Multicast WCCPv2 with
> Squid. I'm trying to config WCCPv2 to work with single proxy server (Squid
> 3.3.8) and multiple Cisco 2821 routers. WCCPv2 works well with one proxy
> server and one router configuration. It's been 2 months since I'm trying to
> implement multicast WCCPv2 and actually I don't know how to config Squid to
> be able to communicate with multiple routers using multicast to announce
> itself presence. Because I've read the documentation from Cisco and I've
> concluded into something like this "the routers are somehow the "clients"
> but not by sending IGMP messages, just by listening for multicast packets
> send by the "sources", the cache engines, on a specific multicast group
> address. " . So the proxy server (or Squid) acted as the multicast server
> that sends multicast packets. Been look over the net and still have no clue.


The three IP protocol modes: unicast, anycast, broadcast, multicast.


This is a bit simplified, but basically how they operate:

unicast - 1:1 IPs, client has an IP used to contact server IP.
 Messages flow between these two IPs.

anycast - N:1 IPs. client has one IP, server has two IPs, one of the
server IPs is shared by multiple servers. client contacts shared server
IP, server responds from its unique IP, and packets flow as per unicast
using the non-shared IPs.

broadcast - N:N IPs. there are no servers and no clients. Just
broadcasters each with a unique IP, and  network-wide broadcast IP. An
endpoint sends packet to the network broadcast IP. All devices on the
network receive it. If there is any two-way communication the recipient
can switch to unicast and communicate with the broadcasters unique IP.

multicast - 1:N IPs. client has one IP, server has two IPs. clients
register for listening to output from the server multicast IP. any
router receiving a registration creates a "group" of clients wanting to
receive that servers output (any other clients will just be added to the
group), then registers itself to receive instead of the client it saw.
Server sends its data packets to all the IPs that register directly with
it. If they are routers they relay the packets to all the clients that
registered with them, and so on until the actual client(s) receive.

multicast is a most efficient way to distribute live streaming data, or
cyclical repeated copies of an item sent to recipients in distinct
chunks where the starting position does not matter. Like old fashioned
radio or TV channels, or torrent downloads. But not at all good for
TV-on-demand style services where clients need to fetch a fixed distinct
thing from the beginning to end in full.

Also, IPv4 requires admin to explicitly turn on multicast support and
many have not. Making it very diffucult to use in most of the world.
With IPv6 it is a native part of the protocol and enabled by default.


> 
> And my question is simple :
> 1. Is it possible to config squid to announce itself presence to the
> routers using multicast? And if it is possible, please kindly provide any
> detail.
> 

Squid is not specifically coded to support it IIRC. It would be
interesting to see if a multicast address configured in the usual
wccp2_router directive worked with multiple responding routers (or to
make it work).

One thing to be aware of though is that Squid WCCP support is
incomplete, only coded to a slightly older Draft version of WCCP
predating recent IPv6 additions to WCCPv2, and contains some custom
changes to fix issues in the published Draft specification that was
followed.

If you are going to be doing any coding in Squid I suggest you sign up
with squid-dev mailing list and discuss your proposed changes there
where all the dev can provided input. Most of the dev do no read this
users list.

Amos



More information about the squid-users mailing list