从 docker 到主机的 eth 的多播

Multicast from docker to host's eth

目前我正在尝试通过主机的 eth2 主机接口从我的 docker 应用程序发送一些多播数据。我确实在 docker 中使用了 --net=host 选项,这工作得很好,不幸的是,因为我需要打开多个使用相同端口的实例,所以我不可能再使用 net=host 了。我必须经历 docker0

bridged 模式

在我的 docker 界面中我有 eth0 链接到我的 docker0 作为 10.101.131.60.

因此我做了:route add -net 225.1.1.0/28 dev eth0 将我的应用程序发送到 225.1.1.0/28 的所有多播数据包传递到我的 eth0,它作为 docker0.

连接到主机

因此,我使用 wireshark 来监听我的应用程序是否真的将消息包扔到我的 eth0 容器内,并且当我在容器内使用 wireshark 时它确实发送多播。

现在我还使用 wireshark 来听我的 docker0 并且数据包在那里。现在我如何 "Forward all my multicast packets" throughout docker0 到我的 eth2?我使用了几种 iptables 方法,但其中 none 似乎很有用,也许它被忽略了?

任何帮助将不胜感激...谢谢!

您可以像这样使用 IGMP 代理:https://sourceforge.net/projects/igmpproxy/

祝你好运