1
xss 2017-01-09 10:22:24 +08:00 1
你的 ping 包发到路由上去了(也可能是交换机). 然而你的 192.168.29.2 这个虚拟出来的网关是在你本机上创建的.
上层设备并不知道这个虚拟网关的 mac 地址. arp 被广播后当然收不到应答. |
2
julyclyde 2017-01-09 13:48:52 +08:00
因为主机并不属于 vmnet8 啊
|
3
anyegongjue282 OP @xss 谢谢你的回复。我再想请问下,为什么虚拟机 ping 这个网关可以 ping 通呢。这个网关和虚拟机的网卡都可以看做是宿主机虚拟出来的吧。
|
4
anyegongjue282 OP @julyclyde 谢谢回复。主机上有一个 vmware 虚拟出来的网卡 vmnet8 , ip 是 192.168.29.1 。这个 ip 去 ping 虚拟机地址 192.168.29.131 是可以 ping 通的,个人理解它们应该是在一个子网吧。不知道是不是我的理解不对。
|
5
julyclyde 2017-01-09 14:39:19 +08:00
@anyegongjue282 那还真是比较奇怪了。我刚才想成 virtualbox 的情况了,跟 vmware 不太一样
|
6
xss 2017-01-09 16:11:06 +08:00
@anyegongjue282 因为你做了 NAT, 虚拟机的 ping 请求会先发送到 HOST 机. HOST 机器因为 NAT 创建了路由表的原因, 知道发往 192.168.29.2 这个网关的包应该怎么转发. 从而能正确的发送和接受虚拟机出来的请求. 说白了就是你虚拟机 ping 192.168.29.2 的包, 不会被真正的发送到你的网络上面. 只是在你本机虚拟出来的一套网络环境里面转了一圈. 你看看 5 层网络协议吧, 弄明白 5 层模型, 就知道为什么会这个样子了.
|
7
weyou 2017-01-09 16:50:04 +08:00 1
VMWare 的设定就不允许 NAT 转发来自于 host 的虚拟网卡过来的包。应该是直接就不响应 ARP 了,
The Host Computer and the NAT Network The host computer has a host virtual adapter on the NAT network (identical to the host virtual adapter on the host-only network). This adapter allows the host and the virtual machines to communicate with each other for such purposes as file sharing. The NAT never forwards traffic from the host virtual adapter. 你可以试试设置 static ARP entry 到 host 的 MAC 表里,然后再 ping NAT gateway ,我怀疑还是 ping 不到,底层就屏蔽掉了。 |
8
anyegongjue282 OP @weyou 谢谢。我觉得这个解释我比较能理解了。
|