(this is slightly long and convuluted, basically wanting squid to answer
to GET http://me/squid-internal-periodic/local-domains which is a list of
domains which can be requested from this squid cache from other squid
caches (at other ISPs), in the same format as cache-digests)
-- Preamble:
In the last few days a question has come up on the Ausbone mailing list
about (ausbone) caches going direct for domains hosted by other ISPs
(which are also on ausbone).
(Side note - Ausbone is a low-cost Australia wide peering network between
Australian ISPs - it is preferably to request an object which is on
another Ausbone ISP's server directly, than to request the object off the
upstream provider's cache and pay up to $0.19c/meg for it)
One way to do this is to simply go direct for all domains ending in '.au'
and let the routing fall where it may. Another way is to collect from
other Ausbone ISPs a list of the virtual domains they host and put this in
a (large) acl and go direct for these.
Both of these have problems in that a) a lot of ISPs/australian domains
aren't on Ausbone, and as such, going direct incurs the upstream
provider's full rate for Australian domestic traffic if the object isn't
on Ausbone (cache traffic is normally cheper at times), and b) collecting
a list of what domains are hosted from each Ausbone ISP is hard, and
liable to be extremely out of date ;)
-- Gist:
Would it be possible to put into squid, the ability to fetch from another
cache a list of domains (url patterns perhaps?) which this other cache
can fetch for you, eg, they are handled at the same ISP as that cache?
I can vaguely see how to do this using cache_peer_acl being fed from
a program requesting the acl list from the remote proxy, eg:
proxy.isp_A.com.au:
acl domains_at_ISP_B dst "/usr/local/squid/etc/acl.domains_at_isp_b"
cache_peer proxy.isp_b.com.au sibling 3128 3130
cache_peer_acl proxy.isp_b.com.au domains_at_ISP_B
proxy.isp_B_.com.au:
acl domains_handled_by_us dst "/usr/local/squid/etc/acl.our.domains"
http_access allow domains_handled_by_us
icp_access allow domains_handled_by_us
Ideally, /usr/local/squid/etc/acl.domains_at_isp_b would be updated,
either by an external program making a request for said list via http or
direct to a certain port at proxy.isp_b.com.au (said program perhaps run
at the same time your squid logs are rotated), or, via the same update
method as cache-digests.
-- Request:
GET http://proxy.isb_b.com.au/squid-internal-periodic/local-domains
The latter would require YANBSCO (yet another bloody squid conf option),
or perhaps some assumptions made about acls handed to http_access and
icp_access. (could possibly compromise some firewall setups, so not that)
Caveats: Actually getting ISPs to update
/usr/local/squid/etc/acl.our.domains could prove slighter harder than
squeezing blood from a stone, particularly as any cost saving is when
other people update their lists. But for a nation-wide peering network, I
think it might be worthwhile ;)
--==--
Bruce.
Systems Administrator
Hub Communications.
Ausbone/BIX - We peer.
Received on Sun Aug 30 1998 - 01:03:36 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:41:46 MST