我有一台计算机(Windows XP)连接到两个网络接口,这两个接口连接到不同的网络,并且配置为接收 DHCP 配置,这意味着它们都将为计算机提供默认网关。
计算机有时表现正确并将数据包发送到正确的接口,有时则不然。
对于计算机在这种情况下的行为,有没有合理的解释?
有没有正确的方法可以让这两个接口保持这样的配置并正常运行?
答案1
如果 Windows 有多个接口连接到使用 DHCP 的多个网络,它会为所有这些接口安装默认网关。
默认情况下,Windows 将默认网关的度量设置为相同,从而实际上导致随机选择默认网关。
如果您想让 Windows 始终选择某个网关,您可以更改您不想使用的接口配置的接口指标:
- 转到网络适配器属性
- 选择 Internet 协议 v4。
- 单击常规选项卡上的高级按钮。
- 取消勾选
Automatic metric
。 - 在字段中输入一个大于 10 的数字
Interface metric
。
接口的默认自动度量值为 10。度量值越低,使用的优先级越高。因此,对于不想使用的接口,您必须输入高于 10 的度量值。
编辑:这些说明适用于 Windows 7,XP 可能有所不同。无论如何,您不应该使用 XP。
答案2
- 您的计算机不会同时从两个 DHCP 服务器应用 DHCP 配置。
- Windows 计算机可以有两个默认网关。您无法在 GUI 中设置第二个默认网关,但您可以在命令行中使用
route
命令添加它。在这种情况下,Windows 将使用度量值较低的路径。
您可以使用命令检查是否有两个默认网关route print
。默认网关的网络地址和网络掩码都指定为 0.0.0.0
答案3
它要么使用它决定使用的第一个默认网关,有时是随机的并且产生奇怪的结果,要么完全失去连接能力。
在 Windows 中,这是一种完全错误的配置并会造成很多麻烦。
您运行一个脚本来route delete
删除所有默认网关(0.0.0.0),但所需的接口会将流量传递到未知子网。
基本上,您需要一个默认网关,其余的将是通向内部或外部特定子网的网关。
答案4
Windows 不会自动为每个网络添加默认网关,需要通过 GUI、DHCP 或其他 IP 堆栈操作(例如“添加路由”)明确添加。理想情况下,应该只配置一个默认网关。