为什么我启动时会得到 169 个 IP 地址?

为什么我启动时会得到 169 个 IP 地址?

我们测试实验室的小型网络上有几台 Windows 7 计算机。我们的环境中有一个 DHCP 服务器。所有客户端计算机都已获得有效的 DCHP IP 地址。

当机器重新启动时,我注意到在启动时,网络接口在一段时间内(适配器启动后可能是 10-15 秒)具有 169.x IP 地址,然后才再次获得有效地址。

是否存在一种机制(可能在注册表中)可以防止分配这些自动 IP 地址之一?

答案1

您没有遇到错误或故障。分配给接口的 IP 地址是由于自动私有 IP 寻址(APIPA)。之所以使用它是因为 DHCP 进程没有收到有效可用的 IP 地址。

Microsoft 提供了有关不使用 DHCP 进行自动 IP 寻址的指导:

如何在没有 DHCP 服务器的情况下使用自动 TCP/IP 寻址

来自相关公告(在多个适配器上使用 APIPA/路由不起作用):

在整台计算机上禁用 APIPA

使用注册表编辑器创建以下注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\参数

向此项添加以下值:

值名称:IPAutoconfigurationEnabled 值类型:REG_DWORD 十六进制值:0(值 0 表示此计算机上禁用 APIPA 支持)

注意:如果不存在 IPAutoconfigurationEnabled 条目,则假定默认值为 1,这表示 APIPA 已启用。

完成此更改后,重新启动计算机。

除一个网络适配器外,禁用所有网络适配器上的 APIPA

使用注册表编辑器创建以下注册表项,其中适配器名称是要禁用 APIPA 的动态主机配置协议 (DHCP) 配置的适配器的名称:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\Interfaces\适配器名称

向此项添加以下值:

值名称:IPAutoconfigurationEnabled 值类型:REG_DWORD 十六进制值:0(值 0 表示此适配器上禁用 APIPA 支持)

注意:如果不存在 IPAutoconfigurationEnabled 条目,则假定默认值为 1,这表示 APIPA 已启用。

完成此更改后,重新启动计算机。

答案2

我的经验是:

  1. IP 地址用完了。DHCP 服务器已将 IP 地址全部发放完毕,没有更多可用地址。
  2. 路由器发送的默认网关设置缺失、错误等...基本上客户端无法找到默认网关,这意味着它无法访问 DHCP 服务器。

当有人告诉您分配静态时,您必须手动输入网关和掩码,这样它就会突然起作用。此外,如果网络上的另一个客户端正在使用来自 DHCP 的 IP 地址,并且您将自己的 IP 地址设置为静态,并且使用相同的 IP 地址,您有时会启动该客户端的 dhcp 租约,您的租约将起作用,而他们的租约将失效。

如果是这种情况,请检查路由器上的默认网关广播设置。当我更改 DHCP 范围时,我将我的网关设置为 0.0.0.0。我没有意识到这一点,所以路由器告诉所有连接的客户端他们的网关是 0.0.0.0

我们的网络上有 57 台计算机和大约 100 台设备。我们已经达到了 255.255.255.0 掩码的限制。当 IP 地址开始用完时,尤其是当网关广播为 0.0.0.0 时,我看到 PC 上发生了一些奇怪的事情。我甚至看到几台计算机在尝试连接网络时出现蓝屏。

答案3

是的,您可以在 Windows 上禁用 APIPA。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\参数

创建 D-Word IPAutoconfigurationEnabled 应为 0(表示禁用),1(表示启用)。

相关内容