我有一个专有系统,可将udp视频流从单元#1(192.168.1.1)传输到单元#2(.1.2)。我无法对此系统进行更改,并且尝试克隆此udp流,以便可以在其他程序中访问它。该程序将处理视频,然后将其作为多播流再次发送出去。
我希望使用带有三块网卡的Linux机器(现在正在运行Ubuntu Server 12.04)进行此操作。通过将单元#1和#2连接到Linux机器中的两个网卡(eth0和eth1)并使用网桥,我可以使它们通信。我的/ etc / network / interfaces看起来像:
# 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
这有效,并且通过使用tcpdump,我已经确认udp数据包从#1到达并在端口6000朝#2方向前进。
我希望可以使用的下一步是使用iptables克隆从192.168.1.1到2号端口6000的所有udp数据包。我对iptables不太熟悉,但是在在线阅读手册之后,我认为这可以工作:
iptables -A PREROUTING -t mangle -p udp -s 192.168.1.1/32 --dport 6000 -j TEE --gateway 192.168.10.2
该规则已成功应用,但不起作用。如果我使用tcpdump监视eth3,则那里看不到数据包。
我想获取此流,对其进行处理,然后在.10.2接口上将其作为多播发送出去。
我究竟做错了什么?有我误会的东西吗?