QoS
Místo shromaždující poznatky o řízení provozu na APčkách v HKFree
Obsah
Další informace zde na Wiki
Starší stránka z roku 2006 zabývající se QoS na linuxu - QoS - linux
Historický shaper používaný pro SVM - Shaper pro SVM
Hotové scripty
Řešení od PaTaNa (používané v Dobrušce)
<todo - doplnit samotný script>
Při řešení problematiky s občasným vytížením linky od stahovačů a s tím nefunkční IPTV jsem se rozhodl ke kroku pokusit se mírně shapovat u hraničního dobrušského routeru spolu s prioritizací provozu. Script i s popisem nabízím "široké veřejnosti". Víc hlav, víc ví a hlavně, než to začnu bezhlavě cpát na wiki
, třeba se zde objeví ještě pár připomínek či nápadů pro vylepšení.
- Otestováno (v provozu) na jádře:
4.9.0-8-amd64
distribucedebian-based
. - Využívané prostředky:
iproute2
,ipset
(doplněk, potřeba doinstalovatapt install ipset
) - Stručný popis fungování:
tar
obsahuje dva soubory:qos/traffic-shaping
(soubor bash scriptů pro definovanou správu QoS) aqos/ipset_list
(základní "balík" ip address pro filtraci provozu specializováno na IPTV, možno doplňovat/editovat)- spuštění:
qos/traffic-shaping start
vytvoří QoS definovaný defaultně pro Dobrušku (300Mbpsdownload
, 300 Mbpsupload
, 40Mbpsvyhrazený traffic pro IPTV
), možno změnit individuálně při definování proměnných před spouštěcím scriptem (příklad):
1/1 GBps connection 110 Mbps IPTV: DOWNLINK_RATE=1000 UPLINK_RATE=1000 IPTV_RATE=110 /root/qos/traffic-shaping start
- pro shapping jako
classful qdisc
zvolenoHTB
s využitímSFQ
algoritmu na listech (prostudujte na Google ) - defaultníSFQ_PERTURB=10
, možno znovu změnit přidánímSFQ_PERTURB=xx
před spouštěcím skriptem - skript umožňuje následující akce:
<start|stop|restart|status|save-list> [--verbose|-v]
- definovaná struktura
qdisc
pro upload (dev:eth0
) v defaultu:
root 1: (HTB) | 1:1 (HTB) rate:300mbit ceil:300mbit | 10: SFQ (perturb 10)
- definovaná struktura
qdisc
pro download (dev:ifb-eth0
) v defaultu: ifb
je virtualizované rozhraní, na které je zrcadlen provoz z defaultníhoeth
a následně filtrováno pro shaping
root 1: (HTB) | 1:1 (HTB) rate:300mbit ceil:300mbit / \ 1:11 (HTB) rate:295mbit ceil:300mbit prio:2 1:12 (HTB) rate:5mbit ceil:300mbit prio:1 | | / \ 12: SFQ (perturb 10) / \ / \ 1:111 (HTB) "TV" 1:112 (HTB) "others" rate:40mbit ceil:55mbit rate:260mbit ceil:300mbit prio:1 prio:2 | | / \ / \ / \ / \ 1:1111 (HTB) 1:1112 (HTB) 1:1121 (HTB) 1:1122 (HTB) SledovaniTV O2TV HTTP down other down | | | | 1111: SFQ 1112: SFQ 1121: SFQ 1122: SFQ (perturb 10) (perturb 10) (perturb 10) (perturb 10)
Zdroje
Stránka zabývající-se problémem "bufferbloat" a QoS frontami: https://www.bufferbloat.net/projects/codel/wiki/Cake/
Automatizace pro "tc", bohužel nepodporuje všechny queues - https://github.com/hkbakke/tc-gen