什么是好的默认 IP 地址?

什么是好的默认 IP 地址?

我的公司生产以太网设备。这些设备的 I/O 非常少。没有键盘,没有视频输出。当客户拿到设备时,他必须为他的网络配置它。我想选择一个不会与他网络上现有设备冲突的 IP 地址,但他的网络可以是任何网络。

有些客户有 192.168.xx 网络。其他客户有 10.xxx 网络。

大多数网络设备(尤其是路由器)都附带 192.168.x.1。但这不是路由器,所以我不想默认使用较低的 IP 地址,因为这将有更高的冲突概率。

随产品一起发货的 IP 地址是多少?是否有半私有/未使用的 C 类网络?

答案1

让它由 DHCP 服务器分配吗?如果不行,我建议使用 192.168.0.250。但 DHCP 肯定是首选

答案2

避免使用任何固定地址。即使您尝试避免使用其他类型设备(如路由器)中常见的地址,您仍然应该问自己:如果用户拥有两个或更多此类设备怎么办?

正如许多人所说,您应该尝试使用 DHCP 自动配置设备。这样,网络管理员就可以轻松地从 DHCP 服务器集中控制设备的地址。

无法从 DHCP 配置,您的设备应该配置一个链路本地地址在 169.254/16 范围内。任何连接到同一链路且具有兼容堆栈和未损坏配置的主机都应该能够使用默认链路本地地址连接到您的设备,然后将其配置为所需的地址。

RFC 3927详细描述了设备如何配置其链路本地地址。该 RFC 的摘要内容如下:

要参与广域 IP 网络,主机需要为其接口配置 IP 地址,可以由用户手动配置,也可以从网络上的源(例如动态主机配置协议 (DHCP) 服务器)自动配置。遗憾的是,此类地址配置信息可能并非始终可用。因此,即使没有可用的地址配置,主机也能够依赖有用的 IP 网络功能子集,这是有益的。本文档介绍了主机如何自动为接口配置 169.254/16 前缀内的 IPv4 地址,该地址可用于与连接到同一物理(或逻辑)链路的其他设备进行通信。

该解决方案似乎非常适合解决您的问题。

简而言之,RFC 中描述的实际实现包括使用设备的 MAC 地址作为种子来选择 PRN。实际上,我看到的许多设备使用 MAC 地址的最后两个八位字节作为 169.254.xy 的最后两个八位字节,并在发生冲突时从 PRNG 获取下一个数字。

附言:我真的很惊讶,在 10 个小时里,在之前 8 个答案中,没有人提到链接本地地址。不幸的是,现在这个问题已经过时了,而且已经有了公认的答案,很可能大多数人都会忽略这个答案。

答案3

实际上,有专门为发现目的而设计的协议。一个例子是链路层发现协议 (LLDP)。如果您确实想要一个可靠的解决方案,您可能应该考虑这样的方法。

仅选择静态 IP 的一个问题是,无论您选择哪个 IP,尝试连接到该 IP 的计算机的路由配置都不太可能在所有计算机上正确设置。

答案4

我一直喜欢在连接设备之前直接在设备上设置 IP 配置,无论是通过面板还是串行端口。但如今的趋势似乎是只有一个网络端口,因此最好的方法是默认使用 DHCP,然后回退到 169.254.xx 链路本地寻址,也许可以使用多播服务发现(ZeroConf/Bonjour),这样您就可以找到新小部件的当前地址,以便为其提供新地址。此外,请确保 MAC 地址位于设备外部的可读标签上。

相关内容