Hi,
we are using squid (S_{1,2,3}) to connect our sites to the internet via
parent proxies (P_{1,2}), there is no direct line to the internet. The
constellation looks something like this:
(P_1) (P_2)
| / \
/-----------------\
| | W A N | | |
\-----------------/
| / \
(S_1) (S_2) (S_3)
| | |
(N_1) (N_2) (N_3)
the mapping S_i <=> P_j is fix and I can't change it. In S_1 config, I
have the line:
cache_peer P_1 parent 80 0 no-query default
If one parent fails (e.g. P_1), we force all clients in N_1 to use S_2
(by AD policy). This procedure works, but there are two major drawbacks:
a) we have to make this switching manually (and also the swich back,
after P_1 recovers)
b) S_2 has to handle N_1+N_2 traffic
What I want to do is:
a) switch to alternative parents automatically
b) in case of P_1-failure: distribute N_1-traffic over S_2 and S_3
c) in normal operation send all requests to P_1 and no requests to S_2
or S_3
Because of c), I can't declare S_{2,3} as sibling (as far as I
understand the function of a sibling and the peer selection methodes),
so I changed the S_1 config to:
cache_peer P_1 parent 80 0 no-query
cache_peer S_2 parent 80 0 no-query
cache_peer S_3 parent 80 0 no-query
I think, this fits to a) and b) (because a client request is send to
FIRST_UP_PARENT), but this will not fit to c) perfectly (may be S_2 is
FIRST_UP_PARENT, but it still has to fetch the data from P_2, so the
data for N_1 passes the line of S_2 two times and this should not
happen).
Can basetime=x at the P_1-line make sure, that P_1 is always choosen in
normal operation?
Any other ideas?
Thanks in advance
Thomas