[GELÖST] TV7 (init7) Multicast funktioniert nicht

Started by sToRmInG, June 28, 2020, 07:24:01 AM

Previous topic - Next topic
June 28, 2020, 07:24:01 AM Last Edit: June 28, 2020, 07:09:00 PM by sToRmInG
Hallo zusammen

Ich versuche gerade TV7 per Multicast (Provider: init7.net) zum Laufen zu bringen.
Allerdings läuft der Stream nur, wenn ich das gesamte Packet Filtering deaktiviere.

Was mich etwas erstaunt ist, dass die gleiche Konfiguration auf pfSense einwandfrei läuft.

Das Setup sieht wie folgt aus:

  • Getestet sowohl auf 20.1.7 als auch auf 20.7b3
  • os-igmp-proxy bzw os-igmp-proxy-devel installiert
IGMP Proxy Config:
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
phyint igb0 upstream ratelimit 0 threshold 1
altnet 224.0.0.0/4
altnet 77.109.129.16/32
altnet 77.109.129.17/32
altnet 77.109.129.18/32
altnet 77.109.129.19/32

phyint igb1 downstream ratelimit 0 threshold 1
altnet 192.168.1.0/24


WAN FW-Regeln:









DirectionProtocolSourcePortDestinationPortGatewayScheduleDescription
inIPv4 IGMP******Allow IGMP
inIPv4 PIM******Allow PIM
inIPv4 UDP77.109.129.16*239.0.0.0/85000**Allow Multicast Traffic from init7
inIPv4 UDP77.109.129.17*239.0.0.0/85000**Allow Multicast Traffic from init7
inIPv4 UDP77.109.129.18*239.0.0.0/85000**Allow Multicast Traffic from init7
inIPv4 UDP77.109.129.19*239.0.0.0/85000**Allow Multicast Traffic from init7

Bei allen Regeln wurden die allow options aktiviert (inkl. Default IPv4 LAN Regel).

Diese Konfigration funktioniert auf der pfSense einwandfrei.
Hat jemand eine Idee, wieso dies auf der OPNsense nicht funktioniert?

Die Firewall Logs waren leider wenig aufschlussreich, ich sehe nicht, dass irgendetwas Relevantes geblockt würde.
Der Hauptunterschied im IGMPProxy Log ist jedoch, dass bei aktivierter FW der Eintrag für den Multicast Forwarding Cache von 77.109.129.16/17/18/19 auf die jeweilige Multicastadresse fehlt .

Die verwendete Senderliste ist hier zu finden: https://www.init7.net/de/support/faq/TV-andere-Geraete/

Salut

Was mir als erstes auffällt ist, dass du für jede einzelne Streamadresse eine Regel erstellst. Bei mir sieht es am WAN so aus:
IPv4 UDP 77.109.128.0/19 * 239.0.0.0/8 5000 * *
IPv4 IGMP * * * * * *


Das sollte aber ja nicht das Problem sein.

Bei der igmp-proxy config habe ich nicht wirklich eine Ahnung. In den Dienste-Einstellungen habe ich folgende Regeln:

Internet upstream 77.109.129.0/25 init7 tv
iptv downstream 192.168.200.0/24


und so funktioniert das ganze bei mir.

June 28, 2020, 08:41:13 AM #2 Last Edit: June 28, 2020, 08:44:08 AM by sToRmInG
Hi

Danke für die Rückmeldung.
Ich habe alle Einstellungen schon mal ausprobiert.

Was mir bei dir auffällt, wie hast du das Interface "iptv" konfiguriert? Ist das ein separates VLAN?
Oder heisst bei dir das LAN Interface einfach "iptv"?

Ich blicke wirklich nicht durch, wo das Problem liegt, das die gleichen Einstellungen mit der pfSense funktionieren...

Ob ich jetzt 77.109.129.0/25 oder die einzelnen Hosts hinterlege, sollte eigentlich keine Rolle spielen. Ich habe die 4 Hosts als TV7 Host identifiziert und wollte das entsprechend einschränken. Mir ist allerdings bewusst, dass ich bei Änderungen die neuen Hosts freischalten muss. :D

BTW: die igmpproxy.conf findest du hier: /usr/local/etc/igmpproxy.conf

Damit ich nicht das ganze LAN mit dem multicast-stream zudecke habe ich auf einem seperaten Interface "iptv" einen Raspi mit einem udpxy am laufen. Das läuft einwandfrei und stabil.

Hier noch meine igmpproxy.conf

##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
phyint igb0 upstream ratelimit 0 threshold 1
altnet 77.109.129.0/25

phyint igb2 downstream ratelimit 0 threshold 1
altnet 192.168.200.0/24

phyint igb1 disabled


Ich glaube ich habe mich ursprünglich an dieser Anleitung orientiert: https://blog.pilif.me/2018/05/22/fiber7-tv-behind-pfsense/

Ja, dann sieht dein Setup etwas anders aus.

Ich möchte den Multicast Traffic für den Moment auf dem LAN Interface haben. Probehalber versuche ich den Multicast Stream über die Playlist mit dem VLC zu laden. Das Notebook ist dabei direkt mit der OPNsense verbunden, damit nicht noch irgendwelche Switches Probleme bereiten.
Was am ganzen frustrierend ist: Ich sehe in den Logs nicht, dass irgendwelche relevanten Packets geblockt würden. Aber irgend ein FW Problem muss es sein, denn wenn ich das Filtering deaktiviere, funktioniert der IGMPProxy einwandfrei.

Evtl. stimmt wirklich etwas mit meinen Regeln nicht. Soviel ich weiss, sind die Regeln bei pfSense jeweils nur IN.

June 28, 2020, 02:47:44 PM #5 Last Edit: June 28, 2020, 02:55:19 PM by sToRmInG
Ok, ich habe was rausgefunden, bei aktivierter FW ist die MAC Adresse der Multicast IP falsch:

  • FW deaktiviert: Multicast IP: 239.77.0.77 => Multicast MAC: 01:00:5e:4d:00:4d => Multicast IP: 239.77.0.77
  • FW aktiviert: Multicast IP: 239.77.0.77 => Multicast MAC: 01:00:5e:09:ad:01 => Multicast IP: 224.9.173.1

Kann sich das einer erklären?

*EDIT*
Ok, es werden alle Multicast Adressen auf die gleiche Multicast MAC übersetzt bei aktivierter Firewall...

*EDIT2*
Das scheint mir dieses Problem zu sein: https://github.com/opnsense/core/issues/3629

Ok, ich hab die Lösung. Musste ne Floating Rule erstellen, damit die Multicast IP auf WAN OUT korrekt übersetzt wird:
---| Direction | Protocol  | Source      | Port | Destination | Port | Gateway | Schedule | Description                           |---
--------------------------------------------------------------------------------------------------------------------------------------
---| OUT       | IPv4 IGMP | WAN address | *    | 224.0.0.0/4 | *    | *       | *        | Properly Route IGMP Multicast Traffic |---
--------------------------------------------------------------------------------------------------------------------------------------

Zusätzlich noch allow options aktiviert und der Spass geht.

Werde das ganze noch als Anleitung für TV7 posten.