Skip to main content

5.5 Meranie prenosovej rýchlosti a agregácia

Meranie prenosovej rýchlosti

Hoci operačný systém MikroTik RouterOS umožňuje merať prenosovú rýchlosť medzi dvoma zariadeniami, takéto meranie zaťažuje CPU samotného zariadenia, a teda namerané výsledky môžu byť aj výrazne nižšie, ako je reálny stav. Pre objektívne meranie prenosovej rýchlosti je potrebné merať rýchlosť pomocou dvoch dostatočne výkonných počítačov, medzi ktorými je merané zariadenie alebo spojenie.

Nástroj iperf

Samotné meranie je síce možné vykonať prostým prenosom súborov (typicky protokolom SMB - z NAS / zdieľania disku vo Windows / Samba v Linux), no špecializované nástroje umožňujú objektívnejšie meranie pri definovanom počte paralelných spojení, či iných parametrov a nie sú závislé od rýchlosti disku. Jedným z takýchto nástrojov je iperf - je multiplatformový, open-source a pracuje v textovom režime (príkazovom riadku). Aktuálna multiplatformová verzia nesie označenie iperf3. V Linuxe ju môžeme nainštalovať príkazom apt install iperf3, vo Windows príkazom winget install iperf3.

Pre meranie potrebujeme dva počítače - na jednom spustíme server, na druhom klientsky prenos. Hoci možno očakávame, že klient bude zo servera „sťahovať“ údaje, nie je to tak - pokiaľ nepožiadame inak, klient údaje odosiela (upload). Môžeme samozrejme na oboch počítačoch spustiť servery a z oboch pustiť aj klientsky prenos - pokiaľ tak urobíme súčasne, testujeme rýchlosť obojsmerného (full-duplex) prenosu.

Server spustíme jednoducho:

iperf3 -s

Je samozrejme potrebné mať vypnutý firewall alebo povolený prístup. Klient iniciuje prenos, pričom môžeme uviesť rôzne parametre. V škole testujeme 5 paralelnými spojeniami (-P 5), s blokmi veľkosti 1 MB (-l 1M), počas 60 sekúnd (-t 60):

iperf3 -c {adresa servera} -l 1M -P 5 -t 60

Ak chceme, môžeme pridať parametre pre zmenu smeru prenosu:

  • parameter --reverse zmení smer, klient bude údaje prijímať zo servera (download);
  • parameter --bidir vyvolá obojsmerný prenos (full-duplex).

Pri meraní rýchlosti si obvykle všímame nielen samotnú prenosovú rýchlosť, ale aj zaťaženie CPU meraného zariadenia. Niekedy možno poskytuje očakávanú rýchlosť, ale je už na hranici so zaťažením procesora, teda pokiaľ by sme zvýšili rýchlosť rozhrania (alebo internetového pripojenia), už by to nemalo efekt.

Agregácia linky

Už vieme, že zariadenia sa vzájomne spoja na najvyššej spoločnej linkovej rýchlosti. V prípade potreby rýchlejšieho prepojenia sieťových zariadení je možné zlúčiť (bond) viaceré ethernet linky - nazývame to agregácia linky. Tá neprináša automatické zvýšenie jedného prenosu, ale skôr rozkladá záťaž pri viacerých paralelných prenosoch, či pri prenosoch medzi viacerými zariadeniami. Na túto skutočnosť je treba myslieť aj pri meraní prenosovej rýchlosti - bolo by potrebné mať na oboch stranách spojenia viaceré meracie počítače a merať viaceré prenosy súčasne.

LACP

Existujú rôzne spôsoby realizácie agregácie, štandardom je protokol IEEE 802.3ad, nazývaný LACP (Link Aggregation Control Protocol) - ten je možné realizovať na hardvérovej úrovni pokročilejších prepínačov. V prípade prepínačov MikroTik ide predovšetkým o modely CRS3xx / CSS3xx. Bez hardvérovej podpory je síce teoreticky tiež možné linku agregovať (napríklad na študijné účely), no rýchlosť bude obmedzovaná možnosťami CPU, a teda neprijateľne nízka.

Poznámka: Na MikroTik hAP ac lite (štandardný router študentov 2. ročníka, so 100 Mbps portami) bonding nefunguje - formálne sa porty spoja, ale neprechádzajú nimi údaje. Na modeli MikroTik hAP ac² (router 3. ročníka, s 1 Gbps portami) všetko funguje, samozrejme len softvérovo.

Konfigurácia v MikroTik RouterOS

bonding.webpAk chceme agregovať sieťové rozhrania, nesmú byť súčasťou žiadneho premostenia. Agregáciu nájdeme vo WinBox ponuke Interfaces: tu musíme vytvoriť nový „bonding“ buď cez záložku Bonding alebo hneď na prvej záložke Interfaces. Rozumne vyplníme meno - bolo by vhodné, aby obsahovalo zúčastnené porty (napríklad „4,5“) a tiež vyjadrovalo príslušnosť k sieti (napríklad „lan“). Podstatné nastavenia sú na záložke Bonding:

  • Slaves: uvedieme všetky porty, ktoré chceme prepojiť;
  • Mode: zvolíme štandard 802.3ad;
  • Transmit Hash Policy: musíme sa prispôsobiť „druhej strane“, no pokiaľ to obe strany podporujú, vhodná je možnosť „layer 3 and 4“;
  • po potvrdení môžeme na záložke Status sledovať funkčnosť.

Z hľadiska kompatibility je veľmi vhodné, aby sme používali režim 802.3ad (LACP). Niektoré zariadenia (napríklad rôzne NAS) však nemusia podporovať tento štandard. Vtedy by sme mali voliť režim balance xor, pretože iné režimy MikroTik podporuje len softvérovo. Detaily konkrétneho modelu si treba overiť v dokumentácii MikroTik.

Následne môžeme toto nové rozhranie premostiť (pridať do bridge). Pokiaľ pri ňom nie je aktívny príznak H - Hw. Offload, agregácia beží softvérovo, a teda je prakticky k ničomu.

Čo určuje Hash Policy?

Určuje, na základe čoho rozdeliť rámce do jednotlivých rozhraní (káblov), aby celý prenos „netiekol len jedným káblom“. Takéto detaily sú nad rámec 1. časti tohoto kurzu, no stručné zhrnutie by mohlo byť nasledovné:

  • layer 2: všíma si len MAC adresy rámcov, takže:
    • pokiaľ zo servera v LAN niečo nahrávajú viacerí klienti, sú rozdelení do viacerých káblov (rámce majú rôzne MAC adresy),
    • pokiaľ sťahujeme súčasne z viacerých serverov v internete, aj tak všetko pôjde len jedným káblom (pretože rámec má vždy rovnakú dvojicu MAC adries - adresa počítača a adresa smerovača);
  • layer 2 and 3: všíma si aj IP adresy paketov, takže:
    • prenosy z viacerých serverov v internete už pôjdu cez viaceré káble (pretože pakety majú rôzne IP adresy),
    • viacprúdový prenos z jedného servera pôjde jediným káblom (IP adresy sú zhodné);
  • layer 3 and 4: všíma si aj čísla portov segmentov, takže i viacprúdové prenosy z toho istého servera pôjdu rôznymi káblami, lebo sa líšia číslom portu.

Ako prakticky overíme, či sa údaje prenášajú viacerými káblami?

Počas bežiaceho testu iperf (s viacerými vláknami -P) otvoríme v RouterOS zoznam rozhraní. Mali by sme vidieť, že prevádzka (stĺpce Tx/Rx) tečie cez všetky agregované porty, nie len cez jeden.

Pri moderných prepínačoch (série CRS3xx, CRS5xx) hardvérový čip pri zapnutom HW Offload automaticky využíva kombináciu layer 2, 3 aj 4 bez ohľadu na to, čo nakonfigurujeme. Manuálna zmena sa prejaví len vtedy, ak by agregácia bežala softvérovo cez procesor. Na túto skutočnosť je potrebné myslieť pri kombinácii rôznych modelov prepínačov.