On Sat, 30 Aug 2003, Vik Olliver wrote:

> I'd like to be able to configure the following scheme:
>
> Assume there is a community with a LAN backbone. Individual members are
> nto allowed to give others access to the internet via their own private
> Internet connections but freely share LAN access.

You mean like a community wireless thingy? :-)

> A member accesses the web via a local proxy that first consults a
> central server cluster for pages. If the page is present, it is returned
> to the member's browser.
> If the page is not present, the local proxy attempts to aquire the page
> via the member's private connection. The proxy then serves the page to
> the user's browser and also deposits a copy with the central community
> server.

Squid has a thing called ICP (and something newer aswell) coupled
with cache siblings does most of what you want here.  Basically what
you do is configured all the squid proxys as siblings of each other,
allow each other to request pages from each other and enable the ICP
requesting stuff.  Then when the "local" proxy receives a request it
will send out a ICP request (single UDP packet) to each sibling proxy
(it can be sent via multicast or broadcast aswell) asking if the
other proxy has this URL.  The proxy will reply yes or no, if yes the
local proxy can then do a normal HTTP request for it (just like using
a parent proxy), or if the object was small enough the sibling (might)
send it back in it's ICP reply.  If the "local" proxy doesn't receive
any "yes"es then it can just go direct.

The trick is to only enable "miss_access" on the "local" proxys for
the "local" users!

The newer protocol downloads lists of what each sibling has every now
and then, or something like that, instead of the ICP queries for each
request.

It doesn't do the "also deposits a copy with", but this way also
means that the disk space usage is distributed over many caches, and
network traffic if the network has many segments.

A while ago I had a play with this and when I was on a dialup and my
ISP ran squid I used to have ICP enabled on my squid for the parent
squid at the ISP so in the access.log it logged if it was a "HIT" or
a MISS at my ISP.

> All this happens using cross-platform software.

Well, squid runs on Linux, FreeBSD, probably MacOS X and apparently
with a little bit of a shove it will run on win32 aswell.  Since the
fancy stuff is done in the proxy and you just talk normal HTTP/TCP/IP
to the proxy (most) any browser on any platform will work fine.


What would be really cool would be if apt-proxy supported something
like this :-).  In theory I guess you could just turn apt-proxys
archive into a normal apt-get archive, but something like ICP would
be neater and probably more scalable.  And nntpcache aswell.

Andrew Gordon
-- 
http://hhs.gordons.gen.nz/
Uptime: 251:23:07 (Days:Hours:Minutes) 0.46, 0.47, 0.39 Loadavg
132 Tasks loaded, 1 in Running State

Reply via email to