[squid-users] Problem trying to make siblings (proxies) to talk.

From: Pedro de Medeiros <pedrovmm+squid-users@dont-contact.us>
Date: Fri, 18 May 2007 18:55:00 -0300

Hi, squid users.

I am trying to make some proxies talk to each other, but something is
wrong with my squid.conf files and I don't know what it is. I have in
my network a "swarm" of sibling proxies and a single parent proxy.

A client browser connects to a proxy from the swarm and it asks the
others in the swarm for cache hits. If file is not served, the cache
miss is treated by the parent proxy. I then proceed by running the
following test:

1. Start squid in machine A;
2. Connect browser to squid in machine A;
2. Access a site to cache files;
3. Start squid in machine B;
4. Connect browser to squid in machine B;
5. Access the same site again in machine B

I know that squid in machine A is caching files, because store.log
tell me they are SWAPOUT'd as they arrive, but when I go through step
5, the access.log in machine B tells me that it is going directly
through the parent proxy:

1179521182.776 213 <external ip address> TCP_MISS/304 460 GET <file
URL> - FIRST_UP_PARENT/parent-proxy image/gif

Right? Why does machine B go directly to the parent proxy if machine A
has a copy of that file in the cache? The access.log in machine A
tells me that the file is missing:

1179506674.109 0 <machine B ip address> UDP_MISS/000 70 ICP_QUERY
<file URL> - NONE/- -

And here is squid.conf for the siblings:
========================================
# Listen to port 3128
http_port 3128

# Listen to ICP too.
icp_port 3130

# Parent proxy
cache_peer parent-proxy parent 80 0 no-query login=PASS

# Siblings
#
# (proxy-only is used to avoid duplication of the contents of other
# sibling proxies.)
cache_peer proxy-b sibling 3128 3130 proxy-only
cache_peer proxy-c sibling 3128 3130 proxy-only
cache_peer proxy-d sibling 3128 3130 proxy-only
# (...)

# Obligatory
acl all src 0.0.0.0/0.0.0.0

# Clients authorized to use this proxy.
acl localnet src 172.16.0.0/12 192.168.0.0/16 127.0.0.1

# Internal servers.
acl internal-servers dstdomain .internal.com.br .local.com.br

# Redundant, but this is just a test anyway.
prefer_direct off

# Access internal servers directly, but never the external servers.
always_direct allow internal-servers
never_direct allow !internal-servers

# Allow clients to use this proxy.
http_access allow all

# Allow siblings to access this proxy.
icp_access allow localnet

# Log and debug.
access_log /var/log/squid/access.log squid
debug_options ALL,1 33,2
log_icp_queries on
=========================================

So, please, what am I doing wrong? Any help is appreciated. ;)

Cheers,
Pedro.

-- 
Pedro de Medeiros - Ciência da Computação - Universidade de Brasília
Home Page: http://www.nonseq.net - Linux User No.: 234250
Received on Fri May 18 2007 - 15:55:05 MDT

This archive was generated by hypermail pre-2.1.9 : Fri Jun 01 2007 - 12:00:05 MDT