QoS: Porovnání verzí
(Založena nová stránka s textem „Místo shromaždující poznatky o řízení provozu na APčkách v HKFree === Hotové scripty === ==== Řešení od PaTaNa (používané v Dobrušce) ==…“) Značka: editace z Vizuálního editoru |
(WMM a 802.1Q na MK) Značka: editace z Vizuálního editoru |
||
(Nejsou zobrazeny 4 mezilehlé verze od jednoho dalšího uživatele.) | |||
Řádek 1: | Řádek 1: | ||
Místo shromaždující poznatky o řízení provozu na APčkách v HKFree | Místo shromaždující poznatky o řízení provozu na APčkách v HKFree | ||
− | + | <br /> | |
− | === | + | === Prioritizace paketu a DSCP na Mikrotiku === |
− | + | Základní nastavení QoS pro televize pro Alcomy na Mikrotikách: | |
− | + | ====== IP rozsahy televizních služeb ====== | |
− | + | nejprve je potřeba si vydefinovat televizní služby | |
− | + | /ip firewall address-list | |
+ | add address=83.208.217.0/24 list=O2TV | ||
+ | add address=10.107.252.17 list=sledovaniTV | ||
+ | add address=89.248.240.17 list=sledovaniTV | ||
+ | add address=188.246.116.0/22 list=sledovaniTV | ||
+ | add address=212.67.66.0/24 list=T-mobileTV | ||
+ | add address=185.41.48.0/22 list=SkylinkTV | ||
+ | add address=62.24.71.74 list=KukiTV | ||
+ | add address=83.240.98.66 list=KukiTV | ||
+ | add address=83.240.98.90 list=KukiTV | ||
− | * <code>tar</code> obsahuje dva soubory: <code>qos/traffic-shaping</code> (soubor bash scriptů pro definovanou správu QoS) a <code>qos/ipset_list</code> (základní "balík" ip address pro filtraci provozu specializováno na IPTV, možno doplňovat/editovat) | + | ====== Značkování paketů pomocí DSCP a následně dle 802.1Q ====== |
− | * spuštění: <code>qos/traffic-shaping start</code> vytvoří QoS definovaný defaultně pro Dobrušku (300Mbps <code>download</code>, 300 Mbps <code>upload</code>, 40Mbps <code>vyhrazený traffic pro IPTV</code>), možno změnit individuálně při definování proměnných před spouštěcím scriptem (příklad): | + | Následně se dle těchto IP adres označkují DSCP značkou pakety těch služeb, které z výroby neznačkují (sledovaniTV značkuje). Poslední pravidlo nastaví dle 802.1Q prioritu paketu dle DSCP značky a to dle horních 3 bitů (protože priorita je 0-7 a DSCP je 0-63), viz tabulka<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span> |
+ | [[Soubor:802.1Q vs DSCP.png|žádné|náhled]] | ||
+ | /ip firewall mangle | ||
+ | add action=change-dscp chain=prerouting comment="SkylinkTV DSCP32" new-dscp=\ | ||
+ | 32 passthrough=no src-address-list=SkylinkTV | ||
+ | add action=change-dscp chain=prerouting comment="O2TV DSCP32" new-dscp=32 \ | ||
+ | passthrough=no src-address-list=O2TV | ||
+ | atd ... pro další služby | ||
+ | add action=set-priority chain=postrouting comment="DSCP to WMM priority" \ | ||
+ | new-priority=from-dscp-high-3-bits passthrough=yes | ||
+ | |||
+ | ====== QoS na Alcomách ====== | ||
+ | Nakonec se zapne na Alcomě QoS podpora, ta má přednastaveno, jak má ty fronty řadit, viz obrázek. Alcoma pak začne posílat televizní pakety s prioritou. | ||
+ | [[Soubor:Alcoma QoS.png|žádné|náhled]] | ||
+ | |||
+ | |||
+ | <u>Toto nastavení je vhodné udělat na routeru, který je před postiženou oblastí.</u> Tzn. nikoliv na routeru pro svou oblast, ale na tom předcházejícím. Aby už spoj do oblasti pracoval s pr<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>ioritou. | ||
+ | |||
+ | ====== WMM podpora na MK ====== | ||
+ | Nakonec je vhodné zapnout na sektorech a klientech podporu WMM. To je funkce, která zase podle priority paketu zkusí daný paket v r<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>ad<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>iovém čase odeslat dříve. viz povídání <nowiki>https://wiki.mikrotik.com/wiki/Manual:WMM</nowiki> | ||
+ | |||
+ | Zapne se jednoduše: | ||
+ | |||
+ | <code>/interface wireless set [find default-name=wlan1] wmm-support=enabled</code> | ||
+ | |||
+ | WMM pracuje s dříve označenou priorit<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>ou v rámci postrouting pravidla "DSCP to WMM priority". | ||
+ | |||
+ | <u>Pro účely WMM lze pravidla z <code>/ip firewall mangle</code> apl</u><span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span><u>ikovat i na koncovém routeru.</u> | ||
+ | |||
+ | ====== Výkonové potřeby ====== | ||
+ | Pravidla si na RB3011 sežerou při toku cca 250Mbps cca 35<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>% výkonu. Něco to je,<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span> ale není třeba se toho bát. | ||
+ | |||
+ | ====== Záv<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>ěr<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span> ====== | ||
+ | Slovem na závěr, pravidla mangle b<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>y byla vhodná dělat už na IGW, hodnoty DSCP i priorita paketu přežije při routování. Tyto prav<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>idla, dá se říct, děláme za poskytovatele služby. SledovaniTV si pakety označuje,<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span> zajišťuje si tak le<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>pší podporu při zapnutých QoS funkcích. O2TV nebo Skylink na to kašlou a spoléhají na to, že sítě poskytovatelů jso<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>u dostatečně propustné. Dalo by se říci, že poskytovaná služba ze strany O2TV ne<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>bo Skylink není dost <span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>kvalitní a zabezpečena a nechceme-li, aby nám členové nadávali na nefun<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>gující internet a síť jen proto, že jim padá a seká se televize, tak je to jediná šance, jak s<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>i pomoct. (edited) | ||
+ | <br /> | ||
+ | |||
+ | ===Řešení od PaTaNa (používané v Dobrušce)=== | ||
+ | <todo - doplnit samotný script> | ||
+ | |||
+ | Př<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>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 pokus<span data-stringify-type="paragraph-break" class="c-mrkdwn__br"></span>it 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 <code>wiki</code>, 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: <code>4.9.0-8-amd64</code> distribuce <code>debian-based</code>. | ||
+ | *Využívané prostředky: <code>iproute2</code>, <code>ipset</code> (doplněk, potřeba doinstalovat <code>apt install ipset</code>) | ||
+ | *Stručný popis fungování: | ||
+ | |||
+ | *<code>tar</code> obsahuje dva soubory: <code>qos/traffic-shaping</code> (soubor bash scriptů pro definovanou správu QoS) a <code>qos/ipset_list</code> (základní "balík" ip address pro filtraci provozu specializováno na IPTV, možno doplňovat/editovat) | ||
+ | *spuštění: <code>qos/traffic-shaping start</code> vytvoří QoS definovaný defaultně pro Dobrušku (300Mbps <code>download</code>, 300 Mbps <code>upload</code>, 40Mbps <code>vyhrazený traffic pro IPTV</code>), 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: | 1/1 GBps connection 110 Mbps IPTV: | ||
DOWNLINK_RATE=1000 UPLINK_RATE=1000 IPTV_RATE=110 /root/qos/traffic-shaping start | DOWNLINK_RATE=1000 UPLINK_RATE=1000 IPTV_RATE=110 /root/qos/traffic-shaping start | ||
− | * pro shapping jako <code>classful qdisc</code> zvoleno <code>HTB</code> s využitím <code>SFQ</code> algoritmu na ''listech'' (prostudujte na Google ) - defaultní <code>SFQ_PERTURB=10</code>, možno znovu změnit přidáním <code>SFQ_PERTURB=xx</code> před spouštěcím skriptem | + | *pro shapping jako <code>classful qdisc</code> zvoleno <code>HTB</code> s využitím <code>SFQ</code> algoritmu na ''listech'' (prostudujte na Google ) - defaultní <code>SFQ_PERTURB=10</code>, možno znovu změnit přidáním <code>SFQ_PERTURB=xx</code> před spouštěcím skriptem |
− | * skript umožňuje následující akce: <code><start|stop|restart|status|save-list> [--verbose|-v]</code> | + | *skript umožňuje následující akce: <code><start|stop|restart|status|save-list> [--verbose|-v]</code> |
− | * definovaná struktura <code>qdisc</code> pro '''upload''' (dev: <code>eth0</code>) v defaultu: | + | *definovaná struktura <code>qdisc</code> pro '''upload''' (dev: <code>eth0</code>) v defaultu: |
root 1: (HTB) | root 1: (HTB) | ||
Řádek 26: | Řádek 81: | ||
10: SFQ (perturb 10) | 10: SFQ (perturb 10) | ||
− | * definovaná struktura <code>qdisc</code> pro '''download''' (dev: <code>ifb-eth0</code>) v defaultu: | + | *definovaná struktura <code>qdisc</code> pro '''download''' (dev: <code>ifb-eth0</code>) v defaultu: |
− | * <code>ifb</code> je virtualizované rozhraní, na které je zrcadlen provoz z defaultního <code>eth</code> a následně filtrováno pro shaping | + | *<code>ifb</code> je virtualizované rozhraní, na které je zrcadlen provoz z defaultního <code>eth</code> a následně filtrováno pro shaping |
root 1: (HTB) | root 1: (HTB) | ||
Řádek 49: | Řádek 104: | ||
1111: SFQ 1112: SFQ 1121: SFQ 1122: SFQ | 1111: SFQ 1112: SFQ 1121: SFQ 1122: SFQ | ||
(perturb 10) (perturb 10) (perturb 10) (perturb 10) | (perturb 10) (perturb 10) (perturb 10) (perturb 10) | ||
+ | <br /> | ||
+ | ====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]] | ||
− | === Zdroje === | + | ====Zdroje==== |
Stránka zabývající-se problémem "bufferbloat" a QoS frontami: https://www.bufferbloat.net/projects/codel/wiki/Cake/ | 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 |
Aktuální verze z 12. 12. 2021, 12:23
Místo shromaždující poznatky o řízení provozu na APčkách v HKFree
Obsah
Prioritizace paketu a DSCP na Mikrotiku
Základní nastavení QoS pro televize pro Alcomy na Mikrotikách:
IP rozsahy televizních služeb
nejprve je potřeba si vydefinovat televizní služby
/ip firewall address-list add address=83.208.217.0/24 list=O2TV add address=10.107.252.17 list=sledovaniTV add address=89.248.240.17 list=sledovaniTV add address=188.246.116.0/22 list=sledovaniTV add address=212.67.66.0/24 list=T-mobileTV add address=185.41.48.0/22 list=SkylinkTV add address=62.24.71.74 list=KukiTV add address=83.240.98.66 list=KukiTV add address=83.240.98.90 list=KukiTV
Značkování paketů pomocí DSCP a následně dle 802.1Q
Následně se dle těchto IP adres označkují DSCP značkou pakety těch služeb, které z výroby neznačkují (sledovaniTV značkuje). Poslední pravidlo nastaví dle 802.1Q prioritu paketu dle DSCP značky a to dle horních 3 bitů (protože priorita je 0-7 a DSCP je 0-63), viz tabulka
/ip firewall mangle add action=change-dscp chain=prerouting comment="SkylinkTV DSCP32" new-dscp=\ 32 passthrough=no src-address-list=SkylinkTV add action=change-dscp chain=prerouting comment="O2TV DSCP32" new-dscp=32 \ passthrough=no src-address-list=O2TV atd ... pro další služby add action=set-priority chain=postrouting comment="DSCP to WMM priority" \ new-priority=from-dscp-high-3-bits passthrough=yes
QoS na Alcomách
Nakonec se zapne na Alcomě QoS podpora, ta má přednastaveno, jak má ty fronty řadit, viz obrázek. Alcoma pak začne posílat televizní pakety s prioritou.
Toto nastavení je vhodné udělat na routeru, který je před postiženou oblastí. Tzn. nikoliv na routeru pro svou oblast, ale na tom předcházejícím. Aby už spoj do oblasti pracoval s prioritou.
WMM podpora na MK
Nakonec je vhodné zapnout na sektorech a klientech podporu WMM. To je funkce, která zase podle priority paketu zkusí daný paket v radiovém čase odeslat dříve. viz povídání https://wiki.mikrotik.com/wiki/Manual:WMM
Zapne se jednoduše:
/interface wireless set [find default-name=wlan1] wmm-support=enabled
WMM pracuje s dříve označenou prioritou v rámci postrouting pravidla "DSCP to WMM priority".
Pro účely WMM lze pravidla z /ip firewall mangle
aplikovat i na koncovém routeru.
Výkonové potřeby
Pravidla si na RB3011 sežerou při toku cca 250Mbps cca 35% výkonu. Něco to je, ale není třeba se toho bát.
Závěr
Slovem na závěr, pravidla mangle by byla vhodná dělat už na IGW, hodnoty DSCP i priorita paketu přežije při routování. Tyto pravidla, dá se říct, děláme za poskytovatele služby. SledovaniTV si pakety označuje, zajišťuje si tak lepší podporu při zapnutých QoS funkcích. O2TV nebo Skylink na to kašlou a spoléhají na to, že sítě poskytovatelů jsou dostatečně propustné. Dalo by se říci, že poskytovaná služba ze strany O2TV nebo Skylink není dost kvalitní a zabezpečena a nechceme-li, aby nám členové nadávali na nefungující internet a síť jen proto, že jim padá a seká se televize, tak je to jediná šance, jak si pomoct. (edited)
Ř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)
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
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