UDP Streaming LAN -> DMZ

Krautmaster

Fleet Admiral
Registriert
Feb. 2007
Beiträge
24.238
Hallo zusammen,
ich bekomme irgendwie mein UDP Stream einer Raspi 2 Cam nicht sauber zum laufen. Innerhalb desselben Subnetz bekomme ich wunderbar den Stream wie folgt hin.

Pi Client = 192.168.2.X
Webserver = 192.168.2.Y

Pi 2 Zero mit Cam:
Code:
libcamera-vid -t 0 --width 1296 --height 972 --bitrate 3000000 --awb auto --inline -o udp://192.168.2.Y:5000

Auf dem Webserver starte ich folgenes um es für einen HLS Stream umzusetzen:
Code:
ffmpeg -re -i "udp://@:5000?overrun_nonfatal=1&fifo_size=50000000" -f h264 -filter_complex "amovie=/alfonsorockaac.aac:loop=1000,asetpts=N/SR/TB,apad,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=mono" -vcodec copy -acodec aac -ab 128k -f flv rtmp://192.168.2.Y/show/stream

Sieht dann so am Streamer aus
1679524788487.png


und so am Empfänger FFMPEG
1679524884275.png


Stream rennt 1a im Browser.

Nun habe ich aber folgendes Thema. Eigentlich steht der Webserver in der DMZ mit IP Bereich 192.168.1.X hinter einer PFSense Firewall.
1679525311048.png

Egal was ich versuche, ich bekomme nicht von 192.168.2.X auf 192.168.1.X gestreamed. Webserver = FFMPEG bekommt einfach nix auf Port 5000 an ...

Die PfSense Firewall hat bei mir die "WAN" IP 192.168.2.5 und an LAN "192.168.1.1" - der Webserver darin 192.168.1.111

Ich hab mit UDP wenig Erfahrung, könnte gar nicht sagen ob da eine Zieladresse mit kommt oder das iwi multicast sonstwas sendet. Wie müssten die FW Einstellungen und die Streaming Parameter aussehen?

1679525483013.png


Vielen Dank euch
 
Setz mal den Wert Source Ports in der pfsense auf * oder "Any" oder so was. Das eingehende UDP Paket auf der pfsense wird als Quellport irgendwas dynamisches haben in den >30000 Port Bereichen mit Zielport 5000.
Die pfsense hat doch Diagnosemöglichkeiten wo du ähnlich wie bei tcpdump oder wireshark mal die Pakete sniffen kannst die auf der pfsense eintrudeln, da solltest du sehen können dass der Source Port sehr wahrscheinlich nicht 5000 ist.
 
  • Gefällt mir
Reaktionen: Krautmaster, Chris_S04, kartoffelpü und 2 andere
Da du hier ja einfach zwei Netzbereiche mit privaten IPs hast brauchst du kein NAT (Port Forward) in der pfsense machen. Einfach eine Firewallregel die den entsprechenden Traffic erlaubt und es sollte schon funktionieren.
 
  • Gefällt mir
Reaktionen: Krautmaster
Könnte es sein, dass die PFSense private Adressbereiche blockiert?
Wie hast du die Fritzbox mit der PFSense verbunden? Portforwarding/exposed host?
Was sagt der Ping von Pi zu Webserver?
 
@Masamune2 :
Kommt drauf an. Wenn der Fritz-seitige Port der pfSense als WAN konfiguriert ist, dann gibt's auch NAT.

Du hast aber natürlich insofern Recht, als dass im vorliegenden Setup prinzipiell kein WAN+NAT benötigt wird und beide Seiten der pfSense als herkömmliches LAN behandelt werden können.


Prinzipiell gibt es natürlich auch noch andere denkbare Setups.

www
|
(WAN)
Fritzbox
(LAN)
|
| (DMZ)
|
(WAN)
pfSense
(LAN1)
|
Hauptnetzwerk

oder

www
|
(WAN)
Fritzbox
(LAN)
|
(WAN)
pfSense (LAN2) --- DMZ
(LAN1)
|
Hauptnetzwerk
 
vielen Dank für die Antworten wird direkt heute Abend angegangen
Ergänzung ()

Ikebana schrieb:
Setz mal den Wert Source Ports in der pfsense auf * oder "Any" oder so was. Das eingehende UDP Paket auf der pfsense wird als Quellport irgendwas dynamisches haben in den >30000 Port Bereichen mit Zielport 5000.
Die pfsense hat doch Diagnosemöglichkeiten wo du ähnlich wie bei tcpdump oder wireshark mal die Pakete sniffen kannst die auf der pfsense eintrudeln, da solltest du sehen können dass der Source Port sehr wahrscheinlich nicht 5000 ist.
stimmt ich kann mich dran erinnern dass ich irgendwas im Log gesehen hatte aber mit den Ports nichts anfangen konnte, dachte er sendet auch auf 5000
Ergänzung ()

TheHille schrieb:
Könnte es sein, dass die PFSense private Adressbereiche blockiert?
Wie hast du die Fritzbox mit der PFSense verbunden? Portforwarding/exposed host?
Was sagt der Ping von Pi zu Webserver?
bei mir ist es so dass alles in einem Hyper V Host zusammen läuft. Dieser hat 2x10G und 2x1G. Intern hab ich ein virtuelles Subnet als DMZ dass lediglich über die PFSense Firewall mit dem LAN verbunden ist. Hintergrund ist eher der dass ich da zahlreiche virtuelle Webserver auf dem HyperV Host mit verschiedenen Domains hab und ein Reverse Proxy der das zuteilt. Das alles spielt sich in der DMZ ab genauso wie meine Nextcloud Instanz.

Die PFSense macht zb einfach ein NAT von 80/443 auf den Reverse Proxy in der DMZ. So funktioniert das auch tadellos mit den verschiedenen Domains und in der Fritz hab ich natürlich nen Forward 80/443 auf die PFSense VM.

Die PFsense FW schottet also nicht mein ganzes Lan ab. Ich lasse aus der DMZ eigentlich keinen Zugriff auf den LAN Bereich.
Ergänzung ()

Himmel!
Ich glaube das einfache Umstellen des Ports von 5000 auf Any hat es schon gelöst :)
https://alfonso.krautmaster.de/
 
Zuletzt bearbeitet:
Also kleines Update. Es lag wirklich nur an den Quellports. Vielen herzlichen Dank euch allen für die super Hilfe!!!

Jetzt kann ich entspannt den Steam noch etwas auf Low latency und den Automatismus über mqtt realisieren.
 
  • Gefällt mir
Reaktionen: Ikebana
hier übrigens die TCP Alternative:

Code:
libcamera-vid -t 0 --width 1296 --height 972 --bitrate 3000000 --awb auto -l -o tcp://0.0.0.0:5000

Code:
ffmpeg -re -i "tcp://cameraclientip:5000?overrun_nonfatal=1&fifo_size=50000000" -stream_loop -1 -re -i /home/xxx/alfonsorockaac.aac  -c copy -map 0:0 -map 1:0 -f flv rtmp://localhostip/show/stream -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1
 
Zurück
Oben