CN109863726A - 分布式客户驻地装置 - Google Patents

分布式客户驻地装置 Download PDF

Info

Publication number
CN109863726A
CN109863726A CN201780064331.3A CN201780064331A CN109863726A CN 109863726 A CN109863726 A CN 109863726A CN 201780064331 A CN201780064331 A CN 201780064331A CN 109863726 A CN109863726 A CN 109863726A
Authority
CN
China
Prior art keywords
network
equipment
control
plane subsystem
data
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
CN201780064331.3A
Other languages
English (en)
Inventor
R·贝斯
S·纳拉扬
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.)
Sina Co.
Original Assignee
AT&T Intellectual Property I LP
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
Priority claimed from US15/338,082 external-priority patent/US10257089B2/en
Application filed by AT&T Intellectual Property I LP filed Critical AT&T Intellectual Property I LP
Publication of CN109863726A publication Critical patent/CN109863726A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • 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
    • 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
    • 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/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines

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)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了用于提供包括若干设备的分布式客户驻地装置(CPE)的技术。分布式CPE可以包括被配置为在第一设备上执行的控制平面子系统、被配置为在第二设备上执行的第一数据平面子系统,以及被配置为在第三设备上执行的第二数据平面子系统。第二设备还可以被配置为执行能够执行第一网络功能的第一虚拟机。第三设备还可以被配置为执行能够执行第二网络功能的第二虚拟机。在某些实施例中,控制平面子系统可以被配置为控制第一数据平面子系统和第二数据平面子系统的转发功能,并控制第一网络功能和第二网络功能。在某些实施例中,第一设备和第二设备是客户驻地装置(CPE)设备。

Description

分布式客户驻地装置
对相关申请的交叉引用
本专利申请要求于2016年9月9日提交的标题为“DISTRIBUTED CUSTOMER PREMISEEQUIPMENT”的美国临时专利申请序列No.62/385,352和2016年10月28日提交的标题为“DISTRIBUTED CUSTOMER PREMISE EQUIPMENT”的美国非临时专利申请序列No.15/388,082的优先权。美国临时专利申请序列No.62/385,352和美国非临时专利申请序列No.15/388,082的内容出于所有目的通过引用整体并入本文。
技术领域
本公开一般而言涉及数据路由和转发,更具体而言,涉及用于集中和改进客户驻地装置(CPE)的控制、配置和管理的技术。
背景技术
按照惯例,CPE是提供基于硬件的解决方案的设备,用于促进客户的某些基于网络的服务。CPE可以是位于订户驻地的任何终端/设备和相关联的装备。在一些情况下,CPE与网络运营商或承运人的电信信道相连。在一些情况下,CPE为网络运营商提供分界点(“demarc”),以便向客户提供服务。换句话说,CPE充当网络运营商的扩展,驻留在客户驻地并且促进网络运营商向客户提供的服务。分界点是在建筑物、建筑群或系统中建立的点,以将客户装备与位于网络运营商的或者分发基础设施或者中心办公室的装备分开的点。
CPE一般可以指诸如电话、路由器、交换机、住宅网关(RG)、机顶盒、固定移动融合产品、家庭联网适配器和互联网接入网关之类的设备,其使消费者能够访问通信服务提供商的服务并经由LAN(局域网)、数字订户线(DSL)或其它宽带互联网路由器、互联网协议语音(VoIP)基站或特定服务提供商使用的其它系统将它们分布在他们的房屋或驻地周围。还包括关键电话系统和大多数专用小交换机(PBX)。
一般而言,一旦CPE物理地位于客户的驻地处,对CPE的任何改变就都会导致技术人员访问客户,从而导致更高的成本和不便。此外,如果CPE不支持某种功能或服务,或者如果CPE需要导致客户或网络运营商的附加成本的升级,那么通常必须更换CPE。此外,CPE是单功能设备,并且客户可能无法使用相同的CPE启用和使用多个服务和功能。
虽然在整个说明书中讨论了CPE,但是在若干实施例中,还可以使用路由器代替CPE来执行本文所讨论的若干实施例。此外,在一些情况下,CPE本身可以执行路由器的功能,诸如转发网络数据分组。路由器是专用网络设备,其被配置为在网络之间转发数据(例如,网络数据分组)以促进将数据从其源递送到其预期目的地。路由器被配置为通过互联网络拓扑确定最佳路由或数据路径,并使用这些最佳路径运输网络数据分组。路由器还提供各种其它服务,例如防火墙、服务质量(QoS)等。
常规的路由器通常路由网络分组,并且包括控制平面子系统和一个或多个数据平面子系统,它们全部容纳在单个盒子或机箱内。网络分组可以包括网络控制分组和网络数据分组。网络控制分组一般可以指用于网络本身的创建和操作的、路由器(例如,控制平面服务器计算机)生成或接收的分组。在一个示例中,网络控制分组可以更新和/或配置数据平面子系统。网络数据分组一般可以指由中间网络设备转发到其它终端设备的终端设备用户应用生成的分组。
可以在常规系统中实现为线卡的数据平面被配置为经由数据平面的一个或多个端口接收和转发网络数据分组。基于由数据平面存储的转发信息来执行转发。数据平面用于转发网络数据分组的转发信息通常由路由器的控制平面子系统编程,该控制平面子系统可以包括一个或多个管理卡。控制平面子系统被配置为控制由路由器执行的与网络相关的功能,包括例如维护路由信息(例如,路由信息表)、基于路由信息转发信息编程数据转发平面、处理各种网络控制协议、处理在控制平面处终止的分组(例如,控制和/或数据分组)的处理,处理访问控制列表(ACL)、服务质量(QoS)、管理功能等。
如前所述,在常规路由器中,路由器的控制平面子系统和由控制平面子系统控制的数据平面都物理地共同位于路由器的同一物理网络设备盒或机箱内。因此,控制平面子系统和路由器的数据平面子系统之间存在静态关系。这使得在可能包括数万个这样的路由器的大型网络(例如,互联网)中编程这种路由器复杂且不灵活。当必须对这样的网络进行改变(例如,数据路径的添加或重新配置、网络设备的添加或移除)时,受改变影响的每个单独的路由器盒必须被单独编程或重新编程。这种以某个路由器为中心的管理要求使得对这种网络的管理非常复杂和耗时。因此,使用常规路由器的网络缺乏当今(和未来)网络应用(诸如云计算、移动计算、实时和点播视频流量等)所期望的灵活性和动态可配置性。
因此,维护常规CPE(尤其是实现路由能力的CPE)的网络是昂贵、复杂、不灵活且难以升级和管理的。
发明内容
本公开一般而言涉及数据路由和转发,更具体而言,涉及用于集中和改进客户驻地装置(CPE)的控制、配置和管理的技术。
在某些实施例中,提供了一种新颖的分布式CPE。根据某些实施例,分布式CPE包括集中控制平面服务器计算机和本机执行软件数据平面子系统的若干CPE(即,没有虚拟化)。执行控制平面子系统的控制平面服务器计算机控制CPE。每个CPE还可以能够托管虚拟机并在相应的虚拟机中执行虚拟网络功能(VNF)。
在某些实施例中,具有集中控制平面子系统以及到软件数据平面子系统的覆盖网络为运营商提供了类似于单个大型路由器的视图。而且,控制平面和数据平面子系统的解耦最大化了在CPE处硬件资源的现场利用率,用于转发分组并将可能是处理更密集但对等待时间不敏感(或不太敏感)的任务的控制平面任务推送到远程和集中控制平面子系统。此外,这种CPE设计允许软件数据平面子系统进行本机分组处理,同时允许CPE使用虚拟网络功能升级和/或增强具体网络功能。因此,所公开的技术允许改进的网络管理。
示例分布式客户驻地装置(CPE)可以包括位于第一位置处的控制平面服务器计算机、多个设备中来自位于第二位置处的第一设备以及所述多个设备中位于第三位置处的第二设备。所述多个设备可以是客户驻地装置(CPE)设备。在某些实施例中,第一位置是数据中心,而第二和第三位置是客户驻地。在某些实施例中,可以使用网络信道连接第一位置处的控制平面服务器计算机和第二位置处的第一设备。在某些实施例中,控制平面服务器计算机和第一设备之间的距离可以高于阈值。
控制平面服务器可以包括一个或多个处理器以及存储可由一个或多个处理器执行的指令的存储器,其中指令在被执行时使控制平面服务器计算机执行使用一个或多个网络接口发送网络控制分组的控制平面子系统,用于控制多个设备上的操作。
第一设备可以包括一个或多个处理器、存储可由一个或多个处理器执行的指令的存储器,其中指令在被执行时使第一设备执行被配置为转发网络数据分组的第一数据平面子系统,其中网络数据分组的转发至少基于从控制平面服务器计算机接收的网络控制分组之一,以及实例化能够执行第一网络功能的第一虚拟机。在某些实施例中,第一设备包括存储在存储器中的主机软件堆栈,其包括数据平面子系统和实例化第一虚拟机的管理程序。第一网络功能可以是虚拟网络功能(VNF)。在某些实施例中,第一网络功能是网络防火墙、网络级别2转发、网络级别3转发、虚拟专用网络(VPN)、访问控制列表(ACL)或专用小交换机(PBX)。
在某些实施例中,第一设备可以被配置为从控制平面服务器计算机的控制平面子系统接收一个或多个网络控制分组,基于接收到一个或多个网络控制分组而在第一设备处实例化第三虚拟机,或者在第一设备处实例化在第三虚拟机内部执行的第三网络功能。
在某些实施例中,至少基于从控制平面服务器计算机接收网络控制分组之一而由第一设备实例化第一虚拟机。在某些实施例中,第一网络功能至少基于从控制平面服务器计算机接收到网络控制分组中的至少一个网络控制分组被配置。
第二设备可以包括一个或多个处理器、存储可由一个或多个处理器执行的指令的存储器,其中指令在被执行时使第二设备执行被配置为转发网络数据分组的第二数据平面子系统,其中网络数据分组的转发至少基于从控制平面服务器计算机接收的网络控制分组之一,以及实例化能够执行第二网络功能的第二虚拟机。
另一个示例分布式客户驻地装置可以包括:控制平面子系统,被配置为在第一设备上执行;第一数据平面子系统,被配置为在第二设备上执行,该第二设备还被配置为执行能够执行第一网络功能的第一虚拟机;第二数据平面子系统,被配置为在第三设备上执行,该第三设备还被配置为执行能够执行第二网络功能的第二虚拟机,其中控制平面子系统被配置为控制第一数据平面子系统和第二数据平面子系统的转发功能,并控制第一网络功能和第二网络功能。
在某些实施例中,第一设备和第二设备可以是客户驻地装置(CPE)设备。在某些实施例中,第一网络功能可以是虚拟网络功能(VNF)。在某些实施例中,第一网络功能可以包括网络防火墙、网络级别2转发、网络级别3转发、虚拟专用网络(VPN)、访问控制列表(ACL)或专用小交换机(PBX)中的一个或多个。
在某些实施例中,第一设备被配置为从控制平面服务器计算机接收一个或多个网络控制分组,基于接收到一个或多个网络控制分组而在第一设备处实例化第三虚拟机,以及基于接收到一个或多个网络控制分组而在第一设备处实例化在第三虚拟机内执行的第三网络功能。
在某些实施例中,公开了一种示例方法,用于从第一设备控制被配置为在第二设备上执行的数据平面子系统的转发功能,从第一设备控制第二设备上的虚拟机的实例化,以及从第一设备控制网络功能在虚拟机中的执行。该方法可以包括从第一设备执行用于控制转发功能的控制平面子系统、虚拟机的实例化以及网络功能的执行。该方法还可以包括从第一设备控制被配置为在第三设备上执行的第二数据平面子系统的转发功能,从第一设备控制第二设备上的第二虚拟机的实例化,以及从第一设备控制第二网络功能在第二虚拟机中的执行。
在某些实施例中,用于转发网络数据分组的示例方法可以包括在第一设备处从服务器接收用于以下的网络控制分组:更改第一设备的网络数据分组的转发功能,更改在第一设备上的主机软件堆栈中执行的数据平面子系统中的转发功能,在第一设备处接收第一网络数据分组,使用数据平面子系统转发第一网络数据分组,在第一设备处接收第二网络数据分组,以及使用在第一设备处的虚拟机中执行的网络功能来处理第二网络数据分组,其中来自主机软件堆栈的管理程序实例化该虚拟机。第一设备可以是客户驻地装置(CPE)。
附图说明
图1是图示根据本发明实施例的分布式客户驻地装置的简化框图。
图2是图示根据本发明某些实施例的、包括软件数据平面子系统的物理设备的示例框图。
图3是图示根据本发明某些实施例的、包括软件控制平面子系统的物理设备的示例框图。
图4是图示根据本公开一个或多个说明性方面的、用于执行本发明的实施例的方法的流程图。
图5是图示根据本公开一个或多个说明性方面的、用于执行本发明实施例的方法的另一个流程图。
图6是根据本公开一个或多个方面的、可以用于执行分布式路由器的各种部件的计算系统或设备的简化框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对本发明实施例的透彻理解。但是,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。本文使用的“示例性”一词意味着“用作示例、实例或说明”。本文中描述为“示例性”的任何实施例或设计不一定被解释为优于或有利于其它实施例或设计。
在某些实施例中,提供了新颖的分布式CPE。根据某些实施例,分布式CPE包括集中的控制平面服务器计算机和本机执行软件数据平面子系统的若干CPE(即,没有虚拟化)。执行控制平面子系统的控制平面服务器计算机控制CPE。每个CPE还可以能够托管虚拟机并在相应的虚拟机中执行虚拟网络功能(VNF)。
在某些实施例中,具有集中控制平面子系统以及到软件数据平面子系统的覆盖网络为运营商提供类似于单个大型路由器的视图。而且,控制平面和数据平面子系统的解耦最大化了在CPE处硬件资源的现场利用率,用于转发分组并将可能是处理更密集但对等待时间不敏感(或不太敏感)的任务的控制平面任务推送到远程和集中控制平面子系统。此外,这种CPE设计允许软件数据平面子系统进行本机分组处理,同时允许CPE使用虚拟网络功能升级和/或增强具体网络功能。因此,所公开的技术允许改进的网络管理。
图1是图示根据本发明实施例的分布式客户驻地装置(CPE)100的简化框图。图1中描绘的实施例仅仅是示例,并不旨在不当地限制本发明的要求保护的实施例。本领域普通技术人员将认识到许多变化、替代和修改。例如,在一些其它实施例中,分布式CPE 100可以具有比图1中示出的更多或更少的部件、可以组合两个或更多个部件,或者可以具有不同的部件配置或布置。例如,分布式CPE 100可以具有比图1中公开的更多的、执行软件数据平面子系统的物理设备,其中每个物理设备执行一个或多个虚拟机以执行虚拟网络功能。
图1中描绘的分布式CPE 100包括多个设备(例如,102、104和106),每个设备包括控制平面层或包括一个或多个数据平面子系统的数据平面层。参考图1公开的物理设备可以使用图6中公开的一个或多个部件来实现。分布式CPE 100被配置为提供(OSI模型的)层2和层3路由功能。分布式CPE 100还可以在开放系统互连(OSI)模型的层4-7处提供功能。
在某些实施例中,执行软件数据平面子系统的设备(诸如物理设备104和物理设备106)可以被称为客户驻地装置(CPE)、客户驻地装置(CPE)、通用CPE或uCPE、虚拟CPE或vCPE。在某些实施例中,包括具有控制平面子系统128的物理设备102和具有软件数据平面子系统(108、118)的多个物理设备(104、106)的系统在本文中可以统称为分布式CPE 100系统。
在某些实施例中,如图1中所示,软件控制平面子系统128驻留在集中式物理设备102中,该集中式物理设备102分别与驻留在不同物理设备(104、106)上的若干软件数据平面子系统(108、118)通信。如图1中所描绘的,包括软件控制平面子系统128的物理设备102能够以一对多的关系分别控制包括软件数据平面子系统(108、118)的多个物理设备(104、106)。在某些实施例中,由控制平面子系统128控制的数据平面子系统可以是不同类型的,包括软件数据平面子系统(108、118)和/或硬件数据平面子系统(未示出)。控制平面子系统可以使用网络信道(诸如经由网络134的控制信道132)并行或并发地与多个数据平面子系统通信。
在某些实施例中,这些物理设备(102、104和106)可以在地理上分散。例如,分布式CPE 100允许针对地理位置的分布式分支办公室部署,其中软件控制平面子系统128可以驻留在位于中央数据中心的物理设备102中,并且软件数据平面子系统(例如,108、118)可以各自驻留在在跨越多个不同位置的多个不同办公室(即,客户驻地)的地理区域上分布的单独物理设备(例如,104、106)上。在某些实施例中,包括软件控制子系统128的物理设备102与包括软件数据平面子系统(108、118)的物理设备(104、106)之间的距离可以高于某个阈值。物理设备可以使用有线或无线通信网络信道彼此连接。在某些其它实施例中,托管控制平面子系统和数据平面子系统的物理设备可以在单个机箱上提供,以提供集成的多服务平台。
如下面更详细地公开的,物理设备(例如,104、106)还可以托管虚拟网络功能(VNF)。在某些情况下,VNF也可以称为网络功能虚拟化(NFV),并且可以与VNF互换使用,而不偏离本公开的范围。在某些实施例中,VNF可以指在一个或多个虚拟机或容器中执行以执行明确定义和可编程的分组处理功能的程序集合。在某些实现中,底层硬件(例如,处理器)、操作系统和/或管理程序可以支持用于托管虚拟网络功能(VNF)的虚拟化技术,以及软件数据平面子系统(例如,108、118)。例如,物理设备104可以包括软件数据平面子系统108、操作系统内核110和管理程序112。管理程序112可以实例化虚拟机(VM A 114和VM B 116)并在虚拟机中执行网络功能。类似地,物理设备106可以包括软件数据平面子系统118、操作系统内核120和管理程序122。管理程序122可以实例化虚拟机(VM X 124和VM Y 126)并在虚拟机中执行网络功能。在某些实施例中,分布式CPE 100在物理设备(104、106)上提供本机(即,没有虚拟化)数据平面转发和/或路由功能,同时使用虚拟化来提供添加新功能或扩充现有软件数据平面转发功能的灵活性。
虽然上面公开了使用虚拟化技术来支持和托管VNF,但是在某些实施例中,可以使用软件容器来实现VNF而无需虚拟化硬件支持或甚至在一些情况下管理程序。例如,VNF可以使用由基于unix/linux的内核提供的基于unix/linux的容器。
在某些实施例中,控制器(未示出)可以使用诸如NETCONF和/或OpenFlow之类的协议来配置物理设备102处的软件控制平面子系统128。
软件控制平面子系统128可以被配置为实现从控制器接收的网络策略。在一个实施例中,控制平面子系统128被配置为将策略翻译成由软件控制平面子系统128控制的数据平面子系统(108、118)将采取以实现策略的动作集合。因此,软件控制平面子系统128负责取得从控制器接收的网络策略并将它们翻译成软件数据平面子系统(108、118)的动作。软件控制平面子系统128在软件数据平面子系统在其初始化阶段期间向软件控制平面子系统128注册它们自己时获知它控制哪些软件数据平面子系统。在某些实施例中,控制平面子系统可使用诸如NETCONF或OpenFlow之类的通信协议在外部编程,并且可以使用REST API编程。
软件控制平面子系统128可以使用各种不同的通信技术来与软件数据平面子系统(108、118)通信。在某些实施例中,如图1中所描绘的,软件控制平面子系统128使用控制信道132与软件数据平面子系统(108、118)进行通信。在一个实施例中,控制信道132上的消息传递可以使用具有JSON(JavaScript开放符号)封装的ZeroMQ传输机制。ZeroMQ(也称为或0MQ或ZMQ)是一种高性能异步消息传递库,旨在用于可扩展的分布式或并发应用。它提供一个无需专用消息代理即可运行的消息队列。该库旨在具有熟悉的套接字风格的API。它提供跨各种传输(如进程内、进程间、TCP和多播)携带原子消息的套接字。其异步I/O模型启用可扩展的多核应用。JSON提供了用于提供分布式网络系统的分层视图的机制。从软件控制平面子系统128的角度来看,当与软件数据平面子系统或硬件数据平面子系统通信时,它可以使用相同的控制信道132和相同的通信方案。在这个意义上,软件控制平面子系统128不区分它是与软件数据平面还是硬件数据平面通信。
例如,软件控制平面子系统128可以从控制器接收由用户配置的防火墙策略。作为响应,软件控制平面子系统128可以创建用于防火墙策略的数据模型表示,并将策略相关信息存储在本地数据结构中。然后,软件控制平面子系统128可以将数据模型表示翻译成JSON表示,然后将其封装到ZeroMQ消息中,并使用控制信道132上的ZeroMQ总线将其传送到各种数据平面子系统。
软件控制平面子系统128还可以经由控制信道132从包括数据平面子系统的一个或多个物理设备接收消息。例如,这些消息可以将数据平面子系统和/或VNF的状况和状态信息传送到控制平面子系统。例如,如果数据平面子系统发生改变(例如,接口状态改变),那么那个信息由数据平面子系统封装成JSON表示,该JSON表示进而被封装到ZeroMQ消息总线中并使用控制信道132发送到控制平面子系统128。然后,控制平面子系统128可以采取动作来响应状态改变(例如,改变状态信息、改变路线等)。
在某些实施例中,物理设备102包括操作系统内核130和软件控制平面子系统128。操作系统内核130和软件控制平面子系统128被实现为由一个或多个处理实体(诸如由提供的处理器或其它处理器)执行的指令集(代码或程序)。例如,软件控制平面子系统128可以由诸如图6中描绘和下面描述的计算系统执行。在多核处理器环境中,控制平面子系统可以由一个或多个处理器的一个或多个核执行。在包括由一个或多个处理器执行的一个或多个虚拟机的虚拟化环境中,控制平面子系统可以在虚拟机内或由虚拟机或甚至由管理程序(例如,KVM管理程序)或网络操作系统执行。控制平面子系统可以部署在裸机上、虚拟机中,等等。虽然本文公开了软件控制数据平面128,但是在某些实现中,可以在不脱离本公开的范围的情况下实现硬件控制数据平面。
软件控制平面子系统128负责数据平面子系统(108、118)和/或VNF的配置和管理。例如,软件控制平面子系统128被配置为维护用于分布式网络的路由和拓扑信息。然后,软件控制平面子系统128使用这个信息来编程一个或多个数据平面子系统和/或VNF,使得它们能够转发数据分组以促进将数据分组从其源递送到其预期目的地。在某些实施例中,软件控制平面子系统128被配置为将转发信息下载到软件数据平面子系统/或VNF。然后,由软件数据平面子系统和/或VNF使用这个转发信息来转发由包括软件数据平面子系统的物理设备接收的网络数据分组。软件控制平面子系统128还可以将其它与策略相关的(例如,与防火墙策略相关的)信息下载到数据平面子系统。
控制平面子系统128可以以各种方式接收网络和拓扑信息。控制平面子系统128可以执行处理,以支持在网络设备之间交换网络和拓扑信息的各种网络协议。控制平面子系统128可以生成和处理目的地为分布式网络系统的其它部件或源自分布式网络系统的其它部件的控制平面分组。例如,控制平面子系统128可以彼此交换拓扑信息或者与其它网络设备或系统交换拓扑信息,并使用诸如路由信息协议(RIP)、开放最短路径优先(OSPF)或边界网关协议(BGP)之类的路由协议来构建/维护路由表。
分别在物理设备104和物理设备106中实施的软件数据平面子系统(108、118)表示分布式CPE 100的数据转发层。例如,分布式CPE 100实现可以仅具有在相应物理设备(104、106)上执行的一个或多个软件数据平面子系统(108、118)而不具有硬件数据平面子系统。
物理设备(104、106)还可以与软件数据平面子系统(108、118)一起支持虚拟化技术,以支持附加的网络功能,诸如虚拟网络功能(VNF)。在某些情况下,VNF也可以被称为网络功能虚拟化(NFV),并且可以与VNF互换使用,而不偏离本公开的范围。在某些实施例中,VNF可以指在一个或多个虚拟机或容器中执行以执行明确定义和可编程的分组处理功能的程序集合。在某些实现中,底层硬件(例如,处理器)、操作系统和/或管理程序可以支持用于托管虚拟网络功能(VNF)的虚拟化技术,以及软件数据平面子系统(例如,108、118)。
虚拟化技术在共享相同物理资源的不同操作环境之间提供隔离。换句话说,虚拟化提供了计算资源从物理约束的逻辑抽象。一种常见的抽象被称为虚拟机(也称为访客)或VM,其在维持抽象的同时向VM中运行的内容提供与物理硬件的直接接口。虚拟化技术允许在同一物理硬件上运行的多个VM独立运行并相互隔离。系统上的一个或多个VM由管理程序(也称为虚拟机监视器或VMM)管理。管理程序是负责托管和管理虚拟机的软件或固件层。管理程序管理系统的处理器、存储器,并为每个VM分配其它资源。
返回去参考图1,物理设备104可以包括软件数据平面子系统108、操作系统内核110和管理程序112。管理程序112可以实例化虚拟机(VM A 114和VM B 116)并在虚拟机中执行虚拟网络功能。实例化虚拟机可以包括为虚拟机设置页表和物理资源,为虚拟机处理事件,以及向虚拟机加载虚拟机映像(诸如访客操作系统)。类似地,物理设备106可以包括软件数据平面子系统118、操作系统内核120和管理程序122。管理程序122可以实例化虚拟机(VM X 124和VM Y 126)并在虚拟机中执行虚拟网络功能。在某些实施例中,分布式CPE100在物理设备上提供本机(即,无虚拟化)数据平面转发和路由功能,同时使用虚拟化来提供使用虚拟网络功能(VNF)添加新功能或扩充现有数据平面转发功能的灵活性。
虽然上面公开了使用虚拟化技术来支持和托管VNF,但是在某些实施例中,可以使用软件容器来实现VNF,而无需虚拟化硬件支持或甚至在一些情况下管理程序。例如,VNF可以使用由unix/linux内核提供的基于unix/linux的容器。
VNF可以负责处理在一个或多个虚拟机中运行的具体网络功能。各个虚拟化网络功能可以以构建块方式链接或组合在一起,以提供增强的联网功能。管理程序允许物理设备(104、106)在虚拟机中的客户驻地上执行VNF,诸如2级(L2)、3级(L3)联网功能、防火墙、虚拟专用网络(VPN)终端、访问控制列表(ACL)等。例如,如果客户选择在客户场所上运行专用小交换机(PBX)以进行本地电话聚合,那么客户可以将PBX作为VNF部署在由也执行数据平面的主机软件堆栈中执行的管理程序托管的虚拟机中。因此,执行软件数据平面子系统的物理设备(也称为CPE)可以作为托管VM托管和执行新的和附加的功能,同时维持本机数据平面功能。类似地,在某些其它实施例中,诸如深度分组检查(DPI)功能、网络分析功能、网络机器学习功能或其它合适功能之类的其它联网或其它功能可以被部署为CPE的主机软件堆栈上的虚拟机中的VNF。
在某些情况下,软件控制平面子系统128通过向相应的物理设备提供指令或控制消息来控制在托管软件数据平面子系统和管理程序的物理设备处的虚拟机的实例化。此外,软件控制平面子系统128还可以控制虚拟机中的虚拟网络功能的实例化,并通过向相应的物理设备提供控制消息来适当地配置虚拟网络功能。实例化虚拟网络功能可以包括加载和执行用于在虚拟机中执行联网操作的网络功能的指令。实例化虚拟网络功能还可以包括配置与虚拟网络功能相关联的特定参数和功能。
共同地,执行软件数据平面子系统(108、118)的物理设备(104、106)和由在相应物理设备上执行的管理程序托管的VNF负责接收数据分组并基于从软件控制面子系统128接收的转发和配置信息将数据分组转发到网络中的下一跳。包括软件数据平面子系统的每个物理设备被编程有从软件控制平面子系统接收的转发信息。软件数据平面子系统和/或VNF使用转发信息来转发数据分组。在某些实现中,软件数据平面子系统和/或VNF支持(OSI模型的)层2和层3路由功能。在某些实施例中,数据平面子系统和/或VNF还可以提供OSI层4-7功能。软件数据平面子系统和/或VNF还可以提供与路由器相关的功能,诸如有状态和无状态防火墙、应用流、应用逻辑网关、网络访问设备(NAD)功能,以及在一些情况下,层4路由和更高级别的数据分组检测能力的部分或完全实现、MPLS相关的处理、网络地址翻译(NAT)、有状态网络附加存储(NAS)、分层QoS(服务质量)、Q-in-Q、对Internet协议安全(IPsec)的支持、通用路由封装(GRE)、虚拟可扩展LAN(VXLAN)、用于分析和管理数据流的各种工具、深度分组检查(DPI)、最长分组匹配(LPM)分组查找、虚拟专用网络(VPN),及其它功能。
软件数据平面子系统(108、118)可以经由物理设备(104、106)的端口接收网络数据分组。端口可以是逻辑端口或物理端口。然后,软件数据平面子系统(108、118)确定如何转发接收到的网络数据分组。作为这个确定的一部分,软件数据平面子系统(108、118)可以从接收到的数据分组中提取信息(例如,提取报头信息)、从提取出的信息中确定网络数据分组的源和目的地信息,以及然后基于由软件数据平面子系统从软件控制平面子系统128接收并由软件数据平面子系统(108、118)存储的提取出的信息、转发信息和其它适用的策略相关的信息来确定如何转发网络数据分组。在某些实施例中,如果软件数据平面子系统(108、118)不能确定如何转发接收到的分组,那么丢弃该分组。否则,软件数据平面子系统(108、118)确定用于将网络数据分组转发到下一跳的输出端口,以便促进分组到其预期目的地的通信。然后,软件数据平面子系统(108、118)使用确定的输出端口转发网络数据分组。
软件数据平面子系统(108、118)、内核(110、120)、管理程序(112、122)和在虚拟机中执行的相应VNF被实现为由一个或多个处理实体(诸如由Power、ARM、专用集成电路(ASIC)或现场可编程门阵列(FPGA)或网络处理单元(NPU)提供的处理器)执行的指令集(或代码)。例如,图1中描绘的软件数据平面子系统(108、118)可以由诸如在图6中描绘并在下面描述的计算系统执行。在不同处理器体系架构上运行的不同软件数据平面子系统可以由相同的软件控制平面子系统128控制。
如上面所指示的,软件数据平面子系统(108、118)也可以由一个或多个NPU执行。NPU一般是可编程多核微处理器,并且被专门设计和优化以处理与网络相关的功能。网络处理器通常是软件可编程设备,并且将具有与通用中央处理单元类似的通用特点,并且被优化用于执行与联网相关的功能,诸如模式匹配、密钥查找、计算、位操作、缓冲器的分配和管理等。
软件数据平面子系统(108、118)被配置为提供高速数据分组转发能力。在一个实施例中,软件数据平面子系统(108、118)可以使用基于Linux的转发流水线。在另一个实施例中,为了甚至更快的处理,使用MCEE(多核执行环境)体系架构,这使得能够以高速并行处理网络数据分组。使用MCEE模型的软件数据平面子系统被配置为将接收到的网络数据分组喷射到专用于处理那些网络数据分组的各个核。每个核处理它接收的网络数据分组,然后将网络数据分组转发到出站端口。使用MCEE体系架构显著加快了分组处理,因为它使得能够并行处理网络数据分组并将网络数据分组分发到专用于处理网络数据分组的多个处理资源。
在这种分布式CPE 100中,放置在客户驻地(即,CPE设备)上的物理设备(104、106)执行软件数据平面子系统(108、118)和管理程序(112、122)作为主机软件堆栈的一部分,但不执行控制平面功能,而是代替地与托管控制平面子系统128的远程和集中式物理设备102交互。在某些实施例中,放置在执行软件数据平面子系统(108、118)的客户驻地(即,CPE设备)上的物理设备(104、106)不具有控制平面子系统。在其它实施例中,放置在执行软件数据平面子系统(108、118)的客户驻地(即,CPE设备)上的物理设备(104、106)可以具有控制平面软件,但是可以或者禁用这种功能或者不执行与控制平面功能相关的指令。
在某些实施例中,在放置在客户驻地处的物理设备(104、106)上不存在控制平面子系统和/或控制平面功能可以指这种设备(104、106)不提供或执行关键控制平面功能,诸如路由协议、MPLS等,以及图3中更详细讨论的其它关键控制平面子系统功能。在某些实施例中,包括软件数据平面子系统的物理设备(104、106)仍然可以将控制平面系统接口暴露给提供与在远程物理设备(102)和分布式CPE 100中的其它远程节点上操作的控制平面子系统128的连接性的软件数据平面子系统(108、118),而不执行任何关键控制平面子系统功能。
在某些实施例中,具有集中式控制平面子系统128以及到软件数据平面子系统的覆盖网络为运营商提供类似于单个大型路由器的视图。而且,控制和数据平面子系统的这种解耦允许源分布式装备(即,CPE)的硬件资最大化硬件资源的现场利用率,用于转发分组并将可能是处理更密集但对等待时间不敏感(或不太敏感)的任务的控制平面任务推送到远程和集中控制平面子系统。集中式控制平面子系统可以控制在多个CPE中操作的多个软件数据平面子系统。
在某些实施例中,所公开的某些方面还可以支持利用新数据平面子系统来扩充诸如CPE之类的设备上的本机软件数据平面子系统的功能。例如,使用管理程序的主机软件堆栈可以使用本机数据平面子系统在虚拟机中安装新的数据平面子系统,并在物理网络和虚拟机中的新数据平面之间安装服务链网络数据分组。在某些实施例中,管理程序在线卡中,并且若干这样的线卡是整个网络中的分布式功能。
集中控制平面功能还允许控制平面功能的整合/聚合,同时继续提供用于在各个CPE设备处的快速转发的分布式数据平面功能。由于对所有那些分布式CPE设备的控制被集中,因此这还促进网络的容易配置并维护一组分布式设备。软件控制平面子系统上的单个指令可以被解释并散布到在各个CPE上操作的所有相关软件数据平面子系统。
在某些实施例中,这使得软件即服务模型成为可选,其中,除了通过分布式路由器接口链接的本地服务功能,管理员还可以进行互连分支和SP LAN功能,其中分布式路由器接口通过数据中心处的一个控制平面子系统接口上拉。
在某些实施例中,编排层可以提供系统的单个可视化,其看起来像具有分布式功能的一个路由器,其中用于那个路由器的软件控制平面子系统128在数据中心中运行,然后软件数据平面子系统以及支持虚拟机和VNF功能的虚拟机管理程序在各个设备(诸如CPE)上运行。例如,如果管理员登录并查看接口,那么物理eth 0接口可能位于Austin,eth 1接口可能位于Denver,而控制平面子系统本身可能正在San Jose,CA执行。
图2是图示根据本公开某些方面的、包括软件数据平面子系统的物理设备200的示例框图。例如,物理设备200图示了图1的示例物理设备104或106。设备200可以是分布式CPE100的示例CPE设备。如图2中所示,设备200可以包括存储器230和硬件资源220。硬件资源220可以包括但不限于一个或多个处理器222和物理网络接口224。关于图6公开的若干其它部件可以在实现设备200时采用。物理网络接口224可以提供用于在设备200处发送和接收网络数据和控制分组的物理端口。换句话说,物理网络接口224是设备200与私有或公共网络(例如,134)之间的互连点。例如,以太网端口可以是物理网络接口。来自硬件资源220的一个或多个处理器222可以将主机软件堆栈226从存储设备625和/或网络加载到存储器230中,以执行与网络数据分组转发相关联的操作。
存储器230可以在逻辑上被划分为若干区域,包括操作系统内核空间(或内核)204和用户空间208。当加载在一个或多个处理器222中时,从内核空间204加载的指令可以以内核模式执行。类似地,当加载在一个或多个处理器222中时,从用户空间208加载的指令可以以用户模式执行。在内核模式下从内核204执行的指令在一些情况下可以具有更高的特权,并且可以能够执行特权指令,诸如操纵与处理器相关联的某些控制寄存器。
在某些实施例中,管理程序206可以作为主机软件堆栈226的一部分与内核204一起实现、添加或运行,以支持虚拟化环境,如前面所讨论的。在这样的环境中,内核204、管理程序206和作为用户空间208的一部分执行的软件部件可以被认为是主机软件堆栈226的一部分。如图2中所示,从存储器230在设备200上执行的管理程序206可以管理多个虚拟机,诸如用于托管VNF的VM 1(228-1)、VM 2(228-2)和VM N(228-N)(为了简单,也统称为VM 228)。
在某些实施例中,CPE 200可以具有硬件支持的虚拟化环境或者使用基于内核的虚拟机(KVM)和/或快速仿真器(Qemu)具有基于软件的虚拟化环境(即,仿真)。例如,KVM可以允许由处理器虚拟化支持的名称空间的虚拟化和资源的虚拟化。另一方面,Qemu仿真处理器/内核不虚拟化的资源。例如,Qemu仿真网络接口卡(NIC)接口。
在某些实施例中,LibVirt 216用作管理程序206和VM 228之间的附加层。在某些实施例中,LibVirt 216可以向Qemu提供应用可编程接口(API)。LibVirt216还提供用于管理虚拟化功能(诸如起动、停止和管理VM)的工具集。此外,在某些实施例中,根据本公开的各方面,LibVirt216命令由设备200暴露,使得VM 228可以由软件控制平面子系统128远程管理。在某些情况下,诸如Open Stack之类的协议可以由软件控制平面子系统128用于直接通过LibVirt 216API管理VM 228。
在内核中的物理网络接口224处接收的网络数据分组由以太网驱动器在内核空间中处理。内核的联网堆栈可以执行网络过滤、路由、然后通过不同的物理网络接口送出处理后的分组。但是,在某些实现中,支持联网基础设施的设备200的若干方面可以被实现为用户空间208的一部分,以增加系统的响应性。例如,软件数据平面子系统232可以在用户空间208中的主机软件堆栈226中实现。在一个示例实现中,软件数据平面子系统232可以实现示例L2分组处理流水线212和L3分组处理流水线214。内核204可以促进由软件数据平面子系统232提供的功能。例如,在一个实现中,内核204可以从内核204执行影子接口驱动程序。这些影子接口驱动程序可以取得分组并将它们移动到用于软件数据平面子系统232的用户空间分组流水线(方框212和214),同时导致对内核性能的可忽略的成本。在软件数据平面子系统232中的用户空间208中,可以使用在处理器或处理核上执行的实时线程来处理分组。实时线程可以使用或者比其它线程或任务更高的优先级来执行,或者可以被指派专用资源。在某些实现中,将实时线程指派给特定任务(诸如处理网络数据分组)可以导致将物理核指派给那个线程的处理,从而导致网络数据分组的相对无抖动和优先化处理。
根据本公开的各方面,某些联网功能由主机堆栈软件226的用户空间208中的软件数据平面子系统232处理。这种实现允许分布式CPE 100的灵活性,其中在将设备200部署到客户驻地之后,设备200可以使用作为主机软件堆栈228中的软件数据平面子系统232的一部分实现的本机路由能力来提供路由功能,或者可以通过在VM228中提供路由功能来扩充或替换网络功能。
在某些实施例中,设备200可以包括联网堆栈234,其提供到在远程物理设备102和分布式CPE 100中的其它远程节点上操作的控制平面子系统128的连接性。联网堆栈234为设备200提供基本联网功能,诸如获得使用动态主机配置协议(DHCP)分配的地址、远程提供数据平面子系统启动处理,以及将设备200连接到包括控制平面子系统的物理设备。联网堆栈234不执行诸如路由协议、MPLS等以及图3中更详细讨论的其它关键控制平面子系统功能,并且仅提供到远程系统的连接性。
在某些实施例中,设备200可以包括本地系统数据模型236,其可以或者直接使用命令行接口(CLI)或者使用诸如代表性状态转移(REST)和NETCONF之类的协议从控制平面子系统128远程地隔离由接收的所有新命令产生的状态。在某些实施例中,本地系统数据模型236可以管理/配置本地参数和功能,诸如用户凭证、ssh服务(以启用对节点的远程访问)和本地接口的配置。在某些实施例中,本地系统数据模型236可以高速缓存或维护由包括控制平面子系统的物理设备管理的数据模型的部分视图。
应当注意的是,在这样的分布式CPE 100中,放置在客户驻地上的设备200执行软件数据平面子系统232和管理程序206作为主机软件堆栈226的一部分,但是不执行控制平面功能,而是代替地与托管控制平面子系统128的远程和集中式物理设备102交互。在某些实施例中,放置在客户驻地上的执行软件数据平面子系统232的设备200不具有控制平面子系统。在其它实施例中,执行软件数据平面子系统232的设备200可以具有控制平面软件,但是可以或者禁用这种功能或者不执行与控制平面功能相关联的指令。
在某些实施例中,如上所述,物理设备200上不存在控制平面子系统和/或控制平面功能可以指不提供或执行关键控制平面功能,诸如路由协议、MPLS等,以及在图3中更详细地讨论的其它关键控制平面子系统功能。
图3是图示根据本公开某些方面的、包括软件控制平面子系统的物理设备300的示例框图。例如,物理设备300图示了图1的示例物理设备102。如图3中所示,设备300可以包括存储器330和硬件资源320。硬件资源320可以包括但不限于一个或多个处理器322和物理网络接口324。关于图6公开的若干其它部件可以在实现设备300时使用。物理网络接口324可以提供用于在设备300处发送和接收网络控制分组的物理端口。换句话说,物理网络接口324是设备200与私有或公共网络(例如,314)之间的互连点。例如,以太网端口可以是物理网络接口。在某些实施例中,来自硬件资源320的一个或多个处理器322可以将内核304、数据模型310和软件控制平面子系统315从存储设备625和/或网络加载到存储器330中,以执行与网络数据分组转发相关联的操作。在某些实现中,数据模型310和软件控制平面子系统315的至少部分可以在用户空间306中实现。
在某些实施例中,执行控制平面的设备(也称为控制平面服务器计算机)可以实现数据模型310,以通过分布软件数据平面子系统(诸如CPE)维护所有物理设备的统一和集中式视图。数据模型310可以或者直接使用命令行接口(CLI)或者使用诸如代表性状态转移(REST)和NETCONF之类的协议从控制器远程地隔离经由不同命令接口接收的所有新命令产生的状态。使用这样的操作模式命令,可以在数据模型310中的控制平面服务器计算机处维护分布式CPE 100的状态。
在一个实现中,可以使用又一个下一代(YANG)模型来实现数据模型310。YANG是用于NETCONF的数据建模语言。YANG可以用于对网络元素的配置数据和状态数据两者建模。此外,YANG可以用于定义由网络元素发出的事件通知的格式。因此,使用YANG实现的数据模型310允许分布式CPE 100具有使用统一模型维持过渡和静态状态的能力。这种统一数据模型310的实现允许系统中的各种数据元素的更好同步。
软件控制平面子系统315可以耦合到数据模型310并且被配置为实现从控制器接收的命令或网络策略。在一个实施例中,软件控制平面子系统315可以负责取得从控制器接收的网络策略并将它们翻译成针对数据平面子系统(108、118)的动作。当软件数据平面子系统在初始化时向软件控制平面子系统315注册自己时,软件控制平面子系统315获知它控制哪些软件数据平面子系统。
软件控制平面子系统315可以使用各种不同的通信技术来与数据平面子系统(108、118)通信。在某些实施例中,如图1中所描绘的,软件控制平面子系统315使用控制信道132与软件数据平面子系统(108、118)两者进行通信。在一个实施例中,控制信道132上的消息传递可以使用具有JSON(JavaScript开放符号)封装的ZeroMQ传输机制。ZeroMQ(也称为或0MQ或ZMQ)是一种高性能异步消息库,旨在用于可扩展的分布式或并发应用。它提供一个无需专用消息代理即可运行的消息队列。该库旨在具有熟悉的套接字风格的API。它提供跨各种传输(如进程内、进程间、TCP和多播)携带原子消息的套接字。其异步I/O模型启用可扩展的多核应用。JSON提供了用于提供分布式网络系统的分层视图的机制。
例如,数据模型310可以从控制器接收由用户配置的防火墙策略,并且在数据模型310中创建用于防火墙策略的数据模型表示并存储策略相关信息。然后,软件控制平面子系统315可以将数据模型表示翻译成JSON表示,然后JSON表示被封装到ZeroMQ消息中,并使用ZeroMQ总线通过控制信道132传送到各种数据平面子系统。
软件控制平面子系统315还可以经由控制信道132从数据平面子系统接收消息。例如,这些消息可以将数据平面子系统和/或VNF的状况和状态信息传送到软件控制平面子系统315。例如,如果数据平面子系统发生改变(例如,接口状态改变),那么那个信息由数据平面子系统封装成JSON表示,该JSON表示进而被封装到ZeroMQ消息总线中并使用控制信道132发送到控制平面子系统315。然后,控制平面子系统315可以采取动作来响应状态改变(例如,更新数据模型310、改变路线等)。
在某些实施例中,控制平面服务器计算机300包括操作系统内核304、用于数据模型310的逻辑以及软件控制平面子系统315。操作系统内核304、用于数据模型310的逻辑以及软件控制平面子系统315被实现为由一个或多个处理实体(诸如由提供的处理器或其它处理器)执行的指令集(代码或程序)。例如,控制平面子系统128可以由诸如图6中描绘并在下面描述的计算系统之类的计算系统执行。在多核处理器环境中,控制平面子系统可以由一个或多个处理器的一个或多个核执行。在包括由一个或多个处理器执行的一个或多个虚拟机的虚拟化环境中,软件控制平面子系统315可以在虚拟机内执行或者由虚拟机或甚至由管理程序(例如,KVM管理程序)或网络操作系统托管。虽然本文公开了软件控制数据平面315,但是在某些实现中,可以在不脱离本公开的范围的情况下实现硬件控制数据平面。
软件控制平面子系统315负责数据平面子系统(108、118)和VNF的配置和管理。例如,控制平面子系统315被配置为维护用于分布式网络的路由和拓扑信息。然后,这个信息由控制平面子系统使用,以对一个或多个数据平面子系统和/或VNF进行编程,使得它们能够转发数据分组以促进将数据分组从其源递送到其预期目的地。在某些实施例中,软件控制平面子系统315被配置为将转发信息下载到软件数据平面子系统或VNF。然后,这个信息被数据平面子系统和/或VNF使用,以转发由包括软件数据平面子系统的物理设备接收的数据分组。软件控制平面子系统315还可以将其它策略相关(例如,与防火墙策略相关)信息下载到数据平面子系统。
软件控制平面子系统315可以以各种方式接收网络和拓扑信息。软件控制平面子系统315可以执行处理以支持在网络设备之间交换网络和拓扑信息的各种网络协议。软件控制平面子系统315可以生成并处理目的地为分布式网络系统的其它部件或源自分布式网络系统的其它部件的控制平面分组。例如,控制平面子系统315可以彼此交换拓扑信息或者与其它网络设备或系统交换拓扑信息,并使用诸如路由信息协议(RIP)、开放最短路径优先(OSPF)或边界网关协议(BGP)之类的路由协议来构建/维护路由表。
使用数据模型310以及软件控制平面子系统315和软件数据平面子系统232的分叉(bifurcation)来集中控制平面功能还允许控制平面功能的整合/聚合,同时继续提供分布式数据平面功能,用于在各个数据转发设备(诸如CPE)处快速转发。这还促进网络的容易配置并维护一组分布式设备,因为对所有那些分布式设备的控制集中在控制平面服务器计算机上。控制平面子系统上的单个指令可以被解释并散布到在各个CPE上操作的所有相关数据平面子系统。
在某些实施例中,这使得软件即服务模型成为可选,其中,除了全都通过分布式路由器接口链接的本地服务功能,管理员还可以进行互连分支和SP LAN功能,其中分布式路由器接口通过数据中心处的一个控制平面子系统接口上拉。
在某些实施例中,控制平面服务器计算机还可以托管编排层(未示出),该编排层可以提供系统的单个可视化,其看起来像具有分布式功能的一个路由器,其中用于该路由器的软件控制平面子系统在数据中心运行,然后软件数据平面子系统以及支持虚拟机和VNF功能的虚拟机管理程序个体地运行。
图4是图示根据本公开一个或多个说明性方面的、用于执行本发明实施例的方法400的流程图。根据一个或多个方面,本文描述的任何和/或所有方法和/或方法步骤可以由物理设备104(或设备106)、设备200或计算机系统600和/或在物理设备104(或设备106)、设备200或计算机系统600中实现。在一个实施例中,下面参考图4描述的方法步骤中的一个或多个由计算系统600的一个或多个处理器(诸如处理器610或另一个处理器)实现。附加地或可替代地,本文描述的任何和/或所有方法和/或方法步骤可以在计算机可读指令中实现,诸如存储在计算机可读介质(诸如存储器635、存储装置625或另一种计算机可读介质)上的计算机可读指令。
在方框402处,设备的部件可以接收第一网络控制分组,用于更改第一设备的网络数据分组的网络数据分组转发。在某些实施例中,设备可以放置在客户驻地处并且可以被称为CPE设备。网络控制分组通常一般可以指用于网络本身的创建和操作的、网络设备(例如,控制平面服务器计算机)生成或接收的分组。在一个示例中,网络控制分组可以更新和/或配置在设备上执行的数据平面子系统和/或VNF。使用网络控制分组的示例协议包括但不限于一起控制网络的ARP、BGP、OSPF和其它协议。
在方框404处,设备的部件可以在第一设备上的主机软件堆栈中执行的数据平面子系统中更改设备的转发功能。
在方框406处,设备可以接收第一网络数据分组。网络数据分组一般可以指由中间网络设备转发到其它终端设备的终端设备用户应用生成的分组。从网络设备的角度来看,网络数据分组总是具有传输目的地互联网协议(IP)地址,并且使用数据平面子系统的基于目的地IP地址的转发过程来路由。
在方框408处,设备可以使用数据平面子系统转发第一网络数据分组。
在方框410处,设备可以接收第二网络数据分组。在方框412处,设备可以使用在第一设备处的虚拟机中执行的网络功能来处理第二网络数据分组,其中来自主机软件堆栈的管理程序实例化虚拟机。在某些实现中,实现网络功能可以包括实现网络节点或功能。
应当认识到的是,根据本发明的实施例,图4中所示的具体步骤提供了在操作模式之间切换的特定方法。在替代实施例中,也可以相应地执行其它步骤序列。例如,本发明的替代实施例可以以不同的次序执行上面概述的步骤。此外,取决于特定应用,可以添加或去除附加步骤或步骤的变化。本领域普通技术人员将认识并理解该处理的许多变化、修改和替代方案。
图5是图示根据本公开一个或多个说明性方面的、用于执行本发明实施例的方法500的流程图。根据一个或多个方面,本文描述的任何和/或所有方法和/或方法步骤可以由物理设备102、设备300或计算机系统600和/或在物理设备102、设备300或计算机系统600中实现。在一个实施例中,下面参考图5描述的方法步骤中的一个或多个由计算系统600的一个或多个处理器(诸如处理器610或另一个处理器)实现。附加地或可替代地,本文描述的任何和/或所有方法和/或方法步骤可以在计算机可读指令中实现,诸如存储在计算机可读介质(诸如存储器635、存储装置625或另一种计算机可读介质)上的计算机可读指令。
在方框502处,第一设备(诸如控制平面服务器计算机)可以执行控制平面子系统。在某些实施例中,控制平面子系统可以是软件控制平面子系统,其指令从存储器中的存储设备加载并在一个或多个处理器上执行。第一设备可以提供到覆盖网络的接口,该覆盖网络包括控制平面服务器计算机和若干其它设备(诸如CPE设备)。共同地说,所有设备都可以表示分布式CPE。
在方框504处,第一设备可以控制被配置为在第二设备上执行的第一软件数据平面子系统的转发功能。在一些场景中,第二设备被放置在客户驻地处并且可以被称为CPE。在某些实现中,第一设备可以执行第一软件控制平面子系统,其通过将网络控制分组发送到第二设备来控制第二设备上的数据平面子系统。网络控制分组一般可以指用于网络自身的创建和操作的、网络设备生成或接收的分组。从网络设备的角度来看,网络控制分组总是具有接收目的地IP地址,并且由网络设备路由处理器中的CPU处理。在一个示例中,网络控制分组可以更新和/或配置在设备上执行的数据平面子系统和/或VNF。使用网络控制分组的示例协议包括但不限于一起控制网络的ARP、BGP、OSPF和其它协议。
在方框506处,第一设备还可以控制第二设备上的第一虚拟机的实例化。在某些实施例中,第一设备的部件支持虚拟化技术。例如,第一设备可以包括支持虚拟化的处理器,并执行管理程序以启用虚拟机的实例化和管理。虚拟机可以为某些功能的执行提供隔离的环境。
在方框508处,第一设备可以控制在第二设备上执行的第一虚拟机中的第一网络功能的执行。网络功能可以指虚拟网络功能。虚拟网络功能可以包括在虚拟机中执行的、增强或扩充第二设备的网络能力的任何网络功能。VNF的示例可以包括但不限于2级(L2)、3级(L3)网络功能、防火墙、虚拟专用网络(VPN)终端、访问控制列表(ACL)、深度分组检查(DPI)功能、网络分析功能、网络机器学习功能等。
在方框510处,第一设备可以控制被配置为在第三设备上执行的第二软件数据平面子系统的转发功能。在一些场景中,第二设备被放置在客户驻地处并且可以被称为CPE。
在方框512处,第一设备还可以控制第三设备上的第二虚拟机的实例化。在某些实施例中,第一设备的部件支持虚拟化技术。例如,第一设备可以包括支持虚拟化的处理器并执行管理程序,以启用虚拟机的实例化和管理。
在方框514处,第一设备可以控制在第三设备上执行的虚拟机中的第二网络功能的执行。
在某些实施例中,第一、第二和第三设备可以一起被称为分布式CPE或分布式CPE系统。第一设备,也称为控制平面服务器计算机,可以包括软件控制平面子系统并提供统一的接口和网络覆盖,以与执行软件数据平面子系统的网络中的各种设备交互。执行软件数据平面子系统的每个设备还可以支持虚拟化并执行管理程序以实例化虚拟机。每个设备还可以在虚拟机中执行VNF。
分布式CPE可以提供高度统一但可扩展且灵活的网络环境,其允许对网络进行集中建模和控制,同时提供在每个物理设备(或CPE)处替换和扩充数据平面功能的能力,其中物理设备通过使用虚拟化在VNF中链接而包括软件数据平面子系统。
应当认识到的是,根据本发明的实施例,图5中所示的具体步骤提供了在操作模式之间切换的特定方法。在替代实施例中,也可以相应地执行其它步骤序列。例如,本发明的替代实施例可以以不同的次序执行上面概述的步骤。此外,取决于特定应用,可以添加或去除附加步骤或步骤的变化。本领域普通技术人员将认识并理解该处理的许多变化、修改和替代方案。
图6是根据本发明实施例的、可以用于执行分布式路由器的各种部件或子系统的计算系统或设备600的简化框图。在一些实施例中,计算系统600被配置为实现上述任何方法。例如,如计算机系统600的一个或多个计算机系统可以被用于执行分布式路由器的一个或多个子系统,诸如控制器102、一个或多个控制平面子系统104,以及一个或多个软件数据平面子系统108。
计算机系统600可以是各种类型,包括但不限于个人计算机、便携式计算机、工作站、网络计算机、大型机、自助服务终端、PDA、蜂窝电话或任何其它数据处理系统。由于计算机和网络的不断变化的性质,图6中描绘的计算机系统600的描述旨在仅作为用于说明计算机系统的优选实施例的目的的具体示例。具有比图6中描绘的系统更多或更少部件的许多其它配置是可能的。
计算机系统600被示为包括可以经由总线605电耦合的硬件元件。硬件元件可以包括一个或多个处理器610、一个或多个输入设备615、一个或多个输出设备620、通信子系统630以及存储子系统640。总线子系统605提供用于使计算机系统600的各种部件和子系统按预期彼此通信的机制。虽然总线子系统605示意性地示为单个总线,但总线子系统的替代实施例可以使用多个总线。
处理器610表示计算机系统600的处理资源,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(诸如数字信号处理芯片、图形加速处理器等)。处理器610可以包括一个或多个多核处理器。
输入设备615可以包括用于向计算机系统600提供输入的一个或多个不同机制,诸如但不限于鼠标、键盘、触摸板、平板电脑等。输出设备620可以包括用于从计算机系统600输出信息的一个或多个不同机制,诸如但不限于显示单元、打印机等。
计算机系统600还可以包括通信子系统630,其促进与计算机系统600之间的通信。通信子系统630可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组(诸如设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等),等等。通信子系统630可以允许与网络、其它计算机系统和/或本文描述的任何其它设备交换数据。在某些实施例中,通信子系统630可以包括用于根据上述教导实现硬件数据平面的转发硬件。
存储子系统640提供用于存储可以由一个或多个处理器610执行的信息和代码(指令)的非瞬态介质。例如,存储子系统640可以被配置为存储提供本发明实施例的功能的基本编程和数据结构。根据本发明的实施例,实现本发明的功能的软件代码指令或模块可以存储在存储子系统640中。这些软件模块可以由(一个或多个)处理器610执行。存储子系统640还可以提供用于存储根据本发明使用的数据的存储库。存储子系统640可以包括存储器子系统642和文件/磁盘存储子系统644。
存储器子系统642可以包括多个存储器,诸如用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)、在其中存储固定指令的只读存储器(ROM)、闪存等。各种软件元素可以位于系统存储器642内,诸如操作系统646、设备驱动程序、可执行库和/或其它代码(诸如一个或多个应用648,其可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其它实施例提供的方法和/或配置由其它实施例提供的系统,如本文所述)。
文件存储子系统644为程序和数据文件提供持久(非易失性)存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、光盘只读存储器(CD-ROM)驱动器、光驱、可移动介质盒、本地和/或网络可访问存储装置,以及其它类似的存储介质。
如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指参与提供使机器以具体方式操作的数据的任何非瞬态介质。在使用计算机系统600实现的实施例中,各种计算机可读介质可能在向(一个或多个)处理器610提供指令/代码以供执行中涉及,和/或可能用于存储这样的指令/代码。计算机可读介质可以采用许多形式,诸如非易失性介质和易失性介质。
以上讨论的方法、系统和设备是示例。各种实施例可以适当地省略、替换或添加各种过程或部件。例如,在替代配置中,所描述的方法可以以与所描述的次序不同的次序执行,和/或可以添加、省略和/或组合各种阶段。关于某些实施例描述的特征可以在各种其它实施例中组合。可以以类似的方式组合实施例的不同方面和元素。技术发展,因此许多元素是不将本公开的范围限制于那些具体示例的示例。
在说明书中给出了具体细节以提供对实施例的透彻理解。但是,实施例可以没有这些具体细节来实践。例如,已经示出了众所周知的电路、处理、算法、结构和技术而没有不必要的细节,以避免模糊实施例。本描述仅提供示例实施例,并且不旨在限制本发明的范围、适用性或配置。更确切地说,实施例的前述描述将为本领域技术人员提供用于实现本发明实施例的使能描述。在不脱离本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
虽然已经描述了本发明的具体定实施例,但是各种修改、变更、替代构造和等同物也涵盖在本发明的范围内。本发明的实施例不限于在某些具体的数据处理环境中的操作,而是可以在多个数据处理环境中自由操作。此外,虽然已经使用特定系列的事务和步骤描述了某些实施例,但是本领域技术人员应当显而易见的是,本发明的范围不限于所描述的事务和步骤系列。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或并发执行。此外,可以重新安排操作的次序。处理可以具有图中未包括的其它步骤。
另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但应当认识到的是,硬件和软件的其它组合也在本发明的范围内。本发明的某些实施例可以仅以硬件、或者仅以软件(例如,代码程序、固件、中间件、微代码等)或者使用其组合来实现。本文描述的各种处理可以以任意组合在同一处理器或不同处理器上实现。因而,在部件或模块被描述为被配置为执行某些操作的情况下,这种配置可以例如通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作(诸如通过执行计算机指令或代码)、或其任意组合来实现。进程可以利用各种技术来通信,包括但不限于用于进程间通信的常规技术,并且不同的进程对可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
因而,说明书和附图应当在说明性而不是限制性的意义上考虑。但是,将显而易见的是,在不背离权利要求中阐述的更广泛精神和范围的情况下,可以对其进行添加、减少、删除和其它修改和改变。因此,虽然已描述了具体的发明实施例,但是这些实施例不旨在进行限制。各种修改和等同物都在以下权利要求的范围之内。

Claims (21)

1.一种分布式客户驻地装置(CPE),包括:
位于第一位置处的控制平面服务器计算机,包括:
一个或多个处理器;
存储器,存储能够由所述一个或多个处理器执行的指令,其中所述指令在被执行时使所述控制平面服务器计算机:
执行控制平面子系统,所述控制平面子系统使用一个或多个网络接口发送用于控制多个设备上的操作的网络控制分组;
所述多个设备中位于第二位置处的第一设备,包括:
一个或多个处理器;
存储器,存储能够由所述一个或多个处理器执行的指令,其中所述指令在被执行时使第一设备:
执行第一数据平面子系统,所述第一数据平面子系统被配置为转发网络数据分组,其中网络数据分组的转发至少是基于从控制平面服务器计算机接收的网络控制分组之一的;以及
实例化能够执行第一网络功能的第一虚拟机;以及
所述多个设备中位于第三位置处的第二设备,包括:
一个或多个处理器;
存储器,存储能够由所述一个或多个处理器执行的指令,其中所述指令在被执行时使第二设备:
执行第二数据平面子系统,所述第二数据平面子系统被配置为转发网络数据分组,其中网络数据分组的转发至少是基于从控制平面服务器计算机接收的网络控制分组之一的;以及
实例化能够执行第二网络功能的第二虚拟机。
2.如权利要求1所述的分布式客户驻地装置,其中所述多个设备是客户驻地装置(CPE)设备。
3.如权利要求1所述的分布式客户驻地装置,其中第一网络功能是虚拟网络功能(VNF)。
4.如权利要求1所述的分布式客户驻地装置,其中第一网络功能是网络防火墙、网络级别2转发、网络级别3转发、虚拟专用网络(VPN)、访问控制列表(ACL)或专用小交换机(PBX)中的一个或多个。
5.如权利要求1所述的分布式客户驻地装置,其中第一设备被配置为:
从控制平面服务器计算机的控制平面子系统接收一个或多个网络控制分组;
在第一设备处实例化第三虚拟机;以及
基于接收到所述一个或多个网络控制分组,实例化在第一设备处的第三虚拟机内执行的第三网络功能。
6.如权利要求1所述的分布式客户驻地装置,其中第一虚拟机至少基于从控制平面服务器计算机接收到所述网络控制分组之一而由第一设备实例化。
7.如权利要求1所述的分布式客户驻地装置,其中第一网络功能至少基于从控制平面服务器计算机接收到网络控制分组中的至少一个网络控制分组被配置。
8.如权利要求1所述的分布式客户驻地装置,其中第一位置是数据中心,并且第二位置和第三位置是客户驻地。
9.如权利要求1所述的分布式客户驻地装置,其中第一设备包括存储在存储器中的主机软件堆栈,所述主机软件堆栈包括数据平面子系统和实例化第一虚拟机的管理程序。
10.如权利要求1所述的分布式客户驻地装置,其中使用网络信道连接第一位置处的控制平面服务器计算机和第二位置处的第一设备。
11.如权利要求1所述的分布式客户驻地装置,其中控制平面服务器计算机与第一设备之间的距离高于阈值。
12.一种分布式客户驻地装置,包括:
控制平面子系统,被配置为在第一设备上执行;
第一数据平面子系统,被配置为在第二设备上执行,第二设备还被配置为执行能够执行第一网络功能的第一虚拟机;
第二数据平面子系统,被配置为在第三设备上执行,第三设备还被配置为执行能够执行第二网络功能的第二虚拟机;
其中控制平面子系统被配置为控制第一数据平面子系统和第二数据平面子系统的转发功能,并控制第一网络功能和第二网络功能。
13.如权利要求12所述的分布式客户驻地装置,其中第一设备和第二设备是客户驻地装置(CPE)设备。
14.如权利要求12所述的分布式客户驻地装置,其中第一网络功能是虚拟网络功能(VNF)。
15.如权利要求12所述的分布式客户驻地装置,其中第一网络功能是网络防火墙、网络级别2转发、网络级别3转发、虚拟专用网络(VPN)、访问控制列表(ACL)或专用小交换机(PBX)中的一个或多个。
16.如权利要求12所述的分布式客户驻地装置,其中第一设备被配置为:
从控制平面服务器计算机接收一个或多个网络控制分组;
基于接收到所述一个或多个网络控制分组,在第一设备处实例化第三虚拟机;以及
基于接收到所述一个或多个网络控制分组,实例化在第一设备处的第三虚拟机内执行的第三网络功能。
17.一种用于路由网络分组的方法,包括:
从第一设备控制被配置为在第二设备上执行的数据平面子系统的转发功能;
从第一设备控制第二设备上的虚拟机的实例化;以及
从第一设备控制虚拟机中的网络功能的执行。
18.如权利要求17所述的方法,其中所述方法包括从第一设备执行用于控制转发功能、虚拟机的实例化以及网络功能的执行的控制平面子系统。
19.如权利要求17所述的方法,还包括:
从第一设备控制被配置为在第三设备上执行的第二数据平面子系统的转发功能;
从第一设备控制第二设备上的第二虚拟机的实例化;以及
从第一设备控制第二虚拟机中的第二网络功能的执行。
20.一种用于转发网络数据分组的方法,包括:
在第一设备处接收来自服务器的网络控制分组,所述网络控制分组用于针对第一设备更改网络数据分组的转发功能;
在第一设备上的主机软件堆栈中执行的数据平面子系统中更改第一设备的转发功能;
在第一设备处接收第一网络数据分组;
使用数据平面子系统转发第一网络数据分组;
在第一设备处接收第二网络数据分组;以及
使用在第一设备处的虚拟机中执行的网络功能来处理第二网络数据分组,其中来自主机软件堆栈的管理程序实例化所述虚拟机。
21.如权利要求17所述的方法,其中第一设备是客户驻地装置(CPE)。
CN201780064331.3A 2016-09-09 2017-09-08 分布式客户驻地装置 Pending CN109863726A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662385352P 2016-09-09 2016-09-09
US62/385,352 2016-09-09
US15/338,082 US10257089B2 (en) 2014-10-30 2016-10-28 Distributed customer premises equipment
US15/338,082 2016-10-28
PCT/US2017/050815 WO2018049256A1 (en) 2016-09-09 2017-09-08 Distributed customer premises equipment

Publications (1)

Publication Number Publication Date
CN109863726A true CN109863726A (zh) 2019-06-07

Family

ID=61562677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780064331.3A Pending CN109863726A (zh) 2016-09-09 2017-09-08 分布式客户驻地装置

Country Status (5)

Country Link
EP (1) EP3510735B1 (zh)
JP (1) JP7113006B2 (zh)
KR (1) KR102171891B1 (zh)
CN (1) CN109863726A (zh)
WO (1) WO2018049256A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130953A (zh) * 2019-12-31 2020-05-08 奇安信科技集团股份有限公司 Vnf可用性监测方法、设备及介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257089B2 (en) 2014-10-30 2019-04-09 At&T Intellectual Property I, L.P. Distributed customer premises equipment
US11563677B1 (en) * 2018-06-28 2023-01-24 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network function
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
WO2020140235A1 (en) * 2019-01-03 2020-07-09 Nokia Shanghai Bell Co., Ltd. Method and apparatus for sharing control plane capacity

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286882A (zh) * 2008-06-11 2008-10-15 深圳华为通信技术有限公司 管理用户驻地设备的方法、系统和设备
CN103297353A (zh) * 2012-02-22 2013-09-11 华为技术有限公司 用户终端设备的接入方法、系统和宽带网络网关
CN103873961A (zh) * 2012-12-16 2014-06-18 瞻博网络公司 具有无发射器的客户驻地设备和自适应通信调度的光学接入网络
CN103997540A (zh) * 2014-06-10 2014-08-20 深圳市友华通信技术有限公司 网络分布式存储的实现方法及存储系统、客户终端设备
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
US20160173371A1 (en) * 2014-12-11 2016-06-16 Brocade Communications Systems, Inc. Multilayered distributed router architecture
US20160173192A1 (en) * 2014-12-11 2016-06-16 Adtran Inc. Managing network access based on ranging information

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286444B2 (en) * 2012-02-28 2016-03-15 Verizon Patent And Licensing Inc. Next generation secure gateway
US9612854B2 (en) * 2013-12-18 2017-04-04 Telefonaktiebolaget Lm Ericsson (Publ) System and method for virtualizing a remote device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286882A (zh) * 2008-06-11 2008-10-15 深圳华为通信技术有限公司 管理用户驻地设备的方法、系统和设备
CN103297353A (zh) * 2012-02-22 2013-09-11 华为技术有限公司 用户终端设备的接入方法、系统和宽带网络网关
CN103873961A (zh) * 2012-12-16 2014-06-18 瞻博网络公司 具有无发射器的客户驻地设备和自适应通信调度的光学接入网络
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
CN103997540A (zh) * 2014-06-10 2014-08-20 深圳市友华通信技术有限公司 网络分布式存储的实现方法及存储系统、客户终端设备
US20160173371A1 (en) * 2014-12-11 2016-06-16 Brocade Communications Systems, Inc. Multilayered distributed router architecture
US20160173192A1 (en) * 2014-12-11 2016-06-16 Adtran Inc. Managing network access based on ranging information

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ESTI: "esti gs nfv 001 v1.1.1", 《HTTPS://WWW.ESTI.ORG/DELIVER/ETSI_GS/NFV/001_099/001/01.01.01_60/GS_NFV001V010101P.PDF》 *
HARRISON J.SON: "SDN/NFV based vCPE Services by AT&T,Verizon and KT", 《HTTPS://WWW.NETMANIAS.COM/EN/POST/BLOG/10363/KT-SFV/SDI-NRFVBASED-VCPE-SERVICES-BY-AND-KT》 *
TAKAI KOICHI: "Brocade vCPE solution and VNF management by OpenStack Tacker", 《HTTP://WWW.SDNJAPAN.ORG/2015/1523_BROCADE.PDF》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130953A (zh) * 2019-12-31 2020-05-08 奇安信科技集团股份有限公司 Vnf可用性监测方法、设备及介质
CN111130953B (zh) * 2019-12-31 2022-04-15 奇安信科技集团股份有限公司 Vnf可用性监测方法、设备及介质

Also Published As

Publication number Publication date
KR102171891B1 (ko) 2020-10-30
WO2018049256A1 (en) 2018-03-15
JP2019533340A (ja) 2019-11-14
EP3510735A1 (en) 2019-07-17
JP7113006B2 (ja) 2022-08-04
KR20190047002A (ko) 2019-05-07
EP3510735B1 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
US11388093B2 (en) Distributed customer premises equipment
CN109863726A (zh) 分布式客户驻地装置
US10708342B2 (en) Dynamic troubleshooting workspaces for cloud and network management systems
US20230104568A1 (en) Cloud native software-defined network architecture for multiple clusters
EP3031174B1 (en) Hybrid network management
CN106790660B (zh) 一种实现分布式存储系统的部署方法及装置
AU2015256010B2 (en) Migration of applications between an enterprise-based network and a multi-tenant network
KR101615691B1 (ko) 범용 흐름을 변환하는 섀시 제어기
Bianchi et al. Superfluidity: a flexible functional architecture for 5G networks
CN106464528B (zh) 用于通信网络中的无接触编配的方法、介质、及装置
Lu et al. Hybnet: Network manager for a hybrid network infrastructure
CN109561108A (zh) 一种基于策略的容器网络资源隔离控制方法
CN106598560A (zh) 基于iSCSI的操作系统映像部署及无磁盘启动的方法
CN106953848B (zh) 一种基于ForCES的软件定义网络实现方法
CN109937400A (zh) 用于虚拟机的实时迁移的流状态传送
CN107005471A (zh) 通用客户驻地设备
Wang et al. Livecloud: A lucid orchestrator for cloud datacenters
CN114945903A (zh) 使用边缘优化计算实例在提供商底层扩展处执行用户工作负载
CN115804073A (zh) 针对虚拟网络功能的租户驱动的动态资源分配
CN116997889A (zh) 分布式人工智能结构控制器
JP2024507146A (ja) キャッシュされた構成情報およびキャッシュされない構成情報に基づいたクラウドインフラストラクチャにおけるパケットフロー
Lehocine et al. VINEMA: Towards automated management of virtual networks in SDN infrastructures
Wang et al. LiteLab: Efficient large-scale network experiments
Καραμιχαηλίδης Implementation of networking protocols with use of opendaylight in SDN
JP2024507147A (ja) クラウドインフラストラクチャにおけるキャッシュされたフロー情報の無効化

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220217

Address after: Maryland, US

Applicant after: Sina Co.

Address before: Georgia

Applicant before: AT&T INTELLECTUAL PROPERTY I, L.P.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190607