Wenn mein Heimnetz in Ruhe ist – nachdem ich es ein bisschen
bereinigt hatte –, machen diese IGMPv3-Queries bzw. -Reports ganze ⅔ meines Netz-Verkehrs aus. Daher bin ich hier gelandet.
Was passiert: Die Zeitschrift c’t gab mal
einen Überblick … Kurz: Normalerweise würden Multicast-Pakete – z.B. IP-Fernsehen (IPTV), in Deutschland „Telekom
MagentaTV“ bzw. „Vodafone GigaTV Net“ – das ganze Netz fluten. Das bedeutet, dass an jedem Ethernet- und WLAN-Port jedes dieser Pakete ankommt = Broadcast. IGMPv3 ist eine Lösung das zu vermeiden. Der Multicast-Router mit der niedrigsten IP-Adresse wird zum IGMPv3-Querier – z.B. Deine FRITZ!Box. Dabei fragt (Englisch: query) die FRITZ!Box nach einer bestimmten Zeit immer und immer wieder (Englisch: interval) alle Teilnehmer im Heimnetz nach deren Status. RFC 3376 gibt für dieses
Query Interval einen Wert von 125 Sekunden vor. Und AVM hat diesen Wert übernommen. Allerdings erlauben viele Querier dieses Intervall zu
verlängern. Bei der FRITZ!Box wüsste ich keinen Trick.
[IGMPv3 Membership Reports] nerven mich vorallem nachts, wenn die ganze Zeit über ein stetiges Blinken der Switches den Haushalt erhellt.
Gleiches Ziel andere Motivation: Aktuell gehen Linux-Distributionen dazu über, am Computer den WLAN-Status bei jedem eingehenden Datenpaket blinken zu lassen. Vermutlich wird das auch in Ubuntu 20.04 LTS kommen. Auch nutze ich kein IPTV. Also: Wie kann ich diese Pakete Vermeiden?
Sowohl die Query als auch die Reports selbst sind Multicast-Pakete. Folglich erzeugt eine Query bei allen Geräten ein Report, der dann auch auf allen Ports (Ethernet oder WLAN) übertragen wird. Hat man eine FRITZ!Box und zwei FRITZ!Repeater sind das bereits 10 Pakete, die über WLAN versendet werden. Hätte man elf FRITZ!Repeater (und die FRITZ!Box), wären das bereits 12×12+1 = 145 Pakete – alle zwei Minuten. Daher weckt die FRITZ!Box durch deren IGMPv3-Query meine (Akku-betriebenen) WLAN-Clients nur unnötig auf.
Der obige Trick schaltet den Multicast-Router in der FRITZ!Box komplett aus. Nutzt Du doch irgendwann einmal einen Multicast, dann darfst Du nicht vergessen, das wieder einzuschalten. Aber das eigentliche Problem war, dass ein Switch hinter der FRITZ!Box alle Multicast-Pakete an alle seine Ports weiterleitet. Und hier kommt IGMP-Snooping zum Zug. Der Switch schaut (Englisch: snooping) in die IGMP-Pakete hinein, um die sich selbst ein Bild der Multicast-Gruppen zu machen. Moderne Switche nennen dies „Multicast-Snooping“, weil sie nicht nur IGMPv3 für IPv4 sondern auch MLDv2 für IPv6
verstehen.
Folglich hat ein Switch hinter einer FRITZ!Box auch dann Multicast-Snooping zu können, wenn Du kein IPTV nutzt. Denn solch ein Switch reduziert bereits den Overhead durch das Multicast-Protokoll selbst. Das spart Strom und schont die Akkus Deiner Batterie-betriebenen WLAN-Clients. So, und jetzt wird es bunt: Wie Du auch an
jenem Thread siehst, ist selbst 12 Jahre später nicht klar, welcher Switch das kann und wie man es konfiguriert. Die Ursache:
On-default sind Multicast-Snooping aber auch Energy-Efficient-Ethernet (
EEE) oder
QoS nicht an – jedenfalls bei viel zu vielen Switch-Herstellern. Warum, wissen nur die Götter. Naja, in der Zeitschrift c’t
stand auch mal das Warum – fraglich ob das heute, sechs Jahre später noch gilt.
Folglich ist Multicast-Snooping oft nur (Smart-) managed Switches vorbehalten. Das bedeutet, Du holst Dir ein IoT-Gerät ins Haus, dass Du laufend auf Firmware-Updates überprüfen musst und doch irgendwann einmal End-of-Life sein wird. Du musst das Standard-Passwort (laufend) ändern, wenn Du – dank veralteter Web-Server – überhaupt noch auf die Management-Oberfläche kommst. Und Du musst es selbst konfigurieren. Ich kenne bisher nur die TP-Link
SG1xx- (Blau), SG1xxS- (Silber) und
SG1xxE-Serien bei denen „alles“ bereits aktiv ist. Bei der E-Serie auch nur nach Aufspielen der neusten Firmware-Version mit anschließendem Zurücksetzen. Also musst Du es auch noch Aktivieren. Und das ist bei jedem Switch ein wenig anders. Daher im Notfall den Tipp von LowRider4711 befolgen und alle Multicast-Geräte direkt in die FRITZ!Box einstöpseln.
Im obigen Zeitschriften-Artikel war der Zyxel 1910-24 aufgeführt: Configuration → IP-Multicast (IPMC) → IGMP-Snooping
- Basis Configuration → Snooping: Enabled
- Basis Configuration → Router Port (der Ethernet-Port an dem Deine FRITZ!Box dran hängt)
- VLAN Configuration → Add → ID: 1 (das ist das Default-VLAN was Du immer hast, egal ob konfiguriert oder nicht)
- VLAN Configuration → ID 1 → Snooping: Enabled
Das gleiche machst Du für MLD-Snooping. Lässt Du den letzten Schritt weg, dann leitet Zyxel gar keine IGMP mehr weiter, also gar keine IGMPv3-Queries mehr. Ähnliches würdest Du über einen Filter erreichen. Daher der Alternativ-Trick für managed Switches ohne IGMP-Snooping: Configuration → Security → Network → ACL → Access Control List → Add:
- Frame Type: IPv4
- IP Protocol Filter: Other
- IP Protocol Value: 2
- Source IP Filter: Host
- Source IP Address: die FRITZ!Box selbst
- Destination IP Filter: Network
- Destination IP Address: 224.0.0.0
- Destination IP Mask: 255.255.255.224
- Action: Deny
Letzteres musst Du für
jede FRITZ!Box im Heimnetz anlegen – auch jene FRITZ!Boxen die als IP-Client konfiguriert sind. Eine FRITZ!Box nimmt immer an der Querier-Election teil. Würde man nicht jede FRITZ!Box filtern, übernähme sie die Rolle des Querier und sendete ihrerseits alle 125 Sekunden eine Query.
So, jetzt ist mein Heimnetz so still wie lange nicht mehr. Und was haben ich gelernt: Immer ein Switch mit IGMP-Snooping holen, auch dann wenn Du nie vor hast IT-Fernsehen zu holen.