Tag Archive: igmp

Chromecast und der Multicast

Chromecast (cnet.com)

Noch gar nicht lange ist es her, da hat mich Minidlna durch sein Schweigen auf ein Multicast verrückt gemacht hat. Und heute dann das:

Chromecast gekauft, eingesteckt und gefreut. Denn initial suchte das Wi-Fi-Modul des Endgerätes nach einem funkenden Gerät mit Chromecast-ID. Fehlerfrei.
Im nächsten Schritt wird eine Ad-hoc-Verbindung zum Stick aufgebaut, eine bestehende Verbindung in das kabellose Netz wird hierbei getrennt. Das Setup fragt freundlich nach einem Namen für das Gerät und mit welchem Netz sich der Stick denn verbinden dürfe. Alle erforderlichen Angaben gemacht, folgt ein Klick auf „Weiter“.

Dann aber Stillstand.

Der Stick verbindet sich laut TV-Ausgabe mit dem Netz und ist „Startklar“, wie es dort heißt. Das Notebook ist mittlerweile auch wieder im Netz des primären Routers. Aber es findet hier keinen Chromecast. Zu dem Zeitpunkt wußte ich nicht, wie der Stick überhaupt arbeitet. Der Spontan-Kauf setzte sich genauso spontan und unbedacht in der Konfiguration fort. Ich versuchte es naiv noch einmal und scheiterte natürlich.

Gar nicht groß das mächtige Google befragt, sondern direkt Wireshark angeschmissen:

Wireshark: Chromecast
Wireshark: Chromecast

Das SSDP (Simple Service Discovery Protocol) sendet UDP-Pakete via Multicast in das Netz. Wer jetzt noch die Nerven hat, darf das Netzwerk analysieren, vermutlich das Multicasting über mehrere Router hinweg beheben und glücklich sein. Für den Stick und war mir das in dem Netzwerk, in dem ich mich befand, eindeutig zu viel Aufwand.

IGMP mit und ohne Snooping (h3c.com)
IGMP mit und ohne Snooping (h3c.com)
Die (einfachste) Lösung des Problems, ist die Deaktivierung des IGMP Snooping. Das hat zwar zur Folge, dass an allen Ports im Netzwerk etwas mehr Traffic auftritt, ist in einem privaten Netzwerk jedoch absolut hinnehmbar.

Auf einem Cisco Aironet Wi-Fi-Router, wie ich ihn vor mir stehen hatte, geht der schnellste Weg über die Shell: „no ip igmp snooping“. Der Weg ist von Router zu Router unterschiedlich, versteht sich. Nach einigen Klicks durch das Interface, sollte aber (fast) jeder fündig werden. Fast, für den Fall, dass diese Option gar nicht existiert. Was nicht zu deaktivieren ist, sollte jedoch auch nicht eingeschaltet sein.

Was ich noch erwähnen möchte, falls jemand nicht nur wegen der „Wall of Text“-, sondern viel mehr des Problems wegen hier ist: Wie das Einrichtungstool schon empfiehlt, unbedingt die AP Isolation ausschalten. Ansonsten ist eine Kommunikation unter den Geräten im Wi-Fi nicht möglich. Hin und wieder sind die Probleme eben doch trivialer als man denkt.

Quelle Beitragsbild: reviews.cnet.com

Minidlna: Multicast über Netzwerkbrücke

Die letzten Tage habe ich mein Netzwerk etwas umgebaut, etwa verwende ich meinen Debian-Server nun auch als Wifi Access Point via „hostapd“.
Aus Gründen der Ästhetik arbeite ich mit einer Netzwerkbrücke, insgesamt sieht das dann etwa so aus:

Internet <> eth0 <> eth1, wlan0 via br0 <> Internes Netzwerk

Gebunden auf br0 läuft ein Minidlna-Server, auf welchen wired und wireless zugegriffen wird. Minidlna „multicasted“ sich im Netzwerk (eben via IGMP), um den Clients zu sagen: „Hier bin ich“. Entsprechende Firewall-Regeln sind aktiv.

Der erste Test verlief auch problemlos. Mein Tablet fand sofort den DLNA-Server. Erst am späteren Abend merkte ich, dass sowohl mein TV als auch mein Handy keine Verbindung fanden. Wird der DLNA-Server neugestartet, scheint zu gelten „wer zuerst kommt, mahlt zuerst“. Aber ein echtes Muster habe ich bis jetzt noch nicht erkannt. Wie auch immer…

Der Grund, warum das Multicast via Netzwerkbrücke fehlschlägt, ist das aktive IGMP Snooping. Eine schönere Alternative als das Ausschalten der Multicast-Gruppierung habe ich nicht gefunden. Einem kleinen Netzwerk, wie man es zu Hause hat, sollte der erhöhte Traffic aber keinen Abbruch tun. Daher kann es problemlos ausgeschaltet werden:

echo 0 >> /sys/devices/virtual/net/br0/bridge/multicast_snooping

Die Zeile kann auch in die Datei „/etc/rc.local“ eingetragen werden.

Im Gentoo-Forum gibt es sogar einen Kernel-Patch, der aber sehr unschön ist:

--- linux/net/bridge/br_device.c.orig 
+++ linux/net/bridge/br_device.c 
@@ -52,7 +52,7 @@ 
    if (is_broadcast_ether_addr(dest)) 
       br_flood_deliver(br, skb); 
    else if (is_multicast_ether_addr(dest)) { 
-      if (unlikely(netpoll_tx_running(dev))) { 
+      if (unlikely(netpoll_tx_running(dev)) || true) { 
          br_flood_deliver(br, skb); 
          goto out; 
       }

Und – letzte Alternative – um IGMP Snooping für die Netzwerkbrücke in der Kernel-Konfiguration auszuschalten:

CONFIG_BRIDGE_IGMP_SNOOPING=n

Wenn ich eine schönere Lösung finde, werde ich den Beitrag bearbeiten. Solange hoffe ich, dass ich einem imaginären Internet-Freund weiterhelfen konnte.