1. 虚拟机的网络概要
一台物理服务器上,可以分割出很多虚拟机,如果要与外界网络联通,每个虚拟机上都需要一张网卡,但是物理服务器上网卡是有限的,这时就需要与其他硬件资源如CPU/内存等一样的处理方式,将物理网卡虚拟化。
虚拟化的网卡叫做vNIC,虚拟机的OS将vNIC当作真实的网卡,对其分配IP地址并进行通信。 因为vNIC是虚拟网卡,虚拟机如果要通过vNIC将信息发送给外界的物理网络的话,就需要将vNIC与物理服务器上的物理NIC连接起来。但是因为物理
NIC是有限的,不可能一个vNIC对应一个物理NIC,在ESXi内部也需要一个交换机来管理网络。
如下图1,可以看到ESXi服务器内部,也有类似物理交换机的概念存在,这个就是虚拟交换机。
从外往内分别是,物理交换机,ESXi服务器的物理网卡,ESXi内部的虚拟交换机,ESXi内部的虚拟网卡,通过这些物理和虚拟网络设备的连接,将虚拟机与外界的internet进行了互联。
- 物理交换机: 提供与物理环境相同的功能,比如划分VLAN
- ESXi服务器的物理网卡:在虚拟网络环境中,不提供任何功能
- ESXi内部的虚拟交换机: 虚拟网络环境中的核心层,提供IO仿真等重要功能
- ESXi内部的虚拟网卡:一般与虚拟机对应,作为VMKernel与虚拟机之间的中介,传输TCP/IP
- 最后是各种虚拟机,就是它们提出使用网络设备的要求
2. 虚拟交换机 - 连接虚拟与物理的设备
上面介绍了虚拟机是如何与外界物理设备连接上的,下面介绍虚拟交换机的详细构成。
如上图中,虚拟交换机的上行链路端口组内有四个port,连接着四张物理网卡,下行链路上分成两个端口组,第一个端口组是VM公共网络用的端口,
每个VM连接着这样一个端口,第二个portgroup是vmware的Managment用,用于统一管理虚拟机以及实现VSAN,VMotion等特性。
上面的部分是概念图,下面是vsphere webclient中实际的构成图。 左边是下行链路端口组,与上面的概念图对应。
- 蓝色是虚拟机使用的端口组,按照虚拟机用途,对虚拟机端口进行了分组,不同的分组有不同的VLANID。
- 红色是该ESXi上的VMKernel 端口组,vSphere接入该端口,实现Management和VSAN等功能。
物理port | vSwitch | VMKernel NIC | 用途 |
---|---|---|---|
vmnic5,6 | dvSwitch0 | VMK0 | public internet |
vmnic4,7 | vSwitch0 | VMK2 | Management and vMotion |
vusb0 | vSwitchUSB | VMK1 | IMM |
注意最后多了一个vusb0,这个是ESXi用来进行机器硬件管理的专用端口,通过访问这个端口对应的IMM(BMC) IP,可以查看机器硬件状态。
2.1 为什么有四张物理网卡
四张物理网卡,分别是front1,front2,management1,management2,用来实现public 网络访问,以及实施vmware的management。 每个功能对应两张网卡,用来实现冗余性,即一张网卡故障的时候,可以通过另一张网卡正常工作。
2.2 portgroup
vSwitch中,并不是直接将各个port直接连接,而是通过通过端口组进行管理,这些端口组成一个L2的网络,每个端口组分配不同的VLANID。
L2的概念如下:
L2 Switch直接与终端连接。
本节只描述了标准虚拟交换机,这个虚拟交换机作用于一台ESXi主机内部,但是要实现vSphere的更多高级功能,必须要将所有ESXi连接到一个网络,这就需要另一个虚拟交换机,叫做分散虚拟交换机,这个是vSphere得以实现高可用/vSAN等功能的核心。 分散虚拟交换机在后面讲述。
3. 虚拟化网络设计
- 物理网卡上没有IP地址,IP地址在虚拟网卡上(所以虚拟网卡有虚拟Mac地址)。
- 物理网卡不担当任何功能,完全类似于一个网络转接口。
3.1 vSphere中的网络设画面
如下是一个标准虚拟交换机的设定画面,表示了一个ESXi Host内的虚拟网络,左边是下行即虚拟机侧的网络接口,右边是上行即物理网卡,中间当然就是连接它们的虚拟交换机。