Rate Limiting w/ Class Based Queuing?
fwerked asks: "I have recently been commissioned by the uppers in my company to produce rate limiting system for a college apartment complex with 600 users. I am hoping to use a Linux system to limit each users rate to 128 Mb. using Class Based Queuing. In addition I will need to route, DHCP, and NAT. I was hoping there was someone out there in the Slashdot community that has implemented this on a large scale that might be able to recommend hardware specs (CPU, RAM, etc) and if these services should be divided among several boxes or dumped on one bad boy."
Secondly, as the queue discipline's application is connection based, your requirements are probably not that big. At a guess from experiance with a similar if far smaller job, I'd say you'll be fine with vanilla, mid-range hardware. I'd keep the DHCP and other "user" services on a different box, and dedicate one to being the router. I'd think 128MB of RAM would be overkill, but fast RAM and fast NIC won't hurt. CPU probably won't matter much; whatever's cheap will have gobs of spare time between packets anyway... A CPU with real cache would be preferred over a Celeron, though.
Also, Block ad banners, they eat lots of bandwidth... somebody sent me a email on this a while back... email me if you want it...
Adding in a good cache server will help tremendously with the load on the outside network link. You will need to get everybody to use it, but that isn't as hard as it seams. You may find that is all that is needed to restore reasonable network performance for all. Considering you have 600 clients, you will likely need to have multiple NAT boxes just to have enough ports to work smoothly. Each of these could then also be provisioned with a big HD for caching HTTP and FTP data. The caches can be setup in a peering configuration where if one has a document cached, the others won't have to fetch it from the source, just the peer.
I don't think you're going to be successful limiting each of 600 users to 128 Mbps with a single Linux box. You might be able to handle three. Sorry. You need to be talking to a fancy high-end hardware vendor, I'm afraid. Pay particular attention to finding one who can help you set reasonable requirements.
You're asking the /. community to help you throttle users on a college campus and give a lower priority to traffic less liked by the man? Good luck!
Another proud carrier of the $rtbl flag
You should discretely inform select members of those 600 residents that this feature is available to them upon their activation of your custom-coded bribery module.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
Unless you're running fiber to each user you probably aren't going to be able to exceed 100Mbps anyway. If I were you I'd just install 100BT switches and then you're problem is completely taken care of.
_____________
I don't want free as in beer. I just want free beer.
I'm sorry, I didn't understand the question, but I might as well share what I know. Are we talking about an internet or regular network connection? If you want each person to be limited to 128Mbps, isn't that 128 * 600 = 76Gbps? That's a little more than Internet2 has to offer, isn't it?
Anyway, you could probably fine more info from: search for the following linux programs (some free, some commercial):
ipac
iog
ipa
ipaudit
pact
bandmin
ip accounting daemon
iplog
(obviously) the 2.4.x kernel.
These projects should have mailing lists where you could ask the question of "how much hardware do i need?". I would recommend getting 1 box to do the DNS, DHCP, NAT, firewall, etc. Then have 1 box upstream throttle the bandwidth (depending on how you do your NAT, you may need to do NAT from the same box).
Daniel