SOCL.cz
blog nejen o Internetu

MikroTik: rovnoměrné rozdělení šířky pásma

publikováno 15. 2. 2015 v 15:50

V půlce minulého roku vzešel od vedení ve firmě požadavek na připojení návštěvníků k Internetu v prostorech naší společnosti. Kamarád Ondra, který pracuje u zdejšího významného poskytovatele, který nám mimochodem dodává internetovou konektivitu, poradil vytvořit síť access pointů na produktu Ubiquiti UniFi AP. Jako hlavní router jsem zvolil MikroTik Routerboard RB750GL a jal se tvořit.

MikroTik Logo

Navrhnout privátní síť pro návštěvníky, která je oddělena VLANy od zbytku naší sítě, nebyl poměrně žádný problém. Stejně tak vytvořit hotspot portál na zmíněném produktu od Ubiquiti. Menší problém nastal až ve chvíli, kdy jsem si uvědomil, že by jeden nezodpovědný návštěvník mohl paralelním stahováním/odesíláním doslova "vyžrat" celou šířku pásma - přiděleného pro návštěvníky - jen a jen pro sebe a na ostatní by nic moc nezbylo. Nechceme se přeci vrátit do časů dial-upů, kdy jsme na načtení webové stránky čekali a čekali a ... brrrr. Řešením tedy bylo vymyslet a nastavit rovnoměrné rozdělování šířky pásma mezi aktuálně připojené návštěvníky.

Rozděl a panuj

Fajn. Řekněme tedy, že máme zprovozněn funkční základ - nakonfigurován LAN a WAN port, router přiděluje IP adresy návštěvníkům z DHCP poolu a běží maškaráda (NAT). Tímto základním nastavením se nebudu zabývat. Uvažujme, že v našem konkrétním případě máme LAN síť 192.168.1.0/24.

Nejprve si označkujeme spojení a pakety:

/ip firewall mangle add chain=forward src-address=192.168.1.0/24 \
   action=mark-connection new-connection-mark=navstevnici-spojeni
/ip firewall mangle add chain=forward connection-mark=navstevnici-spojeni action=mark-packet \
   new-packet-mark=navstevnici

Dále vytvoříme fronty pro stahování a odesílání, a to typu PCQ:

/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address

A provedeme správné zařazení do front:

/queue tree add name=Download parent=LAN max-limit=20480000
/queue tree add parent=Download queue=pcq-download packet-mark=navstevnici

/queue tree add name=Upload parent=WAN max-limit=10240000
/queue tree add parent=Upload queue=pcq-upload packet-mark=navstevnici

V tomto případě máme rozhraní pojmenována prostě "LAN" a "WAN" a ukrojíme z naší linky 20Mb/s pro stahování a 10Mb/s pro odesílání. Pokud chceme uvedené rozdělování rychlosti aplikovat třeba doma, kde nemáme od poskytovatele garantovanou rychlost linky (obvykle má domácí připojení nějakou agregaci), můžeme poslední pravidla zjednodušit:

/queue tree add parent=LAN queue=pcq-download packet-mark=navstevnici
/queue tree add parent=WAN queue=pcq-upload packet-mark=navstevnici

Teď by již mělo rovnoměrné rozdělování šířky pásma mezi aktuálně připojené návštěvníky fungovat. Testoval jsem to s několika počítači, kdy jsem na jednom spustil stahování nebo odesílání, postupně přidal další a další počítače, někde spustil paralelní stahování několika souborů a tak dále a sledoval, jak se rychlost rozděluje. U nás ve firmě je situace ještě složitější, protože tu máme na MikroTiku zprovozněn transparentní proxy server pro HTTP protokol a pravidla musela být upravena, aby to vůbec fungovalo. Ale o tom třeba někdy příště. :-)

štítky: Internet mikrotik
24974x přečteno

Komentáře k článku (8)

31. 8. 2016 v 14:38 premik napsal(a)
Zdravím a děkuji za pěkný užitečný článek. Měl bych dotaz, jestli je známo, v jaké rychlosti je přímo uvedený router, který má GB porty, schopen rozdělovat připojení. Dokáže např rozdělit 240/24 Mbps? Děkuji.

4. 9. 2016 v 9:54 Martin napsal(a)
Zdravím, něco málo informací je uvedeno zde https://routerboard.com/RB750GL - ale bohužel informace o tom, jak si dokáže poradit s výpočetně náročným rozdělováním rychlosti, zde chybí. Tady asi nezbyde než provést praktický test. Také samozřejmě záleží, kolik uživatelů v síti je. Na 240/24 Mbps linku bych bral osobně něco výkonnějšího. RB2011? RB3011?

28. 11. 2016 v 14:53 lubos napsal(a)
mozna se pletu, ale nebude v tomto pripade funkcni omezeni jen pro download ? Upload v pripade src-address prichazejici z natu samozrejme nebude markovan. Predpokladam tedy ze by mel byt stejny packet mark a mark connection i pro druhy smer v podobe dst-address.

29. 11. 2016 v 13:59 Martin napsal(a)
lubos: Praktický test ukázal, že by to mělo fungovat, tj. měl jsem 2 PC v síti. Na jednom PC jsem spustil upload, řekněme strop byl 10Mb/s. Na druhém PC jsem spustil upload na server, ten se ustálil na 5Mb/s pro každé PC. Teď v ostrém provozu se nám MikroTik s touto konfigurací stará o desítky klientů a vypadá to celkem použitelně. :-) Já čerpal z jednoho polského článku na netu, zde je to pěkně anglicky - http://wirelessconnect.eu/articles/bandwidth%20_control

10. 9. 2017 v 10:51 LiborM napsal(a)
Super návod a i já absolutní lajk jsem si nastavil můj domácí MikroTik. Děkuju mooc

28. 8. 2018 v 4:58 Machča napsal(a)
na upload connectiom by se v mangle mělo použít pravidlo prerouting za natem, jinak to nefunguje úplně správně

21. 11. 2018 v 10:49 Viktor napsal(a)
Ja som to aplikoval pri dual wan na 3 VLANY(kazdy s inou rychlostou a prioritou)- funguje to super ale skusali ste niekto nastavit queue tree pri dual wan pre upload??? mam trochu dilemu ako to urobit. Download- tam nie je co riesit ale ake zmeny urobit pri Uploade? urobit 2x parent all upload a nalinkovat kazdy na samostatny WAN + zduplikovat ostatne pravidla?

14. 6. 2019 v 15:44 Pavel napsal(a)
Díky, postavil jsem též dle tohoto návodu funkční řešení. Palec hore.


Přidejte komentář
Vaše jméno/přezdívka: (max 40 znaků)

Web: (nepovinné, zadejte s http(s)://, max 100 znaků)

Opiště sekvenci znaků:

captcha!

Zde napište komentář: (max 512 znaků)

Copyright © 2015-2024 SOCL.cz, RSS 2.0 RSS kanál blogu
Všechna práva vyhrazena, nebo tak nějak.

WEDOS BANNER