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
