我的操作系统有问题。当我尝试 ping 本地主机名服务器时,ping 实用程序返回错误的 IP 地址。
在我的服务器上,我有 3 个接口:Ethernet0、Ethernet1、Ethernet2
具有首选静态 IP 的主接口是Ethernet0。它在操作系统路由表中的度量也最低,并且是唯一分配有网关的路由表。通过Ethernet0,我连接到域网络“example.local”。我在此网络接口上静态设置了 DNS 服务器。
其余接口(以太网 1 和以太网 2)没有网关,但分配了静态 IP。
现在来说说问题。当我运行 nslookup 时,我得到以下响应:
PS C:\Users\Administrator> nslookup server01.example.local
Server: dc01.example.local
Address: 100.72.10.133
Name: server01.example.local
Address: 100.72.10.137
但当我运行 ping 时,我得到以下响应:
PS C:\Users\Administrator> ping server01.example.local
Pinging server01.example.local [100.76.26.142] with 32 bytes of data:
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Ping statistics for 100.76.26.142:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
nslookup 中的 IP“100.72.10.137”是我首选的主 NIC 静态 IP。
ping 中的 IP“100.76.26.142”是我来自以太网 2 网卡的静态 IP。
我想要实现的是,当我将“server01.example.local”放入直接位于此 server01 上的程序设置中时,该程序将通过主网卡的 LAN IP (100.72.10.137) 与本地主机联系。我知道可以通过将“127.0.0.1 server01.example.local”添加到主机文件来解决这个问题,但我想更深入地了解这个问题。
为什么我在 ping 实用程序中得到不同的响应?我已经在 NIC 中禁用了“禁用 TCP/IP 上的 NetBIOS”。我还禁用了“TCP/IP NetBIOS Helper”服务。我 100% 确定我的主机文件是空的。我重新启动服务器,删除缓存(ipconfig /flushdns)。我假设 ping 现在应该尝试仅使用主 NIC 上的 DNS 服务器来解析地址。然而,Windows 操作系统中似乎存在另一个底层组件或逻辑,它使用 ping 返回错误的 IP 地址。
我对发生的事情的猜测:
这个猜测要求所有接口都连接到网络。与以前的版本相比,Windows 10/11 对指标的重视程度要低得多。
好吧,我发现在我的操作系统的路由表中,两个接口具有相同的度量值。我将接口的度量值从自动更改为手动,并在Ethernet0 接口上设置了最低度量值。我还需要将以太网 1 和以太网 2 接口上的度量值更改为更高的值。现在 ping 会返回正确的 IP 地址。
我仍然不明白在这种情况下,当两个网卡具有相同的度量值时,ping(底层操作系统 DNS 解析流)如何决定返回哪个 IP 地址。