我可以为网络上的设备分配任何静态 IP 地址吗?还是必须在 DHCP 服务器(或路由器)定义的子网中?

Aep*_*hir 5 networking dhcp ip

目前,我的 DHCP 服务器正在分发 192.168.0.1/24 范围内的 IP 地址。如果我在设备上设置静态 IP 地址,例如 192.168.1.10,会发生什么?

出于好奇,如果我将 IP 地址设置为 (1) 其他地方存在的内容(例如在 www 上),或 (2) DHCP 服务器被要求分配给另一个 MAC 地址地址的内容,会发生什么?

use*_*686 20

目前,我的 DHCP 服务器正在分发 192.168.0.1/24 范围内的 IP。如果我在 192.168.1.10 等设备上设置静态 IP 会发生什么?

DHCP 服务器的配置无关紧要——重要的是路由器本身配置使用的子网。通常 DHCP 范围实际上比整个 /24 子网更窄——例如,即使 /24 从 .0 到 .255,DHCP 服务器也只给出地址 0.100-.199。

简而言之,您将无法与任何东西进行通信,因为其他设备不知道将要发送给您的数据包发送到何处:

  1. 您的其他设备不会将该地址识别为属于本地子网,并且会通过它们的“默认网关”(即您的路由器)发送数据包。

  2. 您的路由器也不会将该地址识别为属于其任何本地子网,并且会通过其“默认网关”发送数据包,即您的 ISP(只会丢弃数据包)。

但是,如果您将两个设备配置在同一个 192.168.1.0/24 子网中,它们能够相互通信,因为同一子网中的设备之间的数据包是直接交换的,而不是路由的。(换句话说,路由器相信设备自己知道将数据包发送到哪个 MAC,并且不会查看它们的 IP 地址。)

出于好奇,如果我将 IP 设置为 (1) 其他地方存在的东西(例如在 www 上)会发生什么,

其实和上面一样。如果路由表显示它不属于本地子网,则它不属于本地子网,并且寻址到“您”的数据包将被发送到其他地方。(在这种情况下,他们最终可能会到达该IP 地址的真正所有者。)

或者 (2) DHCP 服务器被要求分配给另一个 MAC 的东西?

如果其他设备保持离线状态,那就没什么特别的了。它会工作。

请注意,DHCP 服务器仅为设备发布信息以使用该地址进行自我配置。DHCP 服务并没有真正告诉路由器如何处理该地址——路由器每次仍然使用 ARP 将 IP 地址转换为 MAC 地址,无论该地址是否是 DHCP 发布的。


(您可能正在考虑某些路由器具有的称为“静态 ARP”的不同功能,例如 pfSense,为了方便起见,其配置通常与 DHCP 租用表相关联。在 pfSense 中,启用此功能实际上会告诉路由器不要对这些 IP 地址使用 ARP——只要 DHCP 服务器的数据库表明该地址属于该 MAC 地址,路由器也总是向该 MAC 地址发送数据包。

但是大多数路由器没有实现“静态 ARP”,因此无论 DHCP 怎么说,尝试使用来自不同设备的 IP 地址总是有效的。)

  • 对于有线以太网,您“可以”在同一物理网段甚至同一以太网交换机上使用相互不兼容的子网(即,192.168.0.x 和 192.168.1.x)。如果所有机器都针对它们所使用的子网进行了正确配置,那么每个子网上的机器将能够与它们自己的子网通信,并且不会受到其他子网线路上的数据包的干扰。 (2认同)

dav*_*dgo 14

这可能取决于您的路由器,但通常分配静态 IP 地址将起作用,无论它是否在为动态分配预留的范围内 - 只要它在该段/网络的子网范围内。在您的示例中,设置192.168.1.10不适用于/24子网,但适用于/16子网。

如果您将 IP 地址设置为在其他地方具有静态 IP 的内容,则这取决于客户端操作系统(即它可能会检查而不接受分配)-但它很可能会起作用,并且 IP 地址冲突将导致复杂的和未定义的结果导致两个系统出现各种奇怪的行为/可达性问题。

  • 通常最好的答案会被接受,而不是最早的,所以不要太担心那个复选标记@Aephir (3认同)
  • 关于重复地址检测的最后一点非常重要。很大一部分系统不对静态分配的地址执行 DAD,他们只是盲目地假设设置分配的系统管理员知道他们在做什么。我从个人经验中知道,除了无状态本地自动配置设置之外,Windows、Linux 和 macOS 上的默认行为是不执行 DAD。 (2认同)

Džu*_*ris 5

我浏览了现有的答案,但没有看到指定的内容。

如果您在设备本身上手动设置 IP 地址,您不仅可以,而且应该分配 DHCP 池之外的地址。否则 DHCP 服务器可能会给另一个设备相同的 IP 地址。

通常你应该想出一些松散的约定,例如让 DHCP 分配三位数的地址 (.100-.254),而让其他人手动分配。

  • @Aephir:这个问题有点不确定。通常,您会得到不可预测且不稳定的效果。说“特定设备具有特定 IP”仅在配置良好的网络中才有意义。 (2认同)