我正在开发一个嵌入式软件产品,它运行在具有多个网络端口的Ubuntu边缘计算机上。
该软件允许用户通过本地托管的web界面更改端口的IP地址。
如果客户在我们的设备上更改了IP,但随后忘记了他们的设置,我正在寻找一种简单的策略来引导他们检测IP。
理想情况下,这个工具可以被不熟练的客户使用(我们不想让他们使用Wireshark或命令行工具)。
是否有一个服务,我们可以设置在我们的机器上,将广播其身份跨子网使用另一种协议,如UDP或以太网/IP?然后客户可以在他们的电脑上安装一个简单的工具来扫描我们的设备?
边缘计算机还具有USB端口,如果在那里更容易广播身份的话。
将本地IP地址更改为无效的(=与其本地子网不兼容)通常会禁用所有L3通信。有限的广播(255.255.255.255)仍然有效,但通过单播应答它们很可能不会。同样的道理也适用于多播——但是你可以用它来进行两种方式的发现。
而且,常见的链路级发现协议(如LLDP或CDP)仍然有效,因为它们不依赖于IP。
然而,所有这些最多仅限于连接的L2段。如果没有某种基础设施(发现传感器、中央服务器、多播路由等),跨子网发现是不可能的。一个合理的方法是动态DNS,但这需要IP才能工作。
我认为你需要退后一步,重新评估你的设计。一种方法是在用户的重新配置成为永久性配置之前对其进行验证。例如,您可以让用户更改IP设置,然后将会话转发到新的IP地址。如果会话在5分钟左右的时间内没有在新地址上继续,它会恢复到以前的配置。此外,某种带外管理可能是有用的。