虚拟机三种网络连接方式(桥接、NAT、仅主机、vlan)、Fusioncompute中的网络配置(OVS、DVS)
我们通过VMware workstation 安装虚拟机的时候,需要配置我们的虚拟网卡。
需要在网络适配器那里进行配置,网络连接这里一般有三种模式,桥接模式,NAT模式和仅主机模式,如下图所示,那么这三种模式有什么区别呢?
1、桥接模式:
如下图所示,就很好的讲解了桥接的原理。左边框框代表的就是我们的物理机,主机网卡就是我们物理机的物理网卡。右边的虚线就是虚拟出来的设备。未来某一天,如果在我们的物理机上创建出来了很多虚拟机,就是右边的框框中的虚拟机。当我们选择了桥接模式,如果我们的主机网卡如图所示是1网段,当创建虚拟机的时候创建出来的虚拟机也会自动获得1网段的IP地址,会和物理机的网段保持一致。所以桥接模式就是所有虚拟机的虚拟网卡都连接在虚拟交换机(Vmnet0)上,虚拟交换机在通过虚拟网桥和物理机网卡连接在一起,所有虚拟机的网段都需要和物理机的网段保持一致,这就是桥接模式(Vmnet0对应的是桥接模式下的虚拟交换机,Vmnet1对应的是仅主机模式下的虚拟交换机,Vmnet8对应的是NAT模式下的虚拟交换机,这个是固定的)。
那么虚拟交换机Vmnet0是干什么用的呢?它的作用就类似于OVS(Open virtual switch),OVS又是什么呢?理解了OVS,我们才能更好的理解DVS(distributed virtual switch 分布式虚拟交换机),华为的DVS就是在OVS的基础上进行了二次开发。
OVS介绍
如下图所示,左边的绿色小片是我们物理机的网卡,上边是在主机上创建的3台虚拟机,那么问题来了,这3台虚拟机怎么和物理机进行沟通,或者怎么和外网进行沟通呢?这时候我们就可以采用OVS。OVS是虚拟交换机的一种类型,它上边有很多接口,所以在创建虚拟机的时候可以直接选择连接在哪个端口上,然后在将我们的物理网卡作为一个端口桥接到OVS上,这样的话,虚拟机就可以和物理机进行沟通。虚拟机和虚拟机之间也可以通过OVS可以直接通信,不需要在经过物理网卡。把物理网卡作为一个端口桥接到OVS上,这也是桥接。
所以我们也可以把Vmnet0理解为OVS,这种模式就是桥接模式。那么有一个问题,如果我们的物理机通过路由器可以上外网,那么桥接模式下的虚拟机可以上外网吗?答案是可以的。只要主机可以上外网,那么桥接模式下的虚拟机就可以。
2、NAT:
Network Address Translation(网络地址转换)。这是一种技术。通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
什么是私网、公网呢?以下是IP地址分类,首先根据用途的不同,所有IP地址可以分为五类,每类对应不同的用途。
-
IP地址分类
- A类:1.0.0.0 到 127.255.255.255主要分配 给大量主机而局域网网络数量较少的大型网络
- B类:128.0.0.0 到191.255.255.255 一般用于国际性大公司和政府机构
- C类:192.0.0.0 到223.255.255.255 用于一般小公司校园网研究机构等
- D类:224.0.0.0 到 239.255.255.255 用于特殊用途,又称做广播地址
- E类:240.0.0.0 到255.255.255.255 暂时保
那么这些IP中哪些是私网IP呢?
私网ip地址
- A类:10.0.0.0 到 10.255.255.255
- B类:172.16.0.0 到172.31.255.255
- C类:192.168.0.0 到192.168.255.255
包含在这之中的就是私网地址,除此之外,剩余的地址都是公网地址。
IPV4共有大约43亿个公网地址,但是已经不够用了。公网只能通过公网访问,私网是不能直接访问公网的。
NAT技术有什么作用呢?如下图所示:
假如一个公司有4个员工,如左边的框所示,如果给他们每人分配一个公网,那么他们就可以直接访问百度等这些外网。但是这是不现实的,公网IP地址是收费的,所以公司不可能给每人都配一个公网地址,一般都是给每人配一个私网地址,比如192.168.等。由于私网地址不能直接访问公网地址,所以这几个人怎么访问公网呢?这就用到了NAT技术。通过NAT,这几个人都可以把自己的私网IP转换为一个共用的公网IP,在去访问公网。这就是NAT的作用。
NAT中又分为 SNAT 和 DNAT,如果是要访问外网的话,我们需要配置的是SNAT,如果是要让外网访问我们的话,需要配置的是DNAT。
那么Vmware中的NAT模式是指什么呢?
首先所有的虚拟机也是先连在虚拟交换机上,NAT模式时,虚拟交换机是Vmnet8,和桥接模式不同的是,桥接模式中Vmnet0是直接连在主机网卡上,但是这里Vmnet8是先连在主机的Vmnet8上,在连在主机上。那么虚拟机和主机通信是走上边那条线还是下边那条线呢?它是走下边那条线的。那么如果主机能上外网,虚拟机能上外网吗? 虚拟机也是可以上外网的,这就是这上下两条线的区别。 当虚拟机只是和主机通信时,它会走下边那条线,因为主机的Vmnet8和虚拟机都在一个网段内,所以虚拟机可以直接和主机通信。当虚拟机要上外网时,它会走上边那条线,虚拟NAT设备会将虚拟机的网段都转换成1网段,在直接连接在主机网卡上,因为都是1网段,所以虚拟机就可以上外网了。这就是NAT模式
3、仅主机模式:
仅主机模式中的虚拟机连接在虚拟交换机Vmnet1上,Vmnet1在和主机的Vmnet1连接,最后在连接到主机上。这就是虚拟机和主机通信的过程。那么如果主机能上外网,虚拟机能上外网吗?我们可以看到,虚拟机是没办法上外网的,因为没办法和主机网卡在一个网段内。所以仅主机模式下,虚拟机只能和主机之间进行通信,没办法上外网。
但是如果在仅主机模式下,真的很想上外网怎么办呢?我们可以看到主机网卡和主机的Vmnet1之间有一条红色的线,如果我们把主机的网卡共享给Vmnet1让他使用,这种方式下虚拟机就可以上外网了。但是很少这样用。这就是仅主机模式
4、Fusioncompute中的网络配置
DVS(Distributed Virtual Switch)
在我们的FC环境中,每一台主机上应该都有一个OVS,就像Vmware中的vmnet0,vmnet1,vmnet8等,让所有虚拟机都连接在虚拟交换机OVS上,在连接到物理主机的网卡上。但是有一个问题是,因为我们集群中有多台主机,每个主机的OVS可能都配置了不同的Vlan,那么不同主机上的虚拟机就没办法通信,也没办法迁移,那么怎么解决这个问题呢?华为在OVS的基础上自研了DVS。
那么什么是DVS呢?
如下图所示,DVS就是一个横跨多个主机的分布式虚拟交换机。即使我们集群中有20个主机,他们也都可以连在一个DVS上。这样的话就相当于所有的虚拟机共用一个个OVS,那么不同主机上的虚拟机之间也就可以通信了。DVS会通过上行链路连接到每个物理主机上。那么什么是上行链路呢?上行链路就是分布式交换机DVS连接主机物理网卡的链路,用于虚拟机数据上行。
这里需要注意的是,整个图上的资源都是在主机内部中的,即DVS虚拟交换机因为是虚拟出来的,所以它存在在每个主机之中,上行链路也是内部链路,并没有真实的连线。即上图的整个通讯过程都发生在每台物理主机的内部。真实环境中,我们的业务网卡在做了绑定形成逻辑接口之后,我们会通过光纤连在真实的交换机上,在连在机房的核心交换机上,在转发出去,这是真实的外部链路。所以整个过程分为内部通信和外部通信两部分。
在我们的平台上创建DVS时,界面如下:
我们需要先添加上行链路(即和哪个物理主机进行连接),然后添加VLAN池,VLAN池中会让我们输入起始VLAN ID 和结束的VLAN ID。
添加完以后在添加端口组,端口组必须在有了VLAN池之后才能创建,一个端口组对应一个VLAN。有了端口组之后,我们在创建虚拟机的时候才可以在网卡的地方进行选择。
5、VLAN
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。
传统的网络中,如果一个主机要和别的主机通信,他会通过交换机发送信号,这个时候交换机会将他的信号广播给所有连接在这个交换机上的主机。1个传播多个,广播方式。这种方法浪费网络资源,还可能会造成网络拥堵。
vlan就是把几个需要通信的主机所连接的交换机上的端口圈在一个vlan中,当他要和别的主机进行通信时,交换机只会把这个信号传递到同VLAN的主机上,这就是VLAN的作用,实现隔离。vlan是交换机上的概念,可以把交换机上的端口划分在不同的vlan中,从而实现隔离。
简单来说,同一个VLAN中的用户间通信就和在一个局域网内一样,同一个VLAN中的广播只有VLAN中的 成员才能听到,而不会传输到其他的VLAN中去,从而控制不必要的广播风暴的产生。同时, 若没有路由,不同VLAN之间不能相互通信,从而提高了不同工作组之间的信息安全性。网络 管理员可以通过配置VLAN之间的路由来全面管理网络内部不同工作组之间的信息互访。