配置具有无效/不匹配网络配置设置的网络设备的最佳方法?

Posted

技术标签:

【中文标题】配置具有无效/不匹配网络配置设置的网络设备的最佳方法?【英文标题】:Best way to configure network devices that have an invalid / non matching network configuration setup? 【发布时间】:2016-01-11 06:45:52 【问题描述】:

我们公司正在开发一些硬件设备,这些设备需要通过网络上的 TCP 与我们的应用程序进行通信。这些设备有一些限制,例如它们没有显示器或点阵来显示任何当前配置,例如 IP 或 mac 地址。因此,无法直接在设备上配置 IP 配置。

当他们第一次连接到网络时,很有可能他们当前的网络配置与正在连接的网络不匹配。

例如

它们被配置为使用 DHCP,而网络不提供任何 DHCP。 它们被配置为使用手动 IP,例如 192.168.1.1,子网掩码为 255.255.0.0,但网络设置为使用 10.XXX 作为 IP 范围,网络掩码为 255.0.0.0李>

我们现在想开发一个独立的应用程序,列出所有连接到网络的设备,并将 IP 配置更改为特定的(匹配网络需求)。

需要在设备(运行 Linux)上进行哪些设置才能实现上面发布的功能? 需要在客户端应用程序上设置什么才能显示设备并在不匹配时重新配置它们?如果可能,应用程序应该是 .NET WPF / C# 应用程序,如果需要,可以获取管理员权限。 是否存在我们无法检测到这些设备或设置新网络设置的限制/场景?

【问题讨论】:

【参考方案1】:

忽略任何安全问题,我将使用 udp 广播到 255.255.255.255,任何设备都可以接收该广播。当您将所有有效子网放入有效负载时,客户端将知道它配置错误并且必须以广播的形式回复(因为它可能位于不同的子网中,并且如果没有任何有效的路由表,单播是不可能的)

但请记住,这可能会引发安全问题,因为您将在扫描时发布所有有效的子网,这对攻击者来说可能非常有趣。

如果你知道,例如所有可能的设备的 Mac 地址,您可以加密 UDP 有效负载,该有效负载只能使用正确的 Mac 地址进行加密。

【讨论】:

【参考方案2】:

这就是 DHCP、BOOTP、RARP 的用途。使用 DHCP 和朋友来做这类事情意味着网络上的设备最有可能首先获得有效的配置。

如果您必须有自己的应用来管理 IP 配置问题,那么或许可以考虑在您的管理/服务器应用中使用 DHCP 协议。

如果您的设备不能与随机的 DHCP 服务器通信,请考虑让它们忽略响应中不具有某些属性的响应(效率有点低,因为它可能会不断询问并可能占用 IP),或者在不同的服务器上使用 DHCP端口......至少你没有重新发明***。

使用现有协议的好处是网络分析人员也可以了解正在发生的事情,系统管理员可以调试并对问题做出直观的猜测等。

【讨论】:

我应该详细说明:这些设备将被运送给我们的客户,以便在他们已经设置的网络环境中工作。它可以插入 DHCP 环境(一切都应该按预期工作),但客户可能已经设置了自己的环境没有运行 DHCP 服务器,并且每个客户端都需要配置一个有效的 ip 配置,因此我们无法使用 DHCP 进行中继。 所以...大概是您派人到客户站点使用此配置软件来配置设备,或者您将软件发送给他们?我仍然认为让设备做 DHCP 是最好的,因为除了为 DHCP 配置它之外,你不必对设备做任何事情......简单......对于管理端(你称之为客户端)你可以实现一个 DHCP 服务器(那里有代码,例如 udhcpd),它响应您的 MAC 范围或某​​些 DHCP 属性......即使在标准端口上,网络上也可能有 2 个 DHCP 服务器。

以上是关于配置具有无效/不匹配网络配置设置的网络设备的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

Webpack 错误:配置对象无效。 Webpack 已使用与 API 模式不匹配的配置对象进行初始化

在 .NET 中以编程方式配置网络适配器的最佳方式

海康威视网络无参数

当前网络环境,SS及SSR该怎么配置协议混淆才是最佳

k8s网络配置DNS

Webpack 无效的配置对象