Ich habe ein proprietäres System, das einen udp-Videostream von Einheit 1 (192.168.1.1) zu Einheit 2 (.1.2) überträgt. Ich kann keine Änderungen an diesem System vornehmen und versuche, diesen udp-Stream zu klonen, damit ich in einem anderen Programm darauf zugreifen kann. Dieses Programm macht Sachen mit dem Video und sendet es erneut als Multicast-Stream.
Ich hoffe, dies mit einem Linux-Computer (auf dem Ubuntu Server 12.04 jetzt ausgeführt wird) mit drei Netzwerkkarten zu tun. Indem ich die Einheiten 1 und 2 mit zwei der Netzwerkkarten (eth0 und eth1) auf dem Linux-Computer verbinde und Bridge verwende, können sie miteinander kommunizieren. Meine / etc / network / interfaces sieht folgendermaßen aus:
# The loopback network interface
auto lo
iface lo inet loopback
# The external interface
auto eth3
iface eth3 inet static
address 192.168.10.2
netmask 255.255.255.0
# The bridge interface
auto br0
iface br0 inet manual
bridge_ports eth0 eth1
Dies funktioniert, und durch die Verwendung von tcpdump habe ich bestätigt, dass die udp-Pakete von # 1 ankommen und an Port 6000 in Richtung # 2 gehen.
Der nächste Schritt, von dem ich hoffe, dass er funktioniert, ist die Verwendung von iptables, um alle udp-Pakete zu klonen, die von 192.168.1.1 an Port 6000 auf # 2 kommen. Ich bin mit iptables nicht sehr vertraut, aber nachdem ich online und im Handbuch gelesen hatte, dachte ich, dass dies funktionieren würde:
iptables -A PREROUTING -t mangle -p udp -s 192.168.1.1/32 --dport 6000 -j TEE --gateway 192.168.10.2
Die Regel wird erfolgreich angewendet, funktioniert aber nicht. Wenn ich tcpdump zur Überwachung von eth3 verwende, werden die Pakete dort nicht angezeigt.
Ich möchte diesen Stream abrufen, daran arbeiten und ihn als Multicast auf der .10.2-Schnittstelle senden.
Was mache ich falsch? Gibt es etwas, das ich missverstanden habe?