Hi,
I am trying to develop a system to handle a simple enough scenario.
Essentially it is a gateway, on which HTTP and FTP will go through Squid
for caching and all that, and everything else (telnet, etc) will go
through the gateway but not squid. I want to divide the bandwidth up
evenly between the users on the system (i.e. 2 users on the system then
each gets half the total bandwidth, 4 then they get a quarter and so
on). I have one basic question:
The question is that if my http traffic goes through squid then when it
is seen by the Linux Traffic Controller (the TC is on the outgoing
Interface i.e. the Internet connection, so that it can see the actual
bandwidth usage of the outgoing link i.e. we have examined the cache to
see f we have it stored and found we need to fetch it) the http packets
are wrapped in TCP packets and the TC sees all the http traffic as
coming from squid i.e. a connection between Squid and say Yahoo.com, and
cannot distinguish which user sent what request as they all seem to be
packets with Squid as the source IP address. Is this understanding
correct? If not what am I seeing wrong? If this is the case how am I
going to share the bandwidth as I state above as all the users on the
LAN are being anonymised by Squid before they reach the TC??
At present my best solution seems to be to use a combination of Delay
Pools, the modified dynamic ones, and Class Based Queuing (CBQ). This
way delay pools will manage the bandwidth for Squid and I can use a CBQ
to allocate the delay pools a set amount of the total bandwidth and use
CBQs to share the remaining bandwidth out between the users. However the
delay pools and the CBQ are separate utilities and they do not talk to
each other so this is not efficient as the amount of bandwidth allocated
to Squid cannot easily be changed dynamically as the delay pool would
have to be reconfigured each time. As you can tell this is a bit of a
messy solution and does not make the best use of the limited resources
i.e. bandwidth can be left idle.
So in short, does Squid anonymise which user is generating which http
packets on the TC if the TC is on the Internet connection interface?? If
not, how come? If yes, is there a way around this and what is it?
Probably a newbie question but I have spent a good while trying to solve
this before asking the question. Any help greatly appreciated.
Cheers,
Shane