QoS: Porovnání verzí

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání
(WMM a 802.1Q na MK)
 
Řá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
  
===Další informace zde na Wiki===
+
<br />
Starší stránka z roku 2006 zabývající se QoS na linuxu - [[QoS - linux]]
+
 
 +
=== 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<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>
  
Historický shaper používaný pro SVM - [[Shaper pro SVM]]
+
====== 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.
  
===Hotové scripty===
+
====== 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)====
+
===Řešení od PaTaNa (používané v Dobrušce)===
 
<todo - doplnit samotný script>
 
<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 <code>wiki</code>, třeba se zde objeví ještě pár připomínek či nápadů pro vylepšení.
+
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>.
 
*Otestováno (v provozu) na jádře: <code>4.9.0-8-amd64</code> distribuce <code>debian-based</code>.
Řádek 56: Řá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
 
Automatizace pro "tc", bohužel nepodporuje všechny queues - https://github.com/hkbakke/tc-gen

Aktuální verze z 12. 12. 2021, 13:23

Místo shromaždující poznatky o řízení provozu na APčkách v HKFree


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

802.1Q vs DSCP.png
/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.

Alcoma QoS.png


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>

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 distribuce debian-based.
  • Využívané prostředky: iproute2, ipset (doplněk, potřeba doinstalovat apt install ipset)
  • Stručný popis fungování:
  • tar obsahuje dva soubory: qos/traffic-shaping (soubor bash scriptů pro definovanou správu QoS) a qos/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 (300Mbps download, 300 Mbps upload, 40Mbps vyhrazený 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 zvoleno HTB s využitím SFQ algoritmu na listech (prostudujte na Google ) - defaultní SFQ_PERTURB=10, možno znovu změnit přidáním SFQ_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ího eth 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