Hyper V与本地DNS和转发 – nslookup工作,但ping得到一般故障

我有一个Hyper-V虚拟机configuration了自己的DNSpipe理器和条目进行testing。 VM DNSpipe理器设置为将所有其他请求转发到“常规”DNS服务器。

这一切都用于正常工作,但现在我遇到了问题(可能对应的时间我改变虚拟机的networking适配器绑定到多个静态IP地址 – 以前它是一个DHCP地址)。

有趣的是,我ping的VM DNS条目就好了。 但是,对于转发的条目,nslookup成功,但ping失败,并且不能访问外部Internet站点。

例如,这里是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设置(在同一networking连接上有多个静态ip,dns服务器设置为127.0.0.1并转发到“官方”dns服务器),我可以ping我的虚拟机上定义的两个dns条目,dns条目在本地更广泛的内部networking。 但是,我无法ping通Internet上的地址。

如果我允许Windows在虚拟机中“诊断”我的networking连接,则build议将我的虚拟机适配器更改回DHCP – 如果允许,我可以ping外部Internet(但不是我的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. 

为什么我的虚拟服务器能够成功地parsing外部DNS条目,但实际上并没有连接到它们?

“传输错误:代码1231”对应主机找不到默认网关。 看到这个链接。 所以我想当你将networkingconfiguration设置为静态时,也许你没有input默认的网关信息。 ipconfig / all结果应该给我们更多的信息。

在DNSpipe理器控制台中,检查DNS正在监听的地址/接口。 由于您已经切换了适配器,因此很有可能它不会绑定到正确的界面。

  1. 你可以发布一个tracert 173.194.64.106吗? 这将显示,如果stream量正在离开NIC和它正在采取的路线。 对你的生产DNS做一个tracert

  2. 你提到多个静态IP,他们都在同一个子网? 如果没有,他们都有一个默认网关?