vmware虚拟机和网络中的桥接和NAT
有许多人在网上回答类似的问题,但大多说的不够简单,且互相抄袭的嫌疑很大,这里我尽自己努力把问题说的明白一些
首先解释一下什么是NAT(network address translation )
NAT 从字面来看也能看出来他主要是用来转换网络地址,他出现是为了解决子网向外网访问的问题(这里大家也就发现了,用了NAT,很可能就有了子网的出现)
NAT模式下子网中机器如果想访问外网,则需要通过一台路由设备来进行网络地址转换,所有的子网机器对外显示为同一ip,数据经过路由设备时,路由设备替换其中的源地址和源端口号为同一外网地址和端口号,并在路由中进行记录转发表。当收到外网消息后,按照转发表进行向子网地址的转发,从而完成了子网机器的外网访问过程。
而在vmware中,则是由一个软件对这种路由转发过程进行了虚拟实现,实现的工具为(VMnet8),所以本质上来说NAT模式下,虚拟机和宿主机不在同一个子网,所以不能直接进行通信。
再来看一下桥接(bridged)
在bridged模式下,可以认为是通过一个设备,模拟了宿主机的网卡信息创建了一张虚机网卡,此虚拟网卡通过虚拟交换机(应该是叫做vmnet0)进行桥接,注意:此时虚拟网卡和物理网卡在网络拓扑上的位置是一致的,也就是说处在同一子网内部。那么显然,此时的宿主机所在的子网内的所有机器都可以直接和虚拟机进行通信(不考虑防火墙等因素),所以说如果在虚拟机中布置服务器,最好选择桥接模式
不知道大家有没有注意到,这两种模式的虚拟技术本质的区别是NAT虚拟了路由转发的过程,而桥接虚拟的是交换机。如果说大家对路由和交换机的区别不是很了解,以后我再写文章进行介绍吧。