CN113395212B - 网络装置及其操作方法和非暂时性计算机可读介质 - Google Patents
网络装置及其操作方法和非暂时性计算机可读介质 Download PDFInfo
- Publication number
- CN113395212B CN113395212B CN202010456468.7A CN202010456468A CN113395212B CN 113395212 B CN113395212 B CN 113395212B CN 202010456468 A CN202010456468 A CN 202010456468A CN 113395212 B CN113395212 B CN 113395212B
- Authority
- CN
- China
- Prior art keywords
- packet
- forwarding
- unit
- service
- service unit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Abstract
本公开涉及网络装置及其操作方法和非暂时性计算机可读介质。本公开总体上描述了一种对网络装置的转发平面进行编程以使得该转发平面负载平衡或以其他方式将封包流引导至多个中央处理单元(CPU)内核中的特定CPU内核的技术。例如,网络装置包括:控制单元,包括与存储器通信的处理电路,其中,该处理电路被配置为执行一个或多个处理。此外,网络装置包括:转发单元,包括接口卡、封包处理器以及转发单元存储器。控制单元的一个或多个处理被配置为由处理电路执行,以利用一个或多个转发路径元件来配置转发单元的转发单元存储器,其中一个或多个转发路径元件将封包流映射至多个CPU内核中的一个CPU内核以供处理。
Description
技术领域
本公开涉及一种计算机网络,并且更具体地,涉及在计算机网络内转发封包。
背景技术
计算机网络是可以交换数据并共享资源的互连的计算装置的集合。在基于封包的网络(诸如以太网)中,计算装置通过将数据划分成称作封包的可变长度块来传递数据,这些可变长度块跨网络从源装置单独地路由至目的地装置。目的地装置从封包中提取数据,并将该数据汇编成其原始形式。
称为路由器的某些装置保持代表网络的拓扑的路由信息。路由器交换路由信息,以便保持通过网络的可用路由的准确表示。“路由”通常可以被定义为网络上的两个位置之间的路径。在接收到传入数据封包后,路由器检查封包内的信息(经常称为“密钥”),以便根据路由信息来选择将封包转发至的适当的下一跳装置(next hop device)。
路由器可包括通过内部交换结构互连的一个或多个封包处理器。封包处理器通过接口卡与其他外部装置交换数据。交换结构提供一种用于在路由器内的封包处理器之间转发数据以通过网络进行最终传输的内部互连机制。在一些示例中,路由器或交换装置可采用分布式、多级交换结构体系结构,在该体系结构中网络封包遍历位于路由器的分布式封包处理器中的交换结构的多个层级以从交换结构的入口点传送到交换结构的出口点。
发明内容
总体上,本公开描述了一种技术,该技术通过路由和包括元数据的转发下一跳编程具有网络装置的转发平面,以使转发平面负载平衡或以其他方式将封包流指引至多个CPU内核中的特定中央处理单元(CPU)内核。在一些示例中,网络装置可包括一个或多个CPU的集合,该CPU集合中的每个CPU包括一个或多个CPU内核的集合。网络装置可接收和转发与一组服务中的任何一个或多个服务相对应的网络业务(例如,封包)。网络装置可以使用跨CPU集合的多个CPU内核以处理网络业务。在一些示例中,网络装置可基于与封包相关联的一个或多个应用和/或服务(例如,消息传送应用、电子邮件应用、视频流应用、互联网协议安全(IPsec)以及运营商级网络地址转换(CG-NAT)服务)将封包路由至特定CPU或C PU内核。在一些示例中,封包可包括识别与封包相关联的一个或多个应用和/或服务的封包报头。
IPsec表示允许加密和解密一个或多个数据封包以在网络内的两个或两个以上装置之间传输的通信协议。例如,第一网络装置可以处理与第一网络装置与第二网络装置之间的IPsec“会话”相关联的一个或多个封包。在一些示例中,处理一个或多个封包包括加密一个或多个封包以用于转发至第二网络装置,以及解密从第二网络装置接收的一个或多个封包,然而这不是必需的。在一些情况下,第一网络装置可充当中间装置以促成两个装置之间的IPsec会话。第一网络装置可将与IPsec会话相关联的封包路由至多个CPU内核中的至少一个以用于处理。
网络装置可包括:控制平面,控制网络装置的一个或多个功能;转发平面,接收和转发网络业务;以及服务平面,处理网络业务以便执行一个或多个服务。在一些情况下,控制平面也可以应用服务。在一些示例中,转发平面包括具有一个或多个转发路径元件(例如,转发下一跳)的转发路径,其中在一些示例中,一个或多个转发路径元件被配置为通过转发路径和通过服务平面路由传入封包。转发下一跳和其他转发路径结构的附加描述参见于2014年8月12日发布的美国专利8806058,通过引用将其全部内容并入本文。服务平面可以包括服务卡(service card)的集合,该服务卡集合中的每个服务卡包括具有CPU内核集合的CPU。控制单元可以配置转发路径,以将封包路由至服务平面的服务卡集合中的一个服务卡,并将该封包路由至相应服务卡中的一个CPU内核以供处理。
本文所描述的技术提供了具有至少一个实际应用的一种或多种技术的改进。例如,网络装置将与特定应用和/或服务相关联的每个封包路由至同一CPU内核以供处理可能是有益的。此外,网络装置的控制平面对网络装置的转发平面进行编程以更有效地跨网络装置的多个CPU内核分配多个封包,与控制平面不以这种方式对转发平面进行编程的技术相比,它可能是有益的。在一些示例中,控制平面可以对转发平面进行编程,使得转发平面将与IPsec会话相关联的每个封包路由至同一CPU内核或CPU内核的集合。在一些示例中,控制平面可以对转发平面进行编程,使得转发平面将与服务和/或应用相关联的每个封包路由至同一CPU内核或CPU内核的集合。
在一些示例中,一种网络装置包括:控制单元,包括与存储器通信的处理电路,其中,该处理电路被配置为执行一个或多个处理;以及转发单元,包括接口卡、封包处理器、转发单元存储器,其中该控制单元的一个或多个处理被配置为利用一个或多个转发路径元件来配置转发单元的转发单元存储器,其中一个或多个转发路径元件将封包流映射至多个中央处理单元(CPU)内核中的一个CPU内核以供处理,其中转发单元被配置为经由接口卡接收封包流的封包,并且其中转发单元的封包处理器被配置为执行转发单元存储器中的一个或多个转发路径元件,以将封包引导至C PU内核。
在一些示例中,一种方法包括:由控制单元的处理电路执行一个或多个处理,其中该处理电路与存储器通信;由控制单元的一个或多个处理利用一个或多个转发路径元件来配置转发单元的转发单元存储器,其中转发单元包括接口卡、封包处理器以及转发单元存储器,并且其中一个或多个转发路径元件将封包流映射至多个中央处理单元(CPU)内核中的一个C PU内核以供处理;由转发单元经由接口卡接收封包流的封包;并且由封包处理器执行转发单元存储器中的一个或多个转发路径元件,以将封包引导至CPU内核。
在一些示例中,一种非暂时性计算机可读介质包括指令,该指令使网络装置的一个或多个可编程处理器进行以下操作:执行控制平面的一个或多个处理;利用一个或多个转发路径元件来配置转发单元的转发单元存储器,其中转发单元包括接口卡、封包处理器以及转发单元存储器,并且其中转发路径元件将封包流映射至多个中央处理单元(CPU)内核中的一个CPU内核;接收封包流的封包;并且执行转发单元存储器中的一个或多个转发路径元件,以将封包引导至CPU内核,以供CPU内核处理。
概述旨在提供本公开中所描述的主题的概要。其并非旨在提供对在附图及以下描述中详细描述的系统、装置以及方法的排他性或详尽的解释。在附图中及以下描述中阐述了本公开的一个或多个示例的进一步的细节。其他特征、对象以及优点将从描述及附图中以及从权利要求中显而易见。
附图说明
图1是示出根据本公开的一种或多种技术的示例网络系统的框图,该示例网络系统包括用于跨多个中央处理单元(CPU)内核的负载平衡网络业务的路由器。
图2是示出根据本公开的技术的示例网络装置的框图,该示例网络装置被配置为对一个或多个转发路径元件进行编程以将封包路由至多个CP U内核中的一个或多个CPU内核。
图3A是示出根据本公开的一种或多种技术的示例转发路径的概念图。
图3B是示出根据本公开的一种或多种技术的另一示例转发路径的概念图。
图4是示出根据本公开的一种或多种技术的用于将封包引导至服务平面以供处理的示例操作的流程图。
贯穿文本和附图,相同的参考字符指相同的元件。
具体实施方式
图1是示出根据本公开的一种或多种技术的示例网络系统2的框图,该示例网络系统2包括用于跨多个中央处理单元(CPU)内核负载平衡网络业务的路由器8。在一些示例中,路由器8可包括控制平面、转发平面以及服务平面。图1的示例网络系统2向用户装置(subscriber device,订户装置)16提供基于封包的网络服务。即,网络系统2向用户装置16提供网络接入的认证和建立,使得用户装置可以开始与公共网络12交换数据封包,该公共网络12可以是内部或外部的基于封包的诸如互联网的网络。
在图1的示例中,网络系统2包括接入网络6,该接入网络6经由服务提供商软件定义的广域网7(下文中为,“SD-WAN 7”)和路由器8提供至公共网络12的连接。SD-WAN 7和公共网络12提供可用于用户装置16的请求和使用的基于封包的服务。作为示例,SD-WAN 7和/或公共网络12可以提供批量数据传递、互联网协议语音(VoIP)、互联网协议电视(IPTV)、短消息服务(SMS)、无线应用协议(WAP)服务或顾客特定的应用服务。公共网络12可以包括例如局域网(LAN)、广域网(WAN)、互联网、虚拟LAN(VLAN)、企业LAN、3层虚拟专用网(VPN)、由操作接入网络6的服务提供商操作的互联网协议(IP)内联网、企业IP网络或其的一些组合。在不同示例中,公共网络12连接到公共WAN、互联网或其他网络。公共网络12执行诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP)的一个或多个封包数据协议(PDP),以能够使公共网络12的基于封包的传输进行服务。
通常,用户装置16经由接入网络6连接到网关路由器8以接收至由公共网络12或数据中心9托管的应用的用户服务的连接。用户可表示例如企业、住宅用户或移动用户。用户装置16可以是例如位于可以提供本地路由和交换功能的客户设备(CE)11后面的个人计算机、膝上型计算机或其他类型的计算装置。用户装置16中的每个用户装置可运行诸如文字处理和其他办公室支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议以及电子邮件等的各种软件应用。例如,用户装置16可以是诸如相机、传感器(S)、电视机、电器等的通常称为“物联网”(IoT)装置的各种网络使能装置(network-enabled devices)。此外,用户装置16可以包括经由无线电接入网络(RAN)6接入网络系统2的数据服务的移动装置。示例移动用户装置包括移动电话、具有例如蜂窝式无线卡的膝上型或桌上型计算机、能使用无线的上网本、视频游戏装置、寻呼机、智能电话、个人数据助理(PDA)等。
网络服务提供商操作或在一些情况下租用接入网络6的元件,以提供用户装置16与路由器8之间的封包传输。接入网络6表示聚集来自一个或多个用户装置16的数据业务以用于传输至服务提供商的SD-WAN 7/从服务提供商的SD-WAN 7传输。接入网络6包括网络节点,该网络节点执行通信协议以传输控制和用户数据以促进用户装置16与路由器8之间的通信。接入网络6可包括宽带接入网络、无线LAN、公共交换电话网络(PSTN)、用户预订设备(CPE)网络或其他类型的接入网络,并且可包括连接或以其他方式为诸如无线电接入网(RAN)(未示出)的蜂窝接入网络提供连接。示例包括符合通用移动电信系统(UMTS)体系结构、称为长期演进(LTE)的UMTS的演进、由互联网工程任务组(IETF)标准化的移动IP、以及由第三代合作伙伴计划(3GPP)、第三代合作伙伴计划2(3GGP/2)以及WiMAX论坛提出的其他标准的网络。
路由器18可以是客户边缘(CE)路由器、提供商边缘(PE)路由器或是接入网络6与SD-WAN 7之间的其他网络装置。SD-WAN 7提供至附接到接入网络6的用户装置16的基于封包的连接以用于接入公共网络12(例如,互联网)。SD-WAN 7可表示由服务提供商拥有并操作的公共网络,以互连可包括接入网络6的多个网络。在一些示例中,SD-WAN 7可以实现多协议标签交换(MPLS)转发,并且在这样的示例中SD-WAN 7可以称为MPLS网络或MPLS主干网(backbone)。在一些实例中,SD-WAN 7表示供应来自一个或多个服务提供商的服务的多个互连自主系统(诸如互联网)。公共网络12可表示互联网。公共网络12可表示经由转接网络22和一个或多个网络装置(例如,诸如客户边缘交换机或路由器的客户边缘装置)耦接到SD-WAN 7的边缘网络。公共网络12可包括数据中心。路由器8可以经由虚拟网络20与服务节点10A至10N(统称为“服务节点10”)交换封包,并且路由器8可以经由转接网络22将封包转发至公共网络12。
在包括有线/宽带接入网络的网络系统2的示例中,路由器8可表示宽带网络网关(BNG)、宽带远程接入服务器(BRAS)、MPLS PE路由器、核心路由器或网关、或电缆调制解调器终端系统(CMTS)。在包括蜂窝接入网络作为接入网络6的网络系统2的示例中,路由器8可表示移动网关,例如,网关通用封包无线服务(GPRS)服务节点(GGSN)、接入网关(GW)或封包数据网络(PDN)网关(PGW)。在其他示例中,关于路由器8描述的功能可在交换机、服务卡或另一网络元件或部件中实现。在一些示例中,路由器8本身可以是服务节点。
管理网络系统2的至少一部分的网络服务提供商通常向与接入网络系统2的装置(例如,用户装置16)相关联的用户提供服务。所提供的服务可包括例如传统的互联网接入、VoIP、视频和多媒体服务、以及诸如互联网协议安全(IPsec)的安全服务。如上文相对于SD-WAN 7的描述,SD-WAN 7可支持连接到服务提供商网络接入网关以提供对所提供服务的接入的多种类型的接入网络基础设施。在一些示例中,网络系统可以包括附接到具有各种体系结构的多个不同接入网络6的用户装置16。
通常,用户装置16中的任一个或多个可通过将会话请求发送至诸如路由器18或路由器8的网关装置来请求授权和数据服务。进而,路由器18可接入诸如认证、授权以及记账(AAA)服务器的中央服务器(未示出)以认证用户装置16中请求网络接入的用户装置。一旦被认证,用户装置16中的任一个都可以向SD-WAN 7发送用户数据业务以接入并接收由公共网络12提供的服务,并且这种封包可以遍历路由器8作为至少一个封包流的部分。在一些示例中,路由器18可将所有经认证的用户业务转发至公共网络12,并且路由器8可应用服务15和/或如果用户业务需要服务节点10上的服务,则将特定用户业务引导至数据中心9。要应用于用户业务的应用(例如,服务应用)可以托管在服务节点10上。
例如,当转发用户业务时,路由器8可通过安装在路由器8内的服务卡集合上执行的服务15,引导单独的用户封包流。在一些示例中,服务卡在本文可以称为“现场可替换单元(FRU)”。安装在路由器8内的该服务卡集合中的每个服务卡可以包括中央处理单元(CPU),该中央处理单元包括在服务平面中的用于网络业务的深度封包处理的CPU内核集合。在一些示例中,该服务卡集合可以是路由器8的“服务平面”的一部分。路由器8还可以包括控制平面和转发平面。控制平面可包括由处理器执行的一个或多个虚拟机(VM),其中一个或多个VM被配置为对转发平面进行编程以将诸如封包的网络业务路由至服务平面的一个或多个CPU内核以供处理。随后,路由器8的转发平面可将网络业务转发至各个目的地装置(例如,一个用户装置16)。
网络系统2可包括具有服务节点10的群集的数据中心9,该数据中心为大多数虚拟化的网络服务提供执行环境。在一些示例中,每个服务节点10表示服务实例。每个服务节点10可将一个或多个服务应用于业务流。因此,路由器8可通过由服务节点10提供的定义的服务集合,引导用户封包流。即,在一些示例中,每个用户封包流可通过由服务节点10提供的服务的特定顺序组合而转发,每个顺序组在本文中称为“服务链”。作为示例,服务15和/或服务节点10可应用状态防火墙(SFW)和安全服务、深度封包检查(DPI)、运营商级网络地址转换(CGNAT)、业务目的地功能(TDF)服务、媒体(语音/视频)优化、互联网协议安全(IPSec)/虚拟专用网络(VPN)服务、超文本传输协议(HTTP)过滤、计数、记账、收费和/或封包流的负载平衡、或应用于网络业务的其他类型的服务。
在图1的示例中,用户封包流可以沿着包括服务15和/或由服务节点10应用的服务中的任一服务的服务链来被引导。一旦在服务链的终端节点(即,将应用于沿着特定服务路径流动的封包的最后服务)处的处理完成,业务可被引导至公共网络12。
然而“服务链”定义了按特定顺序应用的一个或多个服务,以向绑定到该服务链上的封包流提供应用的组合服务,“服务隧道”或“服务路径”是指根据服务链顺序由服务链处理的封包流随着转发封包流的转发状态封包而采用的逻辑和/或物理路径。每个服务链可以与各个服务隧道相关联,并且与每个用户装置16相关联的封包流根据与各个用户相关联的服务简档文件(service profile)沿着服务隧道流动。例如,给定的用户可与特定的服务简档文件相关联,该服务简档文件进而被映射至与特定服务链相关联的服务隧道。类似地,另一用户可与不同服务简档文件相关联,该服务简档文件进而被映射至与不同的服务链相关联的服务隧道。在一些示例中,在路由器18已认证并建立用户的接入会话之后,路由器18或路由器8可沿着适当服务隧道引导用户的封包流,从而使数据中心9将必要顺序的服务应用于给定的用户。
在一些示例中,服务节点10可使用内部配置的转发状态来实现服务链,该转发状态根据标识的服务节点10集合沿着服务链引导封包流的封包以供处理。这种转发状态可使用诸如IP或通用路由封装(GRE)隧道的网络隧道、使用GRE的网络虚拟化(NVGRE)、或通过使用VLAN、虚拟扩展LAN(VXLAN)、MPLS技术等,来指定用于服务节点10之间通隧道的隧道接口。在一些示例中,互连服务节点10的真实或虚拟交换机、路由器或其他网络元件可被配置为根据服务链将封包流引导至服务节点10。
虽然被示为数据中心9的一部分,但是服务节点10可以是由一个或多个交换机或SD-WAN 7的虚拟交换机耦接的网络装置。在一示例中,服务节点10中的每一个可在虚拟计算环境中作为VM运行。此外,计算环境可以包括诸如基于x86处理器的服务器的通用计算装置的可扩展集群。作为另一示例,服务节点10可包括通用计算装置和专用装置的组合。作为虚拟化网络服务,由服务节点10提供的单独的网络服务可如在现代数据中心中那样通过虚拟存储器的分配、处理器利用、存储和网络策略以及通过水平地添加额外的负载均衡VM来缩放(scale)。在其他示例中,服务节点10可为网关设备或其他路由器。在进一步的示例中,关于每个服务节点10描述的功能可在交换机、服务卡或另一网络元件或部件中实施。
根据本文所描述的技术,在路由器8的控制平面上执行的一个或多个处理,可生成包括用于配置转发路径的一个或多个转发路径元件的指令的数据,该转发路径表示路由器8的转发平面的一部分。在一些示例中,处理可基于用户输入生成用于配置一个或多个转发路径元件的数据。在一些示例中,处理可基于路由器8内的资源数据(例如,当前CPU可用性和/或当前CPU使用率)自动生成用于配置一或多个转发路径元件的数据。随后,路由器8的控制平面处理可基于指令来配置一个或多个转发路径元件,以便允许转发路径基于封包报头将封包引导至多个CPU内核中的特定CPU内核以供处理。另外,在一些情况下,在处理电路基于指令配置一个或多个转发路径元件之后,控制平面处理可将多个转发路径元件的当前配置保存到存储器。
在一些示例中,路由器8的多个转发路径元件包括第一下一跳元件和第二下一跳元件,并且路由器8被配置为在用于配置一个或多个转发路径元件的指令中,识别与位于路由器8的服务平面中的服务卡集合中的每个服务卡对应的一个或多个服务的指示。路由器8可配置第一下一跳元件以基于与封包相关联的服务将封包转发至该服务卡集合中的服务卡,该服务在封包报头中被识别。这样,路由器8的控制平面在配置第一下一跳元件时,转发单元可以读取封包的封包报头以识别服务,并且第一下一跳元件可以基于封包报头所识别的服务将封包转发至服务卡集合中的服务卡。
服务卡集合中的每个服务卡可包括CPU内核集合,并且路由器8可被配置为基于与各个网络业务相关联的服务和/或应用,将网络业务引导至特定CPU内核。另外,路由器8的控制平面可对第二下一跳元件进行编程,以基于由各个封包报头识别的一个或多个服务和/或应用将封包引导至CPU内核集合中的特定CPU内核。以这种方式,路由器8的控制平面可以配置路由器8的转发路径,以便指定多个CPU内核中的一个或多个CPU内核用于处理与服务集合中的每个相应服务相关联的封包。在一些示例中,控制平面可配置第一下一跳元件和第二下一跳元件以将与第一IPsec会话相关联的封包引导至第一CPU内核、将与第二IPsec会话相关联的封包引导至第二CPU内核、将与第三IPsec会话相关联的封包引导至第三CPU内核等。IPsec表示通信协议,该通信协议允许通过在两个或两个以上端点之间创建安全隧道来加密和解密一个或多个数据封包以用于在网络内的两个或两个以上装置之间的传输。与使用多于一个的CPU内核处理与一个IPsec会话相关联的封包的技术相比,一个CPU内核处理与一个IPsec会话相关联的所有封包以便提高效率可能是有益的。封包报头可以识别与封包相关联的IPsec会话。
图2是示出根据本公开的技术的示例网络装置80的框图,该示例网络装置被配置为对一个或多个转发路径元件进行编程以将封包路由至多个CPU内核130A至130N中的一个或多个CPU内核。虽然网络装置80可以是被配置为执行本文所描述的技术的任何网络装置,但是网络装置80可以是图1的路由器8或图1的路由器18的示例。本文中,网络装置80可以在图1的网络系统2的上下文中描述。此外,虽然相对于特定网络装置(例如,路由器)进行了描述,但该技术可由任何网络装置(诸如,客户端装置、3层(L3)或L2/L3交换机或服务器)实现。
在该示例中,网络装置80被划分成3个逻辑或物理“平面”以包括为装置执行控制操作的控制平面81、用于转发转接网络业务的转发平面83、以及用于应用一个或多个网络服务134以转接由路由器转发的封包流的服务平面85。即,网络装置80在逻辑上(例如,作为在同一硬件部件集合上执行的分立的软件实例),或者在物理上(例如,作为在硬件中静态地实现功能或者动态地执行软件或计算机程序以实现功能的分立的物理专用硬件部件),实现3个分立的功能(例如,路由/控制功能、转发数据功能以及网络服务功能)。在该示例中,高速内部交换结构105耦接控制平面81、服务平面85以及转发平面83,以在单元中传递数据单元和控制消息。交换结构105可表示内部交换结构或横杆(cross-bar)、总线或链路。
控制平面81包括具有处理电路102的控制单元82,该处理电路102执行网络装置80的装置管理服务、用户认证以及控制平面路由功能。另外,控制单元82包括由处理电路102执行的VM 90A至90N(统称为“VM90”)和路由引擎92。VM 90中的每一个都可以是控制平面处理的示例。路由引擎92包括路由信息94和CPU信息96。转发平面83包括转发单元112,该转发单元112经由接口卡114A至114N(统称为“IFC 114”)接收和输出网络业务(例如,封包)。例如,IFC 114经由入站链路116A至116N(统称为“入站链路116”)接收网络业务而经由出站链路118A至118N(统称为“出站链路118”)输出网络业务。此外,转发单元112包括封包处理器120和转发路径122。转发路径122包括转发路径元件124A至124N(统称为“转发路径元件124”)。服务平面85包括服务单元126A至126N(统称为“服务单元126”)。在一些示例中,服务单元(例如,服务单元126A)表示可添加至网络装置80和/或从网络装置80移除的服务卡。在一些示例中,服务单元126在本文中可称为“现场可换单元(FRU)”。服务单元126A包括例如被配置为执行管理程序132和服务134的微处理器128。
尽管本文主要相对于可插入服务卡进行了示出和描述,但这些技术也可以应用于将网络封包引导至其他类型的服务单元(包括诸如真实或虚拟服务器)。例如,图1中的路由器8和路由器18外部的服务节点10可表示服务单元的示例。
在图2的示例中,处理电路102执行网络装置80的装置管理服务、用户认证以及控制平面路由功能。处理电路102可包括例如微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或等效的离散或集成逻辑电路、或前述装置或电路中的任意的组合。因此,如本文所使用的术语“处理器”或“控制器”,可以指前述结构或可操作以执行本文所描述的技术的任何其他结构中的任一个或多个。诸如VM90A至90N(统称为“VM90”)和包括路由信息94和CPU信息96的路由引擎92的可执行文件,可由处理电路102操作以执行网络装置80的各种动作、操作或功能。例如,网络装置80的处理电路102可以检索和执行由各种数据存储装置存储的、使处理电路102执行VM 90和路由引擎92的操作的指令。
网络装置80内的一个或多个存储部件可以存储在网络装置80的操作期间进行处理的信息(例如,网络装置80可以在网络装置80的执行期间存储由VM 90、路由引擎92以及服务134访问的数据)。在一些示例中,存储部件是临时存储器,意味着存储部件的主要目的不是长期存储。网络装置80上的存储部件可以被配置作为易失性存储器用于信息短期存储装置,并且因此如果断电则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。
在一些示例中,存储部件还包括一个或多个计算机可读存储介质。在一些示例中,存储部件包括一个或多个非暂时性计算机可读存储介质。存储部件可以被配置为存储比通常由易失性存储器存储的信息量更大的信息量。存储部件可以进一步被配置作为非易失性存储器空间用于信息的长期存储器,并且在通电/断电循环之后保留信息。非易失性存储器的示例包括硬磁盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除可编程(EEPROM)存储器的形式。存储部件可以存储与VM 90、路由引擎92以及服务134相关联的程序指令和/或信息(例如,数据)。存储部件可包括被配置为存储与VM 90、路由引擎92以及服务134相关联的数据或其他信息的存储器。
通常,控制单元82包括路由引擎92,该路由引擎92被配置为与转发单元112通信以及在一些情况下与图2中未示出的网络装置的其他转发单元通信。在一些情况下,路由引擎92可表示整个网络装置80的封包转发的控制平面管理。例如,网络装置80包括接口卡114A至114N(统称为“IFC 114”),这些接口卡经由入站链路接收封包并且经由出站链路发送封包。IFC 114通常具有一个或多个物理网络接口端口。在一些示例中,在经由IFC 114接收封包之后,网络装置80基于路由引擎92所执行的操作来使用转发单元112将封包转发至下一目的地。以这种方式,路由引擎92可向网络装置80提供控制平面功能。路由引擎92可包括与服务平面85和转发平面83中的一者或两者相对应的信息。路由引擎92可包括路由信息94,该路由信息94例如指示封包处理器120的一个或多个转发路径元件的当前配置。另外,路由引擎92包括CPU信息96,该CPU信息96指示CPU内核130中的一个或多个CPU内核的各个当前利用率。
路由引擎92可为在网络堆栈的不同层处执行的各种协议(图2中未示出)提供操作环境。路由引擎92可负责保持路由信息94以反映封包处理器120的当前配置。具体地,例如,路由协议基于由网络装置VM 90生成的元数据,周期性地更新路由信息94以准确地反映转发平面83的当前配置。协议可以是在处理电路102上执行的软件处理。以这种方式,路由引擎92可以占据处理电路102中的计算节点组,使得该计算节点组不可用于执行诸如VM 90的VM。例如,路由引擎92可包括诸如IEEE802.1BR的桥接端口扩展协议。路由引擎92还可包括在网络堆栈的网络层处操作的网络协议。在图2的示例中,网络协议可包括一个或多个控制和路由协议,诸如边界网关协议(BGP)、内部网关协议(IGP)、标签分发协议(LDP)和/或资源预留协议(RSVP)。在一些示例中,IGP可以包括开放最短路径优先(OSPF)协议或中间系统到中间系统(IS-IS)协议。路由引擎92还可包括一个或多个包括用户级处理的守护进程,该守护进程运行网络管理软件、执行路由协议以与对等路由器或交换机通信、维持和更新一个或多个路由表、并且创建用于安装到转发单元112的一个或多个转发表,以及其他功能。
路由信息94可包括例如描述网络装置80和网络系统2内的各种路由的路由数据,以及对应的下一跳数据。例如,路由信息94可包括指示跟随封包处理器120的特定下一跳元件的封包处理器120的封包目的地元件的信息,其中目的地元件取决于封包的封包报头。网络装置80基于由VM90生成的封包元数据来更新路由信息94用于对封包处理器120进行编程。基于路由信息94,在处理电路102上执行的路由引擎92可生成转发信息(图2中未示出)并且将转发信息输出至转发单元112以便对封包处理器120的一个或多个转发路径元件124进行编程。在一些示例中,转发信息使CPU内核130的一个或多个CPU内核与关联于传入封包的特定服务相关联。例如,路由引擎92可基于由VM 90生成的元数据来生成转发信息,并输出该转发信息,以便对封包处理器120进行编程以将与特定服务相关联的封包引导至CPU内核130中的一个或多个CPU内核以供处理。在一些示例中,一个或多个CPU内核对封包的处理可包括全封包加密和/或全封包解密。转发单元112可通过读取封包的封包报头来识别与封包相关联的服务。
转发平面83在该示例中包括被配置为执行封包转发功能的转发单元112。在网络装置80的示例中,转发平面83包括转发单元112,该转发单元112提供由IFC 114经由入站链路116接收并且经由出站链路118输出的网络业务的高速转发。转发单元112可包括耦接至IFC 114的封包处理器120。封包处理器120可以表示一个或多个封包转发引擎(“PFE”),该封包转发引擎包括例如密集端口集中器(DPC)、模块化端口集中器(MPC)、柔性物理接口卡(PIC)集中器(FPC)、或例如可插入网络装置80的机架或机架组合内的另一线卡。
在一示例中,转发路径122将转发路径元件124布置为下一跳数据,该下一跳数据可以沿着网络装置的内部封包转发路径而链接在一起作为一系列“跳”。在许多实例中,转发路径元件124在转发单元112的内部存储器内执行查找操作,其中可对照树(或特里结构)搜索、表(或索引)搜索来执行查找。可以利用下一跳指定的其他示例操作包括过滤器的确定和应用、或速率限制器的确定和应用。查找操作在查找数据结构(例如,查找树)内定位项,该项匹配封包内容、或封包或封包流的另一属性(诸如封包的入站接口)。根据由转发路径122内的下一跳转发结构定义的操作的封包处理的结果,确定由转发单元112将封包从其一个IFC 114上的输入接口转发或以其他方式处理至其一个IFC 114上的输出接口的方式。
网络装置80的服务平面85包括多个服务单元126,作为示例,该服务单元126可以是被配置为将网络服务应用于流经转发平面83的封包的可移除服务卡。在一些示例中,服务单元126可以包括FRU。即,当转发封包时,转发单元112可将封包引导至服务平面85,以通过服务单元126应用一个或多个网络服务134。在该示例中,服务单元126中的每一个都包括被配置为执行管理程序的微处理器,以提供多个网络服务的操作环境。例如,服务单元126包括被配置为执行管理程序132的微处理器128,以提供用于网络服务134的操作环境。作为示例,服务单元126可以应用防火墙和安全服务、运营商级网络地址转换(CG-NAT)、媒体优化(语音/视频)、IPSec/VPN服务、深度封包检查(DPI)、HTTP过滤、计数、记账、收费、以及封包流的负载平衡、或应用于网络业务的其他类型的服务。服务134中的每一个可例如被实现为由管理程序132和微处理器128执行的虚拟机或容器。在一些示例中,与转发平面81相比,服务平面85可被配置为更有效地执行服务134。
在一些示例中,网络装置80的转发单元112被配置为接收一个或多个封包,该一个或多个封包中的每个封包与一个或多个服务相关联。例如,一个或多个封包中的每个封包可与由服务单元126A的微处理器128执行的一个或多个网络服务134相关联。在一示例中,转发单元112的IFC 114A可经由入站链路116A接收封包。随后,封包可通过转发路径122传送。在一些示例中,封包可包括报头。转发单元112可读取封包的报头。封包的报头可以包括指示与封包相关联的许多细节的信息,这些信息诸如例如,网络装置80从哪个装置接收封包、网络装置80要向哪个装置转发封包、以及与封包相关联的一个或多个服务(例如,一个或多个网络服务134和/或图2中未示出的一个或多个其他服务)。转发单元可以识别封包报头,并且处理封包报头以便确定由封包报头指示的信息。换言之,转发单元112可处理封包报头以便确定与该封包相关联的一个或多个服务。
封包处理器120根据转发路径元件124沿着转发路径122处理封包。转发路径元件124表示针对根据转发路径122处理的封包形成“路径”集合的逻辑流。在一些情况下,封包可基于包括在封包的报头中的数据,通过由转发路径元件124形成的路径传送。控制平面81(例如,VM 90和/或路由引擎92)可生成转发路径元件124以基于封包报头映射封包。在一些示例中,转发路径元件124可使转发单元112将封包引导至网络装置80的一个或多个其他部件(诸如服务单元126)以供处理。例如,为了将服务应用于封包,转发路径元件124中的转发路径元件可基于封包的封包报头,将封包映射至服务单元126中的服务单元,以通过位于各个服务单元上的CPU内核进行处理。
根据本文所描述的技术,转发路径元件124将封包流映射至各个特定CPU内核130和/或各个特定服务单元126。例如,转发路径元件124中的一个可将与第一服务相对应的第一封包流映射至CPU内核130B。因此,封包处理器120利用转发路径元件124处理第一封包流的封包,以将封包指引至CPU内核130B从而进行处理。在一些示例中,转发路径元件124将在上行链路和下行链路方向两者上的源和目的地之间的封包流映射至CPU内核130中的同一CPU内核,以促进该CPU内核130在上行链路和下行链路方向两者上处理封包流。
控制平面81生成包括元数据的转发路径元件124并将该转发路径元件124下载到转发单元112,以将封包流映射至特定CPU内核130和/或特定服务单元126。元数据可以例如利用CPU内核130和/或服务单元126的标识符来参数化转发路径元件124的转发下一跳,使得转发路径元件124在被执行时使封包处理器120将匹配封包引导至特定CPU内核130。元数据可包括例如链路标识符、隧道(例如,IPSec)标识符或用于匹配封包的n元组数据。元数据还可包括例如识别用于确定服务单元的查找表的数据、识别用于确定CPU内核的查找表的数据、或将匹配封包映射至特定服务单元126或CPU内核130的其他数据。
在一些情况下,转发路径元件124可包括第一下一跳和第二下一跳,该第一下一跳包括第一引导逻辑,该第二下一跳包括第二引导逻辑。当封包到达转发单元112时,在一些情况下,封包处理器120可执行第一引导逻辑以基于与该封包相关联的一个或多个服务,将封包映射至服务单元126中的服务单元(例如,服务单元126A)。转发单元1212可以读取封包报头以确定与该封包相关联的一个或多个服务。在一些示例中,不是服务单元126中的每个服务单元都被配置为应用与服务单元126中的每个其他服务单元相同的服务集合。换言之,网络服务134可包括至少部分不同于与服务单元126中的至少一个其他服务单元相关联的服务集合的服务集合。因此,转发单元112将封包引导至服务单元126中的被配置为应用与该封包相关联的一个或多个服务的服务单元可能是有益的。第一下一跳元件的第一引导逻辑可被配置为基于封包报头来识别与该封包相关联的一个或多个服务,并将该封包映射至与该一个或多个服务相对应的服务单元126中的服务单元(例如,服务单元126A)。因此,第一引导逻辑可使转发单元112将封包经由交换结构105引导至服务单元126A。
如上所述,服务单元126A可包括CPU内核130。与服务相关联的封包,使用与相同服务相关联的其他封包相同的CPU内核130的CPU内核来被处理,可能是有益的。第二下一跳元件的第二引导逻辑可将封包映射至CPU内核130中的CPU内核。例如,第二引导逻辑可封包映射至CPU内核130B以处理该封包。在封包通过转发路径元件124传送之后,转发单元112可将该封包引导至服务单元126A,并且CPU内核130B可处理该封包以便执行网络服务134中的一个或多个服务,其中除了控制平面81和转发平面83,CPU内核130B还处理封包。随后,服务单元126A可将封包引导回转发单元112,并且转发单元112可经由出站链路118的出站链路(例如,出站链路118A)转发封包。
控制单元82可被配置为配置转发单元112,以便将到达入站链路116的封包引导至服务单元126以供处理。例如,VM 90可被配置为生成至少一个转发路径元件124,以便使路由引擎92将该至少一个转发路径元件124输出到转发单元112。例如,VM 90可生成至少一个转发路径元件124,以便使路由引擎92输出转发路径元件124中的第一下一跳元件,以基于根据各个封包的一个或多个服务将封包引导至服务单元126。例如,路由引擎92可输出指令以使服务单元126中的每个服务单元与一个或多个服务相关联。另外,在一些情况下,控制单元82可被配置为对转发单元112进行编程,以便将到达入站链路116的封包路由至特定服务单元的一个或多个特定CPU内核以供处理。
在一些示例中,服务单元126中的每个服务单元可表示可被添加至网络装置80和/或从网络装置80移除的服务卡。响应于服务单元126被添加至网络装置80或响应于服务单元126从网络装置80移除,控制单元82可基于各个控制单元的添加或移除,来对转发路径元件124重新编程。例如,如果转发路径元件124当前被编程为使转发单元112将与特定服务相关联的封包路由至服务单元126N,并且随后从网络装置80移除服务单元126N,则控制单元82可自主重新配置转发路径元件124,以便将与该服务相关联的传入封包路由至服务单元126中的另一服务单元,而不中断由网络装置80提供的任何服务。以类似的方式,控制单元82可自主重新配置转发路径元件124,以便将与服务相关联的传入封包引导至服务单元126中的另一服务单元内的特定CPU内核或CPU内核组。
在一些示例中,由微处理器128执行的网络服务134可以包括IPsec。IPsec是通信协议,该通信协议允许加密和解密一个或多个数据封包以用于在网络(例如,图1的网络系统2)内的两个或两个以上装置(例如,图1的路由器8、服务节点10、用户装置16和路由器18以及图2的网络装置80)之间传输。例如,网络装置80可以处理与第一装置与第二装置之间的IPsec会话相关联的一个或多个封包。为了处理与该IPsec会话相关联的封包,CPU内核(诸如微处理器128的CPU内核130B)可以执行网络服务134的IPsec服务。根据IPsec服务处理封包可涉及在封包的有效载荷内的加密数据和/或解密数据以转发至第一装置和第二装置的目的地装置,但这不是必需的。根据IPsec服务处理封包可包括除了解密和解密之外的其他动作,或者包括可替代解密和解密的其他动作。
控制单元82可配置转发路径元件124以将与不同IPsec会话相关联的封包路由至各个CPU内核。作为示例,控制单元82可配置转发路径元件124以将与第一IPsec会话相关联的封包引导至服务单元126A以供CPU内核130A处理、将与第二IPsec会话相关联的封包引导至服务单元126A以供CPU内核130C处理、将与第三IPsec会话相关联的封包引导至服务单元126A以供CPU内核130N处理,并且将与第四IPsec会话相关联的封包引导至服务单元126N以供位于服务单元126N上的CPU内核处理。与使用多于一个CPU内核处理与一个IPsec会话相关联的封包的技术相比,一个CPU内核处理与一个IPsec会话相关联的所有封包以便提高效率可能是有益的。一个CPU内核(诸如CPU内核130B)可被配置为处理与多于一个IPsec会话相关联的封包。例如,CPU内核130B可以处理与第五IPsec会话相关联的封包并且可以处理与第六IPsec会话相关联的封包。
术语“会话”、“封包流”、“业务流”或简单地“流”可以指源自特定源装置或端点并且被发送至特定目的地装置或端点的一组封包。单个封包流可以例如由5元组散列来识别:<源网络地址、目的网络地址、源端口、目的端口、协议。该5元组散列通常识别接收到的封包所对应的封包流。n元组指从5元组中得到的任何n项。例如,封包的2元组可以指:该封包的<源网络地址、目的网络地址>或<源网络地址、源端口>的组合。封包的5元组散列可以位于封包196的封包报头中。
传统网络和基于云的网络(诸如网络系统2)可使用封包的5元组散列以外的信息来确定封包的目的地。一个或多个服务模型可实现负载平衡解决方案以便将服务应用于传入网络业务。本文所描述的一种或多种技术可以使用应用标识(例如,“app-id”)负载分配,并且本文所描述的一种或多种技术可以使用基于隧道的负载分配或基于会话的负载分配。附加地或可替代地,本文所描述的一种或多种技术可以使用一些无状态负载分配。
与CPU内核与服务单元之间未使用负载平衡的技术相比,通过实现负载平衡来提高CPU内核的使用的效率和服务单元126中的每个服务单元中可用的带宽使用效率可能是有益的。随着计算功率的增加,封包分配有助于实现网络系统2中可用的计算功率和带宽的最佳利用率。
网络装置80可以使用基于路由的下一跳来实现CPU内核负载平衡。CPU内核负载平衡可以应用于在网络系统2中运行的不同服务(例如,网络服务134)和应用。基于路由的下一跳可以与基于防火墙的下一跳和路由共存。一种或多种技术可以使用路由元数据以确定特定路由(例如,会话)上的网络业务应该被引导至由CPU内核id标识的给定CPU内核或CPU内核集合。网络装置80可以在诸如虚拟网络功能(VNF)微服务模型和容器化微服务模型中实现CPU分配简档文件。网络装置80可支持用于上行链路和下行链路网络业务的对称的基于路由的负载平衡。
图3A是示出根据本公开的一种或多种技术的示例转发路径122A的概念图。转发路径122A可以是图2的转发路径122的示例。转发路径122A包括路由表142、特征列表144、第一下一跳元件146、服务表150、第二下一跳元件154A、内核表158以及队列162。第一下一跳元件146包括服务单元引导逻辑148,而第二下一跳元件154A包括CPU内核引导逻辑156A。在一些情况下,控制平面81可输出指令以配置路由表142、特征列表144、第一下一跳元件146以及第二下一跳元件154A。在图3A的示例中,转发路径122A可将封包路由至服务单元126A以供处理,但这不是必需的。转发路径122A可将封包路由至图2的服务单元126中的任一个或多个。
路由表142表示转发路径122A的转发路径元件集合中的转发路径元件。路由表142是数据表,该数据表包含至网络(例如网络系统2)内的封包目的地集合的路线列表。在一些示例中,当封包(例如,封包196)到达转发路径122A时,路由表142可基于封包196的封包报头选择路线列表中的一个或多个路线。例如,封包196的封包报头可包括指示封包196被绑定的目的地装置、发起封包196的装置、封包196已到或被绑定的一个或多个其他装置、或其的任何组合的数据。在一些情况下,图2的转发单元112可处理封包196的封包报头以便获得包括在封包报头中的信息。路由表142可基于封包报头所包括的信息来选择路线列表中的一个或多个路线。随后,转发路径122A的逻辑进行到特征列表144。特征列表144可表示与封包相关联的路由表下一跳(RTNH)特征列表,这些封包在它们的各个封包报头中具有特定标识符集合。例如,封包196可以包括链路标识码、内核标识码、以及隧道标识(Tid)码。在该示例中,封包处理器120可使转发路径112A的逻辑从路由表142前进到特征列表144,该特征列表144与链路标识码、内核标识码以及Tid标识码相关联。
如图3A所示,转发路径122A的逻辑从特征列表144进行到第一下一跳元件146。封包处理器120可执行第一下一跳元件146以使用服务单元引导逻辑148将封包流映射至服务单元126的服务单元126A。在一些示例中,控制平面81可以生成第一下一跳元件146,以便将封包196和与封包196相关联的封包流的其他封包引导至多个CPU内核中的一个CPU内核。以这种方式,控制平面81可生成第一下一跳元件146,以便将封包196映射至服务单元126A,该服务单元126A包括多个CPU内核中的CPU内核。随后,转发路径122A的逻辑进行到服务表150。转发路径122A从第一下一跳元件146进行到服务表150可表示封包196至服务单元126中的服务单元126的映射。
随后转发路径122A的逻辑可进行到包括CPU内核引导逻辑156A的第二下一跳元件154A。封包处理器120可执行包括CPU内核引导逻辑156A的第二下一跳元件154A,以将封包196映射至位于服务单元126A上的CPU内核130中的CPU内核130B。封包196至CPU内核130B的该映射可由转发路径122A从第二下一跳元件154A前进到内核表158来表示。在一些示例中,控制平面81可生成第二下一跳元件154A,以便将与封包196的封包流相关联的封包映射至同一CPU内核。在图3A的示例中,该CPU内核是CPU内核130B。因为CPU内核130B位于服务单元126A上,所以控制平面81可生成第一下一跳元件146和第二下一跳元件154A以将封包196映射至CPU内核130B,从而允许转发单元112将封包196引导至CPU内核130B以供处理。在图3A中未示出的一个或多个其他示例中,控制平面81可生成第一下一跳元件和第二下一跳元件以将封包196映射至位于另一个服务单元(诸如服务单元126N)上的CPU内核。在一个或多个这种示例中,控制平面81可生成相应第一下一跳元件以将封包196映射至服务单元126N,并生成相应第二下一跳元件以将封包196映射至位于服务单元126N上的CPU内核集合中的合适的CPU内核。
尽管图3A中示出了与服务单元126A相对应的第一下一跳元件146,但是转发路径122A还可包括与图3A中未示出的服务单元126中的每个其他服务单元相对应的相应下一跳元件。此外,尽管图3A中示出了与CPU内核130B相对应的第二下一跳元件154A,但是转发路径122A还可以包括与CPU内核130中的每个其他CPU内核性对应的相应下一跳元件。以这种方式,控制平面81可以生成下一跳元件,以便将封包196或其他封包映射至位于服务平面85的任何服务单元上的任何CPU内核。
转发路径122A的逻辑进行到队列162。队列164A可从内核表158接收封包196。在一些示例中,队列164A至164N可以表示与优先级相关联的每个队列。例如,队列164A可与第一优先级相对应,而队列164B可与第二优先级相对应,其中第一优先级高于第二优先级。因此,封包196可以表示“高优先级”封包,该“高优先级”封包在与低于第一优先级的优先级相对应的队列164B至164N中的封包之前由队列162转发。队列164A可将封包196引导至服务单元126A,使得CPU内核130B可基于将封包196映射至服务单元126A的CPU内核130B的第一下一跳元件146和第二下一跳元件154A来处理封包196。在一些示例中,CPU内核130B可以处理封包196以便管理服务(诸如一个或多个网络服务134)。
服务单元126A可在CPU内核130B处理之后将封包196A引导至路由表166。路由表166表示转发路径122A的转发路径元件集合中的转发路径元件。路由表166是包含至网络(诸如网络系统2)内的封包目的地集合的路线列表的数据表。路由表166可以针对封包196执行路线查找,并且路由表166可以经由WAN接口115转发封包196。在一些示例中,WAN接口115可表示图1的IFC 114中的IFC。
控制平面81可生成第一下一跳元件146和第二下一跳元件154A,以便将封包196映射至CPU内核或CPU内核集合,该CPU内核或CPU内核集合处理与关联于封包196的服务相关联的所有或几乎所有封包。例如,如果封包196与IPsec会话相关联,则控制平面81可配置第一下一跳元件146和第二下一跳元件154A,以便将封包196引导至CPU内核130B,该CPU内核130B处理与关联于封包196的IPsec会话相关联的所有封包。在一些情况下,控制平面81可配置第一下一跳元件146和第二下一跳元件154A,以便将与另一IPsec会话相关联的封包路由至除了CPU内核130B以外的CPU内核,该另一IPsec会话与关联于封包196的IPsec会话不相同。在一些情况下,控制平面81可配置第一下一跳元件146和第二下一跳元件154A,以便将与关联于封包196的IPsec会话不相同的另一IPsec会话相关联的封包路由至CPU内核130B。与多于一个的CPU内核处理与一个服务相关联的封包的技术相比,一个CPU内核处理与一个服务相关联的封包可能更有效。
本公开的技术并不旨在受限于IPsec服务。控制平面81可输出指令以配置第一下一跳元件146和第二下一跳元件154A,以便基于与CG-NAT、媒体优化(语音/视频)、VPN服务、DPI服务、HTTP过滤服务、计数服务、记账服务、收费服务、负载平衡服务或其的任何组合相关联的封包196,将封包196引导至服务单元126B的特定CPU内核(例如,CPU内核130B)进行处理。例如,如果封包196与VPN服务相关联,则控制平面81可输出指令以配置第一下一跳元件146和第二下一跳元件154A,以便将封包196路由至CPU内核130B以与VPN服务相关联的其他封包一起处理。
图3B是示出根据本公开的一种或多种技术的另一示例转发路径122B的概念图。转发路径122B可以是图2的转发路径122的示例。转发路径122B包括路由表142、特征列表144、第一下一跳元件146、服务表150、第二下一跳元件154B、内核表158以及队列162。第一下一跳元件146包括服务单元引导逻辑148,而第二下一跳元件154B包括散列逻辑(hash logic)155和CPU内核引导逻辑156A。在一些情况下,控制平面81可输出指令以配置路由表142、特征列表144、第一下一跳元件146以及第二下一跳元件154B。在图3A的示例中,转发路径122B可将封包路由至服务单元126A以供处理,但这不是必需的。转发路径122B可将封包路由至图2的服务单元126中的任一个或多个。
转发路径122B可以与图3A的转发路径122A基本上相同,除了图3B的第二下一跳元件154B还包括CPU内核引导逻辑156B之外的散列逻辑155,而第二下一跳元件154A包括CPU内核引导逻辑156A且并不包括散列逻辑。在一些示例中,由共同CPU内核处理IPsec会话集合中的每个IPsec会话的双向业务可能是有益的。在一些示例中,控制平面81可基于元数据组对转发路径122B进行编程,并可将网络业务转发至由控制平面81提供的一个或多个CPU内核。例如,控制平面81可对第一下一跳元件146和第二下一跳154进行编程以引导封包196,以供服务单元126A的CPU内核130B处理。
术语“会话”、“封包流”、“业务流”或简单地“流”是指源自特定源装置或端点并且被发送至特定目的地装置或端点的一组封包。单个封包流可以例如由5元组散列来标识:<源网络地址、目的网络地址、源端口、目的端口、协议>。该5元组散列通常识别接收到的封包所对应的封包流。n元组是指从5元组中得到的任何n项。例如,封包的2元组可以指:该封包的<源网络地址、目的网络地址>或<源网络地址、源端口>的组合。封包196的5元组散列可以位于封包196的封包报头中。
在图3B的示例中,控制平面81可以对转发路径122B进行编程,以便将封包196引导至位于服务平面85中的一CPU内核组(诸如两个或两个以上CPU内核130)。第二下一跳154B可以基于封包196的5元组散列或7元组散列,来选择CPU内核130中的两个或两个以上中要引导封包196的一个CPU内核。另一方面,在图3A的示例中,控制平面81可对转发路径122B进行编程以将封包196引导至特定CPU内核(诸如CPU内核130B)。
在一些示例中,为了将封包196引导至CPU内核130B,转发单元112的封包处理器120被配置为执行第二下一跳元件154B以从选定的服务单元126B的CPU内核130中选择CPU内核130B。在一些示例中,为了从选定的服务单元126A的CPU内核130集合中选择CPU内核130B,转发单元112的封包处理器120被配置来执行第二下一跳元件154B以使用散列逻辑155将散列函数应用于封包196的封包报头的一个或多个元素,以生成映射至CPU内核130B的散列索引。以这种方式,第二下一跳元件154B可将封包196映射至CPU内核130B以对封包196的5元组散列进行处理。
图4是示出根据本公开的一种或多种技术的用于将封包引导至服务平面85以供处理的示例操作的流程图。相对于图2的网络装置80的控制平面81、转发平面83以及服务平面85来描述图4。然而,图4的技术可由网络装置80的不同部件或由额外或可替代的装置执行。
在一些示例中,图2的控制单元82包括与存储器通信的处理电路102,其中该处理电路被配置为执行一个或多个处理。在一些情况下,一个或多个处理可以包括VM 90。图2的转发单元112包括IFC 114、封包处理器120、以及转发单元存储器。在一些示例中,控制单元82的一个或多个处理被配置为由处理电路102执行,以便利用一个或多个转发路径元件124配置转发单元112的转发单元存储器。一个或多个转发路径元件124可以将封包流映射至位于服务平面85中的多个CPU内核中的一个CPU内核。在控制单元82的一个或多个处理利用一个或多个转发路径元件124来配置转发单元存储器之后,转发单元112可经由IFC 114中的一个接收封包。此外,转发单元112的封包处理器120被配置为执行转发单元存储器中的一个或多个转发路径元件124,以将封包引导至位于服务平面85中的多个CPU内核中的一个CPU内核。
如图4所示,控制单元82的一个或多个处理可选择位于服务平面85中的多个服务单元126中的一个服务单元(402)。在一些示例中,控制单元82可选择服务单元126A,利用该服务单元126A来处理被转发路径元件124映射至多个CPU内核中的一个CPU内核的封包流,其中服务单元126A包括CPU内核。控制单元82的一个或多个处理可以从选定的服务单元126A的CPU内核130集合中选择CPU内核130B(404)。一个或多个处理可生成第一下一跳元件和第二下一跳元件(406)。在一些示例中,第一下一跳元件将封包流映射至选定的服务单元126A,而第二下一跳元件可将封包流映射至选定的服务单元126A的CPU内核130中的选定的CPU内核130B。
在一些示例中,为了生成第一下一跳元件和生成第二下一跳元件,控制单元82的一个或多个处理被配置为基于到达转发单元112的封包的封包报头来识别与该封包相关联的服务,并且基于该服务来生成第一下一跳元件和第二下一跳元件。附加地或可替代地,一个或多个处理可以将多个服务中的每个服务与位于服务平面85的服务单元126中的多个CPU内核中的一个或多个CPU内核相关联。在一些示例中,多个服务可包括服务单元126A的网络服务134和在服务单元126B至126N上执行的一个或多个其他服务。控制单元82的一个或多个处理可以基于与多个服务中的每个服务相关联的一个或多个CPU内核,来生成第一下一跳元件和第二下一跳元件。在一些示例中,一个或多个处理可生成第一下一跳元件和第二下一跳元件,以便平衡跨服务平面85的服务单元126上的多个CPU内核的处理负荷。在一些情况下,一个或多个处理除了生成第一下一跳元件和第二下一跳元件以外,还可生成转发路径元件。
转发单元112可以存储由控制单元82的一个或多个处理生成的第一下一跳元件和第二下一跳元件(408)。转发单元112可经由IFC 114中的一个接收封包流的封包(410),该封包流的封包被转发路径元件124引导至位于服务平面85的服务单元126上的多个CPU内核中的CPU内核。随后,转发单元112的封包处理器120可执行转发路径元件124,以便将封包引导至多个CPU内核中的CPU内核(412)。例如,为了将封包引导至CPU内核,封包处理器120可被配置为执行第一下一跳元件以将封包流映射至选定的服务单元126A,并且封包处理器120可被配置为执行第二下一跳元件以将封包流映射至位于选定的服务单元126A上的CPU内核130集合中的选定的CPU内核130B。附加或可替代地,为了将封包引导至CPU内核130B,转发单元112的封包处理器120被配置为执行第二下一跳元件以从选定的服务单元126A的CPU内核130中选择CPU内核130B。在一些示例中,为了从选定的服务单元126A的CPU内核130中选择CPU内核130B,转发单元112的封包处理器120被配置为执行第二下一跳元件以将散列函数应用于封包的封包报头的一个或多个元素,以生成映射至选定的服务单元126A的CPU内核130的CPU内核130B的散列索引。
选定的服务单元126A可接收封包414(414)。随后,CPU内核130B可以处理该封包(416),以便将服务134中的服务应用于该封包。例如,封包的封包流可与IPsec会话相对应。并且CPU内核130B可以处理该封包,以便在该封包的有效载荷中加密或解密数据,但是这不是必需的。CPU内核130B可以处理该封包,以便应用与封包流相关联的服务134中的任何相应的一个。服务单元126A可将封包发送至转发单元112(418),且转发单元112可接收该封包(420)。转发单元112可经由一个IFC 114转发封包(422)。
本文所描述的技术可以以硬件、软件、固件或其的任何组合来实现。被描述为模块、单元或部件的各种特征可以在集成逻辑装置中一起实现或分开地实现为分立但可互操作的逻辑装置或其他硬件装置。在一些情况下,电子电路的各种特征可实现为一个或多个集成电路装置(诸如集成电路芯片或芯片组)。
如果以硬件实现,则本公开可针对诸如处理器或集成电路装置(诸如集成电路芯片或芯片组)的设备。可替代地或附加地,如果以软件或固件实现,则技术可至少部分地由包括指令的计算机可读数据存储介质实现,该指令在被执行时使处理器执行上述方法中的一种或多种。例如,计算机可读数据存储介质可存储由处理器执行的这种指令。
计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可包括计算机数据存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。在一些示例中,制品可包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可包括非暂时性介质。术语“非暂时性”可以指示存储介质未在载波或传播信号中体现。在某些示例中,非暂时性存储介质可以存储随时间改变的数据(例如,在RAM或高速缓冲存储器中)。
代码或指令可以是由处理电路执行的软件和/或固件,该处理电路包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,如本文使用的术语“处理器”可以指前述结构或适合于实现本文所描述的技术的任何其他结构中的任一种。另外,在一些方面中,本公开中所描述的功能可在软件模块或硬件模块内提供。
Claims (20)
1.一种网络装置,包括:
控制单元,包括与存储器通信的处理电路,其中,所述处理电路被配置为执行一个或多个处理;
服务单元,包括多个中央处理单元CPU内核;以及
转发单元,包括接口卡、封包处理器以及转发单元存储器,
其中,所述控制单元的所述一个或多个处理被配置为利用一个或多个转发路径元件来配置所述转发单元的所述转发单元存储器,
其中,所述一个或多个转发路径元件将封包流映射至所述多个中央处理单元CPU内核中的CPU内核以供处理,其中所述封包流包括来自源装置并去往目的地装置的一组封包,并且其中所述服务单元的多个CPU内核与和所述服务单元分离的所述转发单元的所述一个或多个转发路径元件分离,
其中,所述转发单元被配置为经由所述接口卡接收所述封包流的封包,并且
其中,所述转发单元的所述封包处理器被配置为执行所述转发单元存储器中的所述一个或多个转发路径元件,以将来自所述源装置并去往所述目的地装置的所述封包引导至所述服务单元的所述CPU内核。
2.根据权利要求1所述的网络装置,其中,所述网络装置包括含有所述服务单元的多个服务单元,其中所述一个或多个转发路径元件包括第一下一跳元件,并且其中,所述一个或多个处理还被配置为:
选择所述多个服务单元中用于处理所述封包流的所述服务单元,其中所述服务单元包括所述CPU内核;并且
生成所述第一下一跳元件以将所述封包流映射至选定的服务单元,并且
其中,为了将所述封包引导至所述CPU内核,所述转发单元的所述封包处理器被配置为执行所述第一下一跳元件以将所述封包流映射至所述选定的服务单元。
3.根据权利要求2所述的网络装置,其中,所述一个或多个转发路径元件包括第二下一跳元件,其中,所述一个或多个处理还被配置为:
从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核;并且
生成所述第二下一跳元件以将所述封包流映射至所述选定的服务单元的所述多个CPU内核中的所述CPU内核,并且
其中,为了将所述封包引导至所述CPU内核,所述转发单元的所述封包处理器被配置为执行所述第二下一跳元件以将所述封包流映射至所述CPU内核。
4.根据权利要求2所述的网络装置,
其中,所述一个或多个转发路径元件包括第二下一跳元件,
其中,所述选定的服务单元包括所述多个CPU内核,并且其中,为了将所述封包引导至所述CPU内核,所述转发单元的所述封包处理器被配置为执行所述第二下一跳元件以从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核。
5.根据权利要求4所述的网络装置,其中,为了从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核,所述转发单元的所述封包处理器被配置为执行所述第二下一跳元件以将散列函数应用于所述封包的封包报头的一个或多个元素,以生成映射至所述选定的服务单元的所述多个CPU内核中的所述CPU内核的散列索引。
6.根据权利要求2所述的网络装置,其中,所述选定的服务单元是第一服务单元,其中,所述一个或多个处理还被配置为:
选择所述多个服务单元的第二服务单元来替代所述第一服务单元;并且
响应于检测到所述第一服务单元的故障,重新配置所述第一下一跳元件以将所述封包流映射至所述第二服务单元。
7.根据权利要求1至6中任一项所述的网络装置,
其中,所述转发单元还包括用于所述多个CPU内核的相应输出队列,
其中,为了将所述封包引导至所述CPU内核,所述转发单元的所述封包处理器被配置为执行所述转发单元存储器中的所述一个或多个转发路径元件,以将所述封包添加至所述CPU内核的所述输出队列。
8.根据权利要求1所述的网络装置,其中,所述一个或多个处理还被配置为:
基于所述封包的封包报头,来识别与所述封包相关联的服务,并且
基于所述服务生成所述一个或多个转发路径元件。
9.根据权利要求8所述的网络装置,其中,所述一个或多个处理还被配置为:
将多个所述服务中的每个服务与所述多个CPU内核中的一个或多个CPU内核相关联;并且
基于与多个所述服务中的每个服务相关联的所述多个CPU内核中的所述一个或多个CPU内核,来生成所述一个或多个转发路径元件。
10.根据权利要求8所述的网络装置,其中,所述一个或多个处理还被配置为:
将多个所述服务中的每个服务与所述多个CPU内核中的一个或多个CPU内核相关联;并且
基于与多个所述服务中的每个服务相关联的所述多个CPU内核中的所述一个或多个CPU内核,生成所述一个或多个转发路径元件,以便平衡所述多个CPU内核之间的处理负荷。
11.根据权利要求1至6中任一项所述的网络装置,其中,所述封包流对应于互联网协议安全会话。
12.一种操作网络装置的方法,所述方法包括:
由控制单元的处理电路执行一个或多个处理,其中,所述处理电路与存储器通信;
由所述控制单元的所述一个或多个处理利用一个或多个转发路径元件来配置转发单元的转发单元存储器,
其中,所述转发单元包括接口卡、封包处理器以及所述转发单元存储器,并且
其中,所述一个或多个转发路径元件将封包流映射至多个中央处理单元CPU内核中的CPU内核以供处理,其中,服务单元包括多个CPU内核,其中所述封包流包括来自源装置并去往目的地装置的一组封包,并且其中所述服务单元的所述多个CPU内核与和所述服务单元分离的所述转发单元的所述一个或多个转发路径元件分离;
所述转发单元经由所述接口卡接收所述封包流的封包;并且
由所述封包处理器执行所述转发单元存储器中的所述一个或多个转发路径元件,以将来自源装置并去往目的地装置的所述封包引导至所述服务单元的所述CPU内核。
13.根据权利要求12所述的方法,其中,所述网络装置包括含有所述服务单元的多个服务单元,其中所述一个或多个转发路径元件包括第一下一跳元件,并且其中,所述方法还包括:
由所述一个或多个处理选择所述多个服务单元中的用于处理所述封包流的所述服务单元,其中所述服务单元包括所述CPU内核;并且
由所述一个或多个处理生成所述第一下一跳元件以将所述封包流映射至选定的服务单元,
其中,执行所述转发单元存储器中的所述一个或多个转发路径元件以将所述封包引导至所述CPU内核包括:执行所述第一下一跳元件以将所述封包流映射至所述选定的服务单元。
14.根据权利要求13所述的方法,其中,所述一个或多个转发路径元件包括第二下一跳元件,并且其中,所述方法还包括:
由所述一个或多个处理从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核;
由所述一个或多个处理生成所述第二下一跳元件以将所述封包流映射至所述选定的服务单元的所述多个CPU内核中的所述CPU内核,并且
其中,将所述封包引导至所述CPU内核包括:由所述封包处理器执行所述第二下一跳元件以将所述封包流映射至所述CPU内核。
15.根据权利要求13所述的方法,
其中,所述一个或多个转发路径元件包括第二下一跳元件,
其中,所述选定的服务单元包括所述多个CPU内核,并且其中,将所述封包引导至所述CPU内核包括:由所述封包处理器执行所述第二下一跳元件以从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核。
16.根据权利要求15所述的方法,其中,从所述选定的服务单元的所述多个CPU内核中选择所述CPU内核包括:由所述封包处理器执行所述第二下一跳元件以将散列函数应用于所述封包的封包报头的一个或多个元素,以生成映射至所述选定的服务单元的所述多个CPU内核中的所述CPU内核的散列索引。
17.根据权利要求13所述的方法,其中,所述选定的服务单元是第一服务单元,其中,所述方法还包括:
由所述一个或多个处理选择所述多个服务单元的第二服务单元来替代所述第一服务单元;并且
响应于检测到所述第一服务单元的故障,由所述一个或多个处理重新配置所述第一下一跳元件以将所述封包流映射至所述第二服务单元。
18.根据权利要求12至17中任一项所述的方法,其中,所述方法还包括:
由所述一个或多个处理基于所述封包的封包报头,来识别与所述封包相关联的服务;并且
由所述一个或多个处理基于所述服务,生成所述一个或多个转发路径元件。
19.根据权利要求18所述的方法,其中,所述方法还包括:
由所述一个或多个处理将多个所述服务中的每个服务与所述多个CPU内核中的一个或多个CPU内核相关联;并且
由所述一个或多个处理基于与多个所述服务中的每个服务相关联的所述多个CPU内核中的所述一个或多个CPU内核,来生成所述一个或多个转发路径元件。
20.一种非暂时性计算机可读介质,包括指令,所述指令使网络装置的一个或多个可编程处理器进行以下操作:
执行控制平面的一个或多个处理;
利用一个或多个转发路径元件来配置转发单元的转发单元存储器,其中,所述转发单元包括接口卡、封包处理器以及所述转发单元存储器,并且其中,所述转发路径元件将封包流映射至多个中央处理单元CPU内核中的CPU内核,其中服务单元包括多个CPU内核,其中所述封包流包括来自源装置并去往目的地装置的一组封包,并且其中所述服务单元的所述多个CPU内核与和所述服务单元分离的所述转发单元的所述一个或多个转发路径元件分离;
接收所述封包流的封包;并且
执行所述转发单元存储器中的所述一个或多个转发路径元件,以将来自所述源装置并去往所述目的地装置的所述封包引导至所述服务单元的所述CPU内核,以供所述CPU内核处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/818,819 | 2020-03-13 | ||
US16/818,819 US11140075B1 (en) | 2020-03-13 | 2020-03-13 | Network traffic steering among CPU cores using forwarding path elements |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113395212A CN113395212A (zh) | 2021-09-14 |
CN113395212B true CN113395212B (zh) | 2023-08-18 |
Family
ID=70977447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010456468.7A Active CN113395212B (zh) | 2020-03-13 | 2020-05-26 | 网络装置及其操作方法和非暂时性计算机可读介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11140075B1 (zh) |
EP (1) | EP3879757A1 (zh) |
CN (1) | CN113395212B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463343B2 (en) * | 2020-10-07 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | SDWAN overlay routing service |
CN115347935A (zh) * | 2022-06-29 | 2022-11-15 | 深圳市高德信通信股份有限公司 | 一种基于无人机IPv6化的传感数据接入传输系统及方法 |
CN116016035B (zh) * | 2023-02-16 | 2023-06-13 | 北京天维信通科技有限公司 | 利用五元组在同一隧道中进行多路径业务应用的方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102907055A (zh) * | 2010-03-26 | 2013-01-30 | 思杰系统有限公司 | 用于在多核装置上进行链路负载平衡的系统和方法 |
CN103516633A (zh) * | 2012-06-29 | 2014-01-15 | 丛林网络公司 | 用于在分布式交换机中提供服务的方法和装置 |
CN103812960A (zh) * | 2012-09-28 | 2014-05-21 | 瞻博网络公司 | 用于订户感知服务的应用的网络地址转换 |
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN105743878A (zh) * | 2014-12-30 | 2016-07-06 | 瞻博网络公司 | 使用蜜罐的动态服务处理 |
US9622143B1 (en) * | 2013-08-01 | 2017-04-11 | Juniper Networks, Inc. | Access point name mappings for a layer two wireless access network |
CN109154896A (zh) * | 2016-04-29 | 2019-01-04 | 思杰系统有限公司 | 用于服务链负载平衡的系统和方法 |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
EP3512166A1 (en) * | 2018-01-12 | 2019-07-17 | Juniper Networks, Inc. | Node representations of packet forwarding path elements |
CN110120900A (zh) * | 2015-05-25 | 2019-08-13 | 丛林网络公司 | 通信方法、网络的集中控制器设备及网络中的网络设备 |
EP3611883A1 (en) * | 2018-08-15 | 2020-02-19 | Juniper Networks, Inc. | Secure forwarding of tenant workloads in virtual networks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201742437U (zh) * | 2010-09-13 | 2011-02-09 | 韩来权 | 基于可编程路由器的多路径旁路分流转发系统 |
US8948174B2 (en) * | 2011-06-29 | 2015-02-03 | Juniper Networks, Inc. | Variable-based forwarding path construction for packet processing within a network device |
US8806058B1 (en) | 2011-07-29 | 2014-08-12 | Juniper Networks, Inc. | Packet forwarding path programming using a high-level description language |
US20170318082A1 (en) * | 2016-04-29 | 2017-11-02 | Qualcomm Incorporated | Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems |
US10986075B2 (en) * | 2017-11-02 | 2021-04-20 | Arista Networks, Inc. | Distributing packets across processing cores |
CN111262792B (zh) * | 2020-01-17 | 2022-04-01 | 新华三信息安全技术有限公司 | 报文转发方法、装置、网络设备及存储介质 |
-
2020
- 2020-03-13 US US16/818,819 patent/US11140075B1/en active Active
- 2020-05-26 CN CN202010456468.7A patent/CN113395212B/zh active Active
- 2020-06-03 EP EP20178062.4A patent/EP3879757A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102907055A (zh) * | 2010-03-26 | 2013-01-30 | 思杰系统有限公司 | 用于在多核装置上进行链路负载平衡的系统和方法 |
CN103516633A (zh) * | 2012-06-29 | 2014-01-15 | 丛林网络公司 | 用于在分布式交换机中提供服务的方法和装置 |
CN103812960A (zh) * | 2012-09-28 | 2014-05-21 | 瞻博网络公司 | 用于订户感知服务的应用的网络地址转换 |
US9622143B1 (en) * | 2013-08-01 | 2017-04-11 | Juniper Networks, Inc. | Access point name mappings for a layer two wireless access network |
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN105743878A (zh) * | 2014-12-30 | 2016-07-06 | 瞻博网络公司 | 使用蜜罐的动态服务处理 |
CN110120900A (zh) * | 2015-05-25 | 2019-08-13 | 丛林网络公司 | 通信方法、网络的集中控制器设备及网络中的网络设备 |
CN109154896A (zh) * | 2016-04-29 | 2019-01-04 | 思杰系统有限公司 | 用于服务链负载平衡的系统和方法 |
EP3512166A1 (en) * | 2018-01-12 | 2019-07-17 | Juniper Networks, Inc. | Node representations of packet forwarding path elements |
EP3611883A1 (en) * | 2018-08-15 | 2020-02-19 | Juniper Networks, Inc. | Secure forwarding of tenant workloads in virtual networks |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"Load Balancing for Virtual Resources Management in Data Center";Md. Owais Qurani,等;《2018 8th International Conference on Cloud Computing, Data Science & Engineering (Confluence)》;20180824;第677-682页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113395212A (zh) | 2021-09-14 |
US20210288903A1 (en) | 2021-09-16 |
EP3879757A1 (en) | 2021-09-15 |
US11140075B1 (en) | 2021-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11706138B2 (en) | Distributing service function chain data and service function instance data in a network | |
US20220124077A1 (en) | Secure forwarding of tenant workloads in virtual networks | |
US10454821B2 (en) | Creating and maintaining segment routed traffic engineering policies via border gateway protocol | |
CN112039748B (zh) | 软件定义的网络环境中服务的自动发现和自动扩缩 | |
US9853898B1 (en) | Dynamic service chain provisioning | |
US9167501B2 (en) | Implementing a 3G packet core in a cloud computer with openflow data and control planes | |
US10042722B1 (en) | Service-chain fault tolerance in service virtualized environments | |
US9025468B1 (en) | Custom routing decisions | |
US7738457B2 (en) | Method and system for virtual routing using containers | |
US8867349B2 (en) | Regulation of network traffic in virtual private networks | |
EP3140964B1 (en) | Implementing a 3g packet core in a cloud computer with openflow data and control planes | |
RU2704714C1 (ru) | Технологии для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи, использующие ospf | |
US11329966B2 (en) | System and method for transferring packets between kernel modules in different network stacks | |
CN113395212B (zh) | 网络装置及其操作方法和非暂时性计算机可读介质 | |
WO2017037615A1 (en) | A method and apparatus for modifying forwarding states in a network device of a software defined network | |
Li et al. | Improving SDN scalability with protocol-oblivious source routing: A system-level study | |
US11336570B1 (en) | Layer three multi-homing for virtual networks | |
US11671483B2 (en) | In-band protocol-based in-network computation offload framework | |
WO2016108140A1 (en) | Ccn fragmentation gateway | |
US11863454B2 (en) | Systems and methods for scalable validation of multiple paths in a network using segment routing | |
US20220214912A1 (en) | Sharing and oversubscription of general-purpose graphical processing units in data centers | |
US10009274B2 (en) | Device and method for collapsed forwarding | |
WO2020201815A1 (en) | Methods and systems for sending packets through a plurality of tunnels | |
RU2675212C1 (ru) | Адаптивная балансировка нагрузки при обработке пакетов |
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 |