我有一个包含以下内容的网络:
- 具有静态 IP 地址的电缆调制解调器
- 路由器
- 台式机 - Win 7
- VM 主机 - VMware ESXi 4.0
- 几个虚拟机客户机 - Windows
我的 Win 7 PC 时不时无法访问某些虚拟机。当我通过域名 ping 虚拟机时,它们的 IP 地址显示为电缆调制解调器的 IP 地址。
有时我可以通过运行来修复它ipconfig /flushdns
。IP 地址将重置为原来的值,但有时它不起作用。
为什么会发生这种情况?我该如何解决?
更新
问题再次发生,因此我尝试在问题发生的同时从网络上的另一台机器 ping 返回公共静态 IP 地址的机器。ping 返回另一台机器的正确地址。因此,似乎错误 IP 地址问题仅发生在 Win 7 PC 上。
此外,在注意到问题大约 10 分钟后,ping 返回错误 IP 的机器名称突然又开始正常工作,无需我摆弄任何东西或运行ipconfig /flushdns
。
答案1
到目前为止,我认为这不是任何其他答案。如果不是你说其他 PC 没有遇到此问题,我会同意 Randolf 的答案。如果 VM 注册了公共 IP,那么所有 PC 都会报告公共 IP
当您按名称 ping 时,您使用什么名称?我怀疑您使用的内部 DNS 名称与外部 DNS 名称相同,例如 company.com 而不是 company.local?
另外,接下来这一点非常重要...当您在命令提示符中 ping 它时,您实际输入的内容有时与它实际显示的内容不同。以下是一个例子。
U:>ping bcdc01
正在 Ping bcdc01.company.local [192.168.101.1],收到来自 192.168.101.1 的 3 条回复:字节=32 时间<1ms TTL=128
您是否注意到我只输入了“ping bcdc01”,但它说正在 ping bcdc01.company.local。
这很重要,但我暂时不会深入阐述原因。只需告诉我你 ping 了什么,以及它说它实际上 ping 了什么。
您可能还在此计算机的 TCP/IP 属性中设置了两个 DNS 服务器。一个是内部的,另一个是外部的。这意味着(结合同名的域名)有时它会查询您的内部 DNS 服务器,有时查询外部 DNS 服务器。这将解析不同的 IP 地址,这是此行为的典型特征。
答案2
获得公共 IP 分配的虚拟机可能设置为使用直接连接到公共端的 NIC。或者,如果您只有一个 NIC,则防火墙可能不提供 NAT。
答案3
您说的“域名”是什么意思?了解这些域名是否是您网络内部的,以及您是否尝试过为您的虚拟机分配面向公众的主机名,这一点很重要。
- 需要检查的一点是:您的虚拟机可能设置为使用 NAT 而不是桥接网络 - 尝试将它们切换为桥接(当然,桥接到连接到网络的适配器),并且它们应该被分配内部 IP,就像您的真实机器连接到路由器一样。
- 您的虚拟机的公共 IP 将总是是电缆调制解调器的 IP,因为这是世界其他地方可以看到的唯一 IP - 如果您想使用 VM 运行任何面向公众的网络服务,您可以将路由器上的端口转发到 VM 上的等效端口。
- 从网络内部来看,每个主机都应该有自己的内部 IP 地址以及内部主机名(使用合适的路由器)。我认为这很可能是 Win 7 PC 解析主机名的方式存在问题,或者是您期望解析主机名的方式存在问题。