Mikrotik mini-howto? Krátce ze života s RouterOS.
Mikrotik blokování/omezení multicast
Nedávná realizace VPN tunelu pro zákazníka nás přivedla k jednomu drobnému problému, požadavek na začátku byl plně transparentní L2 tunel spojující dvě lokality, za normálních okolností je rozumné vyhnout se L2 bridge sítím přes VPN, raději děláme klasickou routovanou VPN.
Problem nastal po zjištění, že v lokalitě 1 je zdroj multicast provozu, který díky bridge proléza do druhé lokality přes VPN, dle zjišťování Mikrotik stále dosud neumí IGMP snooping (viz. kňučení zde http://forum.mikrotik.com/viewtopic.php?t=62073), který by tomu mohl zabránit.
Podobný problém jsem zaznamenal i v případě multicast provozu služby IPTV, který přicházel do Mikrotiku přes uplink port (typicky ether1-gateway) a díky výchozí konfiguraci zbytku portů routeru jako switche v kombinaci s bridgem bezdrátového rozhraní WLAN docházelo k šíření multicasti do WiFi, ± 10Mbit provoz trvale zaplavující wifi není ideální, zvláště pokud ho tam nikdo nechce.
Co je to Multicast?
IP multicast je metoda přeposílání IP datagramů z jednoho zdroje skupině více koncových stanic. Multicast adresy lze vcelku dobře identifikovat cílové adresa je v rozsahu třídy D (224.0.0.0 – 239.255.255.255), zdrojová adresa je unicast adresa odesílatele.
Co je to IGMP snooping?
IGMP snooping je funkce dobřé známá z chytřejších switchů, kdy dochází ke zkoumání IGMP zpráv procházející switchem, zařízení si na jejich základě udržuje tabulku jakou multicast adresu posílat na jaký port, tedy data putují pouze tam kam mají a nezahlcují trasu kam nepatří, velmi zjednodušeně řečeno.
Hledané řešení je triviální
Varianta 1. Úplné blokování multicast provozu
/interface bridge filter add chain=output out-interface=wlan1 packet-type=multicast action=drop
Varianta 2. Omezení multicast provozu
Zapneme firewall na bridge, aby provoz prošel až na firewall/CPU a bylo možné s ním něco udělat.
/interface bridge settings set use-ip-firewall=yes
Markujeme(označíme) pakety multicastu.
/ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=multimark passthrough=yes dst-address-type=multicast
/ip firewall mangle add chain=prerouting connection-mark=multimark action=mark-packet new-connection-mark=multimark_packet passthrough=no
Máme označen multicast provoz, pomocí fronty omezíme jednoduše jeho rychlost na např. 512kbit.
/queue tree add parent=wlan1-parent packet-mark=multimark_packet max-limit=512k name="wlan1-limit-multicast"
A to je vše, takto nám to funguje.
Díky za pozornost. František Havel, MOJEservery.cz.