目前在计算虚拟化与网络虚拟化的边界,出现了若干技术体系: 802.1Qbg,802.1Qbh,802.1BR和Cisco VN-Tag,其目的均是为了解决虚拟机与外部虚拟化网络对接、关联和感知的问题。本文在简述这几种技术框架基础上对各自异同进行比较,以使读者能够了解到不同技术的差异。
一、技术简述
表1 各项技术的简要信息
1.802.1Qbg
802.1Qbg在转发上除了兼容传统的vSwitch功能的VEB模式(Virtual Ethernet Bridging),还有另外两种独特模式,VEPA(Virtual Ethernet Port Aggregator,这种模式也称为basic VEPA模式)和Multi-Channel。
VEB模式就是服务器内的vSwitch具备相对全面的网络功能,如图1所示。VEB模式下服务器内部同一VLAN内的VM(Virtual Machine 虚拟机)之间信息交互直接通过vSwitch,而不必经过外部网络。这种模式下服务器内的网络与外部物理网络相对独立,只是标准化连通而已。服务器内部的vSwitch也是一个网元,这种方式极大增加了网络中的网元数量,使得虚拟化环境下网络规模很大。
图1 VEB模式: 网络功能进入服务器
VEPA模式是一种简单修改了VEB功能的模式,如图2所示,VEPA组件从VM接收到数据后,首先将数据转发到上行接口,即外部网络接口上去,如此充分利用外部网络的硬件能力和高级特性。如果是服务器内部同一VLAN内的VM间通信,数据也需要先转发出去,再从网络转发回服务器内寻找对应的目的VM。这种方式简化了服务器的vSwitch功能,并使VEPA与外部网络的硬件处理结合起来,使内外网络相关联,内部网络从逻辑上作为外部端口的扩展器,看起来似乎是外部网络的功能延伸到了服务器内,所有VM对应到一个物理的网络端口。这种方式下对广播/组播的处理相对复杂,数据从网络进入服务器后,由VEPA部件进行广播和组播的复制。
图2 VEPA模式: 服务器内支持部分网络功能
Multi-Channel是一种更加简化的结构,如图3所示,这种架构消除了服务器内的网络特征,而以逻辑通道的形式将VM间接连通到了外部物理网络上。最佳的方式就是一个VM接在一个通道上,每个通道单独终结在物理交换机上,终结点作为交换机的虚拟端口(vPort)。这种模式的广播/组播处理比较集中,如果每个VM连接到一个vPort下,则到多个VM的广播/组播需要由外部物理网络设备复制,将报文复制到各个VM对应的vPort,然后通过各个通道进入服务器,服务器内不需要再对报文进行处理,直接基于通道送给VM。
图3 Multi-Channel模式: 网络功能只在服务器外部
2.802.1Qbh/802.1BR/VN-Tag
802.1Qbh作为DCB数据中心协议族之一,由Cisco提出,目前已经终止,Cisco另外提出了802.1BR协议,两者在细节上有较大差异,但是原理上一致。VN-Tag是Cisco的私有技术,曾经在IEEE提出,经过一段时间讨论后被废除,目前仍在Cisco自己的解决方案中使用。
Cisco提出的这几种技术,都是从网络角度,将网络的功能、逻辑进行延伸,进入服务器并与虚拟化技术连接,在标准化技术里称为PE,Port Extender,在其私有技术实现里称为FE, Fabric Extender。在虚拟化的角度上,PE/FE与802.1Qbg的Multi-Channel功能非常相似,PE/FE作为可扩展部件是可以级联的,并且Cisco也专门定义了这样一个网络设备形态,实际上Multi-Channel 的部件也是可以级联的,但是HP并不强调Multi-Channel部件的实物形态(从网络性能、密度不断增强的角度看,HP认为网络设备无需以一个扩展器出现);所不同的是PE/FE将组播/广播功能进行了性能的优化,如图4所示,PE/FE可以在每一级上逐步进行组播/广播的复制,从而减轻网络端的复制压力,图3的Multi-Channel则是网络端进行组播/广播复制。
图4 802.1Qbh/802.1BR/VN-Tag模式: 部分网络功能回复到服务器内
在虚拟化技术中,对上述所有的VEB(vSwitch)、Multi-Channel、802.1Qbh/802.1BR/VN-Tag部件,通称为ER(Edge Relay)。
二、技术比较
1.报文格式差异
802.1Qbg的VEB/VEPA
802.1Qbg的VEB/VEPA都是正常的802.1Q以太网数据帧格式,如图5所示
图5 以太网数据帧
VEPA本身只是VEB工作模式的一个简单修改,不涉及数据层面的格式修改问题。从技术层面来看,使得已经部署了虚拟化的计算环境可以快速向网络的虚拟化感知能力演进。
802.1Qbg的Multi-Channel
802.1Qbg的Multi-Channel则采用了通用的QinQ数据格式,如图6所示,外层Tag所带的VLAN称为S-VLAN,用于标识虚拟机所连接的本地通道号,此Tag只在交换机物理端口与服务器网卡之间本地有效,进入网络后会被剥离;内层Tag所带VLAN称为C-VLAN,用于标识VM的业务VLAN,在VM提供应用的网络范围内有效,是全局使用的。
图6 Multi-Channel报文
Multi-Channel虽然在服务器内部采用了一种新的数据格式,但是也是一种成熟QinQ技术的新环境应用,对QinQ内容进行新的技术解释,以此简化服务器内的网络结构。
802.1Qbh
802.1Qbh的报文在以太网帧格式中插入了一个E-TAG标记如图7所示,用于标记VM连接的通道和映射到交换机的虚端口。图8则展示了标准中初步定义的E-TAG扩展字段基本内容。
图7 802.1Qbh报文
图8 802.1Qbh中的报文标签
802.1Qbh以明确标出通道(Channel ID)的方式,在数据内容中显式标识数据的源端,并支持数据复制能力,这也是对性能的局部优化。此处需要补充一下,802.1Qbh的数据格式是经过了两个阶段的,以前叫M-Tag,后来才演进到E-TAG方式,两者之间定义有所差异。
802.1BR
802.1BR是802.1Qbh的替代协议,但基本内容有所修改,报文在以太网帧格式中插入了一个E-TAG标记如图9所示,用于标记VM连接的通道和映射到交换机的虚端口,差异处是将802.1Qbh中原来保留的字段进行了明确定义。图10则展示了标准中初步定义的E-TAG扩展字段基本内容。
图9 802.1BR的报文格式
图10 802.1BR中的报文标签
802.1BR与802.1Qbh本身是同一技术,只是将通道属性信息填充到了保留位,前者在通道控制上更灵活。
VN-Tag
VN-Tag是Cisco私有技术,曾经宣称其FE/PE设备能够同时兼容802.1Qbh和802.1BR。如图11所示,报文在以太网帧格式中插入了一个VN-TAG标记,用于标记VM连接的通道和映射到交换机的虚端口。图12则展示了标准中初步定义的E-TAG扩展字段基本内容。
图11 VN-Tag的报文格式
图12 VN-Tag中的报文标签(包含了EtherType)
从VN-Tag与802.1BR/802.1Qbh报文显著的差异来看,两者之间是无法互相解释的,Cisco在产品中说VN-tag的设备会同时兼容802.1Qbh,应该难度较大,一则VN-Tag出来的早,802.1Qbh讨论比较晚(802.1Qbh的报文格式两个阶段也是不同的);,二则802.1Qbh废除后到了802.1BR,格式更加不一样了。
2.转发差异
表1转发差异比较
3.控制协议差异
表2控制协议比较
4.对比小结
从技术模型的比较可看出,802.1BR的功能完全是网络向服务器内的扩展,针对VM的连接、感知并没有定义内容,因此如果在此基础上叠加802.1Qbg VDP协议,并进行一些802.1BR的修改,从技术角度上也是可以支持一定的VM关联感知能力;802.1Qbg和VN-Tag具有比较完善的网络扩展与VM关联感知能力,所不同的是802.1Qbg定义了分工明确的协议,并且由网络部件和服务器内ER部件交互完成,标准化互通方式灵活,而VN-Tag的VIC协议并未定义在网络设备与ER之间,而是管理系统与ER之间,具有较大封闭性。
三、结束语
802.1Qbg当前已经获得主流厂家的支持,如IBM、HP、H3C基本可以提供标准化的方案;802.1BR尚没有产品化,并且在802.1BR的基础上实现VM感知,还是需要使用802.1Qbg的控制协议;VN-Tag在Cisco网络产品上已经实现,其服务器需要使用支持VN-Tag的网卡来与网络配套。
基于标准化技术实现上,各个厂家也会逐步在产品对接上开始互通性工作,包括在虚拟化系统、网卡、网络等的底层设备级,以及管理系统的上层接口级逐步形成完善的交互体系。