CN115362662B - 智能网络接口卡的流量管理 - Google Patents

智能网络接口卡的流量管理 Download PDF

Info

Publication number
CN115362662B
CN115362662B CN202180026110.3A CN202180026110A CN115362662B CN 115362662 B CN115362662 B CN 115362662B CN 202180026110 A CN202180026110 A CN 202180026110A CN 115362662 B CN115362662 B CN 115362662B
Authority
CN
China
Prior art keywords
snics
load distribution
network
upstream devices
links
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.)
Active
Application number
CN202180026110.3A
Other languages
English (en)
Other versions
CN115362662A (zh
Inventor
纳根德拉·库马尔·奈纳尔
卡洛斯·M·皮尼塔罗
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN115362662A publication Critical patent/CN115362662A/zh
Application granted granted Critical
Publication of CN115362662B publication Critical patent/CN115362662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Abstract

用于在连接到主机设备的智能网络接口卡(sNIC)之间进行负载分配的系统、方法和计算机可读介质包括控制器。控制器可以在主机设备中实例化用于获得与sNIC相关的遥测信息的代理,其中,sNIC可以用于软件定义网络中的主机设备和上游设备之间的通信。遥测信息指示sNIC的服务卸载能力。控制器还可以获得至少与主机设备、sNIC和上游设备相关的网络拓扑信息,并且基于网络拓扑信息和遥测信息确定针对sNIC的负载分配策略。控制器可以向一个或多个上游设备提供负载分配策略,其中,负载分配策略考虑了sNIC的服务卸载能力。

Description

智能网络接口卡的流量管理
相关申请的交叉引用
本申请要求于2020年4月7日提交的第16/842,457号美国非临时专利申请的权益和优先权,该申请的全部公开内容整体通过引用明确并入本文。
技术领域
本公开的主题总体上涉及计算机网络领域,更特别地,涉及使用智能网络接口卡(sNIC,smart network interface card)管理网络中的流量分配。
背景技术
企业网络环境不断发展。对于移动和物联网(IoT,Internet of Thing)设备流量、软件即服务(SaaS,Software as a Service)应用以及云采用的需求更大。近年来,已经开发出软件定义的企业网络解决方案来解决企业网络的需求。软件定义的企业网络是更广泛的软件定义网络(SDN,software-defined networking)技术的一部分,SDN包括软件定义的广域网(SDWAN,software-defined wide area network)和软件定义的局域网(SDLAN,software-defined local area network)。SDN是一种集中的网络管理方法,其可以从其应用抽象出底层网络基础设施。数据平面转发和控制平面的这种解耦可以允许网络运营商集中网络的智能,并且提供更多的网络自动化、操作简化以及集中配置、监视和故障排除。
例如,网络接口控制器或网络接口卡(NIC,network interface card)可以向SDN上的主机设备(例如,数据中心、虚拟网络等)提供网络接口。一些NIC可以被配置为提供诸如性能加速、虚拟化和其他处理之类的附加功能。术语智能NIC(sNIC,smart NIC)可以指的是具有增强智能以支持附加功能的NIC。例如,sNIC可以实现为专用集成电路(ASIC,application specific integrated circuit)、现场可编程门阵列(FPGA,field-programmable gate array)、片上系统(SoC,systems on chip)或其他实现方式,以提供控制诸如虚拟化和编程能力之类的平面功能。一些sNIC可以包括虚拟机管理程序,以实例化虚拟机或矢量数据包处理(VPP,vector packet processing)操作。在sNIC中执行网络功能也被称为将网络功能卸载到sNIC。可以卸载到sNIC的功能的示例包括云原生服务、管理数据流的状态条目、加速数据分组转发和处理等。
在一些示例中,一个或多个上游设备可以使用一个或多个sNIC连接到主机。虽然诸如交换机或路由器之类的上游设备可以在可以为主机服务的可用sNIC之间分配流量,但是现有技术无法提供有关向这些上游设备卸载流量的可见性。例如,可以卸载的流量在可用的不同sNIC之间可能不同。因此,即使定向到sNIC的流量可能已通过上游设备有效分配,但是该分配可能会基于在各个sNIC中卸载的流量的不同量而出现偏差。这样的不平衡可能导致sNIC的无效利用,并且导致错误、数据分组丢失、故障和其他不期望的影响,从而可能导致基于意图的网络严重中断。
附图说明
为了描述可以获得本公开的上述和其他优点和特征的方式,将通过参考附图中所示的具体实施例对以上简要描述的原理进行更具体的描述。应理解,这些附图仅描绘了本公开的示例性实施例并且因此不应被认为是对其范围的限制,本文中的原理通过使用附图以附加的特异性和细节来描述和解释,在附图中:
图1示出了根据一些示例的企业网络的拓扑;
图2A-图2C示出了通过连接到主机设备的两个或更多个sNIC的负载分担和路由流量的传统部署;
图3示出了根据一些示例的被配置用于考虑sNIC的服务卸载能力来sNIC之间进行负载分配的网络的各方面;
图4示出了根据一些示例的在确定用于在sNIC之间进行负载分配的策略中使用段标识符(SID,segment identifier)的各方面;
图5A-图5B示出了根据一些示例的连接到主机的sNIC和NIC之间的粒度负载分配策略的各方面;
图6示出了根据一些示例的由主机设备中的代理发布与连接到主机设备的sNIC相关的流式遥测信息以用于向上游设备提供负载分配策略的各方面;
图7示出了根据一些示例的使用权重来在由代理发布的流式遥测信息中传送负载分配策略的各方面;
图8示出了根据一些示例的用于在包括多个上游设备的网络中确定基于策略或意图的负载分配的系统的各方面;
图9示出了根据一些示例的在包括多个设备的网络中基于策略或意图的负载分配的示例;
图10示出了根据一些示例的考虑sNIC的服务卸载能力来在sNIC之间进行负载分配的过程;
图11示出了根据一些示例的示例网络设备;
图12示出了根据一些示例的示例计算设备架构。
具体实施方式
下面详细讨论本公开的各种实施例。虽然讨论了具体的实现方式,但是应该理解这样做仅是为了说明的目的。相关领域的技术人员将认识到在不脱离本公开的精神和范围的情况下可以使用其他组件和配置。
概述
本公开的附加特征和优点将在随后的描述中阐述,并且部分将从描述中显而易见,或者可以通过实践本文中公开的原理而获知。本公开的特征和优点可以借助于所附权利要求中特别指出的手段和组合来实现和获得。本公开的这些和其他特征将通过以下描述和所附权利要求变得更加显而易见,或者可以通过实践本文中阐述的原理而获知。
本文中公开了用于在连接到包括控制器的主机设备的智能网络接口卡(sNIC)之间进行负载分配的系统、方法和计算机可读介质。控制器可以在主机设备中实例化用于获得与sNIC相关的遥测信息的代理,其中,sNIC可以用于软件定义网络中的主机设备和上游设备之间的通信。遥测信息指示sNIC的服务卸载能力。控制器还可以获得至少与主机设备、sNIC和上游设备相关的网络拓扑信息,并且基于网络拓扑信息和遥测信息确定sNIC的负载分配策略。控制器可以向一个或多个上游设备提供负载分配策略,其中,负载分配策略考虑了sNIC的服务卸载能力。
在一些示例中,提供了一种方法。所述方法包括:获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;以及向所述一个或多个上游设备提供所述负载分配策略。
在一些示例中,提供了一种系统。所述系统包括:一个或多个处理器;以及包含指令的非暂时性计算机可读存储介质,所述指令当在所述一个或多个处理器上执行时,使得所述一个或多个处理器执行操作,所述操作包括:获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;向所述一个或多个上游设备提供所述负载分配策略。
在一些示例中,提供了一种包括指令的非暂时性机器可读存储介质,所述指令被配置为使得数据处理装置执行操作,所述操作包括:获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;向所述一个或多个上游设备提供所述负载分配策略。
在一些示例中,获得所述遥测信息包括:在所述主机设备中实例化用于收集所述遥测信息的代理,并且基于通过所述代理发布的所述遥测信息来接收所述遥测信息。
一些示例还包括接收与所述一个或多个sNIC相关联的一个或多个段标识符(SID),并且使用所述一个或多个SID来向所述一个或多个上游设备提供所述负载分配策略。
在一些示例中,所述负载分配策略包括:用于在将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路上转发流量的粒度策略,所述粒度策略包括完全在所述一个或多个链路上进行转发、或在所述一个或多个链路中的两个或更多个的组合上进行负载平衡的指示。
在一些示例中,向所述一个或多个上游设备提供所述负载分配策略包括:提供与将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路相关联的一个或多个权重,其中,在所述一个或多个链路上的负载分配基于与所述一个或多个链路相关联的相应的一个或多个权重。
在一些示例中,到所述一个或多个上游设备的负载分配策略还包括:用于在链路上将流量转发到至少未被配置用于服务卸载的网络接口卡(NIC)的指示。
一些示例还包括基于持久数据和实时数据的组合,确定针对连接到两个或更多个上游设备的两个或更多个sNIC的负载分配策略,所述持久数据包括所述网络拓扑信息、所述主机设备中的租户信息、以及所述两个或更多个sNIC的服务卸载能力信息中的一个或多个,所述实时数据包括所述两个或更多个sNIC的流量负载。
示例实施例的描述
本文中公开了用于管理一个或多个智能网络接口卡(sNIC)之间的流量分配的系统、方法和计算机可读介质。在两个或更多个sNIC、可能与传统NIC组合(即,没有用于启用卸载的内置智能)地被配置为向主机(例如,虚拟网络或数据中心)提供网络接口以用于从一个或多个上游设备接收数据流量的示例中,网络结构的拓扑与遥测信息一起被传送到控制器或其他设备。例如,遥测信息可以通过主机上的代理捕获,其中,遥测信息包括两个或更多个sNIC中的每个的实时卸载能力。代理可以使用单跳信令或使用其他信令技术向控制器发送遥测信息。可以是集中式SDN控制器的控制器可以使用拓扑作为背景来分析遥测数据,以确定sNIC是否正被有效使用。控制器可以鉴于sNIC的不同的卸载能力确定sNIC之间的任何负载再平衡是否可以提高它们的利用率。控制器可以向上游设备传送这样的负载重新平衡指导,上游设备可以基于该负载重新平衡指导来对定向到sNIC的流量进行适当的调整。这些和其他方面将参照以下附图进一步详细解释。
图1示出了可以根据本公开的各方面配置的企业网络100的实体拓扑的示例。在一个示例中,企业网络100可以提供基于意图的网络。应当理解,对于企业网络100和本文中所讨论的任何网络,在类似或替代配置中可以存在更多或更少的节点、设备、链路、网络或组件。本文中还设想了具有不同数量和/或类型的端点、节点、云组件、服务器、软件组件、设备、虚拟或实体资源、配置、拓扑、服务、家用电器或部署的示例实施例。此外,企业网络100可以包括任何数量或类型的资源,通过端点或网络设备可以访问和使用这些资源。本文中提供的说明和示例是为了清楚和简单。
在本示例中,企业网络100包括管理云102和网络结构120。虽然在本示例中示出为网络结构120的外部网络或云,但是管理云102(除了由云提供商或类似环境托管之外还)可以替代地或附加地驻留在组织场所或在主机托管中心中。管理云102可以提供用于构建和操作网络结构120的中央管理平面。管理云102可以负责转发配置和策略分配、以及设备管理和分析。管理云102可以包括一个或多个网络控制器装置104、一个或多个认证、授权和记账(AAA,authentication,authorization,and accounting)装置106、一个或多个无线局域网控制器(WLC,wireless local area network controller)108、以及一个或多个结构控制平面节点110。在其他实施例中,管理云102的一个或多个元件可以与网络结构120同地协作。
网络控制器装置104可以用作一个或多个网络结构的命令和控制系统,并且可以容纳用于部署和管理网络结构的自动化工作流。如下面关于图2进一步讨论的,网络控制器装置104可以包括自动化、设计、策略、供应和保证能力等。在一些实施例中,一个或多个思科数字网络架构(Cisco DNATM,Cisco Digital Network Architecture)装置或其他SDN控制器可以作为网络控制器装置104进行操作。
AAA装置106可以控制对计算资源的访问,促进网络策略的实施、审计使用,并且提供对服务计费所需的信息。AAA装置可以与网络控制器装置104以及数据库和目录交互,数据库和目录包含用户、设备、事物、策略、计费和类似信息的信息,以提供认证、授权和记账服务。在一些实施例中,AAA装置106可以利用远程认证拨入用户服务(RADIUS,RemoteAuthentication Dial-In User Service)或Diameter来与设备和应用通信。在一些实施例中,一个或多个身份服务引擎(ISE,Identity Services Engine)装置可以作为AAA装置106进行操作。
WLC 108可以支持附接到网络结构120的结构实现的接入点,从而处理与WLC相关联的传统任务以及与用于无线端点注册和漫游的结构控制平面的交互。在一些实施例中,网络结构120可以实现无线部署,其将数据平面终端(例如,虚拟可扩展局域网或“VXLAN”)从集中位置(例如,其具有先前覆盖的无线接入点的控制和配置协议(CAPWAP,Control andProvisioning of Wireless Access Point)部署)移动到接入点/结构边缘节点。这可以针对无线流量实现分布式转发和分布式策略应用,同时保留集中配置和管理的优势。在一些实施例中,一个或多个无线控制器、/>无线LAN和/或其他Cisco DNATM就绪的无线控制器可以作为WLC 108进行操作。
网络结构120可以包括结构边界节点122A和122B(统称为122)、结构中间节点124A-D(统称为124)和结构边缘节点126A-F(统称为126)。尽管在该示例中结构控制平面节点110示出为在网络结构120的外部,但是在其他实施例中,结构控制平面节点110可以与网络结构120同地协作。在结构控制平面节点110与网络结构120同地协作的情况下,结构控制平面节点110可以包括专用节点或节点集,或者结构控制节点110的功能可以通过结构边界节点122实现。
结构控制平面节点110可以用作中央数据库,以用于在所有用户、设备和事物附接到网络结构120时以及在它们四处漫游时跟踪它们。结构控制平面节点110可以允许网络基础设施(例如,交换机、路由器、WLC等)查询数据库,以确定附接到结构的用户、设备和事物的位置,而不是使用泛洪(flood)和学习机制。以这种方式,结构控制平面节点110可以作为关于附接到网络结构120的每个端点在任何时间点位于何处的单一事实源来操作。除了跟踪特定端点(例如,用于IPv4的/32地址、用于IPv6的/128地址等)之外,结构控制平面节点110还可以跟踪更大的汇总路由器(例如,IP/掩码)。这种灵活性有助于在结构站点之间进行汇总并且提高整体可扩展性。
结构边界节点122可以将网络结构120连接到传统的第3层网络(例如,非结构网络)或不同的结构站点。结构边界节点122还可以将上下文(例如,用户、设备或事物映射和身份)从一个结构站点转换到另一个结构站点或传统网络。当在不同结构站点之间的封装相同时,结构上下文的转换一般是1:1映射的。结构边界节点122还可以与不同结构站点的结构控制平面节点交换可达性和策略信息。结构边界节点122还为内部网络和外部网络提供边界功能。内部边界可以通告一组已定义的已知子网,例如通向一组分支站点或数据中心的子网。另一方面,外部边界可以通告未知目的地(例如,在操作上类似于默认路由功能的互联网)。
结构中间节点124可以作为将结构边界节点122连接到结构边缘节点126并且为结构覆盖流量提供第3层底层的纯第3层转发器操作。架构边缘节点126可以将端点连接到网络结构120,并且可以封装/解封装来自这些端点的流量并且将其转发到网络架构和从网络架构转发。结构边缘节点126可以在网络结构120的周边操作,并且可以是用于附接用户、设备和事物以及实现策略的第一点。在一些实施例中,网络结构120还可以包括结构扩展节点(未示出),以用于将下游非结构第2层网络设备附接到网络结构120,从而扩展网络结构。例如,扩展节点可以是小型交换机(例如,紧凑型交换机、工业以太网交换机、建筑物自动化交换机等),其经由第2层连接到结构边缘节点。连接到结构扩展节点的设备或事物可以使用结构边缘节点126来与外部子网通信。在此示例中,网络结构可以表示可以与多站点结构部署区分开来的单个结构站点部署。
企业网络100还可以包括有线端点130A、130C、130D和130F以及无线端点130B和130E(统称为130)。有线端点130A、130C、130D和130F可以通过线路分别连接到结构边缘节点126A、126C、126D和126F,并且无线端点130B和130E可以无线地分别连接到无线接入点128B和128E(统称为128),它们又可以通过线路分别连接到结构边缘节点126B和126E。在一些实施例中,Cisco接入点、Cisco/>MR接入点和/或其他Cisco DNATM就绪的接入点可以作为无线接入点128进行操作。
端点130可以包括通用计算设备(例如,服务器、工作站、台式计算机等)、移动计算设备(例如,膝上型计算机、平板计算机、移动电话等)、可穿戴设备(例如,手表、眼镜或其他头戴式显示器(HMD,head-mounted display)、耳设备等)等。端点130还可以包括物联网(IoT,Internet of Thing)设备或装置,例如,农业装置(例如,牲畜跟踪和管理系统、浇水设备、无人驾驶飞行器(UAV)等);联网的汽车和其他车辆;智能家居传感器和设备(例如,警报系统、安全相机、照明、家用电器、媒体播放器、HVAC装置、公用事业仪表、窗户、自动门、门铃、锁等);办公装置(例如,台式电话、复印机、传真机等);医疗保健设备(例如,起搏器、生物识别传感器、医疗装置等);工业装置(例如,机器人、工厂机械、建筑装置、工业传感器等);零售装置(例如,自动售货机、销售点(POS,point of sale)设备、射频识别(RFID,Radio Frequency Identification)标签等);智慧城市设备(例如,路灯、停车计时器、废物管理传感器等);运输和物流装置(例如,十字转门、租车跟踪器、导航设备、库存监视器等);等等。
在一些实施例中,网络结构120可以支持有线和无线接入作为单个集成基础设施的一部分,使得有线端点和无线端点二者的连接性、移动性和策略实施行为相似或相同。这可以为独立于访问媒体的用户、设备和事物带来统一的体验。
在集成的有线和无线部署中,可以通过WLC 108向结构控制平面节点110通知无线端点130的加入、漫游和断开连接来实现控制平面集成,从而使结构控制平面节点可以具有关于网络结构120中的有线端点和无线端点二者的连接信息,并且可以用作连接到网络结构的端点的单一事实源。对于数据平面集成,WLC 108可以指示结构无线接入点128形成到其相邻结构边缘节点126的VXLAN覆盖隧道。AP VXLAN隧道可以将分段和策略信息传送到结构边缘节点126和从结构边缘节点126传送,从而允许与有线端点相同或相似的连接性和功能。当无线端点130经由结构无线接入点128加入网络结构120时,WLC 108可以将端点装载到网络结构120中并且通知结构控制平面节点110端点的媒体访问控制(MAC,Media AccessControl)地址。然后,WLC 108可以指示结构无线接入点128形成到相邻结构边缘节点126的VXLAN覆盖隧道。接下来,无线端点130可以经由动态主机配置协议(DHCP,Dynamic HostConfiguration Protocol)获得它们自己的IP地址。一旦完成,架构边缘节点126就可以将无线端点130的IP地址注册到架构控制平面节点110,以形成端点的MAC和IP地址之间的映射,并且往来于无线端点130的流量可以开始流动。
图2A-图2C示出了利用一个或多个智能NIC或sNIC的网络200的示例方面。例如,主机202可以包括连接到网络结构(例如,参考图1讨论的企业网络100的网络结构120)的网络设备或站点(例如,数据中心)。主机202可以包括各种组件,其中,容器204、虚拟机(VM,virtual machine)206、虚拟网络功能(VNF,virtual network function)208架构或网络功能虚拟机、以及数据主机210被说明性地示出(应注意的是,主机202可以在不偏离本描述的范围的情况下具有更多、更少或不同的配置或组件)。
在图2A中,上游设备216被示出为使用包括两个sNIC 212A-B的接口设备通过网络的一个或多个链路连接到主机202。上游设备可以包括交换机、路由器或其他结构设备。可以基于网络设计选择来配置两个链路214A-B。例如,可以聚合链路214A-B以及相应sNIC212A-B,以在L2或L3中形成链路聚合组(LAG,link aggregation group)。在图2B中,示出了两个上游设备218A-B,其相应的链路214A-B连接到sNIC 212A-B。在这样的示例中,可以为在所示拓扑中部署的sNIC形成多机箱LAG或MC-LAG。在图2C中,上游设备218A-B可以分别使用独立链路214A-B与处于独立(非聚合)拓扑中的sNIC 212A-B通信。
在图2A-图2C中所示的各种示例以及其他示例中,传统部署可以利用传统的负载分担技术来通过sNIC路由流量,而无需考虑它们各自的卸载能力。例如,考虑图2A所示的LAG,在说明性场景中,可以存在可以从上游设备216朝向主机202转发的100个不同的流。诸如等成本多路径路由(ECMP,equal-cost multi-path routing)技术之类的负载分担可以解释流熵并且实现负载分担,其中,50个流被引导通过链路214A,而其余50个流被路由通过链路214B。虽然这样的传统负载分担技术可以寻求有效地平衡流量流,但是它们没有考虑sNIC 212A-B的服务卸载能力。例如,在通过链路214A路由的50个流中,45个流可以适合在sNIC 212A处卸载,而在通过链路214B的50个流中仅有10个流可以适合在sNIC 212B处卸载。在该说明性场景中,因为通过sNIC 212A比通过sNIC 212B卸载的流量更多,导致流量不平衡,所以sNIC 212A可能比sNIC 212B更大程度地被使用。这种不平衡,当扩展到大量流(例如,典型部署中的数十万个流)时,会导致sNIC中的一个(例如,sNIC 212A)可能会过载,而另一个sNIC 212B的卸载能力可能未得到充分利用。虽然图2B-图2C中的拓扑在上游设备的数量、链路的聚合等方面可能不同,但是当通过链路214A-B转发流量而不考虑sNIC212A-B的卸载能力时,可能会出现负载平衡上的类似问题。
虽然已使用负载分配作为示例解释了上述问题,但是对于流量的诸如延迟、端口、源和目标地址等的其他属性可能会出现类似的问题。在基于意图的网络环境中,每个sNIC的卸载能力可以基于特定的策略和意图,并且传统实现方式在通过上面参考图2A-图2C讨论的链路拓扑转发流量时不考虑这些策略。
在本公开的示例方面,可以使网络的拓扑连同代表sNIC的卸载能力的遥测信息一起对控制器可见。控制器(例如,集中式SDN控制器)可以基于拓扑和卸载能力确定负载分配。本公开的各方面适用于任何网络架构,例如,使用IP/IPv6环境部署的SDN或基于意图的网络、诸如SR/SRv6/BIER之类的SDN受控环境或其他。
图3示出了根据本公开的示例方面配置的SDN网络300的各方面。主机302可以类似于之前讨论的主机202并且可以包括各种组件,例如容器304、VM 306、VNF 308和/或数据主机310等。上游设备316可以是可以在一个或多个链路314A-B上将流量引导到主机302的网络或结构设备。在一些示例中,链路314A-B可以聚合在LAG中。链路314A-B可以分别使用sNIC 312A-B与主机302接口。
上游设备316可以连接到可以类似于网络结构120的网络318。网络装置320(例如,分支站点)可以通过网络318、借助于上游设备316来与诸如主机302之类的远程主机通信。控制器330可以是网络300的SDN控制器(例如,类似于图1的控制平面节点110)。
网络318的拓扑可以通过控制器330(例如,控制器330可以收集关于各种网络设备及其上游/下游连接的信息)使用不同类型的遥测信息来获得。在示例方面,通过控制器330获得的网络拓扑可以用关于网络中sNIC的能力的信息来扩充,sNIC的能力包括sNIC的卸载能力。主机302可以向控制器330提供拓扑和诸如sNIC 312A-B之类的接口的能力信息。
图4示出了网络300的另一视图,其示出了从主机302获得遥测信息的各方面。在一些示例中,可以在主机302中提供代理305,以用于收集与连接到主机302的设备(例如,sNIC312A-B)相关的遥测信息。代理305可以通过控制器330在主机302中实例化,并且被配置为收集期望的遥测信息。代理305可以与主机302上提供的设备插件应用编程接口(DPAPI,device plugin application programming interface)或类似模块通信,以获得遥测信息。遥测信息可以包括卸载能力、可以卸载的服务、支持的协议、任何相关限制、规模信息或与sNIC 312A-B相关的其他此类信息。
控制器330可以利用拓扑信息和遥测信息来获得包括sNIC的上述细节在内的网络300中从物理层到应用层的端到端可见性。在一些示例中,控制器330可以基于拓扑指示一个或多个网络设备执行负载分配,这考虑了sNIC 312A-B的服务卸载能力。在一些示例中,控制器330可以向sNIC 312A-B指定段标识符(SID)来协助负载分配。
在一些示例中,主机302和上游设备316可以通信,以协商或识别网络300的链路(例如,链路314A-B),以用于主机302和上游设备316之间的流量流。在这样的通信过程中,主机302可以检测能够服务卸载的sNIC的存在。尽管检测sNIC的这样的协商的详尽细节超出了本公开的范围,但是例如,可以使用对链路层协议(例如,链路层发现协议(LLDP,LinkLayer Discovery Protocol))或带外机制(诸如,YANG)的扩展来检测能够服务卸载的sNIC312A-B。
对于使用上述技术识别的每个sNIC和相关链路,可以分配唯一的段ID(也称为卸载SID)。例如,SID 402A-B可以通过上游设备316被分别分配给sNIC 312A-B。在其他示例中,控制器330可以利用拓扑信息和对链路的硬件/性能/其他能力的可见性,并且针对每个这样的链路向sNIC分配唯一的SID。控制器330还可以用这些SID对主机302和/或上游设备316进行编程。
在图3-图4中,控制器330可以检测连接到上游设备316将流量引导到的主机302的sNIC 312A-B的存在。基于通过控制器330先前获得的网络318的拓扑,控制器330可以确定上游设备316通过两个sNIC 312A-B连接到主机302。在这样的示例中,控制器330可以将SID402A-B分配到sNIC 312A-B,或更具体地,分配到链路314A-B。不管分配SID 402A-B的具体过程如何,控制器330都可以利用SID 402A-B来与上游设备316通信,例如,以提供关于将流量分配到与SID 402A-B相关联的sNIC的指导。
应领会的是,如上分配的用于实现服务卸载感知流量分配的SID 402A-B不同于可能被分配用于不相关目的的邻接SID或L2邻接SID。例如,可以不基于邻接标准(例如,将顺序ID分配给直接相邻的sNIC)来分配SID,而是SID 402A-B仅被分配给连接到其远程或下游端的sNIC的链路。此外,应领会的是,主机302可能不运行内部网关协议(IGP,interiorgateway protocol)或用于交换路由信息的其他协议,因此,主机302可以被分配IP地址并且使用诸如VxLAN之类的覆盖网络来进行租户感知。根据示例方面的SID 402A-B被分配给在网络内可能不运行任何IGP的主机。
图5A-图B示出了使用如参考图4所讨论的分配给链路的SID来进行流量分配的各方面。在一些示例中,可以对流量分配采用粒度的方法来将流量引导到不同的sNIC(可能与也可以存在的传统NIC结合使用)。例如,在链路上定向到一个或多个特定NIC的流量可以以粒度的方式进行控制,并且允许将分布式的负载定向到NIC的组合。
图5A示出了使用标签转发信息库(LFIB,Label Forwarding Information Base)表510A在sNIC 312A-B之间进行粒度负载分配的语义。LFIB表510A的各个条目指示流量将如何在分别连接到sNIC 312A和sNIC 312B的链路314A(链路1)和链路314B(链路2)上转发。如果语义识别到特定的SID,则流量可以完全在与该SID关联的链路上转发。例如,条目22001和22002指示流量完全在相应链路1和链路2上的转发。例如,如果控制器330确定sNIC312A最有能力处理从上游设备316定向到主机302的所有流量,则控制器330可以指示上游设备316将所有流量完全地在链路1(链路314A)上转发到sNIC 312A,而不将任何流量定向到其他链路。类似地,控制器330可以指示上游设备316将所有流量完全地在链路2(链路314B)上转发到sNIC 312B,而不将任何流量定向到其他链路。
在一些示例中,可以创建可以与多个sNIC相关联的另一个SID 502。当使用这样的SID 502时,其可以指示在多个链路上的负载平衡。例如,如条目22003中所示,SID 502可以指示链路1和链路2之间的负载平衡,以使上游设备以考虑sNIC 312A-B的服务卸载能力的方式执行负载平衡(例如,使用ECMP或其他技术)。在一些示例中,可以使用与不同链路相关联的权重来执行负载平衡,其中,链路上的流量可以与和链路相关联的权重成比例或对应。例如,利用分别与链路1和链路2相关联的归一化权重0.3和0.7,上游设备316可以在链路1上转发30%的负载并在链路2上转发70%的负载。
图5B示出了另一个NIC 313,其可以是除了sNIC之外还存在的用于在链路315上与主机302交互流量的传统NIC。NIC 313可以不具有任何服务卸载能力。在一些示例中,SID504可以与传统NIC 313相关联。控制器330可以通过指定SID 504而直接通过链路315将流量转发到传统NIC 313。例如,LFIB表510B中所示的条目22011指示用于完全在链路315上转发到传统NIC 313的语义,其中,LFIB表510B的其他条目22001、22002和22003可以类似于上面参考LFIB表510A描述的那些。
在一些示例中,SID可以按sNIC来分配(或通过控制器330分配给sNIC),而不是分配给如上所述的链路。当SID被分配给sNIC而不是链路时,转发语义可以不同于表510A-B中所示的那些。在这样的示例中,连接到sNIC的上游节点可以使用“SWAP和完全转发”到sNIC的转发语义,而sNIC可以具有用于“POP和卸载服务”的语义。
图6示出了网络300中基于实时流式遥测的负载感知的各方面。在一些示例中,主机302的代理305可以收集从不同sNIC 312A-B获得的实时负载统计并且形成遥测数据。遥测数据可以使用流式遥测602被发布。使用流式遥测602发布的数据可以是租户感知的,在某种意义上,数据可以在每个租户的基础上(例如,针对每个sNIC)被发布。上游设备316可以是发布的数据的订阅者,即,从流式遥测602接收发布的数据。在一些示例中,入口节点或控制器330可以是发布的数据的订阅者。
在一些示例中,流式遥测602可以用于卸载负载感知流量分配。在一些示例中,上游设备316可以使用“遥测拨入”或用于订阅来自不同sNIC的遥测信息的其他这样的选项,来订阅通过代理305发布的流式遥测602数据。例如,在上游设备316订阅通过主机302上的代理305发布的流式遥测602的情况下,可以使上游设备316感知负载分配和卸载。例如,上游设备316可以基于流式遥测602确定定向到每个sNIC 312A-B的由相应的sNIC 312A-B卸载的负载的比例。上游设备316然后可以基于卸载感知而将在链路314A-B之间的流分配到sNIC 312A-B。
图7示出了网络300的各方面,其中,权重可以与SID相关联以用于负载分担。例如,可以在通过代理305发布的流式遥测602中分别为链路314A和链路314B指示权重702(例如,30%负载)和权重704(例如,70%负载)。上游设备316可以基于在链路314A和314B上发送的流量使用权重702和704来确定已经通过sNIC 312A和312B卸载的流量。此外,权重702和704可以基于通过代理305接收的负载信息进行动态调整,并且反映在发布为流式遥测602的遥测数据中。在以上说明性示例中,由于与sNIC312B相比,sNIC 312A负载更少,因此上游设备316可以相对于sNIC312B增大将要转发到sNIC 312A的负载的比例。
LFIB表710包括条目22001、22002和22003,以说明基于权重的负载分配。例如,条目22001和22002可以类似于图5的条目22001和22002,以用于基于从流式遥测602接收的它们各自的卸载而完全在链路314A和314B上转发流量。在一些示例中,基于权重的负载平衡可以包括条目22003,其中,70%的负载在链路314A上被转发到已加载了30%的sNIC 312A,而30%的负载在链路314B上被转发到已加载了70%的sNIC312B,以完成服务卸载感知负载分配。
在一些示例中,如参考图2B-图2C所示,多个上游设备可以通过多个sNIC连接到同一主机。当多个上游设备以这种方式连接时,可以修改在单个上游设备的情况下用于订阅遥测数据的单跳机制。例如,在存在两个或更多个上游设备的情况下,集中式分析服务器可以使用流式遥测来监视负载并且对相关的上游节点进行编程,以引导流量流在相应的sNIC上进行卸载。
图8示出了用于网络300中基于策略/意图的负载分配的系统800,其中,多个上游设备可以通过多个sNIC将流量定向到主机302。在系统800中,用于负载分配的逻辑可以基于策略或意图来实现。例如,策略/意图块802可以包括用于从两个或更多个上游设备获得固定或持久数据810和可变实时数据820的功能。
在一些示例中,持久数据810可以包括可不随流量变化的信息。例如,持久性数据可以包括sNIC拓扑812、租户信息814(例如,主机302中的服务器基础设施、客户端的数量等)、sNIC能力信息816和其他关于不同sNIC 312A-B的信息。动态可变实时数据820可以包括sNIC负载信息822、流量流824等。持久数据810和实时数据820二者可以通过控制器330或另一集中式分析服务器获得,例如,基于通过代理305收集和发布获得。例如,控制器330可以使用持久数据810和实时数据820来生成负载分配中涉及的网络300的设备的端到端段堆栈。例如,控制器330可以使用从网络318获得的拓扑信息、持久数据810和实时数据820来执行路径和段堆栈计算840,其可以揭示网络设备、上游设备、链路、sNIC(与相应的SID一起)、主机以及端到端段堆栈中的其他设备。
图9示出了在网络300中实现系统800的说明性示例。两个上游设备918A-B被示出为连接到主机302。在策略/意图块802中确定的业务意图可以包括主机302针对分支站点904中的用户(例如,针对特定租户T1)的服务X的连续交付。用户可以通过诸如提供商边缘路由器(PE1)320之类的边缘设备将主机302连接到网络318。对于服务X,该业务意图可以转化为对具有服务安全性和加速度的高带宽和低延迟路径的要求。在一些示例中,控制器330可以从PE1 320获得业务意图、接收持久数据810、网络拓扑等,并从通过代理305发布的流式遥测获得实时数据820。控制器330可以确定网络318至少包括能够通过连接到sNIC312A-B和传统NIC 313的不同链路将流量定向到主机302的上游设备918A-B。
控制器330可以利用从分支站点320到主机302的端到端可见性并且基于实时数据,识别不同NIC和sNIC之间的负载分配。例如,业务意图可以包括传输底层网络、覆盖网络和sNIC的服务卸载能力的性能和拓扑可见性的规范。如策略表902的条目920所示,服务X的负载分配可以使用通过上游设备918A和sNIC 312A(具有使用sNIC 312A的SID标识的特定权重“x”)以及上游设备918B和sNIC 312B(具有使用sNIC 312B的SID标识的特定权重“y”)路由的流量的组合来实现。对于另一服务Z,如条目922所示,用户可能不需要基于不同意图的相同规范,并且对于该服务,流量可以定向在NIC 313上,而不依赖服务卸载能力。
已经描述了示例系统和概念,本公开现在转向图10所示的过程1000。本文中概述的块是示例并且可以以它们的任何组合来实现,包括排除、添加或修改某些步骤的组合。
在块1002处,过程1000包括获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,该智能网络接口卡被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,遥测信息至少指示一个或多个sNIC的服务卸载能力。在一些示例中,获得遥测信息的步骤可以包括:在主机设备中实例化用于收集遥测信息的代理,并且基于通过代理发布的遥测信息来接收遥测信息。例如,控制器330可以在主机302中实例化代理305,以用于获得与连接到主机302的一个或多个sNIC 312A-B相关的遥测信息。sNIC 312A-B可以被配置用于软件定义网络300中的主机302和上游设备316(或多个上游设备918A-B)之间的通信。遥测信息可以至少指示sNIC 312A-B的服务卸载能力。
在块1004处,过程1000包括获得至少与主机设备、一个或多个sNIC和一个或多个上游设备相关的网络拓扑信息。例如,控制器330可以是网络300的SDN控制器,并且控制器330从在诸如网络318之类的结构上的站点320获得与主机302、sNIC 312A-B、上游设备316和端到端堆栈中的任何其他网络设备相关的网络拓扑信息。
在块1006处,过程1000包括基于网络拓扑信息和遥测信息确定针对一个或多个sNIC的负载分配策略。过程1000的一些示例还可以包括接收与一个或多个sNIC相关联的一个或多个分段标识符(SID),并且使用一个或多个SID来向一个或多个上游设备提供负载分配策略。例如,控制器330可以接收与sNIC 312A-B或它们相应的链路314A-B相关联的SID402A-B,并且利用SID来识别sNIC,并且考虑网络拓扑和sNIC 312A-B的服务卸载能力确定负载分配策略。
在一些示例中,过程1000可以包括基于持久数据和实时数据的组合来确定针对连接到两个或更多个上游设备的两个或更多个sNIC的负载分配策略,持久数据包括网络拓扑信息、主机中的租户信息、两个或更多个sNIC的服务卸载能力信息中的一个或多个,实时数据包括两个或更多个sNIC的流量负载。例如,在多个上游设备918A-B可以使用多个sNIC312A-B与主机302通信的情况下,如参考图8所讨论的,控制器330可以利用策略/意图块802的系统800使用持久数据810、实时数据820和拓扑信息830,来确定负载分配策略。
在块1008处,过程1000包括向一个或多个上游设备提供负载分配策略。在一些示例中,负载分配策略可以包括用于在将一个或多个上游设备连接到一个或多个sNIC的一个或多个链路上转发流量的粒度策略,该粒度策略包括完全在一个或多个链路上进行转发、或在一个或多个链路中的两个或更多个的组合上进行负载平衡的指示。例如,如LFIB表510的条目22001-22003中所示,可以提供粒度策略,以用于在链路314A-B或其组合上进行转发。在一些示例中,到一个或多个上游设备的负载分配策略可以包括用于在链路上将流量转发到至少未被配置用于服务卸载的网络接口卡(NIC)的指示。例如,如LFIB表512的条目22011中所示,负载分配策略可以包括在链路315上转发到传统NIC 313。
在一些示例中,向一个或多个上游设备提供负载分配策略包括提供与将一个或多个上游设备连接到一个或多个sNIC的一个或多个链路相关联的一个或多个权重,其中,在一个或多个链路上的负载分配基于与一个或多个链路相关联的相应的一个或多个权重。例如,权重702-704可以包括在通过代理305发布的流式遥测602中,以供订阅了流式遥测602的上游设备316使用,以用于基于权重在链路314A-B上进行负载分配。
图11示出了适用于实现根据本公开的各方面的示例网络设备1100。在一些示例中,控制器330、上游设备316(或其他)、主机302、sNIC、NIC、远程设备、边缘设备或本文中描述的其他设备可以根据网络设备1100的配置来实施。网络设备1100包括中央处理单元(CPU)1104、接口1102和连接结构1110(例如,PCI总线)。当在适当的软件或固件的控制下动作时,CPU 1104负责执行包管理、错误检测和/或路由功能。CPU 1104优选地在包括操作系统和任何适当应用软件的软件控制下完成所有这些功能。CPU 1104可以包括一个或多个处理器1108,例如,来自INTEL X86系列微处理器的处理器。在一些情况下,处理器1108可以是用于控制网络设备1100的操作的专门设计的硬件。在一些情况下,存储器1106(例如,非易失性RAM、ROM等)也形成CPU 1104的一部分。然而,存在许多不同的方式可以将存储器联接到系统。
接口1102通常被提供为模块化接口卡(有时称为“线卡”)。通常,它们控制网络上数据分组的发送和接收,并且有时支持与网络设备1100一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。此外,可以提供各种超高速接口,例如,快速令牌环接口、无线接口、以太网接口、千兆以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、WIFI接口、3G/4G/5G蜂窝接口、CANBUS、LoRA等。通常,这些接口可以包括适合用于与适当媒体通信的端口。在一些情况下,它们还可以包括独立的处理器,在一些情况下,还包括易失性RAM。独立处理器可以控制诸如分组交换、媒体控制、信号处理、加密处理和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许CPU 1104有效地执行路由计算、网络诊断、安全功能等。
虽然图11中所示的系统是本技术的一种具体的网络设备,但其绝不是唯一可以实现本技术的网络设备架构。例如,经常使用具有处理通信以及路由计算等的单个处理器的架构。此外,其他类型的接口和媒体也可以与网络设备1100一起使用。
无论网络设备的配置如何,其都可以采用一个或多个存储器或存储器模块(包括存储器1106),该存储器或存储器模块被配置为存储用于通用网络操作的程序指令以及用于本文中所述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动绑定、注册和关联表之类的表。存储器1106还可以保存各种软件容器和虚拟化执行环境和数据。
网络设备1100还可以包括专用集成电路(ASIC),其可以被配置为执行路由和/或交换操作。ASIC可以经由连接结构1110与网络设备1100中的其他组件通信,以交换数据和信号,并且协调通过网络设备1100的各种类型的操作,例如路由、交换和/或数据存储操作。
图12示出了可以实现本文中描述的各种技术的示例计算设备的示例计算设备架构1200。计算设备架构1200的组件被示出为使用诸如总线之类的连接结构1205彼此电通信。示例计算设备架构1200包括处理单元(CPU或处理器)1210和计算设备连接结构1205,该计算设备连接结构将包括计算设备存储器1215(例如,只读存储器(ROM)1220和随机存取存储器(RAM)1225)的各种计算设备组件联接到处理器1210。
计算设备架构1200可以包括与处理器1210直接连接、紧密接近或集成为处理器1210的一部分的高速存储器的高速缓存。计算设备架构1200可以将数据从存储器1215和/或将存储装置1230复制到高速缓存1212以供处理器1210快速访问。以这种方式,高速缓存可以提供避免处理器1210在等待数据时延迟的性能提升。这些和其他模块可以控制或被配置为控制处理器1210执行各种动作。其他计算设备存储器1215也可用于使用。存储器1215可以包括具有不同性能特征的多种不同类型的存储器。处理器1210可以包括诸如存储在存储设备1230中的服务1 1232、服务2 1234和服务3 1236之类的任何通用处理器和硬件或软件服务,该通用处理器和硬件或软件服务被配置为控制处理器1210以及其中软件指令被整合到处理器设计中的专用处理器。处理器1210可以是自包含系统,该自包含系统包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
为了实现与计算设备架构1200的用户交互,输入设备1245可以表示任意数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、演讲等。输出设备1235也可以是本领域技术人员已知的多个输出机制中的一个或多个,例如显示器、投影仪、电视机、扬声器设备等。在一些情况下,多模式计算设备可以使用户能够提供多种类型的输入以与计算设备架构1200通信。通信接口1240通常可以支配和管理用户输入和计算设备输出。对在任何特定硬件布置上的操作没有限制,因此,这里的基本特征由于其正在开发中因此可以很容易地替换为改进的硬件或固件布置。
存储设备1230是非易失性存储器并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,例如磁带、闪存卡、固态存储设备、数字多功能磁盘、盒式磁带、随机存取存储器(RAM)1225、只读存储器(ROM)1220及其混合。存储装置1230可以包括用于控制处理器1210的服务1232、1234、1236。可以设想其他硬件或软件模块。存储设备1230可以连接到计算设备连接结构1205。在一方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件以及诸如处理器1210、连接结构1205、输出设备1235之类的必要的硬件组件,以执行该功能。
为了解释的清楚起见,在一些情况下,本技术可以被呈现为包括单独的功能块,包括包含设备、设备组件、以软件或硬件和软件的组合实现的方法中的步骤或例程的功能块。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身之类的介质。
根据上述示例的方法可以使用计算机可执行指令来实现,这些指令存储在计算机可读介质中或以其他方式可从计算机可读介质中获得。这样的指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或专用处理装置以执行特定功能或功能组的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、诸如汇编语言、固件或源代码之类的中间格式指令。可以用于存储指令、使用的信息和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形式因素中的任何一种。这样的形式因素的一些示例包括诸如服务器、机架安装设备、台式计算机、膝上型计算机之类的通用计算设备,或诸如平板计算机、智能手机、个人数字助理、可穿戴设备之类的通用移动计算设备。本文中描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,这样的功能还可以在不同芯片或在单个设备中执行的不同过程之间的电路板上实施。
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其他结构是用于提供这些公开中描述的功能的手段。
尽管使用各种示例和其他信息来解释所附权利要求范围内的方面,但是因为普通技术人员将能够使用这些示例来推导出各种各样的实施方式,所以不应基于这样的示例中的特定特征或布置来暗示对权利要求的限制。此外,尽管某些主题可能已经以特定于结构特征和/或方法步骤的示例的语言进行了描述,但是应当理解,所附权利要求中定义的主题不一定限于这些描述的特征或动作。例如,这样的功能可以以不同方式分配或在不同于本文所标识的那些组件中执行。相比之下,所描述的特征和步骤被公开为所附权利要求范围内的系统和方法的组件的示例。
陈述一组“至少一个”的权利要求语言表示该组的一个成员或该组的多个成员满足该权利要求。例如,陈述“A和B中的至少一个”的权利要求语言是指A、B、或A和B。

Claims (20)

1.一种用于网络流量管理的方法,包括:
获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;
获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;
基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;以及
向所述一个或多个上游设备提供所述负载分配策略。
2.根据权利要求1所述的方法,其中,获得所述遥测信息包括:在所述主机设备中实例化用于收集所述遥测信息的代理,并且基于通过所述代理发布的所述遥测信息来接收所述遥测信息。
3.根据权利要求1或2所述的方法,还包括:
接收与所述一个或多个sNIC相关联的一个或多个段标识符(SID),并且使用所述一个或多个SID来向所述一个或多个上游设备提供所述负载分配策略。
4.根据权利要求3所述的方法,其中,所述负载分配策略包括:用于在将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路上转发流量的粒度策略,所述粒度策略包括完全在所述一个或多个链路上进行转发、或在所述一个或多个链路中的两个或更多个的组合上进行负载平衡的指示。
5.根据权利要求1或2所述的方法,其中,向所述一个或多个上游设备提供所述负载分配策略包括:提供与将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路相关联的一个或多个权重,其中,在所述一个或多个链路上的负载分配基于与所述一个或多个链路相关联的相应的一个或多个权重。
6.根据权利要求1或2所述的方法,其中,到所述一个或多个上游设备的所述负载分配策略还包括:用于在链路上将流量转发到至少未被配置用于服务卸载的网络接口卡(NIC)的指示。
7.根据权利要求1或2所述的方法,还包括:
基于持久数据和实时数据的组合,确定针对连接到两个或更多个上游设备的两个或更多个sNIC的负载分配策略,所述持久数据包括所述网络拓扑信息、所述主机设备中的租户信息、以及所述两个或更多个sNIC的服务卸载能力信息中的一个或多个,所述实时数据包括所述两个或更多个sNIC的流量负载。
8.一种用于网络流量管理的系统,包括:
一个或多个处理器;以及
包含指令的非暂时性计算机可读存储介质,所述指令当在所述一个或多个处理器上执行时,使得所述一个或多个处理器执行操作,所述操作包括:
获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;
获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;
基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;
向所述一个或多个上游设备提供所述负载分配策略。
9.根据权利要求8所述的系统,其中,获得所述遥测信息包括:在所述主机设备中实例化用于收集所述遥测信息的代理,并且基于通过所述代理发布的所述遥测信息来接收所述遥测信息。
10.根据权利要求8或9所述的系统,其中,所述操作还包括:
接收与所述一个或多个sNIC相关联的一个或多个段标识符(SID),并且使用所述一个或多个SID来向所述一个或多个上游设备提供所述负载分配策略。
11.根据权利要求10所述的系统,其中,所述负载分配策略包括:用于在将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路上转发流量的粒度策略,所述粒度策略包括完全在所述一个或多个链路上进行转发、或在所述一个或多个链路中的两个或更多个的组合上进行负载平衡的指示。
12.根据权利要求8或9所述的系统,其中,向所述一个或多个上游设备提供所述负载分配策略包括:提供与将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路相关联的一个或多个权重,其中,在所述一个或多个链路上的负载分配基于与所述一个或多个链路相关联的相应的一个或多个权重。
13.根据权利要求8或9所述的系统,其中,到所述一个或多个上游设备的负载分配策略还包括:用于在链路上将流量转发到至少未被配置用于服务卸载的网络接口卡(NIC)的指示。
14.根据权利要求8或9所述的系统,其中,所述操作还包括:
基于持久数据和实时数据的组合,确定针对连接到两个或更多个上游设备的两个或更多个sNIC的负载分配策略,所述持久数据包括所述网络拓扑信息、所述主机设备中的租户信息、以及所述两个或更多个sNIC的服务卸载能力信息中的一个或多个,所述实时数据包括所述两个或更多个sNIC的流量负载。
15.一种包括指令的非暂时性机器可读存储介质,所述指令被配置为使得数据处理装置执行操作,所述操作包括:
获得与一个或多个智能网络接口卡(sNIC)相关的遥测信息,所述智能网络接口卡(sNIC)被配置用于软件定义网络中的主机设备和一个或多个上游设备之间的通信,所述遥测信息至少指示所述一个或多个sNIC的服务卸载能力;
获得至少与所述主机设备、所述一个或多个sNIC以及所述一个或多个上游设备相关的网络拓扑信息;
基于所述网络拓扑信息和所述遥测信息,确定针对所述一个或多个sNIC的负载分配策略;
向所述一个或多个上游设备提供所述负载分配策略。
16.根据权利要求15所述的非暂时性机器可读存储介质,其中,获得所述遥测信息包括:在所述主机设备中实例化用于收集所述遥测信息的代理,并且基于通过所述代理发布的所述遥测信息来接收所述遥测信息。
17.根据权利要求15或16所述的非暂时性机器可读存储介质,其中,所述操作还包括:
接收与所述一个或多个sNIC相关联的一个或多个段标识符(SID),并且使用所述一个或多个SID来向所述一个或多个上游设备提供所述负载分配策略。
18.根据权利要求17所述的非暂时性机器可读存储介质,其中,所述负载分配策略包括:用于在将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路上转发流量的粒度策略,所述粒度策略包括完全在所述一个或多个链路上进行转发、或在所述一个或多个链路中的两个或更多个的组合上进行负载平衡的指示。
19.根据权利要求15或16所述的非暂时性机器可读存储介质,其中,向所述一个或多个上游设备提供所述负载分配策略包括:提供与将所述一个或多个上游设备连接到所述一个或多个sNIC的一个或多个链路相关联的一个或多个权重,其中,在所述一个或多个链路上的负载分配基于与所述一个或多个链路相关联的相应的一个或多个权重。
20.根据权利要求15或16所述的非暂时性机器可读存储介质,其中,到所述一个或多个上游设备的负载分配策略还包括:用于在链路上将流量转发到至少未被配置用于服务卸载的网络接口卡(NIC)的指示。
CN202180026110.3A 2020-04-07 2021-03-15 智能网络接口卡的流量管理 Active CN115362662B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/842,457 2020-04-07
US16/842,457 US11343152B2 (en) 2020-04-07 2020-04-07 Traffic management for smart network interface cards
PCT/US2021/022298 WO2021206864A1 (en) 2020-04-07 2021-03-15 Traffic management for smart network interface cards

Publications (2)

Publication Number Publication Date
CN115362662A CN115362662A (zh) 2022-11-18
CN115362662B true CN115362662B (zh) 2024-03-08

Family

ID=75396886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180026110.3A Active CN115362662B (zh) 2020-04-07 2021-03-15 智能网络接口卡的流量管理

Country Status (4)

Country Link
US (1) US11343152B2 (zh)
EP (1) EP4133691A1 (zh)
CN (1) CN115362662B (zh)
WO (1) WO2021206864A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11133999B1 (en) * 2019-10-04 2021-09-28 Rapid7, Inc. Network sensor deployment for deep packet inspection
US11740919B2 (en) * 2020-05-18 2023-08-29 Dell Products L.P. System and method for hardware offloading of nested virtual switches
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
EP4183120B1 (en) 2020-07-14 2024-04-24 Oracle International Corporation Interface-based acls in an layer-2 network
US11743189B2 (en) * 2020-09-14 2023-08-29 Microsoft Technology Licensing, Llc Fault tolerance for SDN gateways using network switches
US11636053B2 (en) 2020-09-28 2023-04-25 Vmware, Inc. Emulating a local storage by accessing an external storage through a shared port of a NIC
US11606310B2 (en) 2020-09-28 2023-03-14 Vmware, Inc. Flow processing offload using virtual port identifiers
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
US11716383B2 (en) 2020-09-28 2023-08-01 Vmware, Inc. Accessing multiple external storages to present an emulated local storage through a NIC
US11909636B2 (en) 2020-12-30 2024-02-20 Oracle International Corporation Layer-2 networking using access control lists in a virtualized cloud environment
EP4304152A3 (en) * 2021-06-30 2024-01-17 Juniper Networks, Inc. Edge services using network interface cards having processing units
US11863455B2 (en) 2021-11-23 2024-01-02 Oracle International Corporation Cloud based cross domain system—CDSaaS
US11853813B2 (en) 2021-11-23 2023-12-26 Oracle International Corporation Cloud based cross domain system—CDS with disaggregated parts
US11863376B2 (en) * 2021-12-22 2024-01-02 Vmware, Inc. Smart NIC leader election
EP4202673A1 (en) * 2021-12-22 2023-06-28 INTEL Corporation Offloaded data processing for named based data transmissions
CN114448985A (zh) * 2021-12-28 2022-05-06 中国电信股份有限公司 一种流量分发方法、系统、电子设备及可读介质
WO2023162229A1 (ja) * 2022-02-28 2023-08-31 日本電信電話株式会社 通信システム、切り替え方法、および、切り替えプログラム
US20230350770A1 (en) * 2022-04-29 2023-11-02 Dell Products L.P. Recovery of smart network interface controller operating system
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11909656B1 (en) * 2023-01-17 2024-02-20 Nokia Solutions And Networks Oy In-network decision for end-server-based network function acceleration
CN117459454A (zh) * 2023-12-26 2024-01-26 明阳产业技术研究院(沈阳)有限公司 一种数据转发方法、系统、交换装置、介质及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350817A (zh) * 2007-05-18 2009-01-21 辉达公司 网络业务的智能负载平衡和故障转移
CN101383732A (zh) * 2007-05-18 2009-03-11 辉达公司 负载平衡联网环境中的智能故障恢复
CN101394400A (zh) * 2007-05-18 2009-03-25 辉达公司 网络业务的智能负载平衡和故障转移
CN101778050A (zh) * 2010-03-11 2010-07-14 浪潮(北京)电子信息产业有限公司 负载均衡方法、装置和系统
CN105282043A (zh) * 2014-06-20 2016-01-27 中国电信股份有限公司 全局网络负载均衡系统、设备和方法
CN108694087A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于最优系统级性能的网络接口卡中的动态负载均衡
CN110113425A (zh) * 2019-05-16 2019-08-09 南京大学 一种基于rdma网卡纠删码卸载的负载均衡系统及均衡方法
CN110611622A (zh) * 2018-06-15 2019-12-24 伊姆西Ip控股有限责任公司 用于负载均衡的方法、网络接口卡以及计算机程序产品
CA3057812A1 (en) * 2018-10-05 2020-04-05 Larry Wolcott Systems and methods for call management

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237354B2 (en) 2014-09-25 2019-03-19 Intel Corporation Technologies for offloading a virtual service endpoint to a network interface card
US10812632B2 (en) * 2015-02-09 2020-10-20 Avago Technologies International Sales Pte. Limited Network interface controller with integrated network flow processing
US9986025B2 (en) * 2016-05-24 2018-05-29 Nicira, Inc. Load balancing for a team of network interface controllers
US20180109471A1 (en) * 2016-10-13 2018-04-19 Alcatel-Lucent Usa Inc. Generalized packet processing offload in a datacenter
US11080230B2 (en) * 2018-12-28 2021-08-03 Intel Corporation Hardware accelerators and methods for out-of-order processing
US11711268B2 (en) * 2019-04-30 2023-07-25 Intel Corporation Methods and apparatus to execute a workload in an edge environment

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350817A (zh) * 2007-05-18 2009-01-21 辉达公司 网络业务的智能负载平衡和故障转移
CN101383732A (zh) * 2007-05-18 2009-03-11 辉达公司 负载平衡联网环境中的智能故障恢复
CN101394400A (zh) * 2007-05-18 2009-03-25 辉达公司 网络业务的智能负载平衡和故障转移
CN101778050A (zh) * 2010-03-11 2010-07-14 浪潮(北京)电子信息产业有限公司 负载均衡方法、装置和系统
CN105282043A (zh) * 2014-06-20 2016-01-27 中国电信股份有限公司 全局网络负载均衡系统、设备和方法
CN108694087A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于最优系统级性能的网络接口卡中的动态负载均衡
CN110611622A (zh) * 2018-06-15 2019-12-24 伊姆西Ip控股有限责任公司 用于负载均衡的方法、网络接口卡以及计算机程序产品
CA3057812A1 (en) * 2018-10-05 2020-04-05 Larry Wolcott Systems and methods for call management
CN110113425A (zh) * 2019-05-16 2019-08-09 南京大学 一种基于rdma网卡纠删码卸载的负载均衡系统及均衡方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
HNLB: Utilizing Hardware Matching Capabilities of NICs for Offloading Stateful Load Balancers;R. Durner, A. Varasteh, M. Stephan, C. M. Machuca and W. Kellerer;ICC 2019 - 2019 IEEE International Conference on Communications (ICC), Shanghai, China;全文 *
P4NFV: P4 Enabled NFV Systems with SmartNICs;A. Mohammadkhan, S. Panda, S. G. Kulkarni, K. K. Ramakrishnan and L. N. Bhuyan;2019 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Dallas, TX, USA, 2019;全文 *
基于嵌入式系统的冗余智能网卡的研究;余胜生;顾建新;周敬利;;华中科技大学学报(自然科学版)(02);全文 *
多网卡bonding技术的研究与实现;石磊;中国知网硕士电子期刊(第2006年第03期);全文 *

Also Published As

Publication number Publication date
US20210314232A1 (en) 2021-10-07
US11343152B2 (en) 2022-05-24
EP4133691A1 (en) 2023-02-15
CN115362662A (zh) 2022-11-18
WO2021206864A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
CN115362662B (zh) 智能网络接口卡的流量管理
CN115699698B (zh) 虚拟l2网络中的环路防止
US10735217B2 (en) Distributed internet access in an overlay fabric using combined local and remote extranet policies
US9948553B2 (en) System and method for virtual network-based distributed multi-domain routing control
US20190089651A1 (en) Systems and methods for providing container attributes as part of oam techniques
CN105684365B (zh) 利用软件定义流映射和虚拟化的网络功能的网络控制
US20180219783A1 (en) Reliable load-balancer using segment routing and real-time application monitoring
CN113950816A (zh) 使用边车代理机构提供多云微服务网关的系统和方法
US20220210063A1 (en) Layer-2 networking information in a virtualized cloud environment
KR20140057553A (ko) 가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이
EP3425853B1 (en) Network system, terminal, sensor data collection method, and program
US11784924B2 (en) Optimizing application performance in hierarchical SD-WAN
US11102169B2 (en) In-data-plane network policy enforcement using IP addresses
US20230014351A1 (en) Distribution of stateless security functions
WO2021076450A1 (en) Systems and methods for providing multiple disjointed paths to core network at first-mile access
US20210119859A1 (en) Topology Agnostic Security Services
JP2024503318A (ja) 仮想化されたクラウド環境においてアクセス制御リストを使用するレイヤ2ネットワーキング
US9763135B1 (en) Load balancing with mobile resources
KR101806376B1 (ko) Ip 주소 제공하는 sdn 기반의 멀티 테넌트 지원 네트워크 시스템
US20230370371A1 (en) Layer-2 networking storm control in a virtualized cloud environment
EP4272383A1 (en) Layer-2 networking information in a virtualized cloud environment
CN116711270A (zh) 虚拟化的云环境中的层2联网信息
CN116648892A (zh) 虚拟化云环境中的层2联网风暴控制
CN116648691A (zh) 在虚拟化的云环境中使用访问控制列表的层2网络

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
GR01 Patent grant
GR01 Patent grant