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 ?