Skip to main content

10.5 Multicast a IGMP Snooping

Pripomeňme si multicast (viacsmerové / skupinové) adresovanie na 2. a 3. vrstve sieťového modelu (L2 a L3). Multicast pakety používajú vyhradené cieľové IP adresy:

  • 224.0.0.0/4 (teda 224-239.x.x.x) pre IPv4, pričom tento rozsah je ďalej delený podľa účelu adresy;
  • ff00::/8 pre IPv6, opäť je tento veľký rozsah delený na menšie podľa účelu.

Multicast rámce používajú pre IP pakety vyhradené cieľové MAC adresy:

  • 01-00-5E-xx-xx-xx pre IPv4 pakety, pričom posledných 23 bitov preberá z IPv4 adresy;
  • 33-33-xx-xx-xx-xx pre IPv6 pakety, pričom posledných 32 bitov preberá z IPv6 adresy.

IGMP / MLD Snooping

Multicast rámce by mali byť doručované len tým, ktorí o ne požiadali. V skutočnosti bežné prepínače spracovávajú multicast rámce úplne rovnako ako broadcast, teda ich preposielajú všade. To je samozrejme neefektívne a zbytočne zaťažuje sieť. Aby prepínač spracovával multicast podľa očakávaní, musí nahliadnuť do vyšších vrstiev a mať implementovanú funkciu IGMP Snooping (resp. MLD Snooping pre IPv6) - tá sleduje prihlasovanie a odhlasovanie odberu multicast skupín, vedie si o tom databázu a multicast rámce preposiela len tam, kam treba.

Implementácia na MikroTik zariadeniach s RouterOS je podobná ako RSTP - stačí ju povoliť v nastaveniach premostenia, teda v ponuke Bridge → Bridge, na konkrétnom premostení záložka General a voľba IGMP Snooping. Má to však háčik - na smerovačoch MikroTik (RB a CCR) je IGMP Snooping implementovaný len softvérovo, teda nemôžeme využiť zároveň aj hardvérový prepínač - funkcia Hardware Offload sa deaktivuje, čiže prepínač sa stane aj pre bežné prenosy pomalým. Ak teda chceme mať plný výkon prepínača spolu s plnohodnotnou podporou multicastu, musíme siahnuť po skutočných prepínačoch (v prípade MikroTik ide o modely označené CSS a CRS).

V prípade používania VLAN na prepínačoch MikroTik CSS (so SwitchOS) nestačí začiarknuť voľbu IGMP Snooping len na záložke System, ale aj pre príslušné VLAN na záložke VLANs.

Praktická poznámka: V praktických experimentoch sa ukázalo, že implementácia IGMP Snooping je na starších prepínačoch MikroTik CRS rady CRS1xx (napr. CRS112, CRS125) problematická a pre seriózne nasadenie tejto funkcie je potrebné siahnuť po modeloch rady CRS3xx alebo CSS3xx. Žiaľ, ani nasadenie týchto modelov nie je bezproblémové v IPv6 sieťach - nepreposielajú totiž potrebný multicast pre fungovanie IPv6 adresovania.

IGMP Querier

Každý prepínač s podporou IGMP Snooping dokáže pasívne sledovať IGMP správy (pre prihlasovanie do skupiny, potvrdzovanie členstva v skupine a odhlasovanie zo skupiny) a evidovať tak členov každej IGMP skupiny v tabuľke členstva - v prípade zariadenia MikroTik s RouterOS sa jedná o tabuľku Bridge → MDB.

Aby však IGMP Snooping fungoval správne a aby nepotvrdzované členstvo neexspirovalo v tabuľke členstva, je potrebné mať na L2 sieti zariadenie (smerovač alebo prepínač) vo funkcii IGMP Querier. Jeho úlohou je v pravidelných intervaloch odosielať dotazy na členstvo v IGMP skupinách, aby sa každý aktívny člen skupiny ohlásil a mohol byť zaevidovaný v tabuľke členov. Stačí, keď tieto výzvy odosiela jediné zariadenie na celej L2 sieti. Na prepínači MikroTik CRS s RouterOS túto funkciu zapneme jednoduchým začiarknutím voľby Multicast Querier na záložke IGMP Snooping (po zmene je však treba vypnúť a opäť zapnúť IGMP Snooping). Táto voľba nie je dostupná na prepínačoch MikroTik CSS so SwitchOS, no funkciu majú trvalo zapnutú.

Neznámy multicast

Preposielanie neznámeho multicastu (smerujúceho do multicast skupín, ktoré nie sú v tabuľke členov) sa na prepínačoch MikroTik správa nasledovne:

  • v predvolenom nastavení a v úvodnej situácii sa preposiela všade (ako broadcast);
  • toto implicitné preposielanie je možné zakázať individuálne pre každý port:
    • v RouterOS (modely CRS) je to Bridge → Ports → Unknown Multicast Flood,
    • v SwitchOS (modely CSS) na záložke Forwarding voľba Flood Unknown Multicast;
  • akonáhle prepínač CRS nájde IGMP Querier (resp. získa zoznam skupín a jej členov), prestane preposielať neznámy multicast.

Multicast cez Wi-Fi

V prípade Wi-Fi sietí je potrebné zvážiť streamovanie cez multicast z dôvodu obmedzenej prenosovej kapacity a podstatne nižšej spoľahlivosti doručenia. Ak je nutné šíriť multicast cez Wi-Fi, je nutné poznať zopár faktov:

  • V štandardnom nastavení sa multicast posiela najnižšou možnou rýchlosťou používaného Wi-Fi protokolu, čo je bežne len 6 Mb/s (z dôvodu, aby bol doručený čo najspoľahlivejšie). Pokiaľ bude dátový tok multicast streamu vyšší, pošle sa len časť z jeho dát (čo v praxi znamená, že bude nepoužiteľný).
  • Toto správanie je na MikroTik AP so starším balíkom wireless možné zmeniť nastavením parametra Multicast Helper na hodnotu full. Potom sa multicast bude doručovať všetkým klientom AP (aj tým, ktorí nemajú záujem o odber) ako unicast (zmení sa cieľová MAC adresa) rýchlosťou najpomalšieho aktuálne pripojeného klienta.
  • MikroTik AP s novším balíkom wifi-qcom-ac má namiesto parametra Multicast Helper parameter Multicast Enhance, ktorý by sa mal správať rovnako a je v predvolenom stave vypnutý. Po jeho zapnutí sa multicast síce posiela ako unicast bez obmedzenia rýchlosti, no len prvému klientovi, ktorý sa pripojil.
  • V každom prípade je pri streamovaní multicast cez Wi-Fi s väčším počtom AP prakticky nutné nasadiť IGMP Snooping, aby sa šíril len cez tie AP, na ktorých je nejaký odberateľ.

Jednotlivé preposielanie multicast cez Multicast Helper rýchlosťou najpomalšieho klienta v praxi znamená, že ak budú na sieti pripojené len zariadenia s výborným signálom, je možné prenášať multicast stream aj s vysokým dátovým tokom, no akonáhle sa čo len jediné zariadenie vzdiali a zníži sa mu linková rýchlosť, multicast stream sa rozpadne. Toto nastane, aj keď sa pripojí smartfón, ktorý síce možno dokáže dosiahnuť vysokú rýchlosť, no vzhľadom na úsporné režimy a úsporu batérie bude pri nečinnosti výraznou brzdou.

Prehrávanie videa zo siete / IPTV

Pre príjem videa zo siete je možné využiť prehrávač VLC:

  • Unicast vysielanie si treba individuálne vyžiadať, čo sa realizuje prostredníctvom HTTP - do prehrávača teda zadávame zdroj, napríklad: http://iptv.intranet:2345
  • Multicast vysielanie sa realizuje prostredníctvom UDP cez multicast adresu - do prehrávača zadávame túto multicast adresu za zavináčom, napríklad: udp://iptv.multicast:2345
  • Navyše je možné obmedziť zdroj multicastu (neprijímať od hocikoho), vtedy dávame adresu zdroja pred zavináč: udp://iptv.intranet@iptv.multicast:2345