QoS case study with several uplink interfaces

[SCENARIO]
two uplink ISP connections with different download/upload bandwidth
two LAN ports bridged + NAT

http should be PRIORITIZED over other traffic on both uplinks.

bandwidth policy for ISP1 (eth3)
http 15M/4M, priority 1
other 5M/1M, priority 8

bandwidth policy for ISP2 (eth4)
http 45M/15M, priority1
other 5M/5M, priority 8



if there was only 1 uplink - ISP1 configuration would be simple

  1. mark http connection in mangle-prerouting based on tcp dst-port 80
  2. mark http packets in mangle-prerouting based on previously marked http connection
  3. create queue in QT for total-download with parent=bridge1
  4. create leaf queues under total-download for http and non-http packets with desired bandwidth limits and priorities
  5. create queue in QT for total-upload with parent=eth3
  6. create leaf queues under total-upload for http and non-http packets with desired bandwidth limits and priorities


    now, when more uplink interfaces appear, its simple for upload traffic

a) create queue in QT for upload-isp2 with parent=eth4
b) create leaf queues under upload-isp2 for http and non-http packets with desired bandwidth limits and priorities

but its more tricky with download, because now download traffic can arrive via two inerfaces.


as far as im conserned it should be like -

  1. mark http connection in mangle-prerouting based on tcp dst-port 80
  2. mark http download and upload packets in mangle-prerouting based on previously marked http connection + in/out interface
  3. mark non-http packets in mangle-prerouting based on previously marked http connection + in/out interface
  4. create queue in QT for total-download with parent=bridge1
  5. create 2 inner queues down-isp1 and down-isp2 for download via eth3 and eth4
  6. create leaf queues under down-isp1 and down-isp2 for http and non-http packets with desired bandwidth limits and priorities
  7. create queue in QT for upload-isp1 with parent=eth3, and queue for upload-isp2 with parent=eth4
    :sunglasses: create leaf queues under upload-isp1 and upload-isp2 for http and non-http packets with desired bandwidth limits and priorities


    recomendations / ideas / comments ?

I prefer to use parent=global-out =) but the idea is the same: mark traffic to/from each ISP, and create a queue for each ISP with leaves with different priorities