Good afternoon,
I have two networks (A and B). Users on network A should have internet priority over users in network B. We have a server acting as an internet gateway between A, B, and the internet; and we're using iptables and tc to do some shaping (priorizing HTTP over SMTP, A over B, etc...).
This server also runs SQUID cache, which is used by both networks A and B users. The problem is that it's impossible to enforce A over B priority for HTTP using the source IP because all outbound requests come from SQUID.
Having two SQUIDs (one on each network) needs additional hardware and is not planned right now.
I have thought about setting SQUID to use different source port ranges for outbound connections (based on the network the request came from), so that I can shape packets from this information. I googled for such and SQUID config, it looks like I'm not the first to ask this question, but all I found were pieces of C code. Is there, somewhere, a configuration trick that allows to do this ?
I read about delay pools, which seems to be a fallback "better than nothing" solution.
I was thinking about doing 4 pools, something like :
- network A, small files (html, jpg, gif, ...) : 35% of bandwidth
- network A, big files (audio, flash, ...) : 25%
- network B, small files : 25%
- network B, big files : 15%
This would work well when the network is really crowded, but - tell me if I'm wrong - it would prevent any user from network B to downloading at anything faster than 25%, even if at that time he was the only one using the link. I would prefer having any user being able to hit 100% if it doesn't disturb any one else's traffic, but still guarantee priority of A over B users at any time.
Do you have other ideas that I may try to achieve my goal ?
Thank you for any suggestion,
Loïc
Received on Tue Oct 14 2008 - 12:04:47 MDT
This archive was generated by hypermail 2.2.0 : Wed Oct 15 2008 - 12:00:03 MDT