2

This question is a follow-up to "How to set up a Linux server as a router ?" but with an added prerequisite : I want to be sure, before I begin mounting a Ubuntu router, that I will be able to implement QoS. This is mainly to use fine-grained QoS that I want a custom router in the first place so I need to be sure that it is possible.

I want to use an Ubuntu Server machine as my home network router (with DHCP, DMZ, Firewall rules). I also want to be able to throttle the up-link bandwidth (to provide QoS) based on the following criteria:

  • Local IP range
  • Local MAC address
  • Local Port range
  • Remote IP range
  • Remote Port range
  • Priority

For example, I'd like to be able to limit the bandwidth of my Google Drive Sync (which sync to a Google IP on port 443), but only if other services with higher priority needs the bandwidth.

In fact, I'd like to have a mix between StreamEngine QoS (that can limit bandwidth to destination IP but only work with 0..255 priority on my D-Link router) and Cisco "casual" routers (that allow for explicit bandwidth limit - 50KB/s for example - but only on local IP rules).

Is this possible using Ubuntu Server ? If so, where should I start ?

Eric MORAND
  • 168
  • 1
  • 7
  • 1
    I'm not an expert on router setup (only playing with an ASUSWRT device...), but I think all you want to do can be done using a combination of iptables and iproute2. https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html http://lartc.org/howto/ – soulsource May 06 '14 at 13:23
  • Reading the man page of tc and some other web resources about it and it seems to be exactly what I need to create custom QoS rules. Still reading but it looks promising right now... – Eric MORAND May 06 '14 at 13:51
  • soulsource, could you please copy your comment as an answer ? iptables and tc (iproute2) are exactly what I need... – Eric MORAND May 09 '14 at 20:15

1 Answers1

2

I think all you want to do can be done using a combination of iptables and iproute2. Please have a look at the Iptables-Tutorial and the advanced router howto.

soulsource
  • 4,944