Okay, this one’s long, so hang on...
This directive defines your neighbor caches and tells Squid how to communicate with them. See Chapter 10 for the lowdown on neighbor caches.
The first argument is the neighbor cache’s hostname, or IP address. You can safely use hostnames here because Squid doesn’t block while resolving them. In fact, Squid periodically re-resolves the hostname so that if the address changes, you won’t need to restart. Neighbor hostnames must be unique; you can’t have two neighbors with the same name, even if they have different ports.
The second argument specifies the type of neighbor cache. The
multicast. Recall from Section 10.6.3 that for a
multicast neighbor, Squid sends ICP queries only to the neighbor’s IP
address, which must be a valid multicast address. Squid makes HTTP
requests to parents and siblings but never to a multicast
The third and fourth arguments are HTTP and ICP/HTCP port
numbers. The HTTP port number corresponds to the neighbor cache’s
http_port (or equivalent) setting. A value of
0 for the ICP/HTCP port disables
those protocols for the neighbor. If you add the
htcp option (described in the subsequent
paragraphs), Squid sends HTCP queries to the neighbor. Otherwise,
Squid sends ICP queries. If you choose not to use ICP or HTCP, you
must specify the neighbor as a parent cache.
This brings us to the options field. The cache_peer directive has numerous options, which can be very confusing: ...