Haste makes waste

二. 网络虚拟化

Posted on By lijun

1. 虚拟机的网络概要

一台物理服务器上,可以分割出很多虚拟机,如果要与外界网络联通,每个虚拟机上都需要一张网卡,但是物理服务器上网卡是有限的,这时就需要与其他硬件资源如CPU/内存等一样的处理方式,将物理网卡虚拟化。

虚拟化的网卡叫做vNIC,虚拟机的OS将vNIC当作真实的网卡,对其分配IP地址并进行通信。 因为vNIC是虚拟网卡,虚拟机如果要通过vNIC将信息发送给外界的物理网络的话,就需要将vNIC与物理服务器上的物理NIC连接起来。但是因为物理

NIC是有限的,不可能一个vNIC对应一个物理NIC,在ESXi内部也需要一个交换机来管理网络。

如下图1,可以看到ESXi服务器内部,也有类似物理交换机的概念存在,这个就是虚拟交换机。

image

从外往内分别是,物理交换机,ESXi服务器的物理网卡,ESXi内部的虚拟交换机,ESXi内部的虚拟网卡,通过这些物理和虚拟网络设备的连接,将虚拟机与外界的internet进行了互联。

  1. 物理交换机: 提供与物理环境相同的功能,比如划分VLAN
  2. ESXi服务器的物理网卡:在虚拟网络环境中,不提供任何功能
  3. ESXi内部的虚拟交换机: 虚拟网络环境中的核心层,提供IO仿真等重要功能
  4. ESXi内部的虚拟网卡:一般与虚拟机对应,作为VMKernel与虚拟机之间的中介,传输TCP/IP
  5. 最后是各种虚拟机,就是它们提出使用网络设备的要求

2. 虚拟交换机 - 连接虚拟与物理的设备

上面介绍了虚拟机是如何与外界物理设备连接上的,下面介绍虚拟交换机的详细构成。

image

如上图中,虚拟交换机的上行链路端口组内有四个port,连接着四张物理网卡,下行链路上分成两个端口组,第一个端口组是VM公共网络用的端口,

每个VM连接着这样一个端口,第二个portgroup是vmware的Managment用,用于统一管理虚拟机以及实现VSAN,VMotion等特性。

上面的部分是概念图,下面是vsphere webclient中实际的构成图。 左边是下行链路端口组,与上面的概念图对应。

  1. 蓝色是虚拟机使用的端口组,按照虚拟机用途,对虚拟机端口进行了分组,不同的分组有不同的VLANID。
  2. 红色是该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的概念如下:

image

L2 Switch直接与终端连接。

本节只描述了标准虚拟交换机,这个虚拟交换机作用于一台ESXi主机内部,但是要实现vSphere的更多高级功能,必须要将所有ESXi连接到一个网络,这就需要另一个虚拟交换机,叫做分散虚拟交换机,这个是vSphere得以实现高可用/vSAN等功能的核心。 分散虚拟交换机在后面讲述。

3. 虚拟化网络设计

  1. 物理网卡上没有IP地址,IP地址在虚拟网卡上(所以虚拟网卡有虚拟Mac地址)。
  2. 物理网卡不担当任何功能,完全类似于一个网络转接口。

image

3.1 vSphere中的网络设画面

如下是一个标准虚拟交换机的设定画面,表示了一个ESXi Host内的虚拟网络,左边是下行即虚拟机侧的网络接口,右边是上行即物理网卡,中间当然就是连接它们的虚拟交换机。

image