Hi all on squid-dev, I'm currently working on expanding squid's WCCPv2 transparent caching with IP spoofing support. The main focus of this development is to implement functionality that is currently only supported in commercial web-cache's such as Cisco's cache-engine, including WCCPv2's support for multiple web-caches and routers per service group.
I've successfully tested two-way WCCPv2 redirection using dynamic service groups. This works well when only one web-cache is usable in the service group as all hash buckets on the router forward to the one web-cache. When two or more web-caches join the service group however, service 95 redirection often fails due to the client's original request destination address being different to the address squid contacts on its behalf (e.g. sites like google.com with multiple rotating IP addresses returned by DNS) which breaks the redirection hashing. This project may sound familiar to some of you already as one of the other people involved has already posted questions regarding this issue. What we want to do is use the original destination address from the client either as a hint to squid for choosing the destination address, or as the destination address. The former approach would still use a DNS lookup, the latter likely requiring the IP and URL as keys for the cache lookup. We're tending to lean strongly in favour of the former approach, although it doesn't totally alleviate the problem. We would like some help regarding the best way to implement these changes as far as in which functions our patches should be placed so as not to make it them too much of a hack, and also with a view to the possibility of our changes being incorporated into the squid source distribution tree at some stage. I look forward to hearing your response. Regards, Andrew.
