Advanced Routing with Linux
In short, if it can be done in networking, then your Linux system can probably do it – within the limitations of the connected hardware.
Linux Advanced Routing & Traffic Control HOWTO documents these things.
For example (stolen verbatim):
- Throttle bandwidth FOR certain computers
- Throttle bandwidth TO certain computers
- Help you to fairly share your bandwidth
- Protect your network from DoS attacks
- Protect the Internet from your customers
- Multiplex several servers as one, for load balancing or enhanced availability
- Restrict access to your computers
- Limit access of your users to other hosts
- Do routing based on user id (yes!), MAC address, source IP address, port, type of service, time of day or content
That’s just the short list. Much more is possible and the LARTC guide has examples for all sorts of things.