具有本地 DNS 和转发的 Hyper V - nslookup 可以工作,但 ping 会失败

具有本地 DNS 和转发的 Hyper V - nslookup 可以工作,但 ping 会失败

我有一台 Hyper-V 虚拟机,配置了自己的 DNS 管理器和用于测试的条目。VM DNS 管理器设置为将所有其他请求转发到“常规”DNS 服务器。

这一切曾经运行良好,但现在我遇到了问题(可能对应于我更改虚拟机的网络适配器以绑定到多个静态 IP 地址的时间 - 以前它是一个 DHCP 地址)。

有趣的是,我可以 ping 虚拟机 DNS 条目。但是,对于转发的条目,nslookup 成功,但 ping 失败,并且无法访问任何外部互联网站点。

例如,刷新后,www.google.com 的搜索结果如下ipconfig /flushdns

C:\Windows\system32>nslookup www.google.com
Server:  localhost
Address:  127.0.0.1

Non-authoritative answer:
Name:    www.google.com
Addresses:  2607:f8b0:4003:c01::68
      173.194.64.105
      173.194.64.99
      173.194.64.103
      173.194.64.106
      173.194.64.147
      173.194.64.104


C:\Windows\system32>ping www.google.com
Ping request could not find host www.google.com. Please check the name and try again.

C:\Windows\system32>ping 173.194.64.106

Pinging 173.194.64.106 with 32 bytes of data:
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.

Ping statistics for 173.194.64.106:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

但 ping 我内部定义的 dns 条目(在正向查找区域中定义)工作正常。

更新

使用静态 IP 设置(同一网络连接上有多个静态 IP,DNS 服务器设置为 127.0.0.1 并转发到“官方”DNS 服务器),我可以 ping 虚拟机上定义的 DNS 条目以及更广泛内部网络本地的 DNS 条目。但是,我无法 ping 互联网上的地址。

如果我允许 Windows “诊断”虚拟机中的网络连接,它会建议将我的 VM 适配器改回 DHCP - 如果我允许它这样做,我可以 ping 外部互联网(但不能 ping 我的 VM dns 条目)。一旦我将其切换回静态 IP 地址,问题行为就会再次出现。

更新 2

所有分配的 IP 地址都在同一个子网内。

结果如下tracert

C:\Windows\system32>tracert 173.194.64.106

Tracing route to oa-in-f106.1e100.net [173.194.64.106]
over a maximum of 30 hops:

  1  Transmit error: code 1231.

Trace complete.

为什么我的虚拟服务器能够成功解析外部 DNS 条目,但实际上却无法连接它们?

答案1

“传输错误:代码 1231”对应主机无法找到默认网关。请参阅链接。所以我猜想当您将网络配置设置为静态时,也许您没有输入默认网关信息。ipconfig /all 结果应该会为我们提供更多信息。

答案2

在 DNS 管理器控制台中,检查 DNS 正在监听哪些地址/接口。很可能它没有绑定到正确的接口,因为您已经切换了适配器。

答案3

  1. 你能发布一个tracert 173.194.64.106吗?这将显示流量是否离开 NIC 以及它正在采用哪条路由。tracert也对您的生产 DNS 进行发布。

  2. 您提到了多个静态 IP,它们都在同一子网中吗?如果不是,它们都有默认网关吗?

相关内容