目录
前言
数据中心虚拟网络接入技术,即:虚拟机接入到物理网络中所激发的网络虚拟化技术。
VEB 技术
VEB(Virtual Ethernet Bridge,虚拟以太网交换机)是虚拟机与数据中心服务器网络接入层之间的一个新的网络层。常见的有 软件 和 硬件 两种实现方式。
vSwitch
以软件实现的 vSwitch:实现方式简单,技术兼容性好,但也存在着占用 CPU 资源、虚拟机的流量监管、虚拟机的网络策略实施以及 vSwitch 管理的可扩展性等问题。典型软件有:Open vSwitch、VMware ESXi。
-
VMware ESXi,由 VMM 内嵌的 VEB:
-
Open vSwitch,在服务器上运行的(第三方)VEB:
vSwitch 方案具有以下优点:
-
虚拟机间报文转发性能好。vSwitch 实现了虚拟机之间报文的二层软件转发,转发能力只受限于 CPU 性能、内存总线带宽,因此虚拟机间报文的转发性能(带宽、延迟)非常好。
-
节省接入层物理交换机设备。例如,数据中心需要部署 WEB 服务器,且 WEB 服务器网关指向防火墙。这里可将一台服务器虚拟化成多个虚拟机,每个虚拟机作为一个 WEB 服务器,将 vSwitch 作为 WEB 服务器的网络接入层设备,将服务器物理网卡与防火墙端口互联即可完成组网,无需部署物理交换机设备。
-
与外部网络的兼容性好。vSwitch 采用软件实现,对现有网络标准的兼容性好,所以 vSwitch 与外部网络设备不存在互联兼容性问题。
vSwitch 方案也存在缺点:
-
消耗 CPU 资源。虚拟机产生的网络流量越高,则基于软件实现的 vSwitch 就需要占用越多的 CPU 资源用于报文的转发处理,从而减弱了服务器支持更多虚拟机的能力。特别是在虚拟机到外部网络的流量很大时,CPU 的开销会更大。
-
缺乏网络流量的可视性。vSwitch 缺少内部流量监管能力,例如:端口报文统计、端口流镜像、Net Stream 等特性。上述特性的缺失,一方面导致虚拟机之间的流量无法被网管系统所监管,另一方面也使得网络发生故障时,难于定位问题原因。
-
缺乏网络控制策略的实施能力。当前数据中心接入交换机都具有很多实现网络控制策略的特性,例如:端口安全,QoS、ACL 等。而 vSwitch 因顾及到 CPU 开销问题,通常不支持上诉特性。因此限制了数据中心的端到端网络控制策略(如:端到端的 QoS、整网安全部署策略等)的部署能力;
-
缺乏管理可扩展性。随着数据中心虚拟机数量的增加,vSwitch 的数量随之增加,而传统的 vSwitch 必须被单独的配置管理,由此增加了网络的管理工作量。为此,VMware 推出的 DVS(分布式交换机)技术,可以将最多 64 个 vSwitch 作为一个统一的设备进行管理,Open vSwitch 也支持 OpenFlow SDN 的架构。但这些技术也只能有限的改善了管理扩展性问题,并未从根本上解决外部网络管理与 vSwitch 管理的统一性问题。
HW VEB
以硬件实现的 SR-IOV 网卡设备:借助支持 SR-IOV 特性的网卡可以实现基于 HW VEB。
- Intel x710 VEB
HW VEB 的设计思想是:将 vSwitch 的交换功能 offload 到硬件设备,通过网卡硬件改善 vSwitch 占用 CPU 资源而影响虚拟机性能的问题。HW VEB 方案必须采用支持 SR-IOV(Single-Root I/O Virtualization)特性的 PCIe 网卡,否则一张物理网卡无法映射到多个虚拟机上。但是,HW VEB 依然存在不能有效解决虚拟机流量监管、网络策略实施及管理可扩展性等问题。
采用 HW VEB 方案,VMM(e.g. ESXi、KVM)只需要实现 SR-IOV 网卡设备的驱动程序(资源分配、中断处理等)不再参与虚拟机与外部网络,以及虚拟机之间的报文转发流程。对于从虚拟机发往外部网络的报文,由虚拟机操作系统的驱动程序直接操作网卡寄存器进行发送;对于外部网络发往虚拟机的报文,网卡设备根据 dstMAC,将报文放入虚拟机对应的接收队列,虚拟机操作系统的驱动程序再通过 DMA 或中断方式进行接收处理。对于同一物理服务器中的虚拟机之间的报文转发,网卡通过查讯内部 MAC table(静态配置,通常不支持 MAC 学习)进行转发处理。
基于 SR-IOV 技术的 HW VEB 方案的优点:
-
报文转发 offload 到硬件设备,减少了 CPU 占用率、性能高。
-
SR-IOV VF 直通,当虚拟机与外部网络有大量报文流量时,由于虚拟机对 PCIe 设备的直接访问和操作,显著降低了从虚拟机到物理网卡的报文处理延时。
但硬件方案仍然存在着局限性:
- 网络可视性比 vSwitch 更差,SR-IOV 网卡不能解决网络流量监管问题。
- 网络控制策略的实施能力比 vSwitch 更差,很难在网卡上实现基于硬件的网络控制策略(如 QoS、ACL 等)。
- 管理的可扩展性比 vSwitch 更差。
- 硬件实现缺少灵活性,成本高。
虚拟机流量感知技术
在传统的服务器虚拟化方案中,从虚拟机的虚拟网卡发出的数据包在经过服务器的物理网卡传送到外部网络的上联交换机后,虚拟机的标识信息被屏蔽掉了,上联交换机只能感知从某个服务器的物理网卡流出的所有流量而无法感知服务器内某个虚拟机的流量,这样就不能从传统网络设备层面来保证 QoS 和安全隔离。
为了解决 VEB 技术存在的问题:缺乏网络流量的可视性、缺乏网络控制策略的实施能力、 缺乏管理可扩展性。为了清晰的划分虚拟接入和物理接入的界线,继而解决服务器团队和网络团队的管理定界问题。就需要把虚拟机的网络流量纳入传统网络交换设备的管理之中的同时,还需要对虚拟机的流量做标识。
为了解决这个问题,思科和惠普分别提出了自己的解决方案。思科和 VMware 提出的是 VN-Tag 技术,标准为 802.1Qbh BPE(Bridge Port Extension);惠普、IBM 提出的是 VEPA(VirtualEthernet Port Aggregator),标准为 802.1Qbg EVB(Edge Virtual Bridging)。为了制定下一代网络接入的话语权,思科和惠普这两个巨头在各自的方案上都毫不让步。
EVB
标准为 802.1Qbg EVB(Edge Virtual Bridging)将 VEPA(Virtual Ethernet Port Aggregator,虚拟以太端口汇聚器)作为基本实现方案,同时还定义了 VEB、VEPA 和 SR-IOV Director IO 的混合实现方案,即:多通道技术(Multichannel Technology)。
与 VEB 类似,EVB 也具有软件实现和基于 SR-IOV 技术的硬件实现两种方式。由于将所有流量都引向外部交换机,因此与虚拟机相关的流量监管、控制策略和管理可扩展性问题得以很好的解决。但是,由于流量被从虚拟机上引入到外部网络,EVB 技术也带来了更多网络带宽开销的问题。例如,从一个虚拟机到另一个虚拟机的报文,占用的网络带宽是传统方式的两倍,其中一半带宽用于从源虚拟机向外网交换机传输,另一半带宽用于从外部交换机向目的虚拟机传输。EVB 的出现并不是完全替换 VEB 方案,但是 EVB 对于流量监管能力、安全策略部署能力要求较高的场景(如数据中心)而言,是一种优选的技术方案。
以太网交换机在处理报文转发时,对于从一个端口上收到的报文,不会再将该报文从该端口发回。因此,当使能 EVB 特性的服务器接入到一个外网交换机上时,该交换机相应端口必须支持上述 “发卡弯” 转发方式。当前大多数交换机的硬件芯片都能支持这种“发卡弯”转发特性,只要修改驱动程序即可实现,不必为支持 “发卡弯” 方式而增加新的硬件芯片。
另一个由 EVB 技术引起的变化是服务器对从外部网络接收到组播或广播报文的处理方式。由于 EVB 从物理网卡上收到的报文可能是来自外部交换机的 “发卡弯” 报文,也就是说报文源 MAC 是虚拟化服务器上的虚拟机 MAC,这种报文必须进行过滤处理,以避免发送该报文的虚拟机再次从网络上收到自己发出的组播或广播报文。因此,当前的操作系统或网卡驱动都需要做相应的修改。
EVB 标准有如下的技术特点:
-
借助 “发卡弯” 转发机制将外网交换机上的众多网络控制策略和流量监管特性引入到虚拟机网络接入层,简化了网卡的设计,减少了虚拟网络转发对 CPU 的开销;
-
使用外部交换机上的控制策略特性(如:ACL、QoS、端口安全等)实现整网端到端的策略统一部署;
-
使用外部交换机增强虚拟机的流量监管能力,如各种端口流量统计、Net Stream、端口镜像等。
EVB 定义了两种报文转发方案:VEPA(Virtual Ethernet Port Aggregator)和多通道(Multichannel Technology)。
VEPA
VEPA 的核心思想是:将虚拟机产生的网络流量全部交由与服务器相连的物理交换机进行处理,将同一台服务器上的两台虚拟机机之间的流量交互不再通过本地虚拟交换机来处理,而是被强制发往到外部物理交换机上,然后物理交换机再将数据返回进来。我们知道,传统物理交换机的数据帧是不能从进口出去的,所以需要对物理交换机硬件作修改,允许其绕回。
如下图,由 VM1 发往 VM2 或 VM3 的报文,首先被发往外部交换机,查表后,报文沿原路返回服务器,这种工作模式称之为发卡弯(hairpin turn)转发。
VEPA 的优点很明显,可以减少服务器的 CPU 资源损耗,在物理交换机上实现统一的流量,安全的控制管理。VEPA 方式不仅借助物理交换机解决了虚拟机间流量转发,同时还实现了对虚拟机流量的监管,并且将虚拟机接入层网络纳入到传统服务器接入网络管理体系中。但其缺点也很明显,就是本地虚拟机的流量路径变长了,浪费了网络带宽还增加了数据延迟。
VEPA 的实现是基于现在的IEEE标准,不必为报文增加新的二层标签,只要对 VMM 软件和交换机的软件升级就可支持 VEPA 的 “发卡弯” 转发。VEPA 方案可以采用纯软件方式实现,也能够通过支持 SR-IOV 的网卡实现硬件 VEPA。其实,只要是 VEB 能安装和部署的地方,就都能用 VEPA 来实现,但 VEB 与 VEPA 各有所长,并不存在替代关系。VEPA 的优点在于,完全基于 IEEE 标准,没有专用的报文格式。而且容易实现,通常只需要对网卡驱动、VMM 桥模块和外部交换机的软件做很小的改动,从而实现低成本方案目标。
多通道技术(Multichannel Technology)
VEPA 是 EVB 标准定义的基本实现方案,该方案不需要对虚拟机发出的以太网报文做改动即可实现“发卡弯”转发。多通道技术则定义了通过标签机制实现 VEB、Director IO 和 VEPA 的混合部署方案,借助多通道技术,管理员可以根据网络安全、性能以及可管理等方面的需求,来选择虚拟机与外部网络的接入方案(VEB、Director IO 或 VEPA)。
多通道技术是通过给虚拟机报文增加 IEEE 标准报文标签,以增强 VEPA 功能的一种方案,由 HP 公司提出,最终被 IEEE 802.1 工作组接纳为 EVB 标准的一种可选方案。
多通道技术方案将交换机端口或网卡划分为多个逻辑通道,并且各通道间逻辑隔离。每个逻辑通道可根据用户需要定义成 VEB、VEPA 或 Director IO 的任何一种。每个逻辑通道作为一个独立的到外部网络的通道进行处理。多通道技术借用了 802.1ad S-TAG(QinQ)标准,通过一个附加的 S-TAG 和 VLAN-ID 来区分网卡或交换机端口上划分的不同逻辑通道。
多通道技术可组合出多种方案:
-
多个 VEB 或 VEPA 共享同一个物理网卡。管理员可能需要特定虚拟机使用 VEB,以获得较好的交换性能;也可能需要其他的应用使用 VEPA,以获得更好的网络控制策略可实施性和流量可视性,并要求上述使用 VEB 或 VEPA 的虚拟机同时部署在一个物理服务器上。对于这些情况,管理员通过多通道技术即可解决 VEB 与 VEPA 共享一个外部网络(网卡)的需求。
-
直接将一个虚拟机映射到物理网卡上(Director IO),而其它的虚拟机仍然通过 VEB 或 VEPA 共享物理网卡。传统的 VMM 软件都能支持直接将虚拟机映射到物理网卡上,但这个虚拟机将独占这个物理网卡,由此造成网络资源的浪费。多通道技术使外部物理交换机通过报文的 S-TAG 识别网络流量来自哪个 VEAP/VEB,或来自哪个直接映射的网卡。反之亦然。
BPE
BPE(Bridge Port Extension,端口扩展设备)是一种功能有限的物理交换机,通常作为一个上行物理交换机的线卡使用。端口扩展技术需要为以太网报文增加 TAG,而端口扩展设备借助报文 TAG 中的信息,将端口扩展设备上的物理端口映射成上行物理交换机上的一个虚拟端口,并且使用 TAG 中的信息来实现报文转发和策略控制。当前市场上已有端口扩展设备,如 Cisco 的 Nexus 2K 就是 Nexus 5K 的端口扩展器。
VN-Tag
VN-TAG 是 Cisco 为实现端口扩展而定义的一种私有以太网报文标签格式,这种报文格式不是建立在 IEEE 已定义的各种标准之上。VN-TAG 为报文定义了虚拟机源和目的端口,并且标明了报文的广播域。VN-TAG 的核心思想是:在标准以太网数据帧中为虚拟机定制增加一段专用的标记 VN-Tag,用以区分不同的 vNIC(虚拟机的虚拟接口),从而识别特定的虚拟机的流量。思科针对 VN-Tag 又推出了名为 Palo 的虚拟服务器网卡,Palo 卡为不同的虚拟机分配并打上 VN-Tag 标签。如下图,上联交换机与服务器之间通过 VN-Tag,使上联交换机能区分不同虚拟机产生的流量,并在物理交换机上生成对应的虚拟接口 vIF(Virtual InterFace),和虚拟机的 vNIC 一一对应起来,这就好像把虚拟机和物理交换机直接对接起来,全部交换工作都在上联交换机上进行,即使是同一个物理服务器内部的不同虚拟机之间的流量交换,也通过上联交换机转发。
借助支持 VN-TAG 技术的 vSwitch 和网卡,也能够实现类似 EVB 多通道的方案,但是 VN-TAG 技术有一些缺点:
-
VN-TAG 是一种新提出的标签格式,没有沿用现有的标准(如 IEEE 802.1Q、 IEEE 802.1ad、IEEE 802.1X tags)。
-
必须要改变交换机和网卡的硬件,而不能只是简单的对现有的网络设备软件进行升级。也就是说,VN-TAG 的使用需要部署支持 VN-TAG 的新网络产品(网卡、交换机、软件)。
最初 IEEE 802.1 工作组曾考虑将 “端口扩展” 作为 EVB 标准的一部分,但是最终决定将端口扩展发展成一个独立的标准,即 802.1 Bridge Port Extension。Cisco 曾向 IEEE 802.1Q 工作组建议,将其私有的 VN-TAG 技术作为实现 EVB 的一种可选方案,但工作组最终没有接纳这个提案。Cisco 后来修改了 VN-TAG 技术草案,修改后的草案称为 M-TAG,该方案的主要目标仍是为了实现端口扩展设备与上行交换机之间的通信标准化。
来源:oschina
链接:https://my.oschina.net/u/4347922/blog/4312110