![如何在多个接口上复制多播数据包?](https://linux22.com/image/652719/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%A4%9A%E4%B8%AA%E6%8E%A5%E5%8F%A3%E4%B8%8A%E5%A4%8D%E5%88%B6%E5%A4%9A%E6%92%AD%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%9F.png)
我想通过多播地址将流从 Linux 服务器发送到多个 Linux 客户端。客户端直接连接到服务器,但不同的接口:bnep0
和bnep1
。此外,据我所知,我的多播数据包被路由到我的默认网关eth0
。
路由表如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bnep1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 bnep0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
我想我需要创建一个专用的路由规则,这样我的多播数据包就不会发送到eth0
,而是同时发送到bnep0
和bnep1
。我的问题是:我该怎么做?我尝试使用ip route
和iptables -t mangle ... TEE
,但没有成功。
提前致谢。
答案1
解决方案不是实施路由规则以在两个接口上复制包,而是合并接口合为一体。
为此,您必须创建并使用网络桥接器。该桥接器应具有唯一的 IP 地址,而“真实”接口则不应具有 IP 地址,即使它们处于开启状态。
# apt-get install bridge-utils
# ifconfig bnep0 up
# ifconfig bnep1 up
# brctl addbr br0
# brctl addif br0 bnep0
# brctl addif br0 bnep1
# ifconfig br0 10.0.0.1 netmask 255.255.255.0