从 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/
祝你好运
目前我正在尝试通过主机的 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/
祝你好运