Bandwidth Shaping – How to Implement Port-Based Bandwidth Shaping

bandwidth-controlqostraffic-shaping

I have an interent connection with the speed of 4000k bits up and down. I want to do port based traffic shaping on a ubuntu machine, which acts as router. eth0 is the WAN interface. This is how I would like to allocate bandwidth:

  • For ports 80 and 443 the bandwidth usage can go upto 90%
  • For ports above 1024 upto 65535 the bandwidth usage can go upto 10%
  • For remaining ports the bandwidth usage can go upto 40%

The easiest way for achieving the above is using a router with tomato firmware. I have used it and it is very efficient. I want to try if it can be done on a Ubuntu or any GNU/Linux machine. I have googled extensively about the topic and I feel there isn't much information.

Best Answer

You should be able to accomplish this using tc and iptables. This article by Vivek Gite walks you through doing it for one port.