docs(sacn): Multicast-Ursache geklaert - die Lampe tritt bei, das WLAN filtert

Die Diagnose-Firmware meldet multicast: true, die Pakete kommen trotzdem nicht
an. Damit ist die Firmware raus und die Suche hat eine Richtung: IGMP Snooping
ohne Querier bzw. Multicast-Sperre auf dem IoT-WLAN. Dass mDNS laeuft, ist kein
Gegenbeweis - 224.0.0.0/24 ist von der Filterung per Norm ausgenommen.
This commit is contained in:
Michael Sauer
2026-09-20 02:33:21 +02:00
parent fd61f151d7
commit 8f877f18d0
+19 -16
View File
@@ -31,31 +31,34 @@ eine zweite Lampe geflasht werden muessen. Abgedeckt ist der Fall durch die Host
(`test_dmx.c`, `test_board_without_rgb_uses_three_slots`) und die board-abhaengige (`test_dmx.c`, `test_board_without_rgb_uses_three_slots`) und die board-abhaengige
Slotgrenze in `test_api.c`. Slotgrenze in `test_api.c`.
## Befund: Multicast erreicht die Lampe nicht ## Befund: Multicast erreicht die Lampe nicht - Ursache liegt im WLAN
Unicast an die Lampen-IP funktioniert durchgaengig. Multicast auf `239.255.0.1` kommt nicht Unicast an die Lampen-IP funktioniert durchgaengig. Multicast auf `239.255.0.1` kommt nicht
an — auch nicht von einem Sender im selben Netz. an, auch nicht von einem Sender im selben Netz.
Was dagegen gesichert ist: **Geklaert am 2026-09-20 mit einer Diagnose-Firmware** (`0.3.8-63-gfd61f`, Commit fd61f15):
`system/info` meldet seitdem `sacn.multicast`, also das Ergebnis von `IP_ADD_MEMBERSHIP`.
Die Lampe liefert **`multicast: true`** - der Beitritt zur Gruppe gelingt. Die Pakete kommen
trotzdem nicht an. Damit liegt es nicht an der Firmware, sondern am Netz: das WLAN reicht
die Gruppe `239.255.0.1` nicht an die Lampe weiter.
- Die Lampen empfangen Multicast grundsaetzlich: Alle sieben im Netz antworten auf eine Dass mDNS funktioniert, widerspricht dem nicht: `224.0.0.251` liegt im link-lokalen Bereich
mDNS-Anfrage an `224.0.0.251`. `224.0.0.0/24`, den Switches und Access Points per Norm von der IGMP-Filterung ausnehmen und
- Der Unterschied liegt also im Gruppenbeitritt fuer `239.255.0.1`, nicht im Empfang an sich. immer fluten. `239.255.0.1` unterliegt dagegen der Filterung.
- Das SDK programmiert beim IGMP-Beitritt einen Hardware-Multicast-Filter
(`ethernetif_igmp_mac_filter` -> `tls_hw_set_multicast_key`). Die Funktion selbst liegt in
einer vorkompilierten SDK-Bibliothek und ist im Quelltext nicht einsehbar.
- `nl_sacn.c` ignoriert das Ergebnis von `IP_ADD_MEMBERSHIP` bewusst (ein fehlgeschlagener
Beitritt soll den Unicast-Empfang nicht verhindern). Genau deshalb ist derzeit nicht
feststellbar, ob der Beitritt scheitert.
Naechster Schritt zur Klaerung: das Ergebnis des Beitritts sichtbar machen (Konsolenzeile Anzusehen waeren im UniFi-Setup fuer das IoT-Netz:
oder Feld in `system/info`), neu aufspielen und nachsehen. Erst dann laesst sich sagen, ob
die Lampe nicht beitritt oder das WLAN die Gruppe nicht weiterreicht. - WLAN-Einstellungen: "Multicast and Broadcast Control" bzw. "Block LAN to WLAN Multicast
and Broadcast" - ist das aktiv, faellt die Gruppe weg, solange sie nicht ausdruecklich
erlaubt ist.
- Netzwerk-Einstellungen: IGMP Snooping - entweder auf diesem VLAN abschalten (dann wird
geflutet) oder sicherstellen, dass ein Querier laeuft. Snooping ohne Querier ist der
klassische Weg, Multicast unbemerkt verschwinden zu lassen.
Zwei Fehlversuche auf dem Weg dorthin, damit sie niemand wiederholt: Zwei Fehlversuche auf dem Weg dorthin, damit sie niemand wiederholt:
- Der erste Multicast-Test lief vom Mac (192.168.1.131) gegen eine Lampe in 192.168.2.x. - Der erste Multicast-Test lief vom Mac (192.168.1.131) gegen eine Lampe in 192.168.2.x.
Multicast wird zwischen den Netzen nicht geroutet — der Test konnte gar nicht gelingen. Multicast wird zwischen den Netzen nicht geroutet - der Test konnte gar nicht gelingen.
- Der zweite liess den Pi in die Gruppe eintreten und an sie senden. Ein Access Point - Der zweite liess den Pi in die Gruppe eintreten und an sie senden. Ein Access Point
schickt einem Sender seine eigenen Multicast-Frames nicht zurueck; das Ergebnis war schickt einem Sender seine eigenen Multicast-Frames nicht zurueck; das Ergebnis war
aussagelos, nicht negativ. aussagelos, nicht negativ.