我正在开发一个嵌入式系统,该系统将具有与 PC 主机的以太网连接。该产品包含一个 DHCP 服务器,因此 PC 可以自动获得分配的 IP。为了不干扰主机的功能,我们为该连接分配的 2 个 IP 地址(始终是点对点的)不应与 PC 主机所连接的任何本地网络发生冲突。
有没有办法获得一个保证未使用的范围?我是否应该使用 169.254.0.0/16 中的地址?
谢谢!
编辑:我的一些错误导致了误解。我不需要它是免费的,就像免费啤酒一样,我想要的是让用户将设备连接到他的计算机并自动建立连接。如果我选择 192.168.43.0/30 进行连接,如果用户使用该确切范围,它实际上可能会干扰用户。这就是我试图避免的问题。
感谢大家迄今为止的评论!
答案1
您可以使用任何尚未使用的“内部使用”IP 地址范围。最简单的方法是使用 192.168.xy/24 之类的范围,选择 0<=x<255 作为您尚未使用的范围,并选择 y 来标识您需要的每个主机。这样,您最多可以支持 253 个主机。
据我所知,您建议的 IP 地址不是“内部使用”的 IP 地址。
顺便说一句,如果这个网络完全隔离并且没有互联网访问,那么您可以使用任何您喜欢的 IP 范围。
答案2
有没有办法获得保证未使用的范围?
是的。任何来自RFC1918IP。这些不应该出现在互联网上。
明显的缺点:您只能在本地使用它们。
从未出现在互联网上并不意味着它们尚未在您的本地网络上使用?例如,许多公司没有足够的 IP 号码来将它们用于所有设备,而这些 IP 号码通常会被归咎于一种名为 NAT 的肮脏黑客。通常使用来自同一范围的 IP。因此,在使用它们之前先询问,或者冒险选择一些罕见的 IP(例如 172.16.65.14 和 172.16.65.15,它们来自 1918 范围)。
另一种方法是使用 IP v6。
答案3
您无法保证 IP 未被使用。但是,符合标准行为的 DHCP 客户端如果该地址已在本地使用,则会回复 DHCPDECLINE。无论是手动分配还是通过其他 DHCP 服务器分配,这都适用。从rfc2131:
DHCPDECLINE-客户端向服务器表明网络地址已在使用中。
此外,由于这是点对点连接,因此您需要使用 169.254.0.0/16 地址和 255.255.255.252 的网络掩码。DHCPDECLINE 不会说明网络上是否有另一台主机位于提供的 IP 地址,但如果您使用 169.254.0.0(例如 169.254.1.2)地址和 255.255.255.252 的掩码,则可以确保不会发生冲突,因为该 ptp 网络上只能有 2 台主机。