关于Vmware的Nat

有网友说vmware的Nat组网模式类比路由器,则虚拟机可以ping通主机(物理机),物理机无法ping通虚拟机。这种类比有一定的道理,但vmware有自己的解决方法,那就是把物理机也通过一个网卡连接到Nat上,这样通过那个层面其实物理机是可以ping通虚拟机的,也就是说:

物理机通过物理网卡上网,比如说通过路由器上网,申请到IP地址是192.168.1.13(IP地址都是假设);

物理机通过VMnet8连接vmware的Nat,申请到的ip地址是17.16.17.1;

虚拟机通过NAT申请到的IP地址是17.16.17.128;

 

很明显,物理机和虚拟机在17.16.17.*层面是同一个网段,想怎么ping就怎么ping,当然也有ping不通的时候,后面会分析。而虚拟机通过Nat,又可以ping通192.168.1.13这个IP地址,这就是Nat的作用了。那物理机如果没有VMnet8,就只有192.168.1.13这个IP层面,则ping不通虚拟机,除非做NAT穿刺(NAT设置里设置端口映射啊等)。VMnet8是通过下面的配置产生的:

编辑-》虚拟网络编辑器-》VMnet8的配置:

将主机虚拟适配器连接到此网络


勾上就有,不勾就没有。

 

满足上面的条件,还有问题?这个就要做具体问题具体分析了,这里有个通用的定位方法,路由跳转跟踪命令,windows下面是tracert,linux下面是traceroute,看为啥ping不通?比如我的物理机器:

tracert 17.16.17.128后,发现跳转到10.*.*.*的号段去了(好在没跳到太平洋去。。。)

在通过route print| more命令查看一下路由表,还真有一段:

172.16.77.0   255.255.255.0       10.*.*.*     10.*.*.*      5

万恶的某个软件会自动给它增加这个路由信息,优先级居然还这么高(5那个是优先级),于是,就悲剧了。删掉它就OK了:

route delete 172.17.77.0 if 70(70是我机器上10号段出去的口)

 

另外再补充一点网上收集到的信息:

172.16.77.0    255.255.255.0       在链路上       172.16.77.88    276

这一条记录,是win7里有的,“在链路上”洋气啊,理解应该是直接转发,也就是说ping 172.16.77.128,比如,就直接到172.16.77.128,出口是172.16.77.88,因为这时候的gateway被标识成了“在链路上”。如果gateway是IP地址,那就发到gatewary的ip地址,不是,就直接发。

你可能感兴趣的:(经验记录)