如何从Docker容器向网络发送SSDP流量?

时间:2019-09-12 04:17:03

标签: docker docker-compose multicast ssdp

我正在尝试使用SSDP在我的本地网络上发现Onvif摄像机。我的代码可以在我的工作站上简单运行,也可以在使用主机网络的容器中运行。我不想使用主机网络(我需要与主机上的其他容器连接,并且效果很好)。我的选择也受到限制,因为这是一台运行BalenaOS的小型设备,因此不可能使用docker进行的所有操作。例如,我认为不可能使用管道。

这是我到目前为止所发现的:

  • 使用Wireshark,我可以看到多播数据包没有离开主机
  • 我增加了数据包的TTL(我确定这是必要的,但并没有明显的不同)

似乎应该可以在主机上使用iptables来将数据包从桥接网络转发到eth0,但是,实际上,我对组播/广播的了解不够,无法知道这足够了。

我看到有专门的工具,例如pimdmrouted等,用于管理类似的案件。作者(?)在他的网站(例如https://troglobit.com/2016/03/07/testing-multicast-with-docker/)上有很多信息,但是我不完全了解如何将其转换为我可以尝试的东西。无论如何,正在讨论的情况与我的情况并不完全相同(他们想在docker中接收多播消息而不发送出去)。

有一些stackoverflow问题似乎很相似,但实际上却不相同:

理想情况下,我希望找到一种使用iptables进行路由的方法,但不确定是否可行。


更新:我不想发布答案,因为我永远无法使它按我想要的方式工作。我最终在主机网络上的一个新容器中进行了一个小过程-足以进行发现。这样就可以进行发现并将结果发送回我想首先从中进行发现的容器。这不是让我满意的妥协,但我找不到其他解决方法。我仍然认为这可能是可行的,所以如果有一天有人偶然找到解决方案,那么我将不予回答。

0 个答案:

没有答案