Search squid archive

Re: redirecting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/04/2013 11:59 p.m., folkert wrote:
Hi,

I'm trying to get the following to work:

  - all requests must go to the redirect_program.z after the request went
    through the redirect program:
  - all requests must be forwarder to proxy A
  - UNLESS they are to 172.19.0.0/16 or listed in
    /usr/local/etc/squid3-directurls.txt
  - if they are in /usr/local/etc/squid3-directurls.txt they must be
    forwarded to proxy B
  - if they are to 172.19.0.0/16 they must go to directly to the
    destination (172.19.0.1:8008 mostly)

I tried the following:

acl ir_ah dst 172.19.0.0/16

redirector_access deny ir_ah

BUT your policy statement said ... "all requests must go to the redirect_program."

redirect_program /usr/local/bin/ir
always_direct allow ir_ah
always_direct deny all

"if they are to 172.19.0.0/16 they must go to directly to the destination "
Okay. That is *kind* of working. If any one of teh URL domains IP addresses is in the 172.19.0.0/16 range the request will go direct even if the IP picked is not in that range. So be Careful.


cache_peer A parent 8123 0 default
cache_peer B parent 8080 0

acl allowed_servers dstdomain "/usr/local/etc/squid3-directurls.txt"
cache_peer_access A deny allowed_servers
cache_peer_access A deny ir_ah
cache_peer_access A allow all

"all requests must be forwarder to proxy A - UNLESS they are to 172.19.0.0/16 or listed in /usr/local/etc/squid3-directurls.txt "

OKAY. That is configured.

cache_peer_access B deny ir_ah
cache_peer_access B allow all

"if they are in /usr/local/etc/squid3-directurls.txt they must be forwarded to proxy B "

BROKEN. All the config says is any request which does not match ir_ah will be directed to proxy B.
You need that to be:
  cache_peer_access B allow allowed_servers
  cache_peer_access B deny all


What works:
- all request initially go to the redirect_program, it then allows them
   to be processed
- BUT: after the redirect_program acks them, it sends the user back to
   the redirect_program!

What I see is that Squid sends requests to 172.19.0.1 via its redirector
while it should go straight through to 172.19.0.1.
How can I fix this?

Um, this matches your policy statements about what you wanted to happen. But does not match what the config says should be happening.

In order for this to happen the "dst" ACL when applied to the client original URL domain needs to be producing something other than a 172.19.0.0/16 IP address.
Note that this ACL does not match against the output of the redirector.

I'm not sure what needs to be done to make it more predictable. Avoiding "dst" type when possible is a good idea.

The other thing to look at is *how* the redirector is "ACKing" the URL. A proper redirect is just a referral to another location, the client will followup with another request. This could be what you are seeing. Otherwise the only way I can think of you could get double helper lookups like this is forwarding loops somewhere causing the transaction to re-enter Squid.

Amos




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux