I've been experimenting more with ICP and carp. I've noticed that if I have two squid machines configured like so: squid1.test.rob: icp_access allow all icp_port 3130 http_port 80 accel vhost vport cache_peer squid2.test.rob parent 80 3130 proxy-only cache_peer freebsd1.test.rob parent 80 0 originserver squid2.test.rob: icp_access allow all icp_port 3130 http_port 80 accel vhost vport cache_peer freebsd1.test.rob parent 80 0 originserver a request to squid1 via a load balancer (lynx --head --dump http://freebsd1:81/index3.html) when squid2 has index3.html in cache and squid1 does not results in a X-Cache: HIT from squid2.test.rob X-Cache-Lookup: HIT from squid2.test.rob:80 X-Cache: MISS from squid1.test.rob X-Cache-Lookup: MISS from squid1.test.rob:80 That is what I would expect from a properly working array using ICP. My question is if I want to distribute the load across an array of reverse proxies and I want to use a cache peer protocol (ICP, CARP, HTCP, Cache Digest, whatever), do I need all requests to my array / mesh to come to a 'master' squid acting as a router/load balancer? Or do I put a load balancer in front of the array and distribute http requests randomly to the squids in the array? The problem I'm having is if I put a load balancer in front of my squid array then each squid must be aware of all other peers in order for the squid array to act as a large cache. This results in forwarding loops and other problems when using ICP and carp that I've been unable to get around so far. But, if I don't put a load balancer in front of the array how do I efficiently distribute the load to the squids? If all requests come into one 'master' squid then wouldn't that squid simply cache everything from the origin server itself? It seems for a cache array to work properly when all squids in the array represent content from a single origin server that a load balancer must be used to distribute the requests (and therefore the cached objects) across the machines in the array. Is my thinking correct? And if so, how do I configure the cache_peers lines on the squids? I would assume carp is the best protocol to use in this instance as it assumes a linear array instead of a hierarchy, but at this point I'd be happy to see ANY cache protocol example that would distribute the cached objects in a squid cluster. -Rob