I have a 64MB/s internet connection and it should be divided among 17 LANs with a priority. Any computer from any LAN should have a particular share from bandwidth (For example computers from LAN1 have half of bandwidth that computers from LAN2) but it's share should vary when overall internet load varies.
So the allocated bandwidth should not be given statically and must be changed according to the load.
I tried Squid and iproute. But as far as i found, none of them could allocate bandwidth dynamically. They just could give an IP a static bandwidth (say 64kbps)
UPDATE:
As Crankyadmin, carson and David Bliss said, there are three ways to do this:
As i found, all of them are solutions for this problem. But i don't know if one is suitable for high loads and can manage hundreds of Computers.
I am using FreeBSD as a proxy server so it's nice to have a solution that works on FreeBSD too.
So I need a FreeBSD compatible solution that can deal with high load. it should be efficient and fast) and doesn't waste the internet bandwidth.