CN110661690A - 用于发夹式传输网络业务的技术 - Google Patents

用于发夹式传输网络业务的技术 Download PDF

Info

Publication number
CN110661690A
CN110661690A CN201910451623.3A CN201910451623A CN110661690A CN 110661690 A CN110661690 A CN 110661690A CN 201910451623 A CN201910451623 A CN 201910451623A CN 110661690 A CN110661690 A CN 110661690A
Authority
CN
China
Prior art keywords
agent
network packet
vepa
virtual machine
hairpin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910451623.3A
Other languages
English (en)
Inventor
D·斯基德莫尔
J·海伊
A·S·贾殷
P·萨兰甘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN110661690A publication Critical patent/CN110661690A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/4616LAN interconnection over a LAN backbone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/65Re-configuration of fast packet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于发夹式传输网络业务的技术包括具有网络接口控制器(NIC)的计算设备,该NIC被配置为通过NIC的介质访问控制(MAC)的虚拟以太网端口聚合器(VEPA)代理接收来自虚拟机(VM)的网络分组。VEPA代理被配置为将接收到的网络分组发送到部署在NIC的加速器设备上的代理,并且该代理被配置为将接收到的网络分组转发到加速器设备的虚拟以太网桥(VEB)发夹式传输代理。VEB发夹式传输代理被配置为:确定网络分组的目标目的地是否对应于另一VM,将接收到的网络分组返回到部署在加速器设备上的代理。该代理还被配置为将接收到的网络分组转发到VEPA代理,VEPA代理还被配置为将接收到的网络分组发送到该另一VM。

Description

用于发夹式传输网络业务的技术
背景技术
现代计算设备已经变成用于个人、商业和社交用途的普遍存在的工具。因此,许多现代计算设备能够连接到各种数据网络(包括互联网),以便以不同的速率通过各种数据网络发送和接收数据通信。为了促进计算设备之间的通信,数据网络典型地包括一个或多个网络计算设备(例如,计算服务器、存储服务器等),以(例如,经由交换机、路由器等)路由进入/离开网络的通信(例如,北-南网络业务)以及在网络中的网络计算设备之间的通信(例如,东-西网络业务)。在某些情况下,网络业务可以由相同的计算设备生成,该计算设备旨在接收生成的网络业务。通常地,这种情况是由于在管理程序中的虚拟切换环境与物理切换基础设施的第一层之间的交互而发生的。
为了促进这种通信,已经开发了各种边缘虚拟桥接技术,使得网络业务被发夹式传输(hairpin)回到源计算设备(即,网络业务进行U形转弯并且以与其到来相同的方式返回)。在一个示例中,虚拟以太网桥(VEB)技术可以采用虚拟交换机或者嵌入在介质访问控制(MAC)子层处的硬件中以发夹式传输网络业务。然而,由于发夹式传输在MAC层被执行(即,在到达具有卸载操作能力的组件之前),VEB实现方式典型地缺少卸载能力(例如,网络管理、监视、安全性等)。为了解决这样的缺点,已经开发了虚拟以太网端口聚合器(VEPA)技术。然而,VEPA技术使用相邻的外部网络交换机来提供桥接支持,这要求网络业务离开源计算设备,从而导致延迟以及浪费的带宽。此外,这样的解决方案可能不会在所有网络交换机(例如,通常在大型云实现方式中使用的机架顶部(ToR)交换机)上得到支持。
附图说明
本文描述的概念在附图中通过示例而非限制的方式示出。为了说明的简洁和清楚,附图中示出的元素不一定按比例绘制。在认为合适的情况下,在附图中重复附图标记以指示对应的或类似的元素。
图1是用于发夹式传输网络业务的系统的至少一个实施例的简化框图;
图2是图1的系统的网络计算设备的至少一个实施例的简化框图;
图3是示出图1的系统的网络计算设备发夹式传输在图1和图2中的网络计算设备本地的网络业务的至少一个实施例的简化框图;以及
图4是用于在图1-3的网络计算设备的源虚拟机与目标虚拟机之间发夹式传输网络分组的至少一个实施例的简化通信流程图。
具体实施方式
虽然本公开的概念易受各种修改和替代形式的影响,但是本公开的具体实施例已经在附图中通过示例的方式示出并且将在本文中详细描述。然而,应该理解的是,不旨在将本公开的概念限制于公开的特定形式,相反,意图是涵盖与本公开以及所附权利要求书一致的所有修改、等效物和替代。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以包括或可以不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代同一实施例。另外地,当结合实施例描述特定的特征、结构或特性时,认为结合其他实施例(无论是否明确地描述)来实现这种特征、结构或特性在本领域技术人员的知识范围内。另外地,应该认识到的是,以“A,B和C中的至少一个”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或者(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或者(A,B和C)。
在一些情况下,公开的实施例可以以硬件、固件、软件或其任何组合来实现。公开的实施例还可以实现为由一种或多种暂时性或非暂时性机器可读(例如,计算机可读)存储介质执行的指令,或存储在一种或多种暂时性或非暂时性机器可读存储介质上的指令,该指令可以由一个或多个处理器读取并执行。机器可读存储介质可以体现为用于以机器可读的形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,可以以特定布置和/或排序示出一些结构或方法特征。然而,应该认识到的是,这种特定布置和/或排序可能是不要求的。相反,在一些实施例中,可以以不同于说明性附图中所示的方式和/或顺序来布置这些特征。另外地,在特定附图中包括结构或方法特征并不意味着暗示在所有实施例中都要求这些特征,并且在一些实施例中,可以不包括这些特征或者这些特征可以与其他特征组合。
现在参考图1,在说明性实施例中,用于发夹式传输网络业务的系统100包括通信地耦合到多个网络计算设备106的交换机104(例如,在云环境、数据中心等中)。交换机104被配置为接收源自网络102外部的网络分组,通常称为北-南网络业务。交换机104被另外地配置为将业务路由到其他网络计算设备106(其可以直接地耦合到交换机104或者经由另一个交换机104间接地耦合),通常称为东-西网络业务。如在说明性系统100中所示,网络计算设备106包括指定为网络计算设备(1)106a的第一网络计算设备106,指定为网络计算设备(2)106b的第二网络计算设备106,以及指定为网络计算设备(N)106c的第三网络计算设备106(例如,其中网络计算设备(N)106c代表“第N个”网络计算设备106并且“N”是正整数)。应该认识到的是,虽然仅说明性地示出了单个交换机104,但是在其他实施例中可以采用多个交换机104。
在接收到网络分组时,交换机104被配置为识别将接收到的网络分组转发到哪个网络计算设备106。由交换机104执行的路由决策逻辑可以基于将要对网络分组(例如,数据处理服务)执行的一个或多个操作,或者将要响应于已经接收到网络分组而采取的一个或多个操作(例如,基于网络分组的查询参数来查找数据,将数据存储在网络分组的有效负荷中等)。通常地,一旦网络分组已经由一个网络计算设备106接收,则一个或多个操作可以由多个网络计算设备106和/或在一个或多个虚拟机(VM)上执行的多个客体(例如,客体操作系统)来执行,该一个或多个虚拟机部署在网络计算设备106中的一个网络计算设备上。
在其中网络业务将被路由到其源(本文称为被发夹式传输)的这样的实施例中(例如,在部署在相同网络计算设备106上的VM之间传输)网络计算设备106被配置为在内部路由这样的网络业务,同时仍然支持卸载功能。为此,与当前解决方案(例如,在介质访问控制(MAC)子层处采用虚拟交换机(例如,虚拟以太网桥(VEB))来发夹式传输这样的网络业务的那些解决方案,其本身不支持卸载功能)不同,网络计算设备106被配置为在MAC层处采用虚拟以太网端口聚合器(VEPA)技术。应该认识到的是,在虚拟服务器环境中,提供VM切换连接的一种方式是经由VEB软件,该VEB软件被配置为类似于提供入站/出站以及VM间通信的第2层(即,开放系统互连(OSI)模型的第2层)硬件交换机来起作用。还应该认识到的是,典型地,VEB是不可见且不可配置的。VEPA技术(例如,标准模式VEPA、多信道VEPA等)被配置为针对任何类型的VM提供一致的网络控制和监视。
另外地,网络计算设备106被配置为在加速器设备(例如,参见图3的加速器设备310)上部署发夹式传输代理(例如,参见图3的VEB发夹式传输代理314)来执行网络业务发夹式传输。因此,进一步与当前解决方案(例如,要求通过相邻的外部网络交换机(例如,交换机106)路由网络业务以发夹式传输这种网络业务的那些现有解决方案(例如,VEPA))不同,这种网络业务不需要被发送到网络计算设备106的外部的设备,并且仍然支持卸载功能。
网络计算设备106可以体现为能够执行本文所描述的功能的任何类型的计算设备或计算机设备,包括但不限于服务器(包括例如独立服务器、机架安装式服务器、刀片服务器等)、托架(例如,计算托架、加速器托架、存储托架、存储器托架等)、增强型网络接口控制器(NIC)(例如,主机结构接口(HFI))、分布式计算系统或者能够执行本文所描述的功能的(多个)计算/存储设备的任何其他组合。现在参考图2,说明性网络计算设备106包括计算引擎200、I/O子系统206、一个或多个数据存储设备208、通信电路210,并且在一些实施例中,包括一个或多个外围设备214。应该认识到的是,在其他实施例中,网络计算设备106可以包括其他组件或附加组件,例如,在典型计算设备中常见的那些组件(例如,各种输入/输出设备和/或其他组件)。另外地,在一些实施例中,说明性组件中的一个或多个组件可以并入另一组件,或以其他方式形成另一组件的一部分。
计算引擎200可以体现为能够执行如本文所描述的各种计算功能的任何类型的设备或设备的集合。在一些实施例中,计算引擎200可以体现为单个设备,例如,集成电路、嵌入式系统、现场可编程门阵列(FPGA)、片上系统(SOC)、专用集成电路(ASIC)、可重新配置硬件或硬件电路,或者促进执行本文所描述的功能的其他专用硬件。另外地,在一些实施例中,计算引擎200可以包括或者可以体现为一个或多个处理器202(即,一个或多个中央处理单元(CPU))和存储器204。
(多个)处理器202可以体现为能够执行本文所描述的功能的任何类型的处理器。例如,(多个)处理器202可以体现为一个或多个单核心处理器、一个或多个多核心处理器、数字信号处理器、微控制器或其他处理器或(多个)处理/控制电路。在一些实施例中,(多个)处理器202可以体现为以下各项,包括以下各项或者以其他方式耦合到以下各项:FPGA(例如,可重新配置电路)、ASIC、可重新配置硬件或硬件电路,或者促进执行本文所描述的功能的其他专用硬件。
存储器204可以体现为能够执行本文所描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。应该认识到的是,存储器204可以包括主存储器(即,主要存储器)和/或高速缓冲存储器(即,可以比主存储器更快地存取的存储器)。易失性存储器可以是要求电力以维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(RAM),例如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。
计算引擎200经由I/O子系统206通信地耦合到网络计算设备106的其他组件,I/O子系统206可以体现为促进与处理器202、存储器204以及网络计算设备106的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统206可以体现为或以其他方式包括存储器控制器中心、输入/输出控制中心、集成传感器中心、固件设备、通信链路(例如,点对点链路、总线链路、电线、光缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统206可以形成片上系统(SoC)的一部分,并且可以连同处理器202、存储器204和网络计算设备106的其他组件中的一个或多个一起并入到单个集成电路芯片上。
一个或多个数据存储设备208可以体现为任何类型的(多个)存储设备,该存储设备被配置为用于数据的短期或长期存储,例如,存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其他数据存储设备。每个数据存储设备208可以包括存储用于数据存储设备208的数据和固件代码的系统分区。每个数据存储设备208还可以包括存储用于操作系统的数据文件和可执行文件的操作系统分区。
通信电路210可以体现为能够实现在网络计算设备106与交换机104以及任何网络通信使能设备(例如,接入点、路由器等)之间的通信的任何通信电路、设备或其集合,以允许去往/来自网络计算设备106的通信。因此,通信电路210可以被配置为使用任何一种或多种通信技术(例如,无线或有线通信技术)和相关联的协议(例如,以太网、
Figure BDA0002075319110000061
WiMAX、LTE、5G等)来实现这种通信。应该认识到的是,在一些实施例中,通信电路210可以包括专用电路、硬件或其组合,以执行用于执行本文所描述的功能(包括处理网络分组、做出路由决策、执行计算功能等)的流水线逻辑(例如,基于硬件的算法)。
在一些实施例中,对如本文所描述的通信电路210的功能中的一个或多个功能的执行可以由通信电路210的专用电路、硬件或其组合来执行,通信电路210可以体现为片上系统(SoC)或以其他方式形成网络计算设备106的SoC的一部分(例如,连同处理器202、存储器204和/或网络计算设备106的其他组件一起并入到单个集成电路芯片上)。可替代地,在一些实施例中,专用电路、硬件或其组合可以体现为网络计算设备106的一个或多个分立处理单元,一个或多个分立处理单元中的每个分立处理单元能够执行本文所描述的功能中的一个或多个功能。
说明性通信电路210包括网络接口控制器(NIC)212,在一些实施例(例如,高性能计算(HPC)环境)中通常还称为主机结构接口(HFI)。NIC 212可以体现为一个或多个插件板、子卡、网络接口卡、控制器芯片、芯片组或者可以由网络计算设备106使用的其他设备。在一些实施例中,NIC 212可以体现为包括一个或多个处理器的片上系统(SoC)的一部分,或者包括在还包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 212可以包括未示出的其他组件,例如,本地处理器、加速器设备(例如,任何类型的专用硬件,在其上可以比可能在本地通用处理器上执行的更快和/或更高效地执行操作)和/或在NIC 212本地的本地存储器。在这样的实施例中,NIC 212的本地处理器和/或加速器设备能够执行本文所描述的功能中的一个或多个功能。
一个或多个外围设备214可以包括可用于将信息输入到网络计算设备106中和/或从网络计算设备106接收信息的任何类型的设备。外围设备214可以体现为可用于将信息输入到网络计算设备106中的任何辅助设备(例如,键盘、鼠标、麦克风、条形码读取器、图像扫描仪等),或者可用于输出来自网络计算设备106的信息的任何辅助设备(例如,显示器、扬声器、图形电路、打印机、投影仪等)。应该认识到的是,在一些实施例中,外围设备214中的一个或多个可以用作输入设备和输出设备两者(例如,触摸屏显示器、显示屏顶部的数字转换器等)。还应该认识到的是,连接到网络计算设备106的外围设备214的类型可以取决于例如网络计算设备106的类型和/或预期用途。另外地或可替代地,在一些实施例中,外围设备214可以包括一个或多个端口,例如,USB端口,其用于例如将外部外围设备连接到网络计算设备106。
参考回到图1,交换机104可以体现为任何类型的交换机,例如,分解交换机、机架安装式交换机、独立交换机、完全管理交换机、部分管理交换机、全双工交换机和/或半双工通信模式使能的交换机。交换机104可以作为机架顶部(ToR)交换机、机架末端(EoR)交换机、机架中部(MoR)交换机放置,或者放置在任何位置,其中交换机104可以被配置为执行本文所描述的功能。例如,在一些实施例中,交换机104可以被配置为受管理的智能交换机,该受管理的智能交换机包括一组管理特征,例如,交换机104要执行如本文所描述的功能可能要求的管理特征。
网络102可以体现为任何类型的有线或无线通信网络,包括但不限于无线局域网(WLAN)、无线个域网(WPAN)、边缘网络(例如,多址边缘计算网络)、雾网络、蜂窝网络(例如,全球移动通信系统(GSM)、长期演进(LTE)、5G等)、电话网络、数字订户线(DSL)网络、光缆网络、局域网(LAN)、广域网(WAN)、全球网络(例如,互联网)或其任何组合。应该认识到的是,在这样的实施例中,网络102可以用作集中式网络,并且在一些实施例中,网络102可以通信地耦合到另一网络(例如,互联网)。因此,网络102可以根据需要包括各种其他虚拟和/或物理网络计算设备(例如,路由器、交换机、网络中心、服务器、存储设备、计算设备等)以促进通过网络102对网络业务的传输。
现在参考图3,在说明性实施例中,网络计算设备106建立环境300用于在操作期间发夹式传输在网络计算设备106本地的网络业务。说明性环境300包括VM 302、驱动器304和网络业务入口/出口管理器320以及图2的NIC 212。环境300的各种组件可以体现为硬件、固件、软件或其组合。应该认识到的是,在这样的实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。此外,在一些实施例中,环境300中的组件中的一个或多个组件可以体现为虚拟化硬件组件或模拟架构,其可以由计算引擎300或设备边缘网络计算设备104的其他组件建立并维护。应该认识到的是,设备边缘网络计算设备104可以包括其他组件、子组件、模块、子模块、逻辑、子逻辑和/或在计算设备中常见的设备,为了描述的清楚起见未在图3中示出。
说明性虚拟机302包括被指定为VM(1)302a的第一VM 302和被指定为VM 302b的第二VM 302,这些VM中的每个VM被配置为执行某些操作或服务。应该认识到的是,虽然说明性VM 302仅包括两个VM 302,但是在其他实施例中,网络计算设备106可以包括多个附加的VM320。虽然说明性地示出为VM 302,但是在其他实施例中,除了VM 302之外或作为VM 302的替代,网络计算设备106可以包括多个容器。驱动器304可以体现为能够执行本文所描述的功能(包括管理VEB发夹式传输代理314的操作配置)的任何类型的设备驱动器。应该认识到的是,与当前技术(其中VEB代理由MAC层处的驱动器配置)不同,驱动器304被配置为以VEPA模式操作并且管理在加速器设备310本地的VEB发夹式传输代理314的配置。
说明性NIC 212包括具有VEPA代理308的MAC 306以及加速器设备310。MAC 306可以体现为能够在MAC子层处执行本文所描述的功能的任何类型的软件、硬件、固件或其任何组合(例如,MAC电路306)。VEPA代理308被配置为执行与在MAC层处的典型VEPA操作一致的VEPA相关路由功能。说明性加速器设备310包括代理312和VEB发夹式传输代理314。加速器设备310可以体现为任何类型的专用硬件,在该专用硬件上可以比可能在更通用的处理器上执行的更快和/或更高效地执行操作。例如,加速器设备310可以体现为但不限于FPGA、ASIC或其他专用电路。然而,应该认识到的是,在替代实施例中,VEB发夹式传输代理314可以在通用处理器上执行,该通用处理器能够执行在用于处理东-西网络业务的线卸载解决方案中的任何突起(bump)。
代理312被配置为用作VEPA代理308与VEB发夹式传输代理314之间的接合代理(即,与针对北-南网络业务表现出的行为一致)。因此,代理312被配置为在入口方向和出口方向两者上执行。VEB发夹式传输代理314被配置为将适用的网络业务返回到VEPA代理308(即,经由代理312)。为此,VEB发夹式传输代理314被配置为跟踪VM 302的标识数据,使得VEB发夹式传输代理314可以确定哪个网络业务将被发夹式传输。在一些实施例中,标识数据可以存储在路由数据中。
如先前描述的,环境300的各种组件可以体现为硬件、固件、软件或其组合。因此,在一些实施例中,VEPA代理308、代理312、VEB发夹式传输代理314和网络业务入口/出口管理器320中的一个或多个可以体现为电路或电子设备的集合(例如,VEPA代理电路308、加速器设备代理电路312、VEB发夹式传输代理电路314、网络业务入口/出口管理电路320等)。应该认识到的是,在这样的实施例中,VEPA代理电路308、加速器设备代理电路312、VEB发夹式传输代理电路314和网络业务入口/出口管理电路320中的一个或多个可以形成以下各项中的一个或多个的一部分:计算引擎200(或者更具体地,计算引擎200中的处理器202(即,核心))、I/O子系统206、通信电路210(或者更具体地,如说明性示出的NIC 212)和/或网络计算设备106的其他组件。
在说明性环境300中,网络计算设备106另外地包括用于存储路由信息的路由数据316和用于存储与VM 302对应的数据的VM数据318(例如,配置信息、相关联的互联网协议(IP)地址等),路由数据316和VM数据318中的每个可以由网络计算设备106的各种组件和/或子组件访问。另外地,应该认识到的是,在一些实施例中,存储在路由数据316和VM数据318中的每一个中的数据或以其他方式由路由数据316和VM数据318中的每一个表示的数据可以彼此不相互排斥。例如,在一些实现方式中,存储在路由数据316中的数据还可以存储为VM数据318的一部分。因此,尽管由网络计算设备106使用的各种数据在本文中被描述为特定的离散数据,但是在其他实施例中,这样的数据可以被组合、聚合和/或以其他方式形成包括重复的副本在内的单个或多个数据集的部分。
如说明性地示出的,至少VEPA代理308和VEB发夹式传输代理314被配置为访问路由数据316和VM数据318。例如,VEPA代理308被配置为识别从VM 302接收的网络分组的目标目的地。为此,VEPA代理308可以被配置为利用与网络分组的流相关联的信息、网络分组的工作负载类型、网络分组的始发源、对接收到的网络分组执行的分组处理操作的输出和/或网络分组的其他信息来识别网络分组的目标目的地。这种识别目标目的地标识信息可以存储在路由数据316和/或VM数据318中,和/或从路由数据316和/或VM数据318取回。另外地,VEPA代理308被配置为将目标目的地标识符(例如,对应的IP地址)插入到从VM 302接收的网络分组中。
VEB发夹式传输代理314被配置为被通知或以其他方式能够识别新VM何时实例化以及新VM的标识信息(其可以存储在VM数据318中)。在一些实施例中,VM数据318可以包括附加的和/或替代的VM配置信息,例如,可以由VM实例302使用的VM配置信息。因此,虽然VM数据318和/或路由数据316说明性地示出为存储在NIC 212中,但是还应该认识到的是,在一些实施例中,VM数据318和/或路由数据316的至少一部分可以在主机本地(即,在NIC 212外部)存储在可以直接存储器访问的存储位置。
另外地,VEB发夹式传输代理314被配置为基于网络分组的目标目的地标识符(例如,如由VEPA代理308插入的)来确定哪些网络分组将被路由到网络计算设备106外部以及哪些网络分组将被发夹式传输。为此,VEB发夹式传输代理314被配置为确定目标目的地是对应于外部计算设备(例如,可以经由交换机104访问的)还是对应于网络计算设备106的本地目的地(例如,VM 302中的一个)。因此,VEB发夹式传输代理314还被配置为访问路由信息,路由信息在一些实施例中可以存储在路由数据316中,和/或在其他实施例中可以存储在VM数据318中。换言之,VEB发夹式传输代理314被配置为基于网络分组的目标目的地(例如,如可以使用IP地址标识的)和存储在路由数据316和/或VM数据318中的数据来确定是否发夹式传输网络分组。
网络业务入口/出口管理器320(其可以如上面讨论地体现为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置为接收入站网络业务并且路由/发送出站网络业务。为此,网络业务入口/出口管理器320被配置为促进去往以及来自网络计算设备106的入站/出站网络通信(例如,网络业务、网络分组、网络流等)。例如,网络业务入口/出口管理器320被配置为管理(例如,创建、修改、删除等)到网络计算设备106的物理网络端口和虚拟网络端口(即,虚拟网络接口)的连接,以及与物理网络端口和虚拟网络端口相关联的入口/出口缓冲器/队列。
现在参考图4,其为用于发夹式传输网络分组的通信流400的实施例,该通信流400包括图3的网络计算设备106的VM(1)302a、VEPA代理308、加速器设备代理312、VEB发夹式传输代理314和VM(2)302b。说明性通信流400包括多个数据流,数据流中的一些可以单独执行或一起执行,这取决于实施例。在数据流402中,VM(1)302a完成分组处理操作,该操作产生旨在发送到目标目的地的网络分组的输出。应该认识到的是,目标目的地可以是外部计算设备(例如,可以经由交换机104访问的另一网络计算设备106)或者相同的网络计算设备106(例如,网络计算设备106的另一VM 302或容器(未示出))。因此,还应该认识到的是,输出网络分组包括可以用于标识目标目的地的信息和/或特性。
在数据流404中,VM(1)302a将输出网络分组发送到VEPA代理308。在数据流406中,VEPA代理308基于目标目的地标识信息更新网络分组以包括目标VM的标识符。应该认识到的是,出于说明性通信流400的目的,网络分组的目标目的地标识信息指示网络分组将被发夹式传输,并且标识接下来网络分组要被发送到(例如,用于在服务链中运行虚拟功能的一系列VM中的)哪个VM 302。在通信流408中,VEPA代理308将更新后的网络分组发送到加速器设备代理312。在接收到网络分组后,加速器设备代理312将网络分组转发到VEB发夹式传输代理314。在数据流412中,VEB发夹式传输代理314识别出目标目的地驻留在同一主机上(即,目标目的地对应于网络计算设备106上的另一VM)。
因此,在数据流414中,VEB发夹式传输代理314将网络分组返回到加速器设备代理312。在数据流416中,VEB发夹式传输代理314将网络分组转发到VEPA代理308。在数据流418中,VEPA代理308基于目标目的地标识符来识别目标VM 302。如先前描述的,出于说明性通信流400的目的,目标目的地标识符对应于VM(2)302b的IP地址。因此,在数据流420中,VEPA代理308将网络分组发送到所识别的目标VM(即,VM(2)302b)。在数据流422中,VM(2)302b对网络分组的至少一部分执行某个分组处理操作。
示例
以下提供本文公开的技术的说明性示例。技术的实施例可以包括下面描述的示例中的任何一个或多个以及其任何组合。
示例1包括一种用于发夹式传输网络业务的计算设备,该计算设备包括:用于管理计算设备的多个虚拟机的计算引擎;以及网络接口控制器(NIC),其被配置为:通过NIC的虚拟以太网端口聚合器(VEPA)代理来接收来自多个虚拟机中的第一虚拟机的网络分组,其中网络分组将被发送到目标目的地以用于附加处理;通过VEPA代理将接收到的网络分组发送到部署在NIC的加速器设备上的代理;通过部署在加速器设备上的代理将接收到的网络分组转发到加速器设备的虚拟以太网桥(VEB)发夹式传输代理;通过VEB发夹式传输代理确定网络分组的目标目的地是否对应于多个虚拟机中的第二虚拟机;以及通过VEB发夹式传输代理响应于确定网络分组的目标目的地对应于多个虚拟机中的第二虚拟机,将接收到的网络分组返回到部署在加速器设备上的代理。
示例2包括示例1的主题,并且其中NIC还被配置为:通过部署在加速器设备上的代理将接收到的网络分组转发到VEPA代理;通过VEPA代理识别第二虚拟机;以及通过VEPA代理将接收到的网络分组发送到所识别的第二虚拟机。
示例3包括示例1和示例2中任一项的主题,并且其中VEPA代理还被配置为:在将网络分组发送到部署在加速器设备上的代理之前,识别与目标目的地相对应的互联网协议(IP)地址;以及更新接收到的网络分组的至少一部分以包括与目标目的地相对应的所识别的IP地址。
示例4包括示例1-3中任一项的主题,并且其中识别目标目的地的IP地址包括识别第二虚拟机的IP地址,并且其中识别第二虚拟机包括基于IP地址来识别第二虚拟机。
示例5包括示例1-4中任一项的主题,并且其中识别第二虚拟机的IP地址包括基于与接收到的网络分组相关联的流、与接收到的网络分组相关联的工作负载类型、接收到的网络分组的始发源或者对接收到的网络分组执行的分组处理操作的输出来识别第二虚拟机的IP地址。
示例6包括示例1-5中任一项的主题,并且还包括用于配置VEB发夹式传输代理的驱动器。
示例7包括示例1-6中任一项的主题,并且其中驱动器还被配置为以VEPA模式操作。
示例8包括示例1-7中任一项的主题,并且其中VEPA代理被包括在NIC的MAC中。
示例9包括示例1-8中任一项的主题,并且其中VEB发夹式传输代理还用于接收对多个虚拟机中的每个虚拟机已经被实例化的指示,其中该指示包括对应的IP地址,并且其中确定网络分组的目标目的地是否对应于多个虚拟机中的当前在网络计算设备上执行的另一虚拟机包括根据接收到的网络分组的互联网协议(IP)地址来做出确定。
示例10包括一种或多种计算机可读介质,包含存储在其上的多个指令,该多个指令响应于被执行,使得计算设备:通过网络接口控制器(NIC)的介质访问控制(MAC)的虚拟以太网端口聚合器(VEPA)代理接收来自计算设备的多个虚拟机中的第一虚拟机的网络分组,其中网络分组将被发送到目标目的地以用于附加处理;通过VEPA代理将接收到的网络分组发送到部署在NIC的加速器设备上的代理;通过部署在加速器设备上的代理将接收到的网络分组转发到加速器设备的虚拟以太网桥(VEB)发夹式传输代理;通过VEB发夹式传输代理确定网络分组的目标目的地是否对应于多个虚拟机中的第二虚拟机;并且通过VEB发夹式传输代理响应于确定网络分组的目标目的地对应于多个虚拟机中的第二虚拟机,将接收到的网络分组返回到部署在加速器设备上的代理。
示例11包括示例10的主题,并且其中该计算设备还用于:通过部署在加速器设备上的代理将接收到的网络分组转发到VEPA代理;通过VEPA代理识别第二虚拟机;以及通过VEPA代理将接收到的网络分组发送到所识别的第二虚拟机。
示例12包括示例10和示例11中任一项的主题,并且其中VEPA代理还用于:在将网络分组发送到部署在加速器设备上的代理之前,识别与目标目的地相对应的互联网协议(IP)地址;以及更新接收到的网络分组的至少一部分以包括与目标目的地相对应的所识别的IP地址。
示例13包括示例10-12中任一项的主题,并且其中识别目标目的地的IP地址包括识别第二虚拟机的IP地址,并且其中识别第二虚拟机包括基于IP地址来识别第二虚拟机。
示例14包括示例10-13中任一项的主题,并且其中识别第二虚拟机的IP地址包括基于与接收到的网络分组相关联的流、与接收到的网络分组相关联的工作负载类型、接收到的网络分组的始发源或者对接收到的网络分组执行的分组处理操作的输出来识别第二虚拟机的IP地址。
示例15包括示例10-14中任一项的主题,并且其中该多个指令还使得计算设备经由计算设备的驱动器来配置VEB发夹式传输代理。
示例16包括示例10-15中任一项的主题,并且其中驱动器还用于以VEPA模式操作。
示例17包括示例10-16中任一项的主题,并且其中VEB发夹式传输代理还用于接收对多个虚拟机中的每个虚拟机已经被实例化的指示,其中该指示包括对应的IP地址,并且其中确定网络分组的目标目的地是否对应于多个虚拟机中的当前在网络计算设备上执行的另一虚拟机包括根据接收到的网络分组的互联网协议(IP)地址来做出确定。
示例18包括一种网络接口控制器(NIC),该NIC包括:加速器设备电路;以及介质访问控制(MAC)电路,其被配置为:通过部署在MAC电路上的虚拟以太网端口聚合器(VEPA)代理来接收来自多个虚拟机中的第一虚拟机的网络分组,其中网络分组将被发送到目标目的地以用于附加处理,以及将接收到的网络分组发送到部署在NIC的加速器设备电路上的代理,其中加速器设备电路被配置为:通过部署在加速器设备电路上的代理将接收到的网络分组转发到加速器设备电路的虚拟以太网桥(VEB)发夹式传输代理,通过VEB发夹式传输代理确定网络分组的目标目的地是否对应于多个虚拟机中的第二虚拟机,以及通过VEB发夹式传输代理响应于确定网络分组的目标目的地对应于多个虚拟机中的第二虚拟机,将接收到的网络分组返回到部署在加速器设备上的代理。
示例19包括示例18的主题,并且其中加速器设备电路还被配置为通过代理将接收到的网络分组转发到VEPA代理,并且其中MAC电路还用于(i)通过VEPA代理识别第二虚拟机,以及(ii)通过VEPA代理将接收到的网络分组发送到所识别的第二虚拟机。
示例20包括示例18和示例19中任一项的主题,并且其中加速器设备电路还被配置为:通过VEPA代理在将网络分组发送到部署在加速器设备上的代理之前,识别与目标目的地相对应的互联网协议(IP)地址;以及通过VEPA代理更新接收到的网络分组的至少一部分以包括与目标目的地相对应的所识别的IP地址。
示例21包括示例18-20中任一项的主题,并且其中识别目标目的地的IP地址包含识别第二虚拟机的IP地址,其中识别第二虚拟机包括基于IP地址来识别第二虚拟机,并且其中识别第二虚拟机的IP地址包括基于与接收到的网络分组相关联的流、与接收到的网络分组相关联的工作负载类型、接收到的网络分组的始发源或者对接收到的网络分组执行的分组处理操作的输出中的一个来识别第二虚拟机的IP地址。
示例22包括一种网络接口控制器(NIC),该NIC包括:用于通过NIC的虚拟以太网端口聚合器(VEPA)代理接收来自计算设备的多个虚拟机中的第一虚拟机的网络分组的模块,其中网络分组将被发送到目标目的地以用于附加处理;用于通过VEPA代理将接收到的网络分组发送到部署在NIC的加速器设备上的代理的模块;用于通过部署在加速器设备上的代理将接收到的网络分组转发到加速器设备的虚拟以太网桥(VEB)发夹式传输代理的模块;用于通过VEB发夹式传输代理确定网络分组的目标目的地是否对应于多个虚拟机中的第二虚拟机的模块;以及用于通过VEB发夹式传输代理响应于确定网络分组的目标目的地对应于多个虚拟机中的第二虚拟机,将接收到的网络分组返回到部署在加速器设备上的代理的模块。
示例23包括示例22的主题,并且还包括:用于通过部署在加速器设备上的代理将接收到的网络分组转发到VEPA代理的模块;用于通过VEPA代理识别第二虚拟机的模块;以及用于通过VEPA代理将接收到的网络分组发送到所识别的第二虚拟机的模块。
示例24包括示例22和示例23中任一项的主题,并且还包括:用于通过VEPA代理在将网络分组发送到部署在加速器设备上的代理之前识别与目标目的地相对应的互联网协议(IP)地址的模块;以及用于通过VEPA代理更新接收到的网络分组的至少一部分以包括与目标目的地相对应的所识别的IP地址的模块。
示例25包括示例18-24中任一项的主题,并且还包括用于通过VEB发夹式传输代理接收对多个虚拟机中的每个虚拟机已经被实例化的指示的模块,其中该指示包括对应的IP地址,并且其中用于确定网络分组的目标目的地是否对应于多个虚拟机中的当前在网络计算设备上执行的另一虚拟机的模块包括用于根据接收到的网络分组的互联网协议(IP)地址来做出确定的模块。

Claims (25)

1.一种用于发夹式传输网络业务的计算设备,所述计算设备包括:
用于管理所述计算设备的多个虚拟机的计算引擎;以及
网络接口控制器(NIC),其被配置为:
通过所述NIC的虚拟以太网端口聚合器(VEPA)代理接收来自所述多个虚拟机中的第一虚拟机的网络分组,其中所述网络分组将被发送到目标目的地以用于附加处理;
通过所述VEPA代理将接收到的网络分组发送到部署在所述NIC的加速器设备上的代理;
通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述加速器设备的虚拟以太网桥(VEB)发夹式传输代理;
通过所述VEB发夹式传输代理确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的第二虚拟机;以及
通过所述VEB发夹式传输代理响应于确定所述网络分组的目标目的地对应于所述多个虚拟机中的所述第二虚拟机,将所述接收到的网络分组返回到部署在所述加速器设备上的所述代理。
2.根据权利要求1所述的计算设备,其中所述NIC还被配置为:
通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述VEPA代理;
通过所述VEPA代理识别所述第二虚拟机;以及
通过所述VEPA代理将所述接收到的网络分组发送到所识别的第二虚拟机。
3.根据权利要求1所述的计算设备,其中所述VEPA代理还被配置为:
在将所述网络分组发送到部署在所述加速器设备上的所述代理之前,识别与所述目标目的地相对应的互联网协议(IP)地址;以及
更新所述接收到的网络分组的至少一部分以包括与所述目标目的地相对应的所识别的IP地址。
4.根据权利要求3所述的计算设备,其中识别所述目标目的地的IP地址包括识别所述第二虚拟机的IP地址,并且其中识别所述第二虚拟机包括基于所述IP地址来识别所述第二虚拟机。
5.根据权利要求4所述的计算设备,其中识别所述第二虚拟机的IP地址包括基于与所述接收到的网络分组相关联的流、与所述接收到的网络分组相关联的工作负载类型、所述接收到的网络分组的始发源或者对所述接收到的网络分组执行的分组处理操作的输出来识别所述第二虚拟机的IP地址。
6.根据权利要求1所述的计算设备,还包括用于配置所述VEB发夹式传输代理的驱动器。
7.根据权利要求6所述的计算设备,其中所述驱动器还被配置为以VEPA模式操作。
8.根据权利要求1所述的计算设备,其中所述VEPA代理被包括在所述NIC的MAC中。
9.根据权利要求1所述的计算设备,其中所述VEB发夹式传输代理还用于接收对所述多个虚拟机中的每个虚拟机已经被实例化的指示,其中所述指示包括对应的IP地址,并且其中确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的当前在网络计算设备上执行的另一虚拟机包括根据所述接收到的网络分组的互联网协议(IP)地址来做出确定。
10.一种用于发夹式传输网络业务的方法,所述方法包括:
通过网络接口控制器(NIC)的介质访问控制(MAC)的虚拟以太网端口聚合器(VEPA)代理接收来自计算设备的多个虚拟机中的第一虚拟机的网络分组,其中所述网络分组将被发送到目标目的地以用于附加处理;
通过所述VEPA代理将接收到的网络分组发送到部署在所述NIC的加速器设备上的代理;
通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述加速器设备的虚拟以太网桥(VEB)发夹式传输代理;
通过所述VEB发夹式传输代理确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的第二虚拟机;以及
通过所述VEB发夹式传输代理响应于确定所述网络分组的目标目的地对应于所述多个虚拟机中的所述第二虚拟机,将所述接收到的网络分组返回到部署在所述加速器设备上的所述代理。
11.根据权利要求10所述的方法,还包括:
通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述VEPA代理;
通过所述VEPA代理识别所述第二虚拟机;以及
通过所述VEPA代理将所述接收到的网络分组发送到所识别的第二虚拟机。
12.根据权利要求10所述的方法,还包括:
通过所述VEPA代理在将所述网络分组发送到部署在所述加速器设备上的所述代理之前,识别与所述目标目的地相对应的互联网协议(IP)地址;以及
通过所述VEPA代理更新所述接收到的网络分组的至少一部分以包括与所述目标目的地相对应的所识别的IP地址。
13.根据权利要求12所述的方法,其中识别所述目标目的地的IP地址包括识别所述第二虚拟机的IP地址,并且其中识别所述第二虚拟机包括基于所述IP地址来识别所述第二虚拟机。
14.根据权利要求13所述的方法,其中识别所述第二虚拟机的IP地址包括基于与所述接收到的网络分组相关联的流、与所述接收到的网络分组相关联的工作负载类型、所述接收到的网络分组的始发源或者对所述接收到的网络分组执行的分组处理操作的输出来识别所述第二虚拟机的IP地址。
15.根据权利要求10所述的方法,还包括经由所述计算设备的驱动器配置所述VEB发夹式传输代理。
16.根据权利要求15所述的方法,其中所述驱动器还用于以VEPA模式操作。
17.根据权利要求10所述的方法,还包括通过所述VEB发夹式传输代理接收对所述多个虚拟机中的每个虚拟机已经被实例化的指示,其中所述指示包括对应的IP地址,并且其中确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的当前在网络计算设备上执行的另一虚拟机包括根据所述接收到的网络分组的互联网协议(IP)地址来做出确定。
18.一种网络接口控制器(NIC),所述NIC包括:
加速器设备电路;以及
介质访问控制(MAC)电路,其被配置为:
通过部署在所述MAC电路上的虚拟以太网端口聚合器(VEPA)代理接收来自多个虚拟机中的第一虚拟机的网络分组,其中所述网络分组将被发送到目标目的地以用于附加处理,以及
将接收到的网络分组发送到部署在所述NIC的加速器设备电路上的代理,
其中所述加速器设备电路被配置为:
通过部署在所述加速器设备电路上的所述代理将所述接收到的网络分组转发到所述加速器设备电路的虚拟以太网桥(VEB)发夹式传输代理,
通过所述VEB发夹式传输代理确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的第二虚拟机,以及
通过所述VEB发夹式传输代理响应于确定所述网络分组的目标目的地对应于所述多个虚拟机中的所述第二虚拟机,将所述接收到的网络分组返回到部署在所述加速器设备上的所述代理。
19.根据权利要求18所述的NIC,其中所述加速器设备电路还被配置为通过所述代理将所述接收到的网络分组转发到所述VEPA代理,并且其中所述MAC电路还用于(i)通过所述VEPA代理识别所述第二虚拟机,以及(ii)通过所述VEPA代理将所述接收到的网络分组发送到所识别的第二虚拟机。
20.根据权利要求18所述的NIC,其中所述加速器设备电路还被配置为:
通过所述VEPA代理在将所述网络分组发送到部署在所述加速器设备上的所述代理之前,识别与所述目标目的地相对应的互联网协议(IP)地址;以及
通过所述VEPA代理更新所述接收到的网络分组的至少一部分以包括与所述目标目的地相对应的所识别的IP地址。
21.根据权利要求20所述的NIC,其中识别所述目标目的地的IP地址包含识别所述第二虚拟机的IP地址,其中识别所述第二虚拟机包括基于所述IP地址来识别所述第二虚拟机,并且其中识别所述第二虚拟机的IP地址包括基于与所述接收到的网络分组相关联的流、与所述接收到的网络分组相关联的工作负载类型、所述接收到的网络分组的始发源或者对所述接收到的网络分组执行的分组处理操作的输出中的一个来识别所述第二虚拟机的IP地址。
22.一种网络接口控制器(NIC),所述NIC包括:
用于通过所述NIC的虚拟以太网端口聚合器(VEPA)代理接收来自计算设备的多个虚拟机中的第一虚拟机的网络分组的模块,其中所述网络分组将被发送到目标目的地以用于附加处理;
用于通过所述VEPA代理将接收到的网络分组发送到部署在所述NIC的加速器设备上的代理的模块;
用于通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述加速器设备的虚拟以太网桥(VEB)发夹式传输代理的模块;
用于通过所述VEB发夹式传输代理确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的第二虚拟机的模块;以及
用于通过所述VEB发夹式传输代理响应于确定所述网络分组的目标目的地对应于所述多个虚拟机中的所述第二虚拟机,将所述接收到的网络分组返回到部署在所述加速器设备上的所述代理的模块。
23.根据权利要求22所述的NIC,还包括:
用于通过部署在所述加速器设备上的所述代理将所述接收到的网络分组转发到所述VEPA代理的模块;
用于通过所述VEPA代理识别所述第二虚拟机的模块;以及
用于通过所述VEPA代理将所述接收到的网络分组发送到所识别的第二虚拟机的模块。
24.根据权利要求22所述的NIC,还包括:
用于通过所述VEPA代理在将所述网络分组发送到部署在所述加速器设备上的所述代理之前识别与所述目标目的地相对应的互联网协议(IP)地址的模块;以及
用于通过所述VEPA代理更新所述接收到的网络分组的至少一部分以包括与所述目标目的地相对应的所识别的IP地址的模块。
25.根据权利要求22所述的NIC,还包括用于通过所述VEB发夹式传输代理接收对所述多个虚拟机中的每个虚拟机已经被实例化的指示的模块,其中所述指示包括对应的IP地址,并且其中用于确定所述网络分组的目标目的地是否对应于所述多个虚拟机中的当前在网络计算设备上执行的另一虚拟机的模块包括用于根据所述接收到的网络分组的互联网协议(IP)地址来做出确定的模块。
CN201910451623.3A 2018-06-29 2019-05-28 用于发夹式传输网络业务的技术 Pending CN110661690A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/023,771 US11271775B2 (en) 2018-06-29 2018-06-29 Technologies for hairpinning network traffic
US16/023,771 2018-06-29

Publications (1)

Publication Number Publication Date
CN110661690A true CN110661690A (zh) 2020-01-07

Family

ID=65275671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910451623.3A Pending CN110661690A (zh) 2018-06-29 2019-05-28 用于发夹式传输网络业务的技术

Country Status (3)

Country Link
US (1) US11271775B2 (zh)
EP (1) EP3588869B1 (zh)
CN (1) CN110661690A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363248A (zh) * 2020-09-29 2022-04-15 华为技术有限公司 计算系统、加速器、交换平面及聚合通信方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271775B2 (en) * 2018-06-29 2022-03-08 Intel Corporation Technologies for hairpinning network traffic
AT521914B1 (de) * 2018-12-13 2020-10-15 Avl List Gmbh Kommunikationsmodul
US11436053B2 (en) * 2019-05-24 2022-09-06 Microsoft Technology Licensing, Llc Third-party hardware integration in virtual networks
CN116866283A (zh) * 2020-10-31 2023-10-10 华为技术有限公司 一种流表处理方法及相关设备
CN117692382B (zh) * 2024-02-04 2024-06-07 珠海星云智联科技有限公司 链路聚合方法、网卡、设备以及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8085676B2 (en) * 2006-06-29 2011-12-27 Nortel Networks Limited Method and system for looping back traffic in QIQ ethernet rings and 1:1 protected PBT trunks
US8238340B2 (en) * 2009-03-06 2012-08-07 Futurewei Technologies, Inc. Transport multiplexer—mechanisms to force ethernet traffic from one domain to be switched in a different (external) domain
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata
US8793685B2 (en) * 2011-05-13 2014-07-29 International Business Machines Corporation Techniques for operating virtual switches in a virtualized computing environment
US9110703B2 (en) * 2011-06-07 2015-08-18 Hewlett-Packard Development Company, L.P. Virtual machine packet processing
CN104022953B (zh) * 2013-02-28 2018-02-09 新华三技术有限公司 基于开放流Openflow的报文转发方法和装置
JP2014197774A (ja) * 2013-03-29 2014-10-16 ソニー株式会社 通信機器、通信システム、通信機器の制御方法およびプログラム
CN104253770B (zh) * 2013-06-27 2017-07-14 新华三技术有限公司 实现分布式虚拟交换机系统的方法及设备
US9503278B2 (en) * 2013-08-20 2016-11-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reflective relay processing on logical ports for channelized links in edge virtual bridging systems
US10812632B2 (en) * 2015-02-09 2020-10-20 Avago Technologies International Sales Pte. Limited Network interface controller with integrated network flow processing
US10050906B2 (en) * 2015-04-21 2018-08-14 Verizon Patent And Licensing Inc. Virtual node having separate control and data planes
CN105610737B (zh) * 2016-01-25 2019-02-15 盛科网络(苏州)有限公司 基于OpenFlow的hairpin交换机实现方法及hairpin交换机系统
US11271775B2 (en) * 2018-06-29 2022-03-08 Intel Corporation Technologies for hairpinning network traffic

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363248A (zh) * 2020-09-29 2022-04-15 华为技术有限公司 计算系统、加速器、交换平面及聚合通信方法

Also Published As

Publication number Publication date
EP3588869B1 (en) 2021-11-17
EP3588869A1 (en) 2020-01-01
US11271775B2 (en) 2022-03-08
US20190052480A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
EP3588869B1 (en) Technologies for hairpinning network traffic
US11706158B2 (en) Technologies for accelerating edge device workloads
US20230359510A1 (en) Technologies for hierarchical clustering of hardware resources in network function virtualization deployments
US20230412459A1 (en) Technologies for dynamically selecting resources for virtual switching
EP3629162B1 (en) Technologies for control plane separation at a network interface controller
US20220294885A1 (en) Technologies for network packet processing between cloud and telecommunications networks
EP2928136B1 (en) Host network accelerator for data center overlay network
EP2928134B1 (en) High-performance, scalable and packet drop-free data center switch fabric
EP2880828B1 (en) System and method for virtual ethernet interface binding
EP2928135B1 (en) Pcie-based host network accelerators (hnas) for data center overlay network
US10114792B2 (en) Low latency remote direct memory access for microservers
CN110999265B (zh) 管理云计算服务端点和虚拟机之间的网络连接性
US11593140B2 (en) Smart network interface card for smart I/O
US9590855B2 (en) Configuration of transparent interconnection of lots of links (TRILL) protocol enabled device ports in edge virtual bridging (EVB) networks
US11669468B2 (en) Interconnect module for smart I/O
US20180006950A1 (en) Technologies for adaptive routing using aggregated congestion information
US20190044799A1 (en) Technologies for hot-swapping a legacy appliance with a network functions virtualization appliance
US10601738B2 (en) Technologies for buffering received network packet data
US11412059B2 (en) Technologies for paravirtual network device queue and memory management
US10554513B2 (en) Technologies for filtering network packets on ingress
WO2022068744A1 (zh) 获取报文头信息、生成报文的方法、设备及存储介质
CN118118424A (zh) 数据传输方法、装置、设备、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination