我正在尝试使用SSDP在我的本地网络上发现Onvif摄像机。我的代码可以在我的工作站上简单运行,也可以在使用主机网络的容器中运行。我不想使用主机网络(我需要与主机上的其他容器连接,并且效果很好)。我的选择也受到限制,因为这是一台运行BalenaOS的小型设备,因此不可能使用docker进行的所有操作。例如,我认为不可能使用管道。
这是我到目前为止所发现的:
似乎应该可以在主机上使用iptables
来将数据包从桥接网络转发到eth0
,但是,实际上,我对组播/广播的了解不够,无法知道这足够了。
我看到有专门的工具,例如pimd
和mrouted
等,用于管理类似的案件。作者(?)在他的网站(例如https://troglobit.com/2016/03/07/testing-multicast-with-docker/)上有很多信息,但是我不完全了解如何将其转换为我可以尝试的东西。无论如何,正在讨论的情况与我的情况并不完全相同(他们想在docker中接收多播消息而不发送出去)。
有一些stackoverflow问题似乎很相似,但实际上却不相同:
理想情况下,我希望找到一种使用iptables进行路由的方法,但不确定是否可行。
更新:我不想发布答案,因为我永远无法使它按我想要的方式工作。我最终在主机网络上的一个新容器中进行了一个小过程-足以进行发现。这样就可以进行发现并将结果发送回我想首先从中进行发现的容器。这不是让我满意的妥协,但我找不到其他解决方法。我仍然认为这可能是可行的,所以如果有一天有人偶然找到解决方案,那么我将不予回答。