使用中间系统到中间系统(IS-IS)的伪线建立和保持的方法和装置与流程

文档序号:16054166发布日期:2018-11-24 11:32阅读:333来源:国知局

本申请要求于2016年3月31日递交的美国临时专利申请第62/316,496号的优先权,在此通过引用的方式将其并入。

本发明的实施例一般涉及计算机网络领域,更具体地,涉及使用中间系统到中间系统(is-is)的伪线建立和保持。

背景技术

可以通过封装第2层协议数据单元(pdu)并通过伪线(pw)传输,在分组交换网(psn)上仿真诸如帧中继、异步传输模式(atm)和以太网等的第2层服务。伪线仿真边缘到边缘(pwe3)定义了一种机制,其在psn上对第2层服务(例如,atm、帧中继、以太网等)的基本属性进行仿真。利用pwe3,可以使用pw来仿真位于地理上分散的位置的客户边缘(ce)设备之间的连接。pw对连接ce的线路的事务进行仿真。

提供商边缘(pe)设备代表其所服务的ce设备提供一个或多个pw,以便ce设备可以在psn上进行通信。建立psn隧道以提供针对pw的数据路径。本地(native)服务pdu被封装,经由psn隧道在psn上传输。pe设备执行必要的封装和解封装,以使pw上的通信对ce透明。封装包括用于标识数据平面中的pw的pw标签。封装还包括用于在数据平面中转发业务的传输标签。pe设备负责建立、保持和拆除pw。这包括在pe设备之间交换pw标签和传输标签。

通常,需要至少三个不同的协议来支持第2层虚拟专用网(l2vpn)部署中的pw功能。第一个协议是用于在psn内分发网络可达性信息的内部网关协议(igp)(例如,中间系统到中间系统(is-is)或开放最短路径优先(ospf))。第二个协议是用于分发传输标签的协议(例如,标签分发协议(ldp))。第三个协议是用于交换pw标签的协议(例如,目标标签分发协议(目标ldp)或边界网关协议(bgp))。通过引入分段路由,可以使用igp来交换传输标签。但是,l2vpn部署仍然需要两个单独的协议来支持pw功能(例如,igp和目标ldp/bgp)。使用多个协议来实施pw可能在操作上很复杂,难以进行配置、保持和故障排除。



技术实现要素:

一种方法由网络中的第一提供商边缘(pe)网络设备实现,用于使用中间系统到中间系统(is-is)来配置网络中的第一pe网络设备和第二pe网络设备之间的伪线(pw)。该方法包括:接收第二pe网络设备经由is-is在网络中泛洪的第一lsp更新。第一lsp更新包括以第一pe网络设备为目标的pw关联tlv。pw关联tlv包括通告pw的pw子tlv。该方法还包括:确定第一pe网络设备是否支持pw以及第一pe网络设备是否先前已向第二pe网络设备通告pw,并且响应于确定第一pe网络设备支持pw并且先前已向第二pe网络设备通告了pw,配置本地转发信息库具有与pw关联的本地pw标签,使得第一pe网络设备向与pw关联的附接电路(ac)转发封装有本地pw标签的业务,以及经由is-is在网络中泛洪第二lsp更新,其中第二lsp更新包括第一pe网络设备准备好通过pw从第二pe网络设备接收业务的指示。

第一提供商边缘(pe)网络设备适于使用中间系统到中间系统(is-is)在网络中的第一pe网络设备和第二pe网络设备之间配置网络中的伪线(pw)。第一pe网络设备包括一个或多个处理器的组和非暂时性机器可读存储介质。非暂时性机器可读存储介质存储有pw信令模块,pw信令模块当被一个或多个处理器的组执行时,使得第一pe网络设备接收第二pe网络设备经由is-is在网络中泛洪的第一lsp更新。第一lsp更新包括以第一pe网络设备为目标的pw关联tlv。pw关联tlv包括通告pw的pw子tlv。当被一个或多个处理器的组执行时,pw信令模块还使第一pe网络设备:确定第一pe网络设备是否支持pw以及第一pe网络设备是否先前已向第二pe网络设备通告pw,并且响应于确定第一pe网络设备支持pw并且先前已向第二pe网络设备通告了pw,-配置本地转发信息库具有与pw关联的本地pw标签,使得第一pe网络设备向与pw关联的附接电路(ac)转发封装有本地pw标签的业务,以及经由is-is在网络中泛洪第二lsp更新,其中第二lsp更新包括第一pe网络设备准备好通过pw从第二pe网络设备接收业务的指示。

非暂时性机器可读存储介质中存储有计算机代码,计算机代码将被网络中的第一提供商边缘(pe)网络设备的一个或多个处理器的组执行。计算机代码在被第一pe网络设备执行时,使得第一pe网络设备执行使用中间系统到中间系统(is-is)来配置网络中的第一pe网络设备和第二pe网络设备之间的伪线(pw)的操作。所述操作包括接收第二pe网络设备经由is-is在网络中泛洪的第一lsp更新。第一lsp更新包括以第一pe网络设备为目标的pw关联tlv。pw关联tlv包括通告pw的pw子tlv。-所述操作还包括:确定第一pe网络设备是否支持pw以及第一pe网络设备是否先前已向第二pe网络设备通告pw,并且响应于确定第一pe网络设备支持pw并且先前已向第二pe网络设备通告了pw,配置本地转发信息库具有与pw关联的本地pw标签,使得第一pe网络设备向与pw关联的附接电路(ac)转发封装有本地pw标签的业务,以及经由is-is在网络中泛洪第二lsp更新,其中第二lsp更新包括第一pe网络设备准备好通过pw从第二pe网络设备接收业务的指示。

附图说明

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

图1是示出根据一些实施例的可以使用is-is用于pw信令的系统的图。

图2是示出根据一些实施例的第一pe网络设备和第二pe网络设备在使用is-is的pw信令期间的不同状态的表。

图3是示出根据一些实施例的pw能力子tlv的格式的图。

图4是示出根据一些实施例的ipv4pw关联tlv的格式的图。

图5是示出根据一些实施例的mtid字段的格式的图。

图6是示出根据一些实施例的ipv6pw关联tlv的格式的图。

图7是示出根据一些实施例的pw子tlv的格式的图。

图8是示出根据一些实施例的pw组id子tlv的格式的图。

图9是示出根据一些实施例的pw扩展状态子tlv的格式的图。

图10是示出根据一些实施例的pw接口参数子tlv的格式的图。

图11是根据一些实施例的使用is-is来配置pe网络设备之间的pw的过程的流程图。

图12是根据一些实施例的使用is-is来配置pe网络设备之间的pw的过程的流程图。

图13a示出了根据一些实施例的示例网络内的网络设备(nd)之间的连接性以及nd的三种示例实现。

图13b示出了根据一些实施例的用于实现专用网络设备的示例方式。

图13c示出了根据一些实施例的可以耦接虚拟网元(vne)的各种示例方式。

图13d示出了根据一些实施例的在每个nd上具有单个网元(ne)的网络,且在该直观方案中,对比了(传统路由器常用的)传统分布式方案与用于保持可达性和转发信息(也被称为网络控制)的集中式方案。

图13e示出了根据一些实施例的以下简单情况:每个nd实现单个ne,而集中式控制平面将不同nd中的多个ne抽象为(表示)虚拟网络之一中的单个ne。

图13f示出了根据一些实施例的以下情况:在不同nd上实现多个vne并且多个vne彼此耦接,以及集中式控制平面将上述多个vne加以抽象,使得他们表现为虚拟网络之一中的单个vne。

图14示出了根据一些实施例的具有集中式控制平面(ccp)软件的通用控制平面设备。

具体实施方式

以下说明内容描述了使用中间系统到中间系统(is-is)协议的伪线(pw)信令的方法和装置。在以下描述中,阐述了大量的具体细节,例如逻辑实现、操作码(opcode)、用于指定运算数的手段、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/整合选择,以提供对本发明的更全面的理解。然而,本领域技术人员将意识到,本发明可以在没有这些具体细节的情况下实施。在其它实例中,并未详细示出控制结构、门级别电路和全软件指令序列,以不使本发明模糊。在使用所包括的描述的情况下,本领域普通技术人员将能够在不进行过度试验的情况下实现恰当的功能。

说明书中对“一个实施例”、“实施例”、“示例实施例”的引用指示了所描述的实施例可以包括特定特征、结构、或特性,但是每个实施例可以不必包括该特定特征、结构、或特性。此外,这种短语不必参考同一实施例。此外,当结合实施例来描述具体特征、结构或特性时,应认为结合其他实施例(不管是否是显式描述的)来实现这种特征、结构或特性是在本领域技术人员的知识内的。

在本文中,括号中的文本和具有虚线边界(例如,长划点虚线、短划线虚线、点虚线、以及点)的框可以用于示出向本发明实施例添加附加特征的可选操作。然而,这种标注不应当被视为意味着:在本发明的某些实施例中,他们是仅有的选项或可选操作,和/或具有实线边界的框不是可选的。

在以下描述和权利要求中,可以使用术语“耦接”和“连接”以及它们的派生词。应当理解:这些术语不意在作为彼此的同义词。“耦接”用于指示两个或更多个元素可以或可以不彼此直接物理或电学接触、彼此协作或交互。“连接”用于指示在彼此耦接的两个或更多个元素之间建立通信。

电子设备使用机器可读介质(也被称为计算机可读介质)来(内部和/或通过网络使用其他电子设备)存储和传输代码(其由软件指令构成,且有时被称为计算机程序代码或计算机程序)和/或数据,机器可读介质是例如机器可读存储介质(例如,磁盘、光盘、只读存储器(rom)、闪存设备、相变存储器)和机器可读传输介质(也被称为载体)(例如,电、光、无线电、声或其他形式的传播信号-例如载波、红外信号)。从而,电子设备(例如,计算机)包括硬件和软件,例如一个或多个处理器的集合,其耦接到用于存储在该处理器集合上执行的代码和/或用于存储数据的一个或多个及其可读存储介质。例如,电子设备可以包括包含代码在内的非易失性存储器,因为即使在电子设备关闭(当掉电时)时非易失性存储器也可以保持代码/数据,以及在打开电子设备时,通常将要由该电子设备的处理器执行的该部分代码从较慢的非易失性存储器中拷贝到该电子设备的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))中。通常的电子设备还包括用于与其他电子设备建立网络连接(以使用传播信号来发送和/或接收代码和/或数据)的一个或多个物理网络接口的集合。本发明实施例的一个或多个部分可以使用软件、固件、和/或硬件的不同组合来实现。

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

通过引入分段路由,is-is可以用于分发针对虚拟专用网(vpn)部署的传输标签。这是通过在区域/域内引入分段标识符(sid)来实现的,这些分段标识符是联网区域/域中的唯一索引,其功能类似于多协议标签交换(mpls)标签。但是,即使引入了分段路由,第2层虚拟专用网(l2vpn)部署仍然需要两个单独的协议来支持pw功能。例如,l2vpn部署仍然需要is-is来分发传输标签(以及网络可达性信息),并且需要目标标签分发协议(tldp)或边界网关协议(bgp)来交换pw标签。

本文描述的实施例提供了用于使is-is能够提供pw信令以配置和保持pw的框架。pw信令包括pw标签的交换。因此,该框架消除了对用于交换pw标签的单独协议(例如,tldp或bgp)的需要。因此,能够进行分段路由的is-is可以用于在l2vpn部署中分发可达性信息、分发传输标签、以及交换pw标签。本文描述的实施例的优点是pw信令被大大简化,因为仅需要单个协议(例如,is-is)。还描述并请求保护其它实施例。

-图1是示出根据一些实施例的可以使用is-is用于pw信令的系统的图。该系统包括客户边缘(ce)网络设备110a、110b和提供商边缘(pe)网络设备100a、100b。ce网络设备110是一种边缘网络设备,其通常位于客户处。pe网络设备100是一种边缘网络设备,其通常位于提供商网络(例如,分组交换网(psn)130)的边缘处。pe网络设备100通过psn130通信耦接。在一个实施例中,psn130可以是采用is-is的因特网协议(ip)/mpls网络。

ce网络设备110a经由附接电路(ac)120a通信耦接到pe网络设备100a。ce网络设备110b经由ac120b通信耦接到提供商边缘(pe)网络设备100b。ac120是将ce网络设备110附接到pe网络设备100的物理或虚拟电路。ac120可以提供允许ce网络设备110在发送(tx)和接收(rx)两个方向上与pe网络设备100通信的连接。pe网络设备100a向ce网络设备110a提供到psn130的连接。pe网络设备100b向ce网络设备110b提供到psn130的连接。pe网络设备100a和pe网络设备100b均可以在psn130中执行is-is以学习和/或分发网络可达性信息。在一个实施例中,psn130采用分段路由以在psn130中转发分组。在这样的实施例中,pe网络设备100a和pe网络设备100b可以执行is-is以学习和/或分发在psn130中转发分组所需的传输标签(例如,sid)。然而,应该理解,本文描述的实施例可以在不采用用于在psn130中转发分组的分段路由的系统中实现。在图中示出并在此描述的系统是作为示例而非限制提供的。为了简单和清楚起见,在图中示出了包括两个ce网络设备110a、110b和两个pe网络设备100a、100b的简单系统。然而,应该理解,该系统可以包括更多的ce网络设备110和pe网络设备100。应当理解,本文描述的使用is-is执行pw信令的技术可以在具有与图中所示不同的配置的系统中实现。

在一个实施例中,系统可以使用pw在psn130上仿真在ce网络设备110a和ce网络设备110b之间的本地服务。可以使用pw在psn130上仿真的本地服务的示例包括但不限于:帧中继、异步传输模式(atm)、以太网、时分复用(tdm)、以及同步光纤网/同步数字体系(sonet/sdh)。pw对连接ce的线路的事务进行仿真。在一个实施例中,系统采用伪线仿真边缘到边缘(pwe3)架构的各方面,以使用pw在psn130上仿真本地服务。

例如,假设ce网络设备110a希望通过中间psn130将本地服务协议数据单元(pdu)传输到ce网络设备110b。ce网络设备110a首先经由ac120a将本地服务pdu发送到pe网络设备100a。pe网络设备100a将pw标签添加到将携带本地服务pdu的分组。pw标签使接收机能够识别分组到达的特定pw。pe网络设备100a还可以向分组添加传输标签,其用于通过psn130中的psn隧道135转发分组。pw标签有时被称为内部标签,而传输标签有时被称为外部标签。然后,pe网络设备100a通过psn130中的psn隧道135将分组发送到pe网络设备100b。在分组到达pe网络设备100b之前,pw标签不再可见。当pe网络设备100b接收到分组时,它可以基于检查pw标签来确定分组到达的特定pw。pe网络设备100b可以预先在其本地转发信息库(lfib)中配置将pw标签绑定到ac120b的条目,其中ac120b提供到ce网络设备110b的连接。因此,pe网络设备100b可以从分组中提取本地服务pdu(例如,通过解封装),并且经由ac120b将其转发到ce网络设备110b。因此,在pe网络设备100a和pe网络设备100b之间形成的pw允许在psn130上仿真ce网络设备110a和ce网络设备110b之间的本地服务。

pe网络设备100a和pe网络设备100b可以通过向彼此发信号通知关于pw的信息来建立和保持pw。本文中,该信令可以被称为pw信令。pw信令可以包括例如pw标签的交换、pw的状态以及pw的其他属性。通常,pe网络设备100使用诸如tldp或bgp的协议来执行pw信令。除了is-is(其常用于交换可达性信息,并且在一些情况下,用于例如在分段路由的情况下分发传输标签)(或其他类型的igp)之外,通常还使用这些协议。因此,常规的l2vpn部署仍然需要两个单独的协议(例如,is-is和tldp/bgp)来支持pw功能。但是,保持两个单独的协议以支持pw可能会在操作上变得很复杂,难以进行配置、保持和故障排除。

本文描述的实施例通过扩展is-is以支持pe网络设备100之间的pw信令来克服传统技术的缺陷。这消除了使用诸如tldp或bgp的单独协议来执行pw信令的需要。

在一个实施例中,扩展is-is以支持pe网络设备100之间(例如,pe网络设备100a和pe网络设备100b之间)的pw信令。pw信令可以用信号通知建立pw所需的信息、关于pw状态的信息、撤销pw所需的信息、以及与pw的配置和保持相关的其他信息。为此,引入了一种新型的类型长度值(tlv)和子tlv,以在is-is链路状态协议数据单元(lsp)更新中携带与pw相关的信息。

在一个实施例中,引入了一种新型的tlv,本文中被称为pw关联tlv。pw关联tlv包括关于一对端点(例如,pe网络设备100)之间的一个或多个pw的信息。在一个实施例中,pw关联tlv可以包括一个或多个pw子tlv,其中每个pw子tlv包括关于特定pw的信息。包括关于特定pw的信息的pw子tlv被称为通告该特定pw。在一个实施例中,pw关联tlv包括与pw关联tlv中的pw子tlv所通告的pw有关的端点的指示。例如,pw关联tlv可以包括本地端点的指示和远程端点的指示,其中本地端点是生成/发起pw关联tlv的端点,并且远程端点是作为pw关联tlv的预期接收方的端点。在一个实施例中,pw关联tlv使用端点的因特网协议(ip)地址来指示各个端点。在一个实施例中,各个端点的环回ip地址(对于ip版本4(ipv4)和ip版本6(ipv6))用于在pw关联tlv中指示端点。将特定pe网络设备100指示为远程端点的pw关联tlv被称为以该特定pe网络设备100为目标,并且该特定pe网络设备100被称为pw关联tlv的目标。

由于pw关联tlv作为lsp更新的一部分包含在lsp更新中,因此它在整个is-is区域中被泛洪。基于本地泄漏策略,pw关联tlv也可能在其他is-is区域中被泛洪。在一个实施例中,仅pw关联tlv的目标才处理pw关联tlv。看到pw关联tlv的任何其他网络设备(例如,pe网络设备100或转接路由器)可以有效地忽略该pw关联tlv的内容。

在一个实施例中,具有使用is-is支持pw信令的能力的pe网络设备100使用is-is路由器能力tlv向其他pe网络设备100指示该能力。在一个实施例中,引入一种新型的子tlv,在本文中被称为pw能力子tlv,以在is-is路由器能力tlv中通告pw信令能力。在一个实施例中,如果远程pe网络设备100已经用pw能力子tlv中的匹配pw能力参数子tlv通告其能够使用is-is来支持pw信令,则pe网络设备100仅生成以该远程pe网络设备100为目标的pw关联tlv。

如上所述,pw关联tlv可以包括一个或多个pw子tlv,其中每个pw子tlv包括关于在pw关联tlv中指示的端点之间的特定pw的信息。通告pw的pw子tlv可以包括关于pw的pw标识符(id)、pw的pw类型、与pw关联的pw标签的信息,以及与pw相关的其他信息。pwid是标识pw的值。pw的pw类型指示使用pw来仿真的本地服务的类型(例如,帧中继、atm、以太网、tdm、sonet/sdh等)。与pw关联的pw标签是远程端点需要添加到通过pw传输的分组的标签(作为内部标签),以便本地端点可以向适当的ac120转发分组的内容(例如,本地服务pdu)。在一个实施例中,pw子tlv还可以包括与pw的pw状态有关的信息。pw的pw状态可以指示关于pw的操作信息,例如转发能力、控制字设置中的不匹配、以及mtu中的不匹配。在一个实施例中,通告pw的pw子tlv包括pw的s比特。pw的s比特用于指示本地端点已准备好通过pw从远程端点接收业务。

当第一pe网络设备100(例如,pe网络设备100a)从第二pe网络设备100(例如,pe网络设备100b)接收到以自身为目标的pw关联tlv时(例如,在pw关联tlv中,第二pe网络设备100被指示为本地端点,并且第一pe网络设备100被指示为远程端点),第一pe检查pw关联tlv中包括的pw子tlv。对于pw关联tlv中包括的每个pw子tlv,第一pe网络设备100确定其是否支持该pw子tlv所通告的pw以及其是否先前已将该pw通告给第二pe网络设备100。在一个实施例中,第一pe网络设备100基于pw的pwid和pw类型(在通告pw的pw子tlv中指示)确定其是否支持pw。例如,第一pe网络设备100可能已经被预配置为支持特定pw(其对应于特定ac120)。该pw可以由pwid和pw类型的组合来标识。第一pe网络设备100可以基于确定所通告的pw的pwid和pw类型与其支持的pw的pwid和pw类型相匹配来确定其支持所通告的pw。如果第一pe网络设备100支持pw并且先前已将该pw通告给第二pe网络设备100,则第一pe网络设备100将pw重新通告给第二pe网络设备100,但这次使用针对该pw设置的s比特(例如,在针对该pw的pw子tlv中)。针对该pw的s比特的设置向第二pe网络设备100指示第一pe网络设备100准备好通过该pw从第二pe网络设备100接收业务。第一pe网络设备100可以用与pw关联的本地pw标签(例如,在向第二pe网络设备100通告pw的pw子tlv中指示的pw标签)来配置其lfib,使得第一pe网络设备100将封装有本地pw标签的业务转发到与pw关联的ac120。

如果第一pe网络设备100从第二pe网络设备100接收到以其自身为目标的pw关联tlv,该pw关联tlv包括通告pw的pw子tlv,其中针对该pw的s比特被设置,则这表示第二pe网络设备100准备好通过该pw从第一pe网络设备100接收业务。在看出针对该pw的s比特被设置之后,第一pe网络设备100可以安装转发路径,该转发路径向第二pe网络设备100转发来自与该pw关联的ac120的业务,其中,该转发路径将与该pw关联的远程pw标签(例如,从通告该pw的第二pe网络设备100接收的pw子tlv中指示的pw标签)与从ac120接收的业务封装在一起。

一些pw可以使用控制字。控制字是在psn130使用mpls时在一些封装中用于携带每个分组信息的报头。在一个实施例中,pe网络设备100可以向远程pe网络设备100发信号通知是否在针对特定pw的pw子tlv中针对该特定pw启用控制字。例如,可以在针对该pw的pw子tlv中指定用于指示是否针对该pw启用控制字的比特(例如,作为pw状态的一部分)。

在一个实施例中,pe网络设备100可以通过在lsp更新中包括pw被撤销的指示来发信号通知pw的撤销。在一个实施例中,pw被撤销的指示是在lsp更新中省略通告pw的pw子tlv。在另一个实施例中,pw被撤销的指示是lsp更新中的pw被撤销的显式指示。例如,可以在通告pw的pw子tlv做出该显式指示(例如,作为pw状态的一部分)。在又一个实施例中,pw被撤销的指示是lsp更新中指出pe网络设备100不支持使用is-is的pw信令的指示。例如,这可以在pw能力子tlv中指示(或省略)。这隐式地指示了由生成/发起lsp更新的pe网络设备100通告的所有pw被撤销。在又一个实施例中,pw被撤销的指示是省略了包括通告pw的pw子tlv在内的pw关联tlv。这隐式地指示了由该pw关联tlv中的pw子tlv通告的所有pw被撤销。

图2是示出根据一些实施例的第一pe网络设备和第二pe网络设备在使用is-is的pw信令期间的不同状态的表。表中的每一行表示第一pe网络设备100(例如,pe网络设备100a)和第二pe网络设备100(例如,pe网络设备100b)在pw信令期间的状态。第一行表示第一状态,第二行表示第二状态,第三行表示第三状态,第四行表示第四状态。第一列表示第一pe网络设备100的s比特的状态,第二列表示第二pe网络设备100的s比特的状态,第三列表示第一pe网络设备100处的业务转发状态,第四列表示第二pe网络设备100处的业务转发状态。在第一状态中,第一pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。然而,第一pe网络设备100尚未从第二pe网络设备100接收到通告pw的匹配的pw子tlv。在这种状态下,第二pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。然而,第二pe网络设备100尚未从第一pe网络设备100接收到通告pw的匹配的pw子tlv。在这种状态下,第一pe网络设备100不能通过pw接收或发送业务,因为它没有从第二pe网络设备100接收到通告pw的匹配的pw子tlv(因此s比特被设置为0)。由于类似的原因,第二pe网络设备100也不能通过pw接收或发送业务(因此s比特被设置为0)。

在第二状态中,第一pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。此外,第一pe网络设备100已经从s比特被设置为0的第二pe网络设备100接收到通告pw的匹配的pw子tlv。第二pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。然而,第二pe网络设备100尚未从第一pe网络设备100接收到通告pw的匹配的pw子tlv。在这种状态下,第一pe网络设备100可以通过pw接收业务,因为它已经从第二pe网络设备100接收到通告pw的匹配的pw子tlv(因此,s比特被设置为1,并且本地转发信息库配置了本地pw标签)。但是,第一pe网络设备100不能通过pw发送业务,因为它没有从s比特被设置为1的第二pe网络设备100接收到通告pw的匹配的pw子tlv。第二pe网络设备100不能通过pw接收或发送业务,因为它没有从第一pe网络设备100接收到通告pw的匹配的pw子tlv(因此s比特被设置为0)。

在第三状态中,第一pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。然而,第一pe网络设备100尚未从第二pe网络设备100接收到通告pw的匹配的pw子tlv。第二pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。此外,第二pe网络设备100已经从s比特被设置为0的第一pe网络设备100接收到通告pw的匹配的pw子tlv。在这种状态下,第一pe网络设备100不能通过pw接收或发送业务,因为它没有从第二pe网络设备100接收到通告pw的匹配的pw子tlv(因此s比特被设置为0)。第二pe网络设备100可以通过pw接收业务,因为它已经从第一pe网络设备100接收到通告pw的匹配的pw子tlv(因此,s比特被设置为1,并且本地转发信息库配置了本地pw标签)。但是,第二pe网络设备100不能通过pw发送业务,因为它没有从s比特被设置为1的第一pe网络设备100接收到通告pw的匹配的pw子tlv。

在第四状态中,第一pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。此外,第一pe网络设备100已经从s比特被设置为1的第二pe网络设备100接收到通告pw的匹配的pw子tlv。这向第一pe网络设备100指示第二pe网络设备100已成功接收到第一pe网络设备100的pw子tlv,并准备好通过pw从第一pe网络设备100接收业务。第二pe网络设备100具有可用的pw,并且已经利用通告pw的pw子tlv对lsp更新进行了泛洪。此外,第二pe网络设备100已经从s比特被设置为1的第一pe网络设备100接收到通告pw的匹配的pw子tlv。这向第二pe网络设备100指示第一pe网络设备100已成功接收到第二pe网络设备100的pw子tlv,并准备好通过pw从第二pe网络设备100接收业务。在这种状态下,第一pe网络设备100可以通过pw接收业务,因为它已经从第二pe网络设备100接收到通告pw的匹配的pw子tlv(因此,s比特被设置为1,并且本地转发信息库配置了本地pw标签(对第一pe网络设备100来说是本地的))。此外,第一pe网络设备100可以通过pw向第二pe网络设备100发送业务,因为它已经从s比特被设置为1的第二pe接收到通告pw的匹配的pw子tlv(因此,转发路径安装在具有远程pw标签的第一pe网络设备100处)。出于类似的原因,第二pe网络设备100可以通过pw接收和发送业务到第一pe网络设备100(因此,s比特被设置为1,并且本地转发信息库配置有本地pw标签(对第二pe网络设备100来说是本地的))。

图3是示出根据一些实施例的pw能力子tlv的格式的图。pe网络设备100可以在is-is路由器能力tlv(例如,tlv242)中包括pw能力子tlv,以通告它具有-支持使用is-is的pw信令的能力。在一个实施例中,如果远程pe网络设备100通告相应的pw信令能力,则pe网络设备100仅将pw(和pw相关信息)通告给远程pe网络设备100(例如,在pw关联tlv中)。

pw能力子tlv包括类型、长度和能力参数子tlv的字段。类型字段用于指示这是pw能力子tlv。长度字段用于指示该子tlv(例如,pw能力参数子tlv字段)的值部分的总长度。能力参数子tlv字段用于指示支持的能力。在一个实施例中,每个支持的能力可以在能力参数子tlv字段中被指示为能力参数子tlv。每个能力参数子tlv可以包括类型、长度和值的字段,其中类型字段用于指示这是能力参数子tlv,长度字段用于指示该子tlv的值部分的总长度,并且值字段用于指定特定能力。例如,类型字段的值为1的能力参数子tlv可以指示支持基础(非广义)pw信令,并且类型字段的值为2的能力参数子tlv可以指示支持广义pw信令。然而,应该理解,这些值是作为示例而非限制性地提供的。不同的实施例可以使用不同的值来指示不同类型的能力(例如,这些值可以是因特网号码分配机构(iana)注册表分配的责任)。

在一个实施例中,pe网络设备100可以在初始pw能力子tlv之后生成/发起附加的pw能力子tlv。缺少特定能力指示不支持该特定能力或该特定能力被撤销。

图4是示出根据一些实施例的ipv4pw关联tlv的格式的图。pe网络设备100可以在lsp更新中包括ipv4pw关联tlv,以在特定端点对之间通告一个或多个pw。ipv4pw关联tlv包括类型、长度、多拓扑标识符(mtid)、标志(包括r标志)、保留、ipv4源ip地址、ipv4目的地ip地址、目的地系统id和子tlv的字段。类型字段用于指示这是ipv4pw关联tlv。长度字段用于指示该tlv的值部分(例如,长度字段之后的字段)的总长度。标志字段用于指示各种标志。标志字段可以包括重新通告标志(r标志)。在一个实施例中,当该tlv已从一个is-is级泄漏到另一个is-is级(向上或向下)时,r标志被设置。在一个实施例中,如果r标志被设置,则该tlv不得进一步泄漏。mtid字段用于指示mtid。mtid字段可以具有如图5所示的格式,这将在下面进一步详细描述。保留字段用于保留比特。ipv4源ip地址字段用于指示本地端点的ipv4地址。ipv4目的地ip地址字段用于指示远程端点的ipv4地址。目的地系统id字段用于指示is-is系统id。子tlv字段用于指示任何子tlv(例如,pw子tlv)。在一个实施例中,每个子tlv被编码为用于子tlv类型的1个八位位组、用于子tlv的值部分的长度的1个八位位组、以及用于值的0-243个八位位组的序列。

在一个实施例中,在包括在lsp更新中时,ipv4pw关联tlv必须包括至少一个子tlv,否则该ipv4pw关联tlv被忽略。在一个实施例中,ipv4pw关联tlv可以在lsp更新中出现任意次数。

图5是示出根据一些实施例的mtid字段的格式的图。mtid字段包括保留子字段和mtid子字段。保留子字段用于保留比特。mtid子字段用于指示正被通告的拓扑的mtid。

图6是示出根据一些实施例的ipv6pw关联tlv的格式的图。pe网络设备100可以在lsp更新中包括ipv6pw关联tlv,以在特定端点对之间通告一个或多个pw。ipv6pw关联tlv包括类型、长度、mtid、标志(包括r标志)、保留、ipv6源ip地址、ipv6目的地ip地址、目的地系统id和子tlv的字段。类型字段用于指示这是ipv6pw关联tlv。长度字段用于指示该tlv的值部分(例如,长度字段之后的字段)的总长度。标志字段用于指示各种标志。标志字段可以包括重新通告标志(r标志)。在一个实施例中,当该tlv已从一个id-is级泄漏到另一个is-is级(向上或向下)时,r标志被设置。在一个实施例中,如果r标志被设置,则该tlv不得进一步泄漏。mtid字段用于指示mitid。mtid字段可以具有如图5所示的格式。保留字段用于保留比特。ipv6源ip地址字段用于指示本地端点的ipv6地址。ipv6目的地ip地址字段用于指示远程端点的ipv6地址。目的地系统id字段用于指示is-is系统id。子tlv字段用于指示任何子tlv(例如,pw子tlv)。在一个实施例中,每个子tlv被编码为用于子tlv类型的1个八位位组、用于子tlv的值部分的长度的1个八位位组、以及用于值的0-243个八位位组的序列。

在一个实施例中,在包括在lsp更新中时,ipv6pw关联tlv必须包括至少一个子tlv,否则该ipv6pw关联tlv会被忽略。在一个实施例中,ipv6pw关联tlv可以在lsp更新中出现任意次数。

在一个实施例中,pw关联tlv(例如,ipv4pw关联tlv和ipv6pw关联tlv)用于分发pw标签绑定。生成/发起pw关联tlv的pe网络设备100可以将自身可达的环回ip地址放入源ip地址字段(ipv4/ipv6源ip地址)中,并将远程pe网络设备的环回ip地址放入目的地ip地址字段(例如,ipv4/ipv6目的地ip地址)中。

在一个实施例中,如果远程pe网络设备尚未通告支持使用is-is的pw信令的能力(例如,在is-is路由能力tlv中),则pe网络设备100不生成以远程pe网络设备100为目标的pw关联tlv。在一个实施例中,当pe网络设备100尚未向远程pe网络设备100通告支持使用is-is的pw信令的能力时,pe网络设备100不处理从远程pe网络设备100接收的任何pw关联tlv。

在一个实施例中,如果远程pe网络设备100可达,并且pe网络设备100已通告网络中自己的ip地址,则pe网络设备100仅生成以远程pe网络设备100为目标的pw关联tlv。在一个实施例中,如果pe网络设备100确定在pw关联tlv中指示的源ip地址或目的地ip地址不可达,则pe网络设备从其链路状态数据库撤销该pw关联tlv。

具有相同端点(例如,相同的源ip地址和目的地ip地址)的pw关联tlv的多个实例可以一起出现在同一lsp更新中,只要每个pw关联tlv具有不同的子tlv信息即可。而且,给定的pw关联tlv可以包括多个子tlv(例如,pw子tlv)。

根据本地泄漏策略,pw关联tlv也可能在其他is-is区域中被泛洪。在一个实施例中,当pw关联tlv在另一is-is区域中被泛洪时,设置pw关联tlv中的r标志。对于pw关联tlv中的源ip地址或目的地ip地址的可达性,最长前缀匹配可能就足够了。

图7是示出根据一些实施例的pw子tlv的格式的图。pe网络设备100可以在pw关联tlv中包括pw子tlv,以通告特定pw。pw子tlv包括类型、长度、标志(包括s比特)、控制字位(c比特)、pw类型、pw状态(包括e比特)、pwid、标签tlv以及pw接口参数子tlv字段。类型字段用于指示这是pw子tlv。长度字段用于指示该tlv的值部分(例如,长度字段之后的字段)的总长度。标志字段用于指示各种标志。标志字段可以包括双向pw所见比特(s比特),其含义和用法已经在上面描述并且在下文中参考图11和图12进一步描述。pw类型字段用于指示pw的pw类型(例如,使用pw来仿真的本地服务的类型)。c比特用于指示pw的控制字的存在。在一个实施例中,如果pw使用/优选控制字,则c比特设置为1,如果pw不使用或不优选控制字,则c比特设置为0。pw状态字段用于指示pw的各种状态。pw状态字段中的每个比特都可以指示特定状态。例如,可以指示的状态包括但不限于:pw转发(清除所有故障)、pw不转发、本地ac(入口)接收故障、本地ac(出口)发送故障、本地面向psn的pw(入口)接收故障、本地面向psn的pw(出口)发送故障、非法c比特、错误c比特、不兼容的比特率、分组时分复用电路仿真(cep-tdm)配置错误、未分配/未识别的目标附接标识符(tai)、以及一般错误配置错误。在一个实施例中,pw状态字段可以包括e比特。e比特用于通过设置至少一个比特来指示存在扩展状态子tlv(在下文中参考图9进一步描述)。pw状态字段中的每个比特可以被独立地设置,以一次指示多于单个故障。可以通过清除表示pw状态字段中的故障的相应比特来清除每个故障。pwid字段用于指示pw的id。在一个实施例中,pwid字段中的值与pw类型字段中的值的组合可以用于唯一地标识特定pw。标签tlv字段用于指示与pw关联的pw标签。pw接口参数sub-tlv字段用于指示pw接口特定的参数,例如acmtu。

应注意,在一些实施例中,在建立pw之后不应当改变接口参数。在这样的实施例中,pw接口参数子tlv字段不应当用于传递可能在pw的生命期间改变的信息(例如,状态信息)。

在一个实施例中,仅当与pw关联的ac有效时,pe网络设备100生成/发起通告pw的pw子tlv。在一个实施例中,转接路由器(例如,除pw关联tlv中指示的端点之外的网络设备)不应处理pw子tlv。

图8是示出根据一些实施例的pw组id子tlv的格式的图。pe网络设备100可以在pw子tlv中包括pw组id子tlv,以创建pw组。pw组id子tlv包括类型、长度和组id的字段。类型字段用于指示这是pw组id子tlv。长度字段用于指示该子tlv的值部分(例如,组id字段)的总长度。组id字段用于指示pw组的组id。在一个实施例中,组id字段中的值旨在用作端口索引或虚拟隧道索引。为了简化配置,入口处的特定pwid可以是虚拟隧道的一部分,用于传输到出口路由器。

图9是示出根据一些实施例的pw扩展状态子tlv的格式的图。pe网络设备100可以在pw子tlv中包括pw扩展状态子tlv,以指示pw的扩展状态。pw扩展状态子tlv可以用于指示比pw子tlv中的pw状态字段更多的状态信息。pw扩展状态子tlv包括类型、长度和状态码的字段。类型字段用于指示这是pw扩展状态子tlv。长度字段用于指示该tlv的值部分(例如,状态码字段)的总长度。状态码字段用于指示pw的各种状态。状态码字段中的每个比特都可以被独立地设置,以一次指示多个故障。可以通过清除表示状态码中的故障的相应比特来清除每个故障。

在一个实施例中,如果pw子tlv设置了e比特并且需要设置状态码字段中的至少一个比特(以指示特定状态),则pw扩展状态子tlv仅包括在pw子tlv中。在一个实施例中,当需要清除状态码字段中的所有比特时,pw扩展状态子tlv不包括在pw子tlv中,并且清除pw子tlv中的e比特。

图10是示出根据一些实施例的pw接口参数子tlv的格式的图。pe网络设备100可以在pw子tlv中包括pw接口参数子tlv以指示接口特定参数。pw接口参数子tlv可用于验证pe网络设备100和ac120边缘处的入口/出口端口具有彼此互操作的必要能力。pw接口参数子tlv包括类型、长度以及一个或多个接口参数的字段。类型字段用于指示这是pw接口参数子tlv。长度字段用于指示该tlv的值部分(例如,长度字段之后的字段)的总长度。包括在该子tlv中的每个接口参数字段用于指示特定接口参数。每个接口参数字段可以包括接口参数类型、参数长度和可变长度值的字段,其中,接口参数类型字段用于指示接口参数的类型,参数长度字段用于指示接口参数字段的长度,并且可变长度值字段用于指示接口参数的值。在一个实施例中,由iana分配的接口参数类型值可以用在接口参数类型字段中,以指示特定的接口参数类型。可以在接口参数字段中指定的接口参数类型的示例是mtu。mtu是将要发送从psn接收的解封装pdu的出口分组接口的最大传输单位,不含封装开销。在一个实施例中,该参数仅适用于传输分组的pw,并且可能是这些类型的pw所要求的。在一个实施例中,如果该参数在特定pw的两个方向上不匹配,则不能启用该特定pw。可以在接口参数字段中指定的接口参数类型的另一示例是可选的接口描述字符串。可选的接口描述字符串用于传输人类可读的管理字符串,该字符串描述到远程端点的接口。在一个实施例中,使用utf-8字符集提供人类可读的管理字符串。

应当理解,图中所示和本文所述的tlv/子tlv的格式是作为示例提供的,并不意图进行限制。应当理解,其他实施例可以使用tlv和子tlv的不同格式。此外,应当理解,其他实施例可以包括更多的字段或信息,和/或从图中所示和本文所述的tlv/子tlv中省略某些字段或信息。

图11是根据一些实施例的使用is-is来配置pe网络设备之间的pw的过程的流程图。在一个实施例中,流程图的操作由网络(例如,psn130)中的第一pe网络设备100(例如,路由器)执行。该过程使用is-is来配置网络中的第一pe网络设备100和第二pe网络设备100之间的pw。具体地,该过程将第一pe网络设备100配置为通过pw从第二pe网络设备100接收业务。将参照其他附图的示例实施例来描述该流程图和其他流程图中的操作。然而,应当理解:流程图中的操作可以由本发明中除了参照其他附图描述的那些实施例之外的实施例来执行,且本发明的参照这些其他附图讨论的实施例可以执行与参照流程图来讨论的那些实施例不同的操作。

在一个实施例中,当第一pe网络设备100接收到第二pe网络设备经由is-is在网络中泛洪的第一lsp更新时,启动该过程(框1110)。第一lsp更新包括以第一pe网络设备100为目标的pw关联tlv。pw关联tlv包括通告pw的pw子tlv。在一个实施例中,pw子tlv包括与pw关联的远程pw标签的指示。在一个实施例中,pw子tlv包括pw的pwid的指示和pw的pw类型的指示。在一个实施例中,pw子tlv包括pw的pw状态的指示。在一个实施例中,pw子tlv包括pw组id子tlv、pw接口参数子tlv和/或pw扩展状态子tlv。

第一pe网络设备100确定其是否支持pw以及其是否先前已经向第二pe网络设备100通告pw(判决框1120)。在一个实施例中,第一pe网络设备100基于在pw子tlv中指示的pw的pwid和pw的pw类型来确定其是否支持pw。例如,第一pe网络设备100可能已经被预配置为支持特定pw(其对应于特定ac120)。该pw可以由pwid和pw类型的组合来标识。第一pe网络设备100可以基于确定所通告的pw的pwid和pw类型与其支持的pw的pwid和pw类型相匹配来确定其支持所通告的pw。

如果第一pe网络设备100确定其不支持pw或者先前没有向第二pe网络设备100通告pw,则由第一pe网络设备100通过is-is在网络中泛洪的任何lsp更新都不包括指示第一pe网络设备100准备好通过pw从第二pe网络设备100接收业务的指示(框1130)。

另一方面,如果第一pe网络设备100确定其支持pw并且其先前已经向第二pe网络设备100通告pw,则第一pe网络设备100配置其lfib具有与pw关联的本地pw标签,使得第一pe网络设备100向与pw关联的ac120(例如,将第一pe网络设备100通信耦接到ce网络设备110的ac120)转发封装有本地pw标签的业务(框1140)。然后,第一pe网络设备100通过is-is在网络中泛洪第二lsp更新(框1150)。第二lsp更新包括第一pe网络设备100准备好通过pw从第二pe网络设备100接收业务的指示。在一个实施例中,第二lsp更新中的单个比特(例如,s比特)可以用于指示第一pe网络设备100是否准备好通过pw从第二pe网络设备100接收业务。例如,如果s比特被设置(比特具有值1),则这可以指示第一pe网络设备100准备好通过pw从第二pe网络设备100接收业务。另一方面,如果s比特未被设置(比特具有值0),则这可以指示第一pe网络设备100没有准备好通过pw从第二pe网络设备100接收业务。第二lsp更新可以包括本地pw标签的指示,使得第二pe网络设备100可以将本地pw标签添加到要通过pw发送的业务中。然后,第一pe网络设备100准备好通过pw从第二pe网络设备100接收业务。

在一个实施例中,第一pe网络设备100可以通过经由is-is在网络中泛洪第三lsp更新来发信号通知pw的撤销,其中第三lsp更新包括pw被撤销的指示。在一个实施例中,pw被撤销的指示是在lsp更新中省略通告pw的pw子tlv。在另一个实施例中,pw被撤销的指示是lsp更新中的pw被撤销的显式指示。例如,可以在通告pw的pw子tlv中做出该显式指示(例如,作为pw状态的一部分)。在又一个实施例中,pw被撤销的指示是lsp更新中的指示pe网络设备100不支持使用is-is的pw信令的指示。例如,这可以在pw能力子tlv中指示(或省略)。这隐式地指示了由生成/发起lsp更新的pe网络设备100通告的所有pw被撤销。在又一个实施例中,pw被撤销的指示是省略了包括通告pw的pw子tlv在内的pw关联tlv。这隐式地指示了由该pw关联tlv中的pw子tlv通告的所有pw被撤销。

图12是根据一些实施例的使用is-is来配置pe网络设备之间的pw的过程的流程图。在一个实施例中,流程图的操作由网络(例如,psn130)中的第一pe网络设备100(例如,路由器)执行。-该过程使用is-is来配置网络中的第一pe网络设备100和第二pe网络设备100之间的pw。具体地,该过程将第一pe网络设备100配置为通过pw向第二pe网络设备100发送业务。

在一个实施例中,当第一pe网络设备100接收到第二pe网络设备经由is-is在网络中泛洪的lsp更新时,启动该过程(框1210)。lsp更新包括以第一pe网络设备100为目标的pw关联tlv。pw关联tlv包括通告pw的pw子tlv。pw子tlv包括与pw关联的远程pw标签的指示以及第二pe网络设备100是否准备好通过pw从第一pe网络设备100接收业务的指示。在一个实施例中,lsp更新中的单个比特(例如,s比特)可以用于指示第二pe网络设备100是否准备好通过pw从第一pe网络设备100接收业务。例如,如果s比特被设置(比特具有值1),则这可以指示第二pe网络设备100准备好通过pw从第一pe网络设备100接收业务。另一方面,如果s比特未被设置(比特具有值0),则这可以指示第二pe网络设备100没有准备好通过pw从第一pe网络设备100接收业务。

第一pe网络设备100确定第二pe网络设备100是否准备好通过pw从第一pe网络设备100接收业务(判决块1220)。第一pe网络设备可以基于所接收的lsp更新中包括的指示(例如,s比特)进行确定。如果第二pe网络设备100没有准备好通过pw从第一pe网络设备100接收业务(例如,未设置s比特),则第一pe网络设备100不通过pw向第二pe网络设备100发送业务(框1230)。

另一方面,如果第二pe网络设备100准备好通过pw从第一pe网络设备100接收业务(例如,设置s比特),则第一pe网络设备100安装转发路径,该转发路径向第二pe网络设备100转发从与pw关联的ac120(例如,将ce网络设备110通信耦接到第一pe网络设备100的ac120)接收的业务,该转发路径将从与pw关联的ac120接收的业务与远程pw标签封装在一起(框1240)。然后,第一pe网络设备100准备好通过pw向第二pe网络设备100发送业务。

对于某些类型的pw,强制使用控制字。在一个实施例中,通告这种类型的pw的pw子tlv必须将pw子tlv中的c比特设置为1。在一个实施例中,当接收到这种类型pw的pw子tlv,并且pw子tlv中的c比特被设置为0时,发送具有“非法c比特”状态码的状态子tlv,并且不启用该pw。

对于某些类型的pw,不强制使用控制字。在一个实施例中,如果pe网络设备100能够发送和接收关于这种类型的pw的控制字,则pw的两个端点配置有指示是否优选使用控制字的参数。在一个实施例中,pw的两个端点保持每个pw的默认优选(使用控制字是否是优选的)。如果pe网络设备100不能发送或接收控制字不是强制性的pw的控制字,则其表现就好像其被配置为使用控制字不是优选的。

在一个实施例中,如果已经接收到通告pw的pw子tlv,但是尚未发送通告pw的pw子tlv,则控制字处理过程如下:

i.如果接收到的pw子tlv的c比特设置为0,则发送c比特设置为0的pw子tlv。在这种情况下,不使用控制字。

ii如果接收到的pw子tlv的c比特设置为1,并且pw在本地被配置为使得优选使用控制字,则发送c比特设置为1的pw子tlv。在这种情况下,使用控制字。

iii.如果接收到的pw子tlv的c比特设置为1,并且pw在本地被配置为使得不优选使用控制字或者不支持使用控制字,则表现为没有接收到(通告pw的)pw子tlv。

如果尚未接收到通告pw的pw子tlv(或者,如果接收到的pw子tlv的c比特设置为1,并且本地配置表明不优选使用控制字或不支持控制字),则发送pw子tlv,其中,c比特被设置为与用于pw的控制字使用的本地配置偏好相对应(例如,如果对该pw优选使用控制字,则将c比特设置为1,并且如果对该pw不优选使用控制字,则将c比特设置为0)。

在一个实施例中,下一个动作取决于针对该pw接收的下一个pw子tlv。在一个实施例中,有如下可能:

i.如果接收到的pw子tlv指示pw被撤销和“错误c比特”状态码,则将其视为正常的pw撤销,并且不需要响应。

ii如果接收到的pw子tlv中的c比特值与发送的pw子tlv中的c比特值匹配,则若c比特设置为1,使用控制字,若c比特设置为0,不使用控制字。

iii.如果接收到的pw子tlv中的c比特值设置为1,并且发送的pw子tlv中的c比特值设置为0,则忽略接收到的pw子tlv,并继续等待通告pw的下一个pw子tlv。

iv.如果接收到的pw子tlv中的c比特值设置为0,并且发送的pw子tlv中的c比特值设置为1,则发送指示pw被撤销的pw子tlv,并且这指示“错误c位比特”状态码,之后是c比特设置为0的pw子tlv。此时已建立好pw。

如果pw的两个端点优选使用控制字,则上述过程将导致使用控制字。如果pw的任一端点优选不使用控制字或不支持控制字,则上述过程将导致不使用控制字。如果pw的一个端点优选使用控制字,但是另一个端点不优选使用控制字,则不优先使用控制字的端点没有额外的协议要执行,其只要等待c比特设置为0的pw子tlv。上述控制字处理过程或类似过程可以用于执行与ldp中通常使用的控制字处理过程类似的控制字处理过程。

在pe网络设备100考虑控制字中的序号字段的情况下,可能需要特别考虑。例如,在一个实施例中,在pw标签被第一pe网络设备100(例如,输出路由器)撤销和/或被第二pe网络设备100(例如,输入路由器)释放之后(例如,使用pw子tlv),必须注意不要重复使用相同的标签,直到第一pe网络设备100可以合理地确定网络中不再存在包含所释放的标签的旧分组为止。如果网络中仍然存在序号在1至32768之间的旧分组,则在第一pe网络设备100接收到包括pw标签的、将相同的转发等价类(fec)绑定到相同的pw标签的pw子tlv时,该预防措施防止第一pe网络设备100从序号1重新开始分组转发。例如,如果存在通过网络传输的序号n的分组(其中n在区间[1,32768]中),则第二pe网络设备100可以在其重新通告标签后接收该分组。由于标签已被第一pe网络设备100释放,因此第二pe网络设备100应期望下一个分组以序号1到达。接收序号等于n的分组将导致n个分组可能被第二pe网络设备100拒绝,直到第一pe网络设备100将序号n+1加于分组。在一个实施例中,这可以通过第二pe网络设备100通告不同的pw标签或者通过第二pe网络设备100在尝试重新通告最近释放的标签之前等待足够的时间来避免。当在第二pe网络设备100处启用序号处理时,可能出现该问题。在一个实施例中,pe网络设备100在重新开始序号为1的分组的传输之前撤销pw。

本文描述的实施例的优点在于,网络操作被简化,网络中的状态减少,并且用于支持l2vpn部署中的pw功能的控制平面协议的数量更少(例如,消除了对pw信令的tldp的需要)。本文描述的实施例的另一个优点是tcp套接字缩放问题较少。内核通常受限于它们可以支持的套接字的数量。每个tldp会话都使用套接字,因此依赖于tldp的技术的可缩放性受到内核可以支持的套接字的数量的限制。由于本文描述的实施例使用is-is来用于pw信令(而不是tldp),因此它们对于内核套接字限制是不可知的。本文描述的实施例的又一个优点是,安全性可以由is-is处理,因此不需要的诸如tldp所需的tcp认证选项(tcp-ao)之类的单独的安全协议。本文描述的实施例的又一个优点是,在链路振荡(flap)和恢复(例如,ldp到is-is同步)期间不存在同步不同协议所需的特殊协议同步机制。根据本文提供的描述,除了本文明确陈述的优点之外的其他优点将是显而易见的。

图13a示出了根据本发明一些实施例的示例网络内的网络设备(nd)之间的连接性以及nd的三种示例实现。图13a示出了nd1300a-h以及它们之间的连接,所述连接通过1300a-1300b、1300b-1300c、1300c-1300d、1300d-1300e、1300e-1300f、1300f-1300g和1300a-1300g之间的线以及1300h和1300a、1300c、1300d和1300g中的每一个之间线示出。这些nd是物理设备,且这些nd之间的连接性可以是无线的或有线的(经常被称为链路)。从nd1300a、1300e和1300f延伸的附加线示出了:这些nd担当网络的进入点和离开点(且从而这些nd有时被称为边缘nd;而其他nd可以被称为核心nd)。

图13a中的两个示例nd实现是:1)专用网络设备1302,其使用定制的专用集成电路(asic)和专有操作系统(os);以及2)通用网络设备1304,其使用常见的现货供应(cots)处理器和标准os。

专用网络设备1302包括联网硬件1310,联网硬件2210包括计算资源1312(其通常包括一个或多个处理器的集合)、转发资源1314(其通常包括一个或多个asic和/或网络处理器)、以及物理网络接口(ni)1316(有时被称为物理端口)、以及其中存储有联网软件1320的非瞬时机器可读存储介质1318。物理ni是nd中的硬件,通过该硬件进行网络连接(例如,通过无线网络接口控制器(wnic)以无线方式或者通过将电线插入连接到网络接口控制器(nic)的物理端口),例如由nd1300a-h之间的连接所示出的那些连接。在操作期间,联网软件1320可以由联网硬件1310来执行,以实例化一个或多个联网软件实例1322的集合。每个联网软件实例1322以及联网硬件1310的执行该网络软件实例的部分(如果其是专用于该联网软件实例的硬件和/或由该联网软件实例与其他联网软件实例1322按时间共享的硬件的时间片)形成了单独的虚拟网元1330a-r。每个虚拟网元(vne)1330a-r包括控制通信和配置模块1332a-r(有时被称为本地控制模块或控制通信模块)和转发表1334a-r,使得给定的虚拟网元(例如,1330a)包括控制通信和配置模块(例如,1332a)、一个或多个转发表的集合(例如,1334a)、以及联网硬件1310的执行虚拟网元(例如,1330a)的部分。

软件1320可以包括当由网络硬件1310执行时使专用网络硬件1302执行本发明的一个或多个实施例的操作的、作为部分联网软件实例1322的代码,例如pw信令模块1321。

专用网络设备1302经常在物理上和/或逻辑上被视为包括:1)nd控制平面1324(有时被称为控制平面),包括执行控制通信和配置模块1332a-r的计算资源1312;以及2)nd转发平面1326(有时被称为转发平面、数据平面、或媒体平面),包括利用转发表1334a-r的转发资源1314和物理ni1316。作为nd是路由器(或实现路由功能)的示例,nd控制平面1324(执行控制通信和配置模块1332a-r的计算资源1312)通常负责参与控制如何路由(例如,数据的下一跳和该数据的输出物理ni)数据(例如,分组)并负责在转发表1334a-r中存储该路由信息,以及nd转发平面1326负责在物理ni1316上接收该数据并基于转发表1334a-r将该数据转发出物理ni1316中的恰当物理ni。

图13b示出了根据本发明一些实施例的用于实现专用网络设备1302的示例方式。图13b示出了包括卡1338(通常是可热插拔的)在内的专用网络设备。尽管在一些实施例中,卡1338具有两种类型(作为nd转发平面1326来工作的一个或多个(有时被称为线路卡)、以及进行工作以实现nd控制平面1324的一个或多个(有时被称为控制卡)),备选实施例可以将功能结合到单个卡上和/或包括附加卡类型(例如,一种附加类型的卡被称为服务卡、资源卡、或多应用卡)。服务卡可以提供特殊处理(例如,第4层到第7层服务(例如,防火墙、网际协议安全(ipsec)、安全套接字层(ssl)/传输层安全(tls)、入侵检测系统(ids)、对等(p2p)、基于ip的语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进分组核心(epc)网关)))。作为示例,服务卡可以用于端接ipsec隧道,并执行伴随的认证和加密算法。这些卡通过示出为背板1336的一个或多个互联机制耦接在一起(例如,第一全网格耦接线路卡以及第二全网格耦接所有卡)耦接。

返回图13a,通用网络设备1304包括硬件1340,硬件2240包括一个或多个处理器1342(其经常是cots处理器)的集合和网络接口控制器1344(nic,也被称为网络接口卡)(其包括物理ni1346)、以及其中存储有软件1350的非瞬时机器可读存储介质1348。在操作期间,处理器1342执行软件1350以实例化一个或多个应用程序1364a-r的一个或多个集合。虽然一个实施例不实现虚拟化,但是备选实施例可以使用不同形式的虚拟化。例如,一个这样的备选实施例中,虚拟化层1354表示操作系统的内核(或在基础操作系统上执行的简化版),其允许建立多个被称为软件容器1362a-r的多个实例,每个软件容器可以用于执行应用程序1364a-r的集合中的一个(或多个)应用程序;其中多个软件容器(也被称为虚拟化引擎、虚拟专用服务器或监狱(jail))是用户空间(通常是虚拟内存空间),它们彼此分离并与其中运行操作系统内核的空间分开;以及其中,除非明确允许,否则在给定用户空间中运行的应用程序集合不能访问其他进程的内存。在另一个这样的备选实施例中,虚拟化层1354表示在主机操作系统之上执行的管理程序(有时称为虚拟机监视器(vmm))或管理员程序,并且应用程序1364a-r的集合中的每一个在被称为虚拟机(在某些情况下可能被认为是一种紧密隔离的软件容器形式)的实例1362a-r内的访客操作系统之上运行,所述虚拟机在管理程序之上运行-访客操作系统和应用程序可以不知道它们在虚拟机上运行,即,不在“裸机”主机电子设备上运行,或者,通过半虚拟化,操作系统和/或应用程序可以知道存在虚拟化以用于优化目的。在其他备选实施例中,一个、一些或所有应用程序被实现为单内核,其可以通过直接与应用程序仅编译有限的、提供应用程序所需的特定os服务的一组库(例如,来自库操作系统(libos),包括os服务的驱动程序/库)来生成。由于单内核可以实现为直接在硬件1340上、直接在管理程序上(在这种情况下,单内核有时被描述为在libos虚拟机内运行)、或者在软件容器中运行,实施例可以完全由如下的单内核来实现:直接运行在由虚拟化层1354表示的管理程序上的单内核、运行在由实例1362a-r表示的软件容器内的单内核、或者单内核和上述技术的组合(例如,单内核和虚拟机都直接运行在管理程序之上,单内核和在不同软件容器内运行的应用程序的集合)。

一个或多个应用程序1364a-r的一个或多个集合以及虚拟化(如果实现的话)的实例化统称为软件实例1352。应用程序1364a-r的每个集合、相应的虚拟化构造(例如,实例1362a-r,如果实现的话)、以及执行它们的硬件1340的部分(可以是专用于该执行的硬件和/或临时共享的硬件的时间片),形成分隔的虚拟网元1360a-r。

虚拟网元1360a-r执行与虚拟网元1330a-r类似的功能,例如,类似于控制通信和配置模块1332a和转发表1334a(硬件1340的这种虚拟化有时被称为网络功能虚拟化(nfv))。从而,nfv可以用于将很多网络设备类型统一到工业标准高容量服务器硬件、物理交换机、和物理存储器,它们可以位于数据中心、nd、和客户住宅设备(cpe)中。尽管将本发明的实施例示出为每个实例1362a-r对应于一个vne1360a-r,备选实施例可以在更精细级别粒度上实现该对应关系(例如,线路卡虚拟机虚拟化线路卡,控制卡虚拟机虚拟化控制卡等等);应当理解:本文参考实例1362a-r与vne的对应关系来描述的技术同样适用于使用这种更精细级别粒度和/或单内核的实施例。

在某些实施例中,虚拟化层1354包括提供与物理以太网交换机类似的转发服务的虚拟交换机。具体地,该虚拟交换机在实例1362a-r和nic1344之间转发业务,以及可选地在实例1362a-r之间转发业务;此外,该虚拟交换机可以在策略不允许vne1360a-r彼此通信通信时强制执行它们之间的网络隔离(例如,通过执行虚拟局域网(vlan))。

软件1350可以包括诸如pw信令模块1351的代码,其被处理器1342执行时使通用网络设备1304执行本发明的一个或多个实施例的操作,作为一部分软件实例1362a-r。

图13a中的第三示例nd实现是混合网络设备1306,其在单个nd或nd内的单个卡中包括定制asic/专用os和cots处理器/标准os。在这种混合网络设备的某些实施例中,平台vm(即,实现专用网络设备1302的功能的vm)可以向混合网络设备1306中存在的联网硬件提供准虚拟化。

不管nd的上述示例实现如何,当考虑由nd实现的多个vne中的单个一个vne时,或者在nv当前仅实现单个vne的情况下,缩写的术语网元(ne)有时被用于指代该vne。同样在全部上述示例实现中,每个vne(例如,vne1330a-r、vne1360a-r、以及混合网络设备1306中的那些)在物理ni(例如,1316、1346)上接收数据并将该数据转发出物理ni(例如,1316、1346)中的恰当物理ni。例如,实现ip路由器功能的vne基于ip分组中的一些ip报头信息来转发ip分组;其中ip报头信息包括源ip地址、目的ip地址、源端口、目的端口(其中“源端口”和“目的端口”在此指代协议端口,与nd的物理端口相对)、传输协议(例如,用户数据报文协议(udp)、传输控制协议(tcp)和差异化服务编码点(dscp)值。

图13c示出了根据本发明一些实施例的可以耦接vne的各种示例方式。图13c示出了在nd1300a中实现的vne1370a.1-1370a.p(以及可选的vne1370a.q-1370a.r)以及nd1300h中的vne1370h.1。在图13c中,vne1370a.1-p在以下意义上是彼此分离的:它们可以从nd1300a外部接收分组并向nd1300a外部转发分组;vne1370a.1与vne1370h.1耦接,从而它们在其各自nd之间传输分组;vne1370a.2-1370a.3可以可选地在它们之间转发分组,而不向nd1300a外部转发分组;以及vne1370a.p可以可选地是vne链中的第一个,该vne链包括vne1370a.q,之后包括vne1370a.r(有时这被称为动态服务链接,其中,一系列vne中的每个vne提供不同服务——例如,一个或多个第4-7层网络服务)。尽管图13c示出了vne之间的各种示例关系,备选实施例可以支持其他关系(例如,更多/更少的vne、更多/更少的动态服务链、具有公共vne和一些不同vne的多个不同动态服务链)。

图13a的nd例如可以形成互联网或私有网络的一部分;以及其他电子设备(未示出,例如端用户设备,包括工作站、膝上型计算机、上网本、平板电脑、掌上上型计算机、移动电话、智能电话、平板手机、多媒体电话、基于网际协议的语音(voip)电话、终端、便携式媒体播放器、gps单元、可穿戴设备、游戏系统、机顶盒、支持互联网的家用电器)可以耦接到网络(直接或通过诸如接入网之类的其他网络),以通过网络(例如,互联网或覆盖(例如,隧道传输)在互联网上的虚拟私有网络(vpn))彼此通信(直接或通过服务器)和/或访问内容和/或服务。这种内容和/或服务通常由属于服务/内容提供商的一个或多个服务器(未示出)或参与对等(p2p)服务的一个或多个端用户设备(未示出)来提供,且可以包括例如公开网页(例如,自由内容、商店前端页面、搜索服务)、私有网页(例如,提供电子邮件服务的用户名/密码访问网页)、和/或基于vpn的公司网络。例如,端用户设备可以耦接(例如,通过(无线或有线)耦接到接入网的客户住宅设备)到边缘nd,边缘nd耦接(例如,通过一个或多个核心nd)到其他边缘nd,该其他边缘nd耦接到担当服务器的电子设备。然而,通过计算和存储虚拟化,作为图13a中nd来工作的一个或多个电子设备还可以提供一个或多个这种服务器(例如,在通用网络设备1304的情况下,软件容器1362a-r中的一个或多个可以作为服务器工作;这对于混合网络设备1306来说也将是正确的;在专用网络设备1302的情况下,一个或多个这种服务器还可以运行在由计算资源1312执行的虚拟层上);在该情况下,服务器被称为是与该nd的vne同处一地。

虚拟网络是提供网络服务(例如,l2和/或l3服务)的物理网络(例如,图13a中的那个物理网络)的逻辑抽象。虚拟网络可以实现为在底层网络(例如,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)/mplsipvpn),其中,外部系统通过基于底层网络的l3环境跨网络互连(例如,nve针对不同的这种虚拟网络提供分离的l3vni(转发和路由实例),以及提供跨底层网络的l3(例如,ip/mpls)隧道传输封装)。网络服务还可以包括服务质量能力(例如,业务分类标记、业务调节(conditioning)和调度)、安全能力(例如,用于保护客户住宅免受源自网络的攻击的过滤器,以避免有缺陷的路由公告)、以及管理能力(例如,完全检测和处理)。

图13d示出了根据本发明一些实施例的在图13a的每个nd上具有单个网元的网络,且在该直观方案中,对比了(传统路由器常用的)传统分布式方案与用于保持可达性和转发信息(也被称为网络控制)的集中式方案。具体地,图13d示出了具有与图13a的nd1300a-h相同连接性的网元(ne)1370a-h。

图13d示出了分布式方案1372将用于生成可达性和转发信息的责任分布在ne1370a-h上;换言之,邻居发现和拓扑发现的过程是分布式的。

例如,在使用专用网络设备1302的情况下,nd控制平面1324的控制通信和配置模块1332a-r通常包括用于实现一个或多个路由协议的可达性和转发信息模块(例如,诸如边界网关协议(bgp)之类的外部网关协议、内部网关协议(igp)(例如,开放最短路径优先(ospf)、中间系统对中间系统(is-is)、路由信息协议(rip))、标签分布协议(ldp)、资源预留协议(rsvp)(包括rsvp-业务工程(te):用于lsp隧道的rsvp扩展、通用多协议标签交换(gmpls)信令rsvp-te),其与其他ne通信以交换路由,然后基于一个或多个路由度量来选择那些路由。从而,ne1370a-h(例如,执行控制通信和配置模块1332a-r的计算资源1312)通过分布式地确定网络内的可达性并计算其各自的转发信息来执行其参与控制如何路由(例如,数据的下一跳以及该数据的输出物理ni)数据(例如,分组)的责任。路由和邻接关系存储在nd控制平面1324上的一个或多个路由结构中(例如,路由信息库(rib)、标签信息库(lib)、一个或多个邻接关系结构)。nd控制平面1324使用基于路由结构的信息(例如,邻接关系和路由信息)对nd转发平面1326编程。例如,nd控制平面1324将邻接关系和路由信息编程到nd转发平面1326上的一个或多个转发表1334a-r(例如,转发信息库(fib)、标签转发信息库(lfib)、以及一个或多个邻接关系结构)中。对于层2转发,nd可以存储一个或多个桥接表,该一个或多个桥接表用于基于该数据中的层2信息来转发数据。尽管上面的示例使用了专用网络设备1302,相同的分布式方案1372可以实现在通用网络设备1304和混合网络设备1306上。

图13d示出了集中式方案1374(也被称为软件定义的联网(sdn)),其将做出与从底层系统(该底层系统向所选目的地转发业务)发送业务的位置有关的决定的系统加以去耦接。所示出的集中式方案1374具有用于在集中式控制平面1376(有时被称为sdn控制模块、控制器、网络控制器、开放流控制器、sdn控制器、控制平面节点、网络虚拟化机构、或管理控制实体)中生成可达性和转发信息的责任,并从而使得邻居发现和拓扑发现的过程集中式。集中式控制平面1376具有针对数据平面1380(有时被称为基础架构层、网络转发平面、或转发平面(其不应当与nd转发平面相混淆))的南向接口(southboundinterface)1382,该数据平面1080包括ne1370a-h(有时被称为交换机、转发元件、数据平面元件、或节点)。集中式控制平面1376包括网络控制器1378,网络控制器1378包括确定网络内的可达性并通过南向接口1382向数据平面1380的ne1370a-h分发转发信息的集中式可达性和转发信息模块1379(其可以使用开放流协议)。从而,在通常与nd分离的电子设备上执行的集中式控制平面1376中将网络情报(networkintelligence)集中式。

例如,在数据平面1380中使用专用网络设备1302的情况下,nd控制平面1324的每个控制通信和配置模块1332a-r通常包括提供南向接口1382的vne侧的控制代理。在该情况下,nd控制平面1324(执行控制通信和配置模块1332a-r的计算资源1312)通过与集中式控制平面1376通信的控制代理来执行其参与控制如何路由(例如,数据的下一跳和该数据的输出物理ni)数据(例如,分组)的责任,以从集中式可达性和转发信息模块1379接收转发信息(以及在一些情况下的可达性信息)(应当理解:在本发明的一些实施例中,除了与集中式控制平面1376通信之外,控制通信和配置模块1332a-r还可以在确定可达性和计算转发信息时扮演某个角色-尽管不像分布式方案情况下那么多;这种实施例一般被视为落入集中式方案1374中,但也可以被视为是混合方案)。

尽管上述示例使用了专用网络设备1302,可以使用通用网络设备1304和混合网络设备1306来实现同样的集中式方案1374(例如,每个vne1360a-r通过与集中式控制平面1376通信来执行其控制如何路由(例如,该数据的下一跳和该数据的输出物理ni)数据(例如,分组)的责任,以从集中式可达性和转发信息模块1379接收转发信息(以及在一些情况下,可达性信息);应当理解:在本发明的一些实施例中,除了与集中式控制平面1376通信之外,vne1360a-r还可以在确定可达性和/或计算转发信息时扮演某个角色——尽管不像分布式方案情况下那么多)。事实上,对sdn技术的使用可以增强通常在通用网络设备1304或混合网络设备1306实现中使用的nfv技术,因为nfv能够通过提供其上可以运行sdn软件的基础架构来支持sdn,且因为nfv和sdn都打算利用商品服务器硬件和物理交换机。

图13d还示出了集中式控制平面1376具有针对应用层1386的北向接口1384,在应用层1386中驻留有应用1388。集中式控制平面1376具有针对应用1388来形成虚拟网络1392(有时被称为逻辑转发平面、网络服务、或覆盖网络(且数据平面1380的ne1370a-h是底层网络))的能力。从而,集中式控制平面1376保持所有nd和所配置的ne/vne的全局视图,且其将虚拟网络高效地映射到底层nd(包括当物理网络通过硬件(nd、链路、或nd组件)故障、添加、或移除来改变时保持这些映射)

尽管图13d示出了与集中式方案1374不同的分布式方案1372,在本发明的某些实施例中,网络控制的工作可以用不同方式分布或者这二者可以结合。例如:1)实施例一般可以使用集中式方案(sdn)1374,但是具有委托给ne的某些功能(例如,分布式方案可以用于实现故障监视、性能监视、保护切换、以及用于邻居和/或拓扑发现的基元(primitive)中的一项或多项);或者2)本发明的实施例可以经由集中式控制平面和分布式协议这二者来执行邻居发现和拓扑发现,且比较结果以在它们不一致的地方提出异常。这种实施例一般被视为落入集中式方案1374中,但也可以被视为是混合方案。

尽管图13d示出了每个nd1300a-h实现单个ne1370a-h的简单情况,应当理解:参照图13d描述的网络控制方案同样适用于一个或多个nd1300a-h实现多个vne(例如,vne1330a-r、vne1360a-r、在混合网络设备1306中的那些)的网络。备选地或附加地,网络控制器1378还可以对在单个nd中实现多个vne加以仿真。具体地,取代(或除了)在单个nd中实现多个vne(之外),网络控制器1378(还)可以将单个nd中的vne/ne的实现呈现为虚拟网络1392中的多个vne(在同一个虚拟网络1392中的全部、不同虚拟网络1392中的每一个、或某种组合)。例如,网络控制器1378可以使得nd在底层网络中实现单个vne(ne),然后对集中式控制平面1376内的该ne的资源进行逻辑分割,以在虚拟网络1392中呈现不同的vne(其中,底层网络中的这些不同vne共享底层网络中nd上的单个vne/ne实现的资源)。

另一方面,图13e和13f分别示出了ne和vne的示例抽象,网络控制器1378可以将其作为不同的虚拟网络1392的一部分来呈现。图13e示出了根据本发明一些实施例的以下简单情况:nd1300a-h中的每一个实现单个ne1370a-h(参见图13d),而集中式控制平面1376将不同nd中的多个ne(ne1370a-c和g-h)抽象为(以表示)图13d的虚拟网络1392之一中的单个ne1370i。图13e示出了:在该虚拟网络中,ne1370i耦接到ne1370d和1370f,它们都依然耦接到ne1370e。

图13f示出了根据本发明一些实施例的以下情况:在不同nd(nd1300a和nd1300h)上实现多个vne(vne1370a.1和vne1370h.1)并且多个vne彼此耦接,以及集中式控制平面1376将这些多个vne加以抽象,使得他们表现为图13d的虚拟网络1392之一中的单个vne1370t。从而,ne或vne的抽象可以跨多个nd。

尽管本发明的一些实施例将集中式控制平面1376时限为单个实体(例如,单个电子设备运行的软件的单个实例),备选实施例可以出于冗余和/或可扩缩性的目的将功能分散在多个实体上(例如,不同电子设备上运行的软件的多个实例)。

类似于网络设备实现,可以用各种方式(例如,专用设备、通用(例如,cots)设备、或混合设备)来实现集中式控制平面1376上运行的电子设备,且从而实现包括集中式可达性和转发信息模块1379在内的网络控制器1378。这些电子设备将类似地包括计算资源、一个或多个物理nic的集合、以及其上存储有集中式控制平面软件的非瞬时机器可读存储介质。例如,图14示出了包括硬件1440在内的通用控制平面设备1404,硬件2340包括一个或多个处理器1442(其经常是cots处理器)的集合和网络接口控制器1444(nic;也被称为网络接口卡)(其包括物理ni1446)、以及其中存储有集中式控制平面(ccp)软件1450的非瞬时机器可读存储介质1448。

在使用计算虚拟化的实施例中,处理器1442通常执行软件以实例化虚拟化层1454(例如,在一个实施例中,虚拟化层1454表示操作系统的内核(或在基础操作系统上执行的简化版),其允许创建多被称为虚拟化引擎(表示单独的用户空间,也被称为虚拟引擎、虚拟专用服务器或jail)的多个实例1462a-r,每个实例可以用于执行一个或多个应用程序的组;在另一实施例中,虚拟化层1454表示管理程序(有时称为虚拟机监视器(vmm))或在主机操作系统之上执行的管理员程序,并且应用程序在实例1462a-r内的访客操作系统之上运行,该实例1462a-r称为由虚拟机管理程序运行的虚拟机(在某些情况下可能被认为是一种紧密隔离的软件容器形式);在另一实施例中,应用程序被实现为单内核,其可以通过直接与应用程序仅编译有限的、提供应用程序所需的特定os服务的一组库(例如,来自库操作系统(libos),包括os服务的驱动程序/库)来生成,并且单内核可以直接在硬件1440上运行,直接在由虚拟化层1454表示的管理程序上运行(在这种情况下,单内核有时被描述为在libos虚拟机中运行),或在由实例1462a-r之一表示的软件容器中运行)。同样,在使用计算虚拟化的实施例中,在操作期间,ccp软件1450的实例(示为ccp实例1476a)在虚拟化层1454之上执行(例如,在实例1462a内)。在不使用计算虚拟化的实施例中,作为单内核或者在主机操作系统上,ccp实例1476a在“裸机”通用控制平面设备1404上执行。ccp实例1476a以及虚拟化层1454和实例1462a-r(如果实现的话)的实例化统称为软件实例1452。

在一些实施例中,ccp实例1476a包括网络控制器实例1478。网络控制器实例1478包括:集中式可达性和转发信息模块实例1479(其是向操作系统提供网络控制器1378的上下文并与各种ne通信的中间件层)、以及中间件层上的ccp应用层1480(有时被称为应用层)(提供各种网络操作所要求的情报,例如协议、网络情景察觉、以及用户接口)。在更为抽象的级别上,集中式控制平面1376中的该ccp应用层1480使用虚拟网络视图(网络的逻辑视图)来工作,且中间件层提供从虚拟网络到物理视图的转换。

集中式控制平面1376基于针对每个流的ccp应用层1480计算和中间件层映射向数据平面1380发送相关消息。流可以被定义为具有匹配给定比特模式的报头的分组集合;在该意义下,传统ip转发也是基于流的转发,其中,通过例如目的ip地址来定义流;然而,在其他实现中,用于流定义的给定比特模式可以在分组报头中包括更多的字段(例如,10个或更多个)。数据平面1380的不同nd/ne/vne可以接收不同消息,且从而接收不同的转发信息。数据平面1380处理这些消息,并将恰当的流信息和对应动作编程到恰当ne/vne的转发表(有时被称为流表)中,然后ne/vne可以将进入的分组映射到转发表中表示的流,并基于转发表中的匹配来转发分组。

诸如开放流之类的标准定义了用于消息的协议以及用于处理分组的模型。用于处理分组的模型包括:报头解析、分组分类、以及做出转发决定。报头解析描述了如何基于已知的协议集合来解释分组。一些协议字段用于构建匹配结构(或键),该匹配结构(或键)将在分组分类中使用(例如,第一键字段可以是源媒体访问控制(mac)地址,以及第二键字段可以是目的mac地址)。

分组分类涉及在存储器中执行查找,以通过基于转发表条目的匹配结构、或键来确定转发表中的哪个条目(也被称为转发表条目或流条目)最佳匹配分组对分组进行分类。转发表条目中表示的很多流可以对应于/匹配分组是可能的;在该情况下,系统通常被配置为根据定义方案从很多转发表条目中确定一个转发表条目(例如,选择匹配的第一个转发表条目)。转发表条目包括匹配标准的特定集合(值集合或通配符、或者对分组的什么部分应当与特定值/多个特定值/通配符进行比较的指示、如匹配能力所定义的-针对分组报头中的特定字段或者对于某个其他分组内容)以及在接收到匹配分组时针对数据平面要采取的一个或多个动作的集合。例如,动作可以是:针对使用特定端口的分组,将报头推压到分组上,对分组进行泛洪(flood),或简单地丢弃该分组,。从而,具有特定传输控制协议(tcp)目的端口的ipv4/ipv6分组的转发表条目可以包含指定这些分组应当被丢弃的动作。

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

然而,当未知分组(例如,如开放流用语中使用的“错失分组”或“匹配错失”)到达数据平面1380处时,通常向中心控制平面1376转发该分组(或分组报头和内容的子集)。然后集中式控制平面1376将转发表条目编程到数据平面1380中,以适应属于该未知分组的流的分组。一旦集中式控制平面1376将特定转发表条目编程到数据平面1380中,则具有匹配凭证的下一个分组将匹配该转发表条目并采取与所匹配条目相关联的动作集合。

网络接口(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地址。

一些nd提供对实现vpn(虚拟专用网)(例如,第2层vpn和/或第3层vpn)的支持。例如,提供商的网络和客户的网络耦接的nd分别被称为pe(提供商边缘)和ce(客户边缘)。在第2层vpn中,转发通常在vpn的任一端上的ce上执行,并且在网络上发送业务(例如,通过由其他nd耦接的一个或多个pe)。在ce和pe之间配置第2层电路(例如,以太网端口、atm永久虚拟电路(pvc)、帧中继pvc)。在第3层vpn中,路由通常由pe执行。举例来说,支持多个vne的边缘nd可以被部署为pe;以及vne可以配置有vpn协议,因此vne被称为vpnvne。

一些nd提供对vpls(虚拟专用lan服务)的支持。例如,在vpls网络中,端用户设备通过耦接到ce来访问通过vpls网络提供的内容/服务,其中ce通过由其他nd耦接的pe来耦接。vpls网络可用于实现三重播放网络应用(例如,数据应用(例如,高速互联网接入))、视频应用(例如,诸如iptv(互联网协议电视)的电视服务、vod(视频点播)服务)和语音应用(例如,voip(互联网协议语音)服务))、vpn服务等。vpls是一种可用于多点连接的第2层vpn。vpls网络还允许在分离的地理位置处的与ce耦接的端用户设备通过广域网(wan)相互通信,就像它们在局域网(lan)中彼此直接连接一样(这称为仿真lan)。

在vpls网络中,每个ce通常可能通过接入网络(有线和/或无线),经由附接电路(例如,ce和pe之间的虚拟链路或连接)而附接到pe的桥接模块。pe的桥接模块通过仿真lan接口附接到仿真lan。每个网桥模块通过保持将mac地址映射到伪线和附接电路的转发表来用作“虚拟交换机实例”(vsi)。pe基于包括在帧(从ce接收)中的mac目的地地址字段将这些帧转发到目的地(例如,其他ce、其他pe)。

已经在计算机存储器内的数据位的事务的算法和符号表示方面呈现了本发明详细描述的一些部分。这些算法和表示是数据处理领域的技术人员通常用来向本领域的其他技术人员传播他们的工作内容的方式。算法在这里通常被设想为导致期望结果的自相一致的事务顺序。事务是需要对物理量的物理操纵的步骤。通常(尽管并不一定),这些量采用能够被存储、传送、组合、比较和以其它方式操纵的电或磁信号的形式。已证明为了方便,主要为了通常使用的原因,这些信号可以利用比特、值、元素、符号、特征、项、数字等来进行表示。

然而,应当记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非如以上讨论中显而易见的另行明确声明,否则应当意识到:在说明书全文中,使用诸如“处理”或“运算(computing)”或“计算(calculating)”或“确定”或“显示”等之类的术语的讨论指代计算机系统或类似电子计算设备的动作和进程,该计算机系统或类似电子计算设备将表示计算机系统的寄存器和存储器中的物理(电子)量的数据操作和变换为类似表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。

这里给出的算法和显示并非固有地与任何特定计算机或其他装置相关。各种通用系统可以与根据本文的教义的程序一起使用,或者可以证明能够方便地构造更专门的装置来执行所需的方法事务。从上面的描述中可以看出各种这些系统所需的结构。另外,没有参考任何特定编程语言描述本发明的实施例。应当理解,可以使用各种编程语言来实现如本文所述的本发明实施例的教导。

本发明的实施例可以是一种制品,其中非暂时性机器可读介质(例如,微电子存储器)上存储有对一个或多个数据处理组件(这里统称为“处理器”)进行编程以执行上述操作的指令。在其他实施例中,这些操作中的一些可以由包含硬连线逻辑的特定硬件组件(例如,专用数字滤波器块和状态机)来执行。备选地,这些操作可以由编程数据处理组件和固定硬连线电路组件的任何组合来执行。

在前述说明书中,已经参考本发明的特定示例性实施例描述了本发明的实施例。显而易见的是,在不脱离所附权利要求中阐述的本发明的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应当被看做说明性的而不是限制意义的。

在整个说明书中,已经通过流程图呈现了本发明的实施例。应当理解,这些流程图中描述的事务和事务顺序仅用于说明目的,而不是作为对本发明的限制。本领域普通技术人员将认识到,在不脱离所附权利要求中阐述的本发明的更广泛精神和范围的情况下,可以对流程图进行变化。

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