数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag

目录

文章目录

  • 目录
  • 前言
  • VEB 技术
    • vSwitch
    • HW VEB
  • 虚拟机流量感知技术
    • EVB
      • VEPA
      • Multi-Channel
    • BPE
      • VN-Tag
  • 参考文档

前言

新一代数据中心的典型特点是从 “物理服务器互联” 转变为 “虚拟机” 互联。虚拟化技术为数据中心带来了服务器整合、业务连续性和弹资源性等优势,也给数据中心带来了新的挑战,即:如何实现针对虚拟机的服务器网络接入技术。

VEB 技术

VEB(Virtual Ethernet Bridge,虚拟以太网交换机)是虚拟机与服务器网络接入层之间的一个新的网络层。解决的是同一服务器中不同虚拟机如何通过同一张物理网卡与外部网络进行通信,以及这些虚拟机之间如何互相通信的问题。最初为通过纯软件方式实现的 vSwitch,后续为了解决性能问题也出现了基于 SR-IOV 网卡的 Hardware-based VEB 实现。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第1张图片

vSwitch

以软件实现的 vSwitch:实现方式简单,技术兼容性好,典型软件有:Open vSwitch、VMware ESXi。

  • VMware ESXi,由 VMM 内嵌的 VEB:
    数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第2张图片

  • Open vSwitch,在服务器上运行的(第三方)VEB:
    数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第3张图片

vSwitch 方案具有以下优点

  • 本地虚拟机之间的报文转发性能好,流量不出卡。
  • 节省接入层物理交换机设备,一张物理网卡支持多个虚拟机。
  • 与外部网络的兼容性好,不需要对外部网络进行改造。

缺点

  • 占用服务器的 CPU 资源。
  • 只能实现简单的 L2 转发。
  • 缺乏网络流量的可视性,例如:端口报文统计、端口流镜像、Net Stream 等,导致虚拟机之间的流量无法被网管系统所监管,另一方面也使得网络发生故障时,难于定位问题原因。
  • 缺乏网络控制策略的实施能力,例如:端口安全,QoS、ACL 等,导致限制了数据中心的端到端网络控制策略的部署能力。
  • 缺乏管理可扩展性,vSwitch 数量剧增,且与外部网络无法进行统一管理。

VEB 的以上这些缺陷,最终导致了计算资源和网络资源的管理界面模糊,继而解决了服务器团队和网络团队的管理定界问题

HW VEB

以硬件实现的 SR-IOV 网卡设备:借助支持 SR-IOV 特性的网卡可以实现基于 HW VEB。HW VEB 的设计思想是:将 vSwitch 的交换功能 offload 到硬件设备,通过网卡硬件改善 vSwitch 占用 CPU 资源而影响虚拟机性能的问题。HW VEB 方案必须采用支持 SR-IOV(Single-Root I/O Virtualization)特性的 PCIe 网卡,否则一张物理网卡无法映射到多个虚拟机上。

  • Intel x710 VEB
    数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第4张图片

在 HW VEB 方案中的 VMM(e.g. ESXi、KVM)只需要实现 SR-IOV 网卡设备的驱动程序(e.g. 资源分配、中断处理等)而不再参与虚拟机与外部网络,以及虚拟机之间的报文转发流程。

  • 对于虚拟机发往外部网络的报文,由虚拟机操作系统的驱动程序直接操作网卡寄存器进行发送;
  • 对于外部网络发往虚拟机的报文,网卡设备根据 dstMAC,将报文放入虚拟机对应的接收队列,虚拟机操作系统的驱动程序再通过 DMA 或中断方式进行接收处理;
  • 对于同一物理服务器中的虚拟机之间的报文转发,网卡通过查讯内部 MAC table(静态配置,通常不支持 MAC 学习)进行转发处理。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第5张图片

基于 SR-IOV 技术的 HW VEB 方案的优点

  • 硬件设备、SR-IOV VF 直通,所以报文转发性能高。

但是,HW VEB 依然存在不能有效解决虚拟机流量可视化、网络策略实施及管理可扩展性等问题,甚至会由于硬件设计、成本等原因还恶化了这些问题。

虚拟机流量感知技术

为了解决 VEB 技术存在的问题:缺乏网络流量的可视性、缺乏网络控制策略的实施能力、 缺乏管理可扩展性,需要反思两点原因:

  1. 虚拟机之间的本地流量不出卡。
  2. 虚拟机在外部网络的流量没有标识信息。

所以,解决问题的办法自然是:

  1. 把虚拟机的网络流量纳入传统网络交换设备的管理之中
  2. 同时还需要对虚拟机的流量做标识。

这就是所谓的虚拟机流量感知技术。对此,思科和惠普两大联盟分别提出了自己的解决方案:

  • 思科和 VMware 主推的是 VN-Tag 技术,标准为 802.1Qbh BPE(Bridge Port Extension,端口扩展设备):尝试从接入层到汇聚层提供一个完整的虚拟化网络解决方案,尽可能达到软件定义一个可控网络的目的。它扩展了传统的网络协议,因此需要新的网络设备支持,成本较高。

  • 惠普、Juniper、IBM、Qlogic、Brocade 主推的是 VEPA(Virtual Ethernet Port Aggregator,虚拟以太端口汇聚器),标准为 802.1Qbg EVB(Edge Virtual Bridging,边缘虚拟交换机):尝试以较低成本利用现有设备改进软件模拟的网络。

EVB

EVB 将 VEPA 作为基本实现方案,将多通道技术(Multi-Channel Technology)作为扩展方案。由于 EVB 要求将所有的虚拟机流量都引向外部的物理交换机,因此与虚拟机相关的流量监管、控制策略和管理可扩展性问题得以解决。但同时也带来了更多网络带宽开销和转发时延的问题。需要注意的是,EVB 的出现并不是完全替换 VEB 方案,但是 EVB 对于需要对虚拟机流量进行感知的场景而言,是一种优选的方案。

VEPA

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第6张图片

上图显示了 VEPA 的基本概念:在服务器中,物理网卡将虚拟端口根据一定的规则进行分组,完成端口分组(Port Group)功能。同时这个网卡设备能够对外抽象出被分为一组的端口,将属于同一组端口的数据一起投递出去,完成端口汇聚功能(Port Aggregation)。

VEPA 的核心思想是:将虚拟机产生的网络流量(包括本地流量和外部流量)全部强制地交由与服务器相连的物理交换机进行处理,然后物理交换机再将数据返回进来,而不再通过本地虚拟交换机来处理。我们知道,传统物理交换机的数据帧是不能从进口出去的,所以需要对物理交换机硬件作修改,允许其绕回。如下图,由 VM1 发往 VM2 或 VM3 的报文,首先被发往外部交换机,查表后,报文沿原路返回服务器,这种工作模式称之为发卡弯(hairpin turn)转发。

NOTE 1:以太网交换机在处理报文转发时,对于从一个端口上收到的报文,不会再将该报文从该端口发回。因此,当使能 VEPA 特性的服务器接入到一个外网交换机上时,该交换机相应端口必须支持上述 “发卡弯” 转发方式。可幸的是,当前大多数交换机的硬件芯片都能支持这种 “发卡弯” 转发特性,只要修改驱动程序即可实现,不必为支持 “发卡弯” 方式而增加新的硬件芯片。

NOTE 2:另一个由 VEPA 技术引起的变化是服务器对从外部网络接收到组播或广播报文的处理方式。由于 VEPA 从物理网卡上收到的报文可能是来自外部交换机的 “发卡弯” 报文,也就是说 srcMAC 可能是服务器上的虚拟机的 MAC 地址,这种报文必须进行过滤处理,以避免发送该报文的虚拟机再次从网络上收到自己发出的组播或广播报文。因此,当前的操作系统或网卡驱动都需要做相应的修改。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第7张图片

相对于 VN-Tag,VEPA 的优点在于:完全基于 IEEE 标准,不需要专用的报文格式,而且容易实现。通常只需要对网卡驱动、VMM 的 Bridge 模块和外部交换机的软件做很小的改动,从而实现低成本方案目标。

与 VEB 类似,VEPA 也同样具有纯软件和基于 SR-IOV 技术的硬件两种实现方式:

  • Intel x710 VEPA
    数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第8张图片

Multi-Channel

在数通网络里,想要标识流量,肯定是要使用特定的字段来做。HP 使用的是 QinQ(802.1ad),在标准 VEPA 的基础上使用 QinQ 的 S-TAG 来标识虚拟机流量,形成了增强型 VEPA,即:802.1Qbg Multi-Channel(多通道技术)。

多通道技术是一种通过给虚拟机报文增加 IEEE 标准报文标签,以增强 VEPA 功能的方案。通过标签机制,可以实现 VEB、Director IO 和 VEPA 的混合部署方案,借助多通道技术,管理员可以根据网络安全、性能以及可管理等方面的需求,灵活的选择虚拟机与外部网络的接入方案(VEB、Director IO 或 VEPA)。多通道技术由 HP 公司提出,最终被 IEEE 802.1 工作组接纳为 EVB 标准的一种可选方案。

多通道技术方案将交换机端口或网卡划分为多个逻辑通道,并且各通道间逻辑隔离。每个逻辑通道可根据用户需要定义成 VEB、VEPA 或 Director IO 的任何一种。每个逻辑通道作为一个独立的到外部网络的通道进行处理。多通道技术借用了 802.1ad S-TAG(QinQ)标准,通过一个附加的 S-TAG 和 VLAN-ID 来区分网卡或交换机端口上划分的不同逻辑通道。

多通道技术使外部物理交换机通过报文的 S-TAG 识别网络流量来自哪个 VEAP/VEB,或来自哪个 Director IO 的网卡。反之亦然。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第9张图片

如上图,多通道技术可组合出多种方案:

  1. 管理员通过多通道技术解决 VEB 与 VEPA 共享一个外部网络(网卡)的需求,多个 VEB 或 VEPA 共享同一个物理网卡。管理员可以为特定的虚拟机使用 VEB,以获得较好的交换性能;也可以为其他虚拟机使用 VEPA,以获得更好的网络控制策略可实施性和流量可视性。

  2. 直接将一个虚拟机映射到物理网卡上(SR-IOV VF Director IO),而其它的虚拟机仍然通过 VEB 或 VEPA 共享物理网卡。

BPE

BPE(Bridge Port Extension,端口扩展设备)是一种功能有限的物理交换机,通常作为一个上行物理交换机的线卡使用。端口扩展技术需要在标准的以太网数据帧中增加一段 TAG,端口扩展设备借助 TAG 中的信息,将端口扩展设备上的物理端口映射成上行物理交换机上的一个虚拟端口,并且使用 TAG 中的信息来实现报文转发和策略控制。当前市场上的端口扩展设备主要由思科的 Nexus 2K 和 Nexus 5K。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第10张图片

BPE 有 VN-Link 和 FEX 两大部分组成。VN-Link 部署在服务器的交换组件上,负责虚拟机的接入,而 FEX 部署在接入层的物理交换机上,负责虚拟机间的互通。两者配合在一起实现了虚拟机的实时感知和分布式接入,接入配置和策略的集中式分发保证了虚拟机的无缝迁移。

图中,Port Extender 向下为 VN-Link 技术,向上为 FEX 技术:

  • VN-Link 由支持 VN-TAG 的网卡实现,如 Cisco UCS 刀片服务器中集成的 Palo,该网卡只负责 VN-TAG 的封装/解封装,不做任何策略相关的工作。
  • FEX 技术由 Cisco 的 N2K/N5K 组合实现,支持以级联方式组网,其中 N5K 负责寻址转发和策略的制定,N2K 则作为 N5K 的远端板卡部署在 TOR 实现分布式接入,N5K 通过 VIC 协议分发给 N2K,实现分布式转发。

VN-TAG 体系将数据中心的接入网络虚拟成了一个大的接入交换机,由 VN-Link 充当网线,由 N2K 充当分布式线卡,N5K 充当主控板,处于任何物理位置的虚拟机都好像连接在这个大的接入交换机上。高带宽、无阻塞和低时延的优良特性使得 N2K/N5K 间网络连接能够与单机内总线相当,保证了分布式接入的性能。在 N5K 上可以基于虚拟机对应的 SVI_ID/DVI_ID 制定 ACL,QoS 和流控等高级接入策略,支持网络策略随虚拟机任意的漂移。

VN-Tag

为了实现端口扩展(Port Extension),思科和 VMware 共同推出了 VN-TAG 标准。其核心思想是:在标准以太网数据帧中增加一段专用的标记 VN-Tag,用以区分不同的 vNIC(虚拟机的虚拟接口),从而识别特定的虚拟机的流量,并且标明了报文的广播域。可见 VN-Tag 技术是思科的一套闭源的全栈方案,VN-Tag 报文格式并不建立在 IEEE 已定义的各种标准之上的。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第11张图片

VN-TAG 将 6 个字节的新字段插入到 VLAN 的前面,这些字节只在 VN-TAG 设备中出现,现有的协议(包括 VLAN 的使用)不会受到任何的影响。其中,DVIF_ID/SVIF_ID 是目的/源虚拟机被分配的唯一标识,各有 12 位,通过 Port Profile 的配置与虚拟机接入端口进行一对一的通道绑定,VN-TAG 物理交换机将根据这个标识来识别虚拟机,实现网络接口虚拟化。其他的标志位用于 FEX 系统中,D 位标识报文的走向,P 位标识报文是否需要复制,L 位标识源主机和目的主机是否连接在同一台物理交换机上,R 位作为保留。

通信流程:服务器中的交换组件不进行 MAC 寻址,它接受源虚拟机的流量,封装好 VN-TAG(标记 SVI_ID),然后直接交给上游的物理交换机,上游的交换机完成 SVI_ID 对源 MAC 地址、VLAN 和入端口的学习,根据目的 MAC 地址标记 DVI_ID,然后转发给目标服务器,目标服务器根据 DVI_ID 进行通道转发,剥掉 VN-TAG 后转发给目标虚拟机。

思科针对 VN-Tag 又推出了名为 Palo 的虚拟服务器网卡,Palo 卡为不同的虚拟机分配并打上 VN-Tag 标签。如下图,上联交换机与服务器之间通过 VN-Tag,使上联交换机能区分不同虚拟机产生的流量,并在物理交换机上生成对应的虚拟接口 vIF(Virtual InterFace),和虚拟机的 vNIC 一一对应起来,这就好像把虚拟机和物理交换机直接对接起来,全部交换工作都在上联交换机上进行,即使是同一个物理服务器内部的不同虚拟机之间的流量交换,也通过上联交换机转发。

数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag_第12张图片

相对于 VEPA,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,该方案的主要目标仍是为了实现端口扩展设备与上行交换机之间的通信标准化。

参考文档

https://wenku.baidu.com/view/fc085465312b3169a551a41d.html
https://www.internet2.edu/presentations/jt2009jul/20090719-congdon.pdf

你可能感兴趣的:(计算机网络)