如何在多个接口上复制多播数据包?

如何在多个接口上复制多播数据包?

我想通过多播地址将流从 Linux 服务器发送到多个 Linux 客户端。客户端直接连接到服务器,但不同的接口bnep0bnep1。此外,据我所知,我的多播数据包被路由到我的默认网关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,而是同时发送到bnep0bnep1。我的问题是:我该怎么做?我尝试使用ip routeiptables -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

相关内容