前言

本文只是将网络上的一些资料通过自己能理解的方式整理出来的一篇文章,并没有深入底层原理进行分析,理解可能有许多偏差之处。


一、主机模式

在这里插入图片描述

主机模式相当于多台虚拟机和这台物理机连接在一个交换机上,虚拟机和wmnet1的ip地址要配置在一个网段,才能互相通信, 虚拟机不能与外界通信。

二、NAT模式

在这里插入图片描述
比较重要的有如下四个ip地址:
在这里插入图片描述
上图的网关ip就相当于NAT设备连接虚拟机的网络接口。
在这里插入图片描述
NAT的另一个接口连接物理机的网卡。虚拟机要和外网通信,就需要通过NAT将虚拟机的内网ip转换成物理机与外界通信的IP。
在这里插入图片描述
上图为主机与虚拟机通信的虚拟网卡的IP地址。
在这里插入图片描述
上图为虚拟机的ip地址。

NAT工作原理

实验:虚拟机ping www.baidu.com,抓vmnet8网卡和主机物理网卡。
下图为vmnet8的网卡,因为vmnet8和虚拟机连接在一个交换机上,所以vmnet8抓的包就是虚拟机发出的原始包。原ip为虚拟机的内网ip,目的ip为百度的ip地址。
在这里插入图片描述
下图为数据包经过NAT转换后通过物理机网卡的数据包,请求数据包中的原ip由内网ip替换成了物理机网卡的ip,响应数据包中的目的ip由物理机网卡ip替换成了内网ip
在这里插入图片描述
下图为主机ping虚拟机,可以看出主机和虚拟机通信直接走的虚拟网卡,请求数据包原ip为虚拟网卡的ip,目的ip为虚拟机的ip地址。
在这里插入图片描述
NAT工作原理:虚拟机发送一个icmp包,NAT会自动生成转换表,表中记录协议、原ip、目的ip、源端口、目的端口,其中icmp中的端口由type、code替换。如下图:
在这里插入图片描述
当有这条记录的回包时,就会将外网收到的包通过NAT进行转换,后发送给虚拟机。如果外网的包没有在转换表中记录,则不能发送到虚拟机上。

三、桥接模式

在这里插入图片描述
主机网卡与虚拟机连接在一个虚拟交换机上,需要将主机网卡和虚拟交换机配置在一个网段上,表现上物理机和虚拟机是相同的地位,物理机和虚拟机都为外网ip,外面数据包达到路由器通过虚拟交换机进行广播,就能到达对应的目的ip地址。
在虚拟机上Ping www.baidu.com 同时在物理机和虚拟机网卡上进行抓包,结果都如下所示,原ip为虚拟机的Ip地址:
在这里插入图片描述

三种模式的差异

主机模式和NAT模式的差异: 两种都是通过虚拟网卡实现物理机和虚拟机的直接通信,相当于虚拟网卡直接与虚拟交互及连接,NAT模式增加了一个NAT网关,能够实现虚拟机序外界的通信。
主机模式和桥接模式差异: 主机模式的虚拟网卡连接在虚拟交换机上,只能实现物理机与虚拟机的通信不能实现虚拟机与外界的通信;桥接模式相当于直接将路由器连接在交换机上,虚拟机和物理机网卡直接连接在虚拟交换机上,在外界来看主机和虚拟机都是同等地位。
NAT和桥接模式的差异: NAT中的虚拟机对外界不可见,虚拟机能够使用内网ip地址,缓解ip地址不够用的优点;桥接模式中的虚拟机和物理机在外界看来都是同等地位,都需要使用公网ip。

总结

参考一下文章:
VMware虚拟网卡和网络工作模式
vmware中VMnet0、VMnet1、VMnet8是干什么的
Linux网络协议栈-NAT原理介绍(图文详解)
vmware关于虚拟网卡VMnet8路由总结

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐