对于双向转发检测返回路径的控制的制作方法

文档序号:11637160阅读:141来源:国知局
对于双向转发检测返回路径的控制的制造方法与工艺

相关申请的交叉引用

本申请要求2014年6月30日提交的美国临时专利申请号62/019244的优先权。

本发明的实施例涉及数据平面故障的检测。具体来说,这些实施例涉及一种用于在网络中的两个节点之间的正向和反向方向中所用的显式路径和最佳路线路径是不同路线时检测数据平面故障的方法。



背景技术:

双向转发检测(bfd)是用于检测通过跨越网络的链路或路径连接的网络中的两个节点之间的故障的网络协议。互联网工程任务组(ietf)征求意见(rfc)5880提出,“双向转发检测(bfd)”的基础协议可适用于任何网络,包括互联网协议(ip)网络。主要地,通过动态路由协议以及到给定网络节点的最佳可用路线的选择来控制ip网络中的节点之间的路径选择。路由协议和选择最佳路线的规则设计成确保ip分组沿着从一个节点到另一个节点的最佳路线(例如,具有最低成本计量的路线)朝向目的地,而不会使得ip分组在网络中循环。

bfd协议利用控制分组来检测网络中的故障。在bfd会话的端节点之间发送这些控制分组,其中n个连续控制分组未能到达相反的另一端则指示链路或路径中发生了故障,其中n定义为rfc5880中的检测乘数,它可设置成1,但是更通常具有值3。就像其它ip数据分组一样,bfd控制分组将沿着最佳路线到目的地节点,并且因此确保对于操作、管理和维护(oam)机制提出的带内要求。由于ip路由通常是对称的(即,两个ip端点之间的最佳路线经过相同节点),所以两个节点之间的bfd会话的正向和反向方向中的bfd控制分组通常经过相同节点。因此,链路或路径中检测到的任何单向故障都可视为是双向缺陷,并且因此可按此行事。但是,最佳路线模型不允许控制最佳路线路径以外的业务分布。

最佳路线范例的备选方案是这样一种方法,其中通过例如控制器或在进口节点处预先确定整个路径。这可通过将分组引导到明确规定路线的隧道中或通过明确指定每个分组的所有中间节点来进行。一般来说,需要将这些路径视为是单向的。因为主要以它的异步模式使用bfd,所以远端对等节点可能在发送它的bfd控制分组时选择最佳可用路线。因此,bfd控制分组可能在正向和反向方向中不穿过相同的节点集合。因而,不可将单向故障解释为指示双向缺陷,并且在某些场景中,将在延长的时间周期检测不到缺陷。



技术实现要素:

一种通过网络装置实现的方法,用于利用定义的返回路径建立双向转发检测(bfd)会话以使得能够在有源节点和无源节点之间的正向路径和反向路径是不同路线的情况下在网络中检测有源节点和无源节点之间的数据平面故障。该方法包括接收标签交换路径(lsp)ping,lspping包括有源节点的bfd鉴别符类型长度值(tlv)和用于描述到有源节点的返回路径的返回路径tlv。将有源节点的bfd鉴别符和无源节点的bfd鉴别符与bfd会话相关联。将返回路径与有源节点和无源节点之间的bfd会话相关联,并利用返回路径将bfd控制分组发送到有源节点以便检测返回路径上的故障。

一种网络装置利用定义的返回路径建立双向转发检测(bfd)会话,以使得能够在有源节点和无源节点之间的正向路径和反向路径是不同路线的情况下在网络中检测有源节点和无源节点之间的数据平面故障。该网络装置包括配置成存储bfd模块和返回路径模块的非暂时性机器可读存储介质和网络处理器。网络处理器在通信上耦合到非暂时性机器可读存储介质。网络处理器配置成执行bfd模块和返回路径模块。bfd模块配置成:接收包括有源节点的bfd鉴别符tlv和用于描述到有源节点的返回路径的返回路径tlv的lspping;以及将有源节点的bfd鉴别符和无源节点的bfd鉴别符与bfd会话相关联。返回路径模块配置成:将返回路径与有源节点和无源节点之间的bfd会话相关联;以及利用返回路径将bfd控制分组发送到有源节点以便检测返回路径上的故障。

一种计算装置执行用于实现网络功能虚拟化(nfv)的多个虚拟机,其中来自所述多个虚拟机的虚拟机配置成执行这样一种方法,该方法利用定义的返回路径建立双向转发检测(bfd)会话以使得能够在有源节点和无源节点之间的正向路径和反向路径是不同路线的情况下在网络中检测有源节点和无源节点之间的数据平面故障。该计算装置包括配置成存储bfd模块和返回路径模块的非暂时性机器可读存储介质。该计算装置还包括在通信上耦合到非暂时性机器可读存储介质的处理器。处理器配置成执行用于执行bfd模块和返回路径模块的虚拟机。bfd模块配置成:接收包括有源节点的bfd鉴别符tlv和用于描述到有源节点的返回路径的返回路径tlv的lspping;以及将有源节点的bfd鉴别符和无源节点的bfd鉴别符与bfd会话相关联。返回路径模块配置成:将返回路径与有源节点和无源节点之间的bfd会话相关联;以及利用返回路径将bfd控制分组发送到有源节点以便检测返回路径上的故障。

一种控制平面装置配置成实现软件定义网络(sdn)的至少一个集中式控制平面。该集中式控制平面配置成执行这样一种方法,该方法利用定义的返回路径建立双向转发检测(bfd)会话以使得能够在有源节点和无源节点之间的正向路径和反向路径是不同路线的情况下在网络中检测有源节点和无源节点之间的数据平面故障。该控制平面装置包括配置成存储bfd模块和返回路径模块的非暂时性机器可读存储介质以及在通信上耦合到非暂时性机器可读存储介质的处理器。处理器配置成执行bfd模块和返回路径模块。bfd模块配置成:确定有源节点的bfd鉴别符和到有源节点的返回路径;以及将有源节点的bfd鉴别符和无源节点的bfd鉴别符与bfd会话相关联。返回路径模块配置成:将返回路径与有源节点和无源节点之间的bfd会话相关联;以及将无源节点配置成利用返回路径将bfd控制分组发送到有源节点以便检测返回路径上的故障。

附图说明

通过参考以下描述和用于说明本发明的实施例的附图,可最好地了解本发明。图中:

图1是在其中实现双向转发检测(bfd)的示例网络的一个实施例的图。

图2a是通过近端节点建立bfd会话的过程的一个实施例的流程图。

图2b是通过远端节点建立bfd会话的过程的一个实施例的流程图。

图3是在显式返回路径的支持下实现异步bfd会话的网络装置(nd)的一个实施例的图。

图4a示出根据本发明的一些实施例在示例性网络内的网络装置(nd)之间的连接以及nd的三个示例性实现。

图4b示出根据本发明的一些实施例用于实现专用网络装置402的示例性方式。

图4c示出根据本发明的一些实施例可用于耦合虚拟网络元件(vne)的各种示例性方法。

图4d示出在图4a的每个nd上具有单个网络元件(ne)的网络。

图4e示出根据本发明的一些实施例的这样一个示例,其中每个nd实现单个ne(见图4d),但是集中式控制平面将不同nd中的多个ne抽象成图4d的虚拟网络之一中的单个ne。

图4f示出根据本发明的一些实施例的这样一种情形,其中在不同nd上实现多个vne,并且这些vne彼此耦合,并且其中集中式控制平面将这些vne抽象成使得它们在图4d的虚拟网络之一内就像是单个vne一样。

图5示出根据本发明的一些实施例包含硬件的通用控制平面装置,硬件包括一个或多个处理器(它们通常是商用现货(cots)处理器)的集合、网络接口控制器(nic;又称为网络接口卡)(它们包括物理ni)、以及其中存储有集中式控制平面(ccp)软件的非暂时性机器可读存储介质。

具体实施方式

以下描述描述了在支持定义可与正向路径同路线或不同路线的显式返回路径的情况下建立异步bfd会话的方法和设备。在以下描述中,阐述了众多具体细节,例如逻辑实现、操作码、用于指定操作数的方式、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/集成选择,以便更充分地理解本发明。但是,本领域技术人员将明白,没有这些具体细节也可实践本发明。在其它情况下,没有详细示出控制结构、门级电路和全软件指令序列,以免使本发明晦涩难懂。借助于包含的描述,本领域技术人员将能够在无需过多试验的情况下实现合适的功能性。

本说明书中提到“一个实施例”、“实施例”、“示例实施例”等时表示,描述的实施例可包括特定特征、结构或特性,但不是每个实施例都一定要包括该特定特征、结构或特性。而且,这些短语不一定指相同实施例。此外,当结合一个实施例描述特定特征、结构或特性时,认为本领域技术人员知道结合其它实施例来实行该特征、结构或特性,而不管是否有明确描述。

本文中可利用加括号的文字和具有虚线边界(例如,大虚线、小虚线、点虚线和点)的框来说明在本发明的实施例中增加附加特征的可选操作。但是,不应将这些符号视为是表示它们是唯一的选项或可选的操作和/或具有实线边界的框在本发明的某些实施例中不是可选的。

在以下描述和随附权利要求书中,可使用术语“耦合”和“连接”及其派生词。应理解,这些术语不是彼此同义的。“耦合”用于指示两个或两个以上元件彼此共同协作或交互,它们可以或者可以不彼此直接物理或电接触。“连接”用于指示在彼此耦合的两个或两个以上元件之间建立通信。

将参考其它图的示例性实施例描述流程图中的操作。但是,应了解,流程图的操作可由与参考其它图论述的实施例不同的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。

概述

ietfrfc5880、名称为“bidirectionalforwardingdetection(bfd)foripv4andipv6(singlehop)”的ietfrfc5881和名称为“bidirectionalforwardingdetection(bfd)formultihoppaths”的ietfrfc5883建立了互联网协议(ip)网络的bfd协议。名称为“bidirectionalforwardingdetection(bfd)formplslabelswitchedpaths(lsps)”的ietfrfc5884描述了在ip/多协议标签交换(mpls)lsp上以异步模式使用bfd的过程。这些标准隐含地假定,将使用在建立bfd会话的近端节点和bfd会话的远端对等节点之间的最佳路线(例如,具有最低成本计量的路线),而不管该远端对等节点用来将它的bfd控制分组发送到近端节点的实际路线。术语“近端节点”指示启动与目标节点的bfd会话的节点。术语“远端节点”指示bfd会话的目标节点。它们可以是支持bfd有关的标准的网络中的任意两个节点。

bfd具有两种操作模式:(1)需求模式;以及(2)异步模式。在需求模式中,在建立会话之后不会自动交换hello分组;而是,这两个端点根据需要交换hello分组。异步模式在这两个端节点之间提供hello分组或类似bfd控制分组的预定或周期性交换。当这些bfd控制分组未能到达目的地节点时,那么假设沿该路径发生了故障。本文中描述的实施例预期对异步操作模式的修改。

如上文所论述,预期bfd监测双向同路线路径(即,从近端节点到远端节点的正向方向路径以及从远端节点到近端节点的返回方向路径)。在大多数ip和ip/mpls网络中,两个ip节点之间的最佳路线在稳定网络环境中可能是同路线的,并且因此满足隐含的bfd要求。但是,当明确规定bfd会话的正向方向路径的路线(例如,不使用最佳路线)而bfd会话的返回方向路径使用最佳路线时,若干种场景提出这样的问题:

a.不可将在返回方向路径上检测到的故障解释为是双向故障,因为正向和返回方向路径是不同路线的。如果将它不正确地解释为是双向故障,那么可能会进行正向方向路径的不必要的保护切换。

b.如果返回方向路径处于关闭状态,那么近端对等节点将不会从它的远端对等节点接收到正向方向路径故障的指示。

图1示出示例网络的节点和链路,其中对等节点a和e之间的正向和返回方向中的bfd受监测路径是不同路线的。该示例网络用于说明在正向方向路径和返回方向路径是不同路线的情况下在bfd监测中的问题。在图1的示例bfd会话中,对等节点a是近端对等节点,而对等节点e是远端对等节点。明确规定对等节点a和e之间的正向方向中的路径的路线为a-b-c-d-e。反之,对等节点e和a之间的返回方向中的路径是最佳路线e-g-f-a。因此,正向和返回方向中的bfd受监测路径在任何中间节点或链路上都是不同路线的。如果对等节点a在返回方向中的路径上检测到故障(例如,节点f和g之间的链路中的故障),那么不应将该故障解释为是在正向方向中的路径上、即在明确规定路线的a-b-c-d-e路径上的故障。此外,如果对等节点e在正向方向中的路径上检测到故障(例如,在明确规定路线的a-b-c-d-e路径上的节点c和d之间的链路中的故障),那么即使例如返回方向路径没有处于关闭状态(因为对等节点e可继续在它的返回路径上运行),对等节点a仍不应从对等节点e接收到该正向方向故障的指示。

本发明的实施例提供一种克服现有标准的这些限制的系统和方法,从而使得在mpls网络中使用bfd的方法可正确地处理不同路线的正向方向路径和返回方向路径。在这些实施例中,启动会话的近端对等节点利用具有bfd鉴别符类型-长度-值(tlv)的lspping,以使得远端对等节点可将bfd会话与发送近端对等节点正确地相关联。实际上,lspping在两个对等节点(例如,标签交换路由器(lsr))之间引导bfd会话。实施例进一步引入近端对等节点指示远端对等节点利用特定路径或显式mpls标签堆栈以便在正在引导的bfd会话的返回方向中发送远端对等节点的bfd控制分组的机制。

实施例进一步克服现有技术的限制,以使得监测明确规定路线的单向lsp的近端对等节点(例如,lsr)通过告知远端对等节点(例如,lsr)近端对等节点的bfd鉴别符(即,利用bfd鉴别符tlv)来利用lspping引导bfd会话。近端对等节点包括lsp标识符(id),或在bfd返回路径tlv(在本文中简称为返回路径tlv)中列出供远端对等节点用来在返回方向中发送远端对等节点的bfd控制分组的显式mpls标签堆栈。

当远端对等节点接收到lspping时,远端对等节点从lspping中查找出bfd鉴别符tlv,并将lsp与近端对等节点的bfd鉴别符的值相关联。然后,远端对等节点从lspping中查找出具有lspid或显式mpls标签堆栈的bfd返回路径tlv。远端对等节点验证指定路径(即,由lspid或显式mpls标签堆栈指示的路径)的可用性,并且如果可用性通过验证,那么将该指定路径与bfd会话相关联。然后,远端对等节点开始在bfd返回路径tlv中指定的路径上发送它的bfd控制分组,其中“我的鉴别符”值设置成远端对等节点的bfd鉴别符,并且“你的鉴别符”值设置成在bfd鉴别符tlv中接收的值(即,近端对等节点的bfd鉴别符)。或者,如果指定路径不可用,那么远端对等节点利用lspping答复通知近端对等节点发生了错误,并且可利用最佳路线来在返回方向中发送bfd控制分组。

在其它实施例中,可利用其它机制来指示远端对等节点(例如,lsr)利用特定返回路径来在返回方向中发送bfd控制分组。例如,可随着分组飞过收集路径,可利用集中式控制(例如,经由操作支持系统(oss)或软件定义联网(sdn))来检索关于在反向方向中使用的特定路径的信息或该特定路径的指示,可以用标识符编码特定路径,或者可实现类似技术。

相较于现有技术bfd系统,实施例提供显著益处。例如,指导bfd会话的远端对等节点利用特定路径来在返回方向中发送远端对等节点的bfd控制分组使得即使在明确规定正向方向中的bfd受监测路径的路线时那些bfd控制分组仍能够经过与正向方向中经过的节点和链路相同的节点和链路。此外,因为在利用本文中描述的过程时在双向同路线路径上维持bfd会话,所以可将在一个方向中检测到故障可靠地解释为并视为是该路径中的双向缺陷的指示。

图2a是通过近端节点建立bfd会话的过程的一个实施例的流程图。近端节点可以是任何类型的网络中的任意节点。如本文中所指,节点是可通过相连网络与其它节点通信的计算装置或联网装置。可根据用户指示或基于实现装置的本地策略启动bfd会话。近端节点在本文中又可称为‘有源’节点以便将它与远端节点或‘无源’节点进行区分。有源节点和无源节点是网络中的对等节点,在它们之间具有定义的路径集合,例如lsp。本文中所使用的‘集合’是指包括至少一个项的任何正整数项。在该上下文中,假设有源节点和无源节点在它们之间具有至少两个路径,以使得并非位于共同位置的有源节点和无源节点之间有可能存在正向路径和返回路径,从而使得可利用不同的正向和返回路径建立bfd会话。

该过程从通过有源节点向无源节点发送lspping以启动bfd会话(框201)开始。因为bfd没有定义远程启动过程,所以利用lspping来引导bfd会话。lspping是一种消息类型,并且如本文中所使用,它是指包括鉴别符tlv和返回路径tlv的消息的修改形式。bfd鉴别符tlv包括bfd鉴别符,bfd鉴别符是网络中用来区分网络中与接收节点通信的节点的值。bfd鉴别符在局部对于接收节点唯一,但是在全局对于网络并非唯一。

返回路径tlv可通过包含lsp标识符或mpls堆栈来标识有源节点和无源节点之间的路径,其中mpls堆栈是经过有源节点和无源节点之间的lsr的mpls标签的集合。在进一步的实施例中,可利用任何系统或格式来标识有源节点和无源节点之间的路径,以使得可将它存储在返回路径tlv中。包含bfd鉴别符tlv和返回路径tlv的lspping使得无源节点建立bfd会话。

无源节点利用由bfd鉴别符tlv提供的bfd鉴别符和由返回路径tlv标识的返回路径建立bfd会话以便沿返回路径将bfd控制分组发送到有源节点,从而使得有源节点接收bfd控制分组(框203)。这假设在无源节点处理lspping时没有在无源节点处发生错误。如果的确发生了错误,那么将通过无源节点发送并通过有源节点接收lspping答复(框203)。为了正确建立bfd会话,由无源节点发送的bfd控制分组必须包含有源节点的bfd鉴别符。有源节点开始在返回路径上接收bfd控制分组,并且此后当在有源节点或无源节点处没有接收到bfd控制分组时,可检测到返回路径或正向路径中的不同故障。bfd会话的操作可无限期地继续,直到发生故障或者由有源节点或无源节点终止bfd会话为止。

图2b是由远端或无源节点响应于接收到lspping实现的用于建立bfd会话的过程的一个实施例的流程图。无源节点可以是网络中除了有源节点以外的任何节点,并且假设它到有源节点有至少两个路径,以使得在并非位于共同位置的有源节点和无源节点之间有可能存在正向路径和返回路径,从而使得可利用不同的正向和返回路径建立bfd会话。无源节点配置成支持bfd并如本文中所阐述利用lspping消息引导bfd会话。当接收到lspping时,在无源节点处启动建立bfd会话的过程(框251)。可通过无源节点的任何端口从网络中的任何其它节点接收lspping。在该示例中,通过有源节点发送lspping。lspping修改成至少包含bfd鉴别符tlv和返回路径tlv。bfd鉴别符tlv包括bfd鉴别符,bfd鉴别符是用于标识发送节点的值,它至少相对于无源节点是唯一的。返回路径tlv包括用于描述有源节点和无源节点之间的路径的数据。可利用lsp标识符、mpls堆栈(即,用于标识如何跨越节点集合转发分组的标签的集合)或用于在网络中标识路径的类似格式或机制来标识该路径。利用明确定义的返回路径可用于任何目的,例如用于监测另外的路径,用于与在有源节点和无源节点之间处理其它数据流的方式匹配,或出于类似原因。

在接收到lspping之后,无源节点可访问lspping消息的内容,以便从消息的bfd鉴别符tlv中检索有源节点的bfd鉴别符(框253)。无源节点还验证lspping中的包含目标转发等价类(fec)堆栈tlv和lspping的封装的信息。如果该信息通过验证,并且如果bfd鉴别符位于bfd鉴别符tlv中,那么可接着将有源节点的bfd鉴别符与建立的bfd会话相关联(框255)。另外,将在局部对于无源节点唯一的bfd鉴别符与bfd会话相关联。发送到有源节点的bfd控制分组将包括有源节点的bfd鉴别符和无源节点的bfd鉴别符。无源节点还可访问并检索返回路径tlv(框257)。然后,可对返回路径的描述进行分析并将它与bfd会话相关联。

对由返回路径tlv描述的路径的分析可包括验证返回路径的可用性(框259)。验证可利用任何过程或机制来针对对于无源节点可用的网络拓扑检查接收的返回路径。可关于根据无源节点的已知拓扑是否可沿指定返回路径到达有源节点或基于根据返回路径诸如第一跳点的中间节点的可达性确定路径可用性。如果路径不可用,那么通过生成并发送错误以作为lspping答复的一部分或者利用类似机制来向有源节点通知错误(框261)。然后,无源节点利用最佳可用路线而不是由接收的返回路径tlv描述的返回路径来将bfd控制分组发送到有源节点(框267)。最佳可用路线可通过利用任何路由算法来确定,例如网络用来利用共享网络拓扑确定路径的一般路由算法。

如果接收的返回路径可用,那么无源节点利用指定路径来将bfd控制分组发送到有源节点。将返回路径与有源节点和无源节点之间的bfd会话相关联(框263)。接着,可在任何时间周期或在bfd会话的持续时间期间继续利用返回路径来将bfd控制分组发送到有源节点(框265)。bfd控制分组的交换使得能够单独检测有源节点和无源节点之间的正向路径和返回路径的故障。

图3示出用于实现bfd的返回路径控制功能的网络装置301的示例。

网络装置(nd)是在通信上互连网络上的其它电子装置(例如,其它网络装置、最终用户装置)的电子装置。一些网络装置是对多个联网功能(例如,路由、桥接、交换、第2层聚合、会话边界控制、服务质量和/或订户管理)提供支持和/或对等个应用服务(例如,数据、语音和视频)提供支持的“多服务网络装置”。

在一个实施例中,图2a和/或图2b的过程由路由器301或网络装置或类似计算装置实现。路由器301可具有使得它能够接收数据业务并将数据业务转发给它的目的地的任何结构。路由器301可包括网络处理器303或执行路由器301的功能的网络处理器的集合。路由器301或网络元件可经由网络处理器303或路由器301的其它组件执行包括显式返回路径定义功能性的bfd。网络处理器303可实现作为bfd模块307和返回路径模块351存储的bfd和返回路径定义功能,其中这些功能包括上文描述的bfd会话启动、引导、返回路径定义和验证。返回路径模块351可以是bfd模块307的一部分(如图3所示),或者独立于bfd模块307。网络处理器303还可服务于路由信息库305a和与数据业务转发和网络拓扑维护有关的类似功能。

bfd和返回路径定义功能可作为模块以软件(包括固件)和硬件的任意组合在路由器内实现。由路由器301执行和实现的bfd和返回路径定义过程的功能包括上文中进一步描述的功能,包括利用lspping进行引导以便作为两个节点之间的bfd会话的建立的一部分提供返回路径信息。

在一个实施例中,路由器301可包括线卡317的集合,它们通过标识目的地并将进入数据业务转发给具有经由下一个跳点通往或通向目的地的出口端口的合适线卡317来处理进入数据业务并将进入数据业务转发给相应的目的地节点。这些线卡317还可实现转发信息库305b或其相关子集。线卡317还可实现或促进上文描述的bfd和返回路径定义功能。例如,线卡317可实现lspping和lspping答复功能和类似功能。线卡317经由交换结构311彼此通信,并利用以太网、光纤或类似通信链路和介质通过附连网络321与其它节点通信。

参考框图的示例性实施例描述了流程图的操作。但是,应了解,流程图的操作可由上文论述的实施例以外的本发明的实施例来执行,并且参考框图论述的实施例可执行与参考这些流程图论述的操作不同的操作。尽管流程图示出由特定实施例执行的操作的特定顺序,但是应了解,该顺序是示例性的(例如,备选实施例可按不同顺序执行这些操作,将某些操作组合,重叠某些操作,等等)。

如本文中所描述,由路由器执行的操作可以指:特定硬件配置,例如配置成执行某些操作或具有预定功能性的专用集成电路(asic);或存储在以非暂时性计算机可读存储介质实施的存储器中的软件指令。因此,图中示出的技术可利用在一个或多个电子装置(例如,端站、网络元件)上存储并执行的代码和数据来实现。这些电子装置可利用计算机可读介质存储并(在内部和/或通过网络与其它电子装置)通信代码和数据,计算机可读介质可以是例如非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和暂时性计算机可读通信介质(例如,电、光、声或其它形式的传播信号,如载波、红外信号、数字信号)。另外,这些电子装置通常包括耦合到一个或多个其它组件的一个或多个处理器的集合,这一个或多个其它组件可以是例如一个或多个存储装置(例如,非暂时性机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接。处理器集合和其它组件的耦合通常通过一个或多个总线和桥接器(又称为总线控制器)。因此,给定电子装置的存储装置通常存储代码和/或数据以便在该电子装置的一个或多个处理器的集合上执行。本发明的实施例的一个或多个部分可利用软件、固件和/或硬件的不同组合来实现。

电子装置利用机器可读介质(又称为计算机可读介质)存储并(在内部和/或通过网络与其它电子装置)传送代码(由软件指令组成,并且有时称为计算机程序代码或计算机程序)和/或数据,机器可读介质可以是例如机器可读存储介质(例如,磁盘、光盘、只读存储器(rom)、闪速存储器装置、相变存储器)和机器可读传送介质(又称为载波)(例如,电、光、无线电、声或其它形式的传播信号,如载波、红外信号)。因此,电子装置(例如,计算机)包括硬件和软件,例如一个或多个处理器的集合,这一个或多个处理器的集合耦合到用于存储在该处理器集合上执行的代码和/或存储数据的一个或多个机器可读存储介质。例如,电子装置可包括包含代码的非易失性存储器,因为即使在电子装置关闭时(当移除电源时),非易失性存储器仍可存留代码/数据,并且当电子装置打开时,通常将由该电子装置的处理器执行的代码的那部分从较缓慢的非易失性存储器复制到该电子装置的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))。典型的电子装置还包括用于与其它电子装置建立网络连接(以便利用传播信号传送和/或接收代码和/或数据)的一个或多个物理网络接口的集合。本发明的实施例的一个或多个部分可利用软件、固件和/或硬件的不同组合来实现。

图4示出根据本发明的一些实施例在示例性网络内的网络装置(nd)之间的连接以及nd的三个示例性实现。图4a示出nd400a-h以及用a-b、b-c、c-d、d-e、e-f、f-g和a-g之间、以及h与a、c、d和g中的每一个之间的线表示的它们的连接。这些nd是物理装置,并且这些nd之间的连接可以是有线或无线的(通常称为链路)。从nd400a、e和f延伸的附加线说明,这些nd充当网络的进口和出口点(并且因此,有时将这些nd称为边缘nd;而可将其它nd称为核心nd)。

图4a中的两个示例性nd实现为:1)利用定制专用集成电路(asic)和专有操作系统(os)的专用网络装置402;以及2)利用商用现货(cots)处理器和标准os的通用网络装置404。

专用网络装置402包括联网硬件410,硬件410包括计算资源412(通常包括一个或多个处理器的集合)、转发资源414(通常包括一个或多个asic和/或网络处理器)、物理网络接口(ni)416(有时称为物理端口)、以及其中存储有联网软件420的非暂时性机器可读存储介质418。物理ni是nd中的硬件,通过它(例如,通过无线网络接口控制器(wnic)以无线方式或通过在电缆中插入到连接至网络接口控制器(nic)的物理端口)形成网络连接,例如由nd400a-h之间的连接示出的网络连接。在操作期间,可通过联网硬件410执行联网软件420以便例示化一个或多个联网软件实例422的集合。每个联网软件实例422和联网硬件410中执行该网络软件实例的这部分(无论是专用于该联网软件实例的硬件和/或供该联网软件实例与其它联网软件实例422在时间上共享的硬件的时间切片)形成独立的虚拟网络元件430a-r。每个虚拟网络元件(vne)430a-r包括控制通信和配置模块432a-r(有时称为本地控制模块或控制通信模块)与转发表434a-r,以使得给定虚拟网络元件(例如,430a)包括控制通信和配置模块(例如,432a)、一个或多个转发表的集合(例如,434a)、以及执行虚拟网络元件(例如,430a)的联网硬件410的这部分。在一些实施例中,控制通信和配置模块432a包含用于通过相连链路与网络中的远程节点建立bfd会话的bfd模块433a。返回路径模块492a可类似地管理显式定义的处理和返回路径的交换,其中返回路径不同于bfd会话的正向路径。

网络接口(ni)可以是物理的或虚拟的;并且在ip的上下文中,接口地址是指派给ni的ip地址,而不管它是物理ni还是虚拟ni。虚拟ni可以与物理ni相关联,与另一个虚拟接口相关联,或代表它自己(例如,回路接口、点到点协议接口)。ni(物理或虚拟)可以编号(具有ip地址的ni)或不编号(不具有ip地址的ni)。回路接口(以及它的回路地址)是通常用于管理目的的ne/vne(物理或虚拟)的特定类型的虚拟ni(和ip地址);其中将这样的ip地址称为节点回路地址。指派给nd的ni的ip地址称为该nd的ip地址;在更细粒度等级,指派给为在nd上实现的ne/vne指派的ni的ip地址可称为该ne/vne的ip地址。

专用网络装置402通常在物理上和/或在逻辑上视为包括:1)nd控制平面424(有时称为控制平面),它包括用于执行控制通信和配置模块432a-r的计算资源412;以及2)nd转发平面426(有时称为转发平面、数据平面或媒体平面),它包括利用转发表434a-r的转发资源414和物理ni416。举例来说,在nd是路由器(或实现路由功能性)的情况下,nd控制平面424(执行控制通信和配置模块432a-r的计算资源412)通常负责参与控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出物理ni)以及将该路由信息存储在转发表434a-r中,并且nd转发平面426负责在物理ni416上接收该数据并基于转发表434a-r将该数据从物理ni416中的合适物理ni转发出去。

图4b示出根据本发明的一些实施例用于实现专用网络装置402的示例性方法。图4b示出包括卡438(通常可热插拔)的专用网络装置。尽管在一些实施例中,卡438具有两种类型(一个或多个卡作为nd转发平面424操作(有时称为线卡),而一个或多个卡进行操作以便实现nd控制平面424(有时称为控制卡)),但是备选实施例可将功能性组合到单个卡上,和/或可包括另外的卡类型(例如,一种另外类型的卡称为服务卡、资源卡或多应用卡)。服务卡可提供专门处理(例如,第4层-第7层服务(例如,防火墙、互联网协议安全(ipsec)(rfc4301和4309))、安全套接层(ssl)/传送层安全(tls)、入侵检测系统(ids)、对等(p2p)、ip语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进型分组核心(epc)网关))。举例来说,服务卡可用于终止ipsec隧道并执行伴随的验证和加密算法。这些卡通过示为底板434的一个或多个互连机制耦合在一起(例如,第一全网格耦合线卡,而第二全网格耦合所有卡)。

返回到图4a,通用网络装置404包括硬件440,硬件440包括一个或多个处理器442(通常是cots处理器)的集合、网络接口控制器444(nic;又称为网络接口卡)(它们包括物理ni446)、以及其中存储有软件450的非暂时性机器可读存储介质448。在操作期间,处理器442执行软件450以便例示化管理程序454(有时称为虚拟机监测器(vmm))和由管理程序454运行的一个或多个虚拟机462a-r,管理程序454和虚拟机462a-r统称为软件实例452。虚拟机是就像它们在物理、非虚拟化机器上执行一样运行程序的物理机的软件实现;并且应用一般不知道与在“裸机”主机电子装置上运行相反它们在虚拟机上运行,但是一些系统提供允许操作系统或应用知道出于优化目的而存在虚拟化的准虚拟化。每个虚拟机462a-r和执行该虚拟机的硬件440的这部分(无论它是专用于该虚拟机的硬件和/或该虚拟机与其它虚拟机462a-r在时间上共享的硬件的时间片段)形成独立的虚拟网络元件460a-r。在一些实施例中,虚拟机模块462a包含用于管理网络装置与另一个网络装置之间的bfd会话的配置的bfd模块463a。返回路径模块491b可类似地促进bfd会话的建立,特别地,其中对于bfd会话可取的是具有独立的正向和返回路径。

虚拟网络元件460a-r执行与虚拟网络元件430a-r类似的功能性。例如,管理程序454可向虚拟机462a呈现看起来就像是联网硬件410的虚拟操作平台,并且可利用虚拟机462a来实现与控制通信和配置模块432a以及转发表434a类似的功能性(硬件440的这种虚拟化有时称为网络功能虚拟化(nfv))。因此,nfv可用于将许多网络设备类型整合到可位于数据中心、nd和客户驻地设备(cpe)中的工业标准大容量服务器硬件、物理交换机和物理存储设备上。但是,本发明的不同实施例可不同地实现其中一个或多个虚拟机462a-r。例如,尽管用对应于一个vne460a-r的每个虚拟机462a-r示出本发明的实施例,但是备选实施例可以按更细等级的粒度实现这种对应性(例如,线卡虚拟机虚拟化线卡,控制卡虚拟机虚拟化控制卡,等等);应了解,本文中参考虚拟机-vne的对应性描述的技术还适用于其中使用这种更细等级的粒度的实施例。

在某些实施例中,管理程序454包括提供与物理以太网交换机类似的转发服务的虚拟交换机。具体来说,该虚拟交换机在虚拟机与nic444之间、以及可选地在虚拟机462a-r之间转发业务;另外,该虚拟交换机可在根据策略不允许彼此通信的vne460a-r之间强制执行网络隔离(例如,通过履行虚拟局域网(vlan))。

图4a中的第三个示例性nd实现是混合网络装置406,它包括位于单个nd中或位于nd内的单个卡中的定制asic/专有os和cots处理器/标准os。在这种混合网络装置的某些实施例中,平台vm(即,实现专用网络装置402的功能性的vm)可向存在于混合网络装置406中的联网硬件提供准虚拟化。

不管nd的以上示例性实现,当考虑由nd实现的多个vne中的单个vne(例如,vne中只有一个vne是给定虚拟网络的一部分)时或者在nd当前只实现单个vne的情况下,有时利用缩写术语“网络元件(ne)”来表示该vne。并且,在以上所有示例性实现中,每个vne(例如,vne430a-r、vne460a-r和混合网络装置406中的vne)在物理ni(例如,416、446)上接收数据,并将该数据从物理ni(例如,416、446)中的合适ni转发出去。例如,实现ip路由器功能性的vne在ip分组中的一些ip报头信息的基础上转发ip分组;其中ip报头信息包括源ip地址、目的地ip地址、源端口、目的地端口(其中,与nd的物理端口相比,“源端口”和“目的地端口”在这里指协议端口)、传送协议(例如,用户数据报协议(udp)(rfc768、2460、2675、4113和5405)、传送控制协议(tcp)(rfc793和1180)以及区分服务(dscp)值(rfc2474、2475、2597、2983、3086、3140、3246、3247、3260、4594、5865、3289、3290和3317)。

图4c示出根据本发明的一些实施例可用于耦合vne的各种示例性方法。图4c示出在nd400a中实现的vne470a.1-470a.p(以及可选的vne470a.q-470a-r)和在nd400h中实现的vne470h.1。在图4c中,vne470a.1-p在它们可从nd400a外部接收分组并在nd400a外部转发分组的意义来说是彼此独立的;vne470a.1与vne470h.1耦合,并且因此它们在它们的相应nd之间通信分组;vne470a.2-470a.3可以可选地在它们本身之间转发分组,而无需在nd400a外部转发它们;并且vne470a.p可以可选地是包括在vne470a.q之后紧跟vne470a.r的vne链中的第一个(这有时称为动态服务链接,其中vne系列中的每个vne提供不同服务,例如一个或多个层4-7网络服务)。尽管图4c示出vne之间的各种示例性关系,但是备选实施例可支持其它关系(例如,更多/更少vne、更多/更少动态服务链、具有一些共同vne和一些不同vne的许多不同的动态服务链)。

例如,图4a的nd可形成互联网或私有网络的一部分;并且其它电子装置(未示出;例如最终用户装置,包括工作站、膝上型计算机、上网本、平板电脑、掌上型计算机、移动电话、智能电话、多媒体电话、互联网协议语音(voip)电话、终端、便携式媒体播放器、gps单元、可穿戴装置、游戏系统、机顶盒、互联网启用的家用电器)可(直接或通过诸如接入网络的其它网络)耦合到网络以便通过网络(例如,互联网或敷设在(例如,穿隧通过)互联网上的虚拟私有网络(vpn))彼此(直接或通过服务器)通信和/或访问内容和/或服务。这些内容和/或服务通常由属于服务/内容供应商的一个或多个服务器(未示出)或参与对等(p2p)服务的一个或多个最终用户装置(未示出)提供,并且可包括例如公共网页(例如,免费内容、店面、搜索服务)、私有网页(例如,提供email服务的用户名/密码访问的网页)、和/或vpn上的公司网络。例如,最终用户装置可(例如,通过(有线或无线地)耦合到接入网络的客户驻地设备)耦合到边缘nd,边缘nd(例如,通过一个或多个核心nd)耦合到其它边缘nd,这些其它边缘nd耦合到充当服务器的电子装置。但是,通过计算和存储虚拟化,作为图4a中的nd操作的一个或多个电子装置还可代管一个或多个这样的服务器(例如,在通用网络装置404的情况下,一个或多个虚拟机462a-r可作为服务器操作;对于混合网络装置406同样如此;在专用网络装置402的情况下,一个或多个这样的服务器还可在由计算资源412执行的管理程序上运行);在此情况下,可以说服务器与该nd的vne共置在一起。

虚拟网络是提供网络服务(例如,l2和/或l3服务)的物理网络(例如,图4a中的物理网络)的逻辑抽象。虚拟网络可作为在底层网络(例如,l3网络,如利用隧道(例如,通用路由封装(gre)、第2层穿隧协议(l2tp)、ipsec)来创建覆盖网络的互联网协议(ip)网络)上提供网络服务(例如,第2层(l2,数据链路层)和/或第3层(l3,网络层)服务)的覆盖网络(有时称为网络虚拟化覆盖)实现。

网络虚拟化边缘(nve)位于底层网络的边缘,并参与实现网络虚拟化;nve的面对网络的一侧利用底层网络来将帧穿隧到其它nve并从其它nve穿隧帧;nve的面对外面的一侧将数据发送到网络外部的系统以及从网络外部的系统接收数据。虚拟网络实例(vni)是nve上的虚拟网络的特定实例(例如,nd上的ne/vne、nd上的ne/vne的一部分,其中通过仿真将该ne/vne划分成多个vne);可在nve上例示化一个或多个vni(例如,作为nd上的不同vne)。虚拟接入点(vap)是nve上用于将外部系统连接到虚拟网络的逻辑连接点;vap可以是通过逻辑接口标识符(例如,vlanid)标识的物理或虚拟端口。

网络服务的示例包括:1)以太网lan仿真服务(与互联网工程任务组(ietf)多协议标签交换(mpls)类似的基于以太网的多点服务、或以太网vpn(evpn)服务),其中在底层网络上通过lan环境跨越网络互连外部系统(例如,nve为不同的这类虚拟网络提供独立的l2vni(虚拟交换实例),跨越底层网络提供l3(例如,ip/mpls)穿隧封装);以及2)虚拟化ip转发服务(从服务定义的角度,与ietfipvpn(例如,边界网关协议(bgp)/mplsipvpnrfc4364)类似),其中在底层网络上通过l3环境跨越网络互连外部系统(例如,nve为不同的这类虚拟网络提供独立的l3vni(转发和路由实例),并跨越底层网络提供l3(例如,ip/mpls)穿隧封装)。网络服务还可包括服务质量能力(例如,业务分类标记、业务调节和调度)、安全能力(例如,用于保护客户端设备免受源自网络的攻击的过滤器,以免畸形路由宣告)和管理能力(例如,完整检测和处理)。

图4d示出根据本发明的一些实施例在图4a的每个nd上具有单个网络元件的网络,并且在该直观方法中,将(传统路由器通常使用的)传统的分布式方法与集中式方法进行对比,以便维持可达性和转发信息(又称为网络控制)。具体来说,图4d示出具有与图4a的nd400a-h相同的连接的网络元件(ne)470a-h。

图4d示出,分布式方法472跨越ne470a-h分布生成可达性和转发信息的责任;换句话说,邻居发现和拓扑发现的过程是分布式的。

例如,在使用专用网络装置402的情况下,nd控制平面424的控制通信和配置模块432a-r通常包括用于实现一个或多个路由协议(例如,诸如边界网关协议(bgp)(rfc4271)的外部网关协议、内部网关协议(igp)(例如,开放式最短路径优先(ospf)(rfc2328和5340)、中间系统-中间系统(is-is)(rfc1142)、路由信息协议(rip)(版本1rfc1058、版本2rfc2453和下一代rfc2080))、标签分发协议(ldp)(rfc5036)、资源预留协议(rsvp)(rfc2205、2210、2211、2212以及rsvp-业务工程(te):lsp隧道的rsvp的扩展rfc3209、通用多协议标签交换(gmpls)信令rsvp-terfc3473、rfc3936、4495和4558))的可达性和转发信息模块,这一个或多个协议与其它ne通信以便交换路线,然后基于一个或多个路由度量选择那些路线。因此,ne470a-h(例如,执行控制通信和配置模块432a-r的计算资源412)通过分布式地确定网络内的可达性并计算它们的相应转发信息来执行它们的参与控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出物理ni)的责任。路线和相邻性存储在nd控制平面424上的一个或多个路由结构(例如,路由信息库(rib)、标签信息库(lib)、一个或多个相邻性结构)中。nd控制平面424利用基于路由结构的信息(例如,相邻性和路由信息)将nd转发平面426编程。例如,nd控制平面424在nd转发平面426上将相邻性和路由信息编程到一个或多个转发表434a-r(例如,转发信息库(fib)、标签转发信息库(lfib)和一个或多个相邻性结构)中。对于第2层转发,nd可将用于基于第2层信息转发数据的一个或多个桥接表存储在该数据中。尽管以上示例利用专用网络装置402,但是可在通用网络装置404和混合网络装置406上实现相同的分布式方法472。

图4d示出,集中式方法474(又称为软件定义联网(sdn))将做出关于在哪里发送业务的决定的系统与将业务转发到所选目的地的底层系统解耦。所示的集中式方法474具有在集中式控制平面476(有时称为sdn控制模块、控制器、网络控制器、openflow控制器、sdn控制器、控制平面节点、网络虚拟化权威、或管理控制实体)中生成可达性和转发信息的责任,并且因此邻居发现和拓扑发现的过程是集中式的。集中式控制平面476具有与数据平面480(有时称为基础设施层、网络转发平面或转发平面(不应与nd转发平面混淆))的南向接口482,数据平面480包括ne470a-h(有时称为交换机、转发元件、数据平面元件或节点)。集中式控制平面476包括网络控制器478,网络控制器478包括确定网络内的可达性并通过南向接口482(它可使用openflow协议)将转发信息分发给数据平面480的ne470a-h的集中式可达性和转发信息模块479。因此,网络智能集中在通常与nd分离的电子装置上执行的集中式控制平面476中。

例如,在数据平面480中使用专用网络装置402的情况下,nd控制平面424的每个控制通信和配置模块432a-r通常包括提供南向接口482的vne侧的控制代理。在此情况下,nd控制平面424(执行控制通信和配置模块432a-r的计算资源412)通过控制代理与集中式控制平面476通信以便从集中式可达性和转发信息模块479接收转发信息(并且在一些情况下,还包括可达性信息)来执行它的参与控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出物理ni)的责任(应了解,在本发明的一些实施例中,除了与集中式控制平面476通信以外,控制通信和配置模块432a-r还可在确定可达性和/或计算转发信息中起到一定作用—虽然比不上分布式方法的情形;这些实施例一般视为是归入集中式方法474,但是也可视为是混合方法)。在一些实施例中,集中式可达性和转发信息模块479包括用于管理网络装置之间的bfd会话的建立的bfd模块481中的bfd功能。返回路径模块491可类似地管理这些网络装置之间的显式返回路径的建立。在该实施例中,无需利用lspping引导bfd会话,因此,bfd模块481和返回路径模块491具有用于标识正向路径和返回路径并将每个端节点配置成沿合适路径(即,正向路径或返回路径)发送bfd控制分组的可见性。类似地,返回路径模块491可验证这些返回路径的可用性。

尽管以上示例利用专用网络装置402,但是也可用通用网络装置404(例如,通过与集中式控制平面476通信以便从集中式可达性和转发信息模块479接收转发信息(并且在一些情况下,还包括可达性信息),每个vne460a-r执行它的控制如何路由数据(例如,分组)(例如,数据的下一跳以及该数据的外出物理ni)的责任;应了解,在本发明的一些实施例中,除了与集中式控制平面476通信以外,vne460a-r还可在确定可达性和/或计算转发信息中起到一定作用—虽然比不上分布式方法的情形)和混合网络装置406来实现相同的集中式方法474。实际上,sdn技术的使用可增强在通用网络装置404或混合网络装置406实现中通常使用的nfv技术,因为nfv能够通过提供可运行sdn软件的基础设施来支持sdn,并且nfv和sdn均旨在利用商用服务器硬件和物理交换机。

图4d还示出,集中式控制平面476具有到其中驻留应用488的应用层486的北向接口484。集中式控制平面476具有为应用488形成虚拟网络492(有时称为逻辑转发平面、网络服务或覆盖网络(其中数据平面480的ne470a-h是底层网络))的能力。因此,集中式控制平面476维持所有nd和配置的ne/vne的全局视图,并且它将虚拟网络有效地映射到底层nd(包括当物理网络通过硬件(nd、链路或nd组件)故障、增加或移除而改变时维持这些映射)。在一些实施例中,可在应用层486处实现上文描述的pce499和/或相关联的pca(未示出)。

尽管图4d示出分布式方法472与集中式方法474分离,但是在本发明的某些实施例中,网络控制的努力可以是不同地分布式地或将这两者组合在一起。例如:1)实施例一般可利用集中式方法(sdn)474,只是将某些功能委托给ne(例如,可利用分布式方法来实现故障监测、性能监测、保护交换和邻居和/或拓扑发现的原语中的一个或多个);或2)本发明的实施例可经由集中式控制平面和分布式协议执行邻居发现和拓扑发现,并且结果可进行比较以便在它们不一致时引发异常。这些实施例一般视为归入集中式方法474,但是也可视为是混合方法。

尽管图4d示出其中每个nd400a-h实现单个ne470a-h的简单情形,但是应了解,参考图4d描述的网络控制方法还对其中一个或多个nd400a-h实现多个vne(例如,vne430a-r、vne460a-r、混合网络装置406中的vne)的网络起作用。备选地或另外地,网络控制器478还可仿真在单个nd中实现多个vne。具体来说,取代在单个nd中实现多个vne(或除此之外),网络控制器478可将单个nd中的vne/ne的实现呈现为虚拟网络492中的多个vne(所有都在同一个虚拟网络492中,每个vne在不同虚拟网络492中,或某种组合)。例如,网络控制器478可使得nd在底层网络中实现单个vne(ne),然后在集中式控制平面476内在逻辑上分割该ne的资源以便在虚拟网络492中呈现不同vne(其中覆盖网络中的这些不同vne共享底层网络中的nd上的单个vne/ne实现的资源)。

另一方面,图4e和4f分别示出网络控制器478可作为不同虚拟网络492的部分呈现的ne和vne的示例性抽象。图4e示出根据本发明的一些实施例的简单情形,其中每个nd400a-h实现单个ne470a-h(见图4d),但是在图4d的虚拟网络492之一中,集中式控制平面476将不同nd中的多个ne(ne470a-c和g-h)抽象为(以便表示)单个ne470i。图4e显示,在该虚拟网络中,ne470i耦合到ne470d和470f,ne470d和470f仍耦合到ne470e。

图4f示出根据本发明的一些实施例的情形,其中在不同nd(nd400a和nd400h)上实现多个vne(vne470a.1和vne470h.1),这些vne彼此耦合,并且其中集中式控制平面476将这些vne抽象成使得它们就像是图4d的虚拟网络492之一内的单个vne470t。因此,ne或vne的抽象可跨越多个nd。

尽管本发明的一些实施例将集中式控制平面476实现为单个实体(例如,在单个电子装置上运行的单个软件实例),但是备选实施例可跨越多个实体扩展该功能性以便实现冗余和/或可扩展的目的(例如,在不同电子装置上运行的多个软件实例)。

与网络装置实现类似,可以用各种方式(例如,专用装置、通用(例如,cots)装置或混合装置)来实现运行集中式控制平面476的电子装置以及因此的包括集中式可达性和转发信息模块479的网络控制器478。这些电子装置将类似地包括计算资源、一个或多个物理nic的集合以及其上存储有集中式控制平面软件的非暂时性机器可读存储介质。例如,图5示出,通用控制平面装置504包括硬件540,硬件540包含一个或多个处理器542(通常是cots处理器)的集合、网络接口控制器544(nic;又称为网络接口卡)(包括物理ni546)、以及其中存储有集中式控制平面(ccp)软件550的非暂时性机器可读存储介质548。

在利用计算虚拟化的实施例中,处理器542通常执行软件以便例示化管理程序554(有时称为虚拟机监测器(vmm))和由管理程序554运行的一个或多个虚拟机562a-r;管理程序554和虚拟机562a-r统称为软件实例552。虚拟机是就像它们在物理、非虚拟化机器上执行一样运行程序的物理机的软件实现;并且应用一般不知道与在“裸机”主机电子装置上运行相反它们在虚拟机上运行,但是一些系统提供允许操作系统或应用知道出于优化的目的而存在虚拟化的准虚拟化。同样地,在使用计算虚拟化的实施例中,在操作过程中,通常在虚拟机562a内执行操作系统564a之上的ccp软件550的实例(示为ccp实例576a)。在不使用计算虚拟化的实施例中,在“裸机”通用控制平面装置504上执行操作系统564a之上的ccp实例1576a。

操作系统564a提供基本处理、输入/输出(i/o)和联网能力。在一些实施例中,ccp实例576a包括网络控制器实例578。网络控制器实例578包括集中式可达性和转发信息模块实例579(它是将网络控制器578的上下文提供给操作系统564a并与各种ne通信的中间件层)和中间件层(提供各种网络操作所需的智能性,例如协议、网络情形知晓和用户-界面)上的ccp应用层580(有时称为应用层)。在更抽象一级,集中式控制平面476内的该ccp应用层580与虚拟网络视图(网络的逻辑视图)一起工作,并且中间件层提供从虚拟网络到物理视图的转换。ccp应用层580可包含如上文描述的bfd模块581和返回路径模块591的功能性。

集中式控制平面476基于每个流的ccp应用层580计算和中间件层映射将相关消息传送到数据平面480。可将流定义为报头与给定位模式匹配的分组的集合;在这个意义上,传统ip转发也是基于流的转发,其中通过例如目的地ip地址来定义流;但是,在其它实现中,用于流定义的给定位模式可包括分组报头中的更多字段(例如,10个或更多个)。数据平面480的不同nd/ne/vne可接收不同的消息,并且因此可接收不同的转发信息。数据平面480处理这些消息,并在合适ne/vne的转发表(有时称为流表)中编程合适的流信息和对应动作,然后ne/vne将输入分组映射到在转发表中表示的流,并基于转发表中的匹配转发分组。

诸如openflow的标准定义用于这些消息的协议以及用于处理这些分组的模型。用于处理分组的模型包括报头剖析、分组分类和做出转发决定。报头剖析描述如何基于公知的协议集合解释分组。一些协议字段用于构建将在分组分类中使用的匹配结构(或密钥)(例如,第一密钥字段可以是源媒体接入控制(mac)地址,而第二密钥字段可以是目的地mac地址)。

分组分类涉及在存储器中执行查找以便通过基于转发表条目的匹配结构或密钥确定转发表中的哪个条目(又称为转发表条目或流条目)与分组最佳地匹配来将分组分类。可能的是,转发表条目中表示的许多流可对应于某个分组/与某个分组匹配;在这种情况下,系统通常配置成根据定义的方案从中确定一个转发表条目(例如,选择匹配的第一转发表条目)。转发表条目包括特定的匹配准则集合(值或通配符的集合,或应当将分组的哪些部分与一个或多个特定值/通配符进行比较的指示,这由匹配能力定义—对于分组报头中的特定字段,或对于某个其它分组内容)和在接收匹配分组时数据平面采取的一个或多个动作的集合。例如,动作可以是将报头推送到分组上(对于利用特定端口的分组),溢出分组,或简单地丢弃分组。因此,具有特定传送控制协议(tcp)目的地端口的ipv4/ipv6分组的转发表条目可包含指定应当丢弃这些分组的动作。

基于在分组分类期间标识的转发表条目,通过执行在分组上的匹配的转发表条目中标识的动作的集合,做出转发决定并执行动作。

但是,当未知分组(例如,如openflow用语中所使用的“未命中分组”或“匹配未命中”)到达数据平面480时,通常将分组(或分组报头和内容的子集)转发到集中式控制平面476。集中式控制平面476将接着将转发表条目编程到数据平面480中以便容纳属于未知分组的流的分组。一旦通过集中式控制平面476将特定转发表条目编程到数据平面480中,具有匹配证书的下一个分组将与该转发表条目匹配,并采取与该匹配的条目相关联的动作的集合。

例如,尽管图中的流程图示出由本发明的某些实施例执行的操作的特定顺序,但是应了解,这样的顺序是示例性的(例如,备选实施例可以按不同的顺序执行操作,组合某些操作,重叠某些操作,等等)。

本领域技术人员将明白,术语“示例性”的使用在本文中用于表示“说明性”或“充当示例”,而不是要暗示特定实施例优于另一个实施例或特定特征是必不可少的。类似地,除非上下文明确指出,否则术语“第一”和“第二”与类似术语仅仅用于区分某个项或特征的一个特定实例与另一个特定实例,而不是指示特定顺序或布置。此外,本文中所使用的术语“步骤”意在与“操作”或“动作”同含义。除非上下文或描述的操作的细节清楚地指示,否则本文中对步骤的序列的任何描述不是暗示,必须按照特定顺序执行这些操作,或者甚至完全按任何顺序进行这些操作。

当然,在不偏离本发明的范围和基本特性的情况下,可按照与本文中阐述的方式不同的其它特定方式进行本发明。上文论述的一个或多个特定过程可利用一个或多个合适配置的处理电路来进行。在一些实施例中,这些处理电路可包括利用合适的软件和/或固件编程以便进行上文描述的一个或多个操作的一个或多个微处理器、微控制器和/或数字信号处理器、或其变型。在一些实施例中,这些处理电路可包括用于进行上文描述的一个或多个功能的定制化硬件。因此,这些实施例在所有方面都视为是说明性而不是限制性的。

尽管就若干个实施例描述了本发明,但是本领域技术人员将意识到,本发明不限于描述的实施例,而是可以在随附权利要求的精神和范围内作出修改和改变的情况下加以实践。因此,本描述视为是说明性而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1