最后更新2021/08/12
VIO Server在此完全实现了一个标准的以太网交换机的功能,现在业界都有了高大上的名称:SDN(Software Defined Network),如果没有足够的网络知识(幸好只是网络链路层),很难真正了解VIO虚拟以太网的内部原理。当然,参照标准配置去实现还是非常容易的,但是在故障面前就会力不从心,因此建议读者能够了解一些基本的网络概念,同时在本节的说明过程,作者也会对重要概念增加额外说明。
在VIO虚拟以太网实施中,有一些网络技术本质上与VIO实现无关,但在虚拟化系统整体设计时会考虑到,例如EtherChannel、Link Aggregation、NIB等等,我们将在<4.2.4虚拟网络系统>讨论,此处只分析VIO虚拟网络系统直接相关的技术。
VIO Server在虚拟以太网架构中都做了什么?简单地说,它实现了以太网桥接功能,也就是转发以太网数据帧的功能:从一边收到的数据帧进行简单的处理,从另一边发送出去。由于VIO的数据处理过程实在简单,只按照需要增、删数据帧的Tag(标记),因此在处理过程中并不需要太多的CPU资源,而且增加的网络延时不大。但是与采用专用硬件ASIC芯片的网络交换机及有大量专用内存做缓存的高端路由器相比,VIO延时是实实在在存在的,特别是当连接高带宽、长距离传输的以太网时,延时的负面影响被放大,性能变得比较差,需要进行一些参数调整以满足特定的网络情况。
下面我们先了解一下以太网Tag Vlan技术。
图 3-14 交换机VLAN Trunk
如<图 3-14交换机VLAN Trunk>所示,网络设备可以实现跨交换机的VLAN,也就是属于VLAN1的数据帧只能转发给VLAN1对应的端口,VLAN2的数据帧只能转发给VLAN2对应的端口。数据帧跨越交换机时,有两种情况,<图 3-14交换机VLAN Trunk>中左侧系统多个VLAN的数据帧会通过同一交换机端口转发,交换机必须能够识别数据帧所属的VLAN,而右侧系统则不需要如此,因为不同VLAN的数据帧不会混合,所以网络设备无需进行识别工作,只需要设置固定的端口模式VLAN就可以。
网络设备使用VLAN Tagging(VLAN标记)技术来识别数据帧所属的VLAN,也就是数据帧自身需要包含所属VLAN的标记位。VLAN Tagging的标记插接在以太网数据帧之中,其中VLAN标识被称为VLAN ID(或简称VID,为了明确含义,在后续的说明中,作者依然使用VLAN ID的全称),如<图 3-15 以太网数据帧VLAN Tagging>所示。数据帧中标记VLAN的数据共12位,可以表示2^12-1=4095个VLAN(因此VIO支持最多4094个VLAN,还有一个0号留做他用)。
图 3-15 以太网数据帧VLAN Tagging
VIO进行数据帧转发时进行VLAN ID识别、VLAN ID增、删处理,处理方式与数据帧VLAN ID数值以及VIO Server虚拟以太网卡的设置有关。虚拟网卡设置有4个重要参数影响到VIO对数据帧的转发,参考<图 3-16 VIO虚拟以太网卡设置图>。
- 必须选择Access external network,否则VIO Server根本不会进行数据帧转发,也就不可能实现沟通物理网络和虚拟网络的功能,也只有VIO Server设定的虚拟以太网卡才有此选项,普通AIX分区上设定虚拟以太网卡时根本没有该选项。在本书中,选择了此选项的虚拟以太网卡又被称为虚拟服务以太网卡或者服务端虚拟以太网卡,否则被称为客户端虚拟以太网卡。
- 选择IEEE 802.1q compatible adapter才能让此虚拟以太网卡同时支持多个VLAN。
- VLAN ID(图中箭头所示),此项设置的ID是Default VLAN ID或者被称为Port VLAN ID / PVID,不同于其他设置,稍后要进一步解释。
- Additional VLAN ID,此项是此虚拟以太网卡支持的所有VLAN标记,增加的方式是依次输入New VLAN ID,并点击Add按钮,新VLAN就添加到其中,可以点击右侧的下拉钮查看,也可以选择特定的ID后点击右侧的Remove钮删除。
图 3-16 VIO虚拟以太网卡设置
VIO进行数据帧转发时进行VLAN ID识别、VLAN ID增、删处理,处理方式与数据帧VLAN ID数值有关。根据数据帧VLAN ID的类型,可以分为无VLAN ID、不符合任何配置的VLAN ID、符合Default(缺省)VLAN ID、符合其他VLAN ID四种情况,VIO将对其分别采用不同的处理策略。