Linux - 虚拟机的三种网络模式

VMware虚拟网网络编辑器中我们可以看到有三个虚拟交换机分别对应不同的网络模式:

Linux网络虚拟化配置_运维

VMnet0:用于桥接模式下的虚拟交换机 VMnet1:用于仅主机模式下的虚拟交换机 VMnet8:用于NAT模式下的虚拟交换机

对应地,在Windows主机上对应虚拟了VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,至于为什么没有VMnot0的虚拟网卡,且看下文。

Linux网络虚拟化配置_Linux网络虚拟化配置_02


Linux网络虚拟化配置_Linux网络虚拟化配置_03

可见物理机其实有3个IP地址:192.168.17.1,192.168.230.1,192.168.137.1。通过这3个IP地址都可以访问到主机。

一、桥接模式

1、概念

桥接模式就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。

2、图解

Linux网络虚拟化配置_桥接模式_04

所以,桥接模式下的所有虚拟机都是和主机是在同一网段的,可以把它们看成是"平等"的关系,这就会带来一些麻烦,比如192.168.1段下只有254个主机地址,所以桥接模式下虚拟机和物理的总数不能超过这个数字!

二、NAT模式

1、概念

NAT模式下,虚拟机IP地址和物理机真实网卡的IP地址不在同一网段,但是和物理机的虚拟网卡处于同一网段。虚拟机可以通过IP地址转换和外部通信,但是外部无法向虚拟机通信,有点类似私网地址可以通过路由器的公网地址和互联网通信,但互联网无法访问私网地址。

2、图解

Linux网络虚拟化配置_运维_05

可见NAT模式下主机更像是虚拟机们的"路由器",通过VMnet8虚拟网卡为虚拟机分发地址。所以虚拟机和主机不再同一网段下,可以理解为主机是虚拟机的"上级",这也就是为什么桥接模式没有VMnet0这个虚拟网卡,因为桥接模式下的虚拟机和主机是"平等"的,共用同一个路由器呀。

二、仅主机模式

1、概念

仅主机模式可有看成是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

2、图解

Linux网络虚拟化配置_Linux网络虚拟化配置_06

主机模式下,虚拟机是一个独立系统,不与外部发生通信。