CN103516611B - 分配和分发用于数据包封装的标签 - Google Patents

分配和分发用于数据包封装的标签 Download PDF

Info

Publication number
CN103516611B
CN103516611B CN201310238870.8A CN201310238870A CN103516611B CN 103516611 B CN103516611 B CN 103516611B CN 201310238870 A CN201310238870 A CN 201310238870A CN 103516611 B CN103516611 B CN 103516611B
Authority
CN
China
Prior art keywords
label
service
network equipment
network
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310238870.8A
Other languages
English (en)
Other versions
CN103516611A (zh
Inventor
詹姆士·吉夏尔
戴维·沃德
扬·梅德维德
玛齐克·康斯坦蒂诺维奇
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.)
Juniper Networks Inc
Original Assignee
Jungle Network
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jungle Network filed Critical Jungle Network
Publication of CN103516611A publication Critical patent/CN103516611A/zh
Application granted granted Critical
Publication of CN103516611B publication Critical patent/CN103516611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • H04L45/507Label distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及分配和分发用于数据包封装的标签,在一个示例中,网络设备接收根据标签交换协议而被转发的数据包,确定由服务网络设备对数据包执行的服务,向服务网络设备发送标签请求消息,其中,标签请求消息指示对具有特定长度的标签的支持,其中,特定长度大于20位(例如,40位),且其中,标签请求消息指定对数据包执行的服务,响应于标签请求消息,接收定义特定长度的标签的标签映射消息,将标签添加至数据包以形成多协议标签交换(MPLS)封装数据包,以及根据标签交换协议转发MPLS封装数据包。

Description

分配和分发用于数据包封装的标签
技术领域
本公开的技术涉及计算机网络,更具体地,涉及在计算网络内路由数据包。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于数据包的网络(诸如因特网)中,计算设备通过将数据分成被称为数据包的小块来传送数据。经由网络将数据包从源设备独立地路由至目的地设备。目的地设备从数据包提取数据并将该数据组合成其原始形式。将数据分成数据包能使源设备仅重新发送在传输期间可能丢失的那些单独的数据包。
基于数据包的计算机网络由于流量工程和其他目的而越来越多地使用标签交换协议。在标签交换网络中,通常被称为标签交换路由器或LSR的网络设备使用多协议标签交换(MPLS)信令协议来建议标签交换路径(LSP)。LSR利用这些MPLS协议从下游LSR接收MPLS标签映射,并将MPLS标签映射通告给上游LSR。当LSR从上游路由器接收MPLS数据包时,它根据其转发表中的信息来交换MPLS标签,并将数据包转发至合适的下游LSR。在一些情况下,可使用上游标签分配。
通常,位于MPLS网络边缘处的LSR(被称为标签边缘路由器(LER))根据MPLS信令协议建立通过MPLS网络的路径。LER可根据MPLS信令协议,遍及整个网络转发信令消息以分发合适的标签。沿着给定路径通常位于MPLS网络核心处的LSR随后可采用合适标签更新其相应的转发表。通常,LSR更新转发表以指示是否添加、交换或去除对应于给定路径的一个标签。
在接收到数据单元(诸如IP数据包)、进入MPLS网络后,LER可随后检查数据包,基于检查结果向数据包预添加一个或多个MPLS标签,并经由与该标签相关联的LSP转发数据包。在接收到贴标签的数据包后,下游LSR可添加附加标签,基于LSR的转发表交换标签或去除该标签。然而,LSR不需要检查MPLS数据包,而是替代地,可严格基于在标签栈内包括的、预添加至数据包的一个或多个MPLS标签来转发。在该方面,LSR可执行与协议无关的转发,且可用于封装其他类型的数据包。因此,LSR可通过之前的详细数据包检查,更高效且迅速地遍及整合MPLS网络转发数据包。
发明内容
总体上,描述了用于在计算机网络(诸如包括实施多协议标签交换(MPLS)协议的设备的网络)内分配和分发用于数据包封装的标签的技术。常规MPLS提供了用于用20位固定格式的标签封装数据包的技术,该技术可用于经由一个或多个网络隧道使数据包隧穿通过网络,提供要对数据包应用的服务的指示,或者用于其他用途。根据本公开的技术,网络设备被配置为使用诸如40位标签(有时被称为“双倍宽度标签”)的其他大小的标签,以及解释40位标签的内容。设备还通告40位标签的使用,使得其他设备可区分出20位标签与40位标签。
在一个示例中,一种方法包括:由第一网络设备发送标签请求消息,以从第二网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述第二网络设备提供的且要根据所述标签映射对后续被转发到所述第二网络设备的数据包执行的服务;响应于所述标签请求消息,接收定义所述特定长度的标签的标签映射消息;由所述第一网络设备将所述标签添加至数据包以形成多协议标签交换(MPLS)封装数据包;以及由所述第一网络设备根据标签交换协议转发所述多协议标签交换封装数据包。
在另一示例中,一种网络设备包括:一个或多个网络接口,被配置为发送和接收网络数据;以及控制单元,被配置为经由所述一个或多个网络接口发送标签请求消息,以从服务网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述服务网络设备提供的且根据所述标签映射对后续被转发到所述服务网络设备的数据包执行的服务;响应于所述标签请求消息,经由所述一个或多个网络接口接收定义所述特定长度的标签的标签映射消息;将所述标签添加至数据包,以形成多协议标签交换(MPLS)封装数据包;以及根据标签交换协议转发所述多协议标签交换封装数据包。
在另一示例中,一种计算机可读存储介质包括指令,所述指令用于使处理器发送标签请求消息,以从第二网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述第二网络设备提供的且根据所述标签映射对后续被转发到所述第二网络设备的数据包执行的服务;接收限定所述特定长度的标签的标签映射消息;将所述标签添加至数据包,以形成多协议标签交换(MPLS)封装数据包;以及根据标签交换协议转发所述多协议标签交换封装数据包。
在另一示例中,一种系统包括:网络设备和服务网络设备。所述网络设备被配置为发送标签请求消息,以从所述服务网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述服务网络设备提供以根据所述标签映射对后续被转发到所述服务网络设备的数据包执行的服务。所述服务网络设备被配置为接收所述标签请求消息,将所述特定长度的标签与所述服务相关联,以及响应于所述标签请求消息,向所述网络设备发送定义所述特定长度的所述标签与所述服务相关联的标签映射消息。所述网络设备还被配置为接收所述标签映射消息,将所述标签添加至数据包以形成多协议标签交换(MPLS)封装数据包,以及根据标签交换协议转发所述多协议标签交换封装数据包。此外,所述服务网络设备被配置为接收所述多协议标签交换封装数据包,并基于所述标签对所述数据包执行所述服务。
在另一示例中,一种方法包括:由第一网络设备从第二网络设备接收标签请求消息,其中,所述标签请求消息指示对具有特定长度的标签的支持,其中,所述特定长度大于20位,且其中,所述标签请求消息指定对数据包执行的服务;将所述特定长度的标签与所述服务相关联;响应于所述标签请求消息,发送定义所述特定长度的所述标签与所述服务相关联的的标签映射消息;接收用所述标签封装的数据包;以及基于所述标签对所述数据包执行所述服务。
在附图和以下描述中阐述了一个或多个示例的细节。根据该描述和附图以及根据权利要求,其他特征、目的和优势将变得显而易见。
附图说明
图1是示出根据本公开中描述的技术其中一个或多个网络设备执行标签传输的网络系统的框图。
图2是示出以根据本公开中描述的技术实施与对长于20位的标签进行的多协议标签交换(MPLS)标签传输相关的技术的路由器的示例的框图。
图3是示出包括40位标签的示例性52位标签栈的概念图。
图4是示出层4(L4)至层7(L7)服务实例能力指示符的示例性数据组的概念图。
图5是示出示例性40位标签的类型长度值(TLV)字段的概念图。
图6是示出示例性转发等价类(FEC)元素的概念图。
图7是示出包括用于所请求服务的参数的数据的示例性L4至L7服务实例TLV的概念图。
图8是示出示例性标签请求消息的概念图。
图9是示出示例性标签映射消息的概念图。
图10是示出根据本公开技术的用于请求和提供40位标签的示例性方法的流程图。
具体实施方式
图1是示出根据本公开中描述的技术的其中一个或多个网络设备12A至12E执行标签传输的网络系统10的框图。网络设备12A至12E(“网络设备12”)均可表示网络设备(诸如路由器),其根据与每个数据包相关联的一个或多个标签经由穿过网络(诸如网络14)的一组路径或路线来转发数据包(诸如IP数据包)或任何其他分立数据单元。即,诸如网络设备12A的入站路由器可添加具有一个或多个标签的多协议标签交换(MPLS)标签栈。网络设备12作为标签交换路由器(LSR)来工作,以根据标签在网络14中转发流量。在某些情况下,LSR12可根据其现有的网络14的路由表(例如,用于IP流量的基础路由表)来转发流量。在其他情况下,网络设备12可利用流量工程协议来建立通过特定网络设备的路径。通常,网络14中使用的这些标签可与转发等价类(FEC)(例如,目的地)相关联,且当通过网络14的隧道传送数据包时,可定义转发MPLS封装的数据包所沿着的特定路径、路径本身、要用于数据包的服务或可由网络设备12使用的其他信息。
本公开中,MPLS栈中有时被称为“双倍宽度MPLS标签”的一些标签具有的宽度不同于常规分配给用于MPLS的标签的宽度(例如,是其两倍)。例如,这些标签可具有40位宽度,而非如常规使用的20位。此外,双倍宽度MPLS标签可包括定义服务实例和相应服务实例中的服务信息的两个以上部分。本公开的标签可具有任何宽度,而不是具有分配给服务实例的20位和分配给服务信息的20位。因此,服务实例部分可包括少于或多于20位,且服务实例部分还可包括多于或少于20位。因此,这些部分可越过常规标签的边界。具有非20位的位数(诸如40位)的标签的使用也在Guichard等于2011年9月23日提交的题为“USING NETWORKLABELS WITHOUT STANDARD-DEFINED SYNTAX AND SEMANTICS”的美国专利申请第13/243,310号中被描述,将其整体结合于此供参考。
尽管通常被描述为40位标签或双倍宽度标签,但本公开的标签可对应于非常规的20位标签的任何标签,而并非预定语义。因此,参照40位标签或双倍宽度标签所述的技术也应被理解为可应用于其他标签长度。形成标签栈的一部分的40位标签的示例在图3中被示出,如下文更详细讨论。
通常,40位标签不具有预定语义。根据本公开的技术,网络设备12可为标签的一部分定义语义。例如,网络设备12A可将标签与服务相关联,分配标签的第一部分来限定与服务相关联的服务实例,且分配标签的第二部分来限定与服务相关联的服务信息。作为另一示例,网络设备12A可分配标签的第一部分(例如,八位)来识别与服务相关联的服务实例,且可分配标签的第二部分(例如,32位)来识别该服务的定制者,其中,该定制者可对应于一个客户端设备16。
网络设备可支持各种标签宽度和用于交换MPLS标签的各种协议。例如,网络设备12可支持具有20位宽度、40位宽度或其他宽度(例如,大于20位的位数)的任何或所有的服务标签。通常,网络设备12在会话发起期间表示对40位标签宽度(或其他非20位宽度)的支持,这可使用类似于在RFC-5036,网络工作组中Andersson等人所撰的“LDP规范,”,2007年10月(在http://tools.ietf.org/html/rfc5036处可看到)中所述的技术来执行,将其整体结合于此供参考。例如,网络设备12可使用类似于在RFC-5561,网络工作组中Thomas等人所撰的“LDP能力”,2009年7月(在http://tools.ietf.org/html/rfc5561处可看到)中所述的程序来表示对40位宽度的支持,将其整体结合于此供参考。
例如,使用类似于RFC-5561但根据本公开的技术,诸如网络设备12A的网络设备可根据RFC-5036在会话发起期间,通告对非20位标签的标签(诸如40位标签)的支持。例如,如下文参照图4更详细讨论,网络设备12A可使用类型长度值(TLV)结构(诸如根据图4的服务实例能力指示符70定义的TLV结构)来通告对40位标签的支持。根据本公开的技术,TLV结构可包括指示对40位标签支持的L4至L7服务实例能力指示符。在某些示例中,L4至L7服务实例能力指示符作为转发等价类(FEC)元素而被包括在标签请求消息(诸如图8的标签请求消息140)中,如下文更详细讨论。
在图1的示例中,网络设备12A用作到网络14的入站路由器。由于网络设备12A表示在至通过网络14的网络隧道的入站与网络14外部的设备之间的接口,所以网络设备12A可被称为“标签边缘路由器”或LER。网络设备12A从网络14外部的设备接收数据包,确定转发该数据包所经过的隧道,确定沿着相应隧道的下一跳、用于该数据包的服务实例和服务信息,并通过向该数据包预先添加表示该所确定的信息的一个或多个标签来构造MPLS数据包。在某些示例中,网络设备12A向包括定义该数据包的服务实例和服务信息的信息的数据包预先添加双倍快读服务标签,以及识别沿着隧道的下一跳的传输标签。总体上,该服务标签和传输标签连同任何附加或替代性标签一起形成用于该数据包的MPLS标签栈。
为获得用于各种服务实例的合适40位标签,网络设备12A可向提供各种服务的一个或多个网络设备12B至12E发出标签请求。例如,在从一个客户端设备16(例如,客户端设备16A)接收数据包之后,网络设备12A可确定该数据包要根据MPLS来封装,且客户端设备16A已定制了由网络设备12B执行的服务。网络设备12A随后可确定是否已分配MPLS标签来用于封装和转发数据包至网络设备12B。若没有,则网络设备12A向网络设备12B(其可被称为“服务网络设备”)发送指定客户端设备16A和所请求的服务所对应的FEC的标签请求消息。在该示例中,该标签请求消息还指示网络设备12A支持40位标签。
响应于该标签请求消息,网络设备12B将标签与由标签请求消息的FEC指定的服务实例相关联。可替代地,该标签可提前与FEC相关联,且网络设备12B可仅确定与FEC相关联的标签。在任何情况下,网络设备12B均构造将标签与标签请求消息的服务实例相关联的标签映射消息,并将该标签应映射消息发送至网络设备12A。图9示出了示例性标签映射消息160,如下文更详细讨论。分配给服务实例的标签通常具有对应于在标签请求消息中指示的例如40位的标签长度的长度。
在任一情况下,网络设备12A根据由网络设备12B发布的标签映射消息,采用标签以及其他标签和标签栈信息来封装来自客户端设备16A的数据包。因此,用于封装数据包的标签栈可包括用于一个或多个服务的一个或多个40位标签以及其他标签(诸如与标签交换路径(例如,通过网络14的隧道和沿着该隧道的下一跳)相关联的标签)。
网络14的其他网络设备12可使用标签栈的数据来确定沿隧道的下一跳、隧道本身和要应用于该数据包的服务。由于下一跳对于沿着该隧道的每个网络设备而改变,所以网络设备12A除外的网络设备12可将MPLS标签栈的传输标签与定义沿着相应隧道的下一跳的另一标签交换。相应地,每个网络设备12可表示且本文中被称为“标签交换路由器”或LSR。尽管参照该具体类型的网络设备12来描述,但能够根据MPLS标签路由和转发数据包的任何MPLS使能网络设备均可实施MPLS,以便于网络系统(诸如网络系统10)内的调试、查找故障或其他动作。网络设备12的服务网络设备可使用之前由服务网络设备分配的40位标签(或其他宽度的标签,例如,大于20位的标签)来确定要应用于由这些标签封装的数据包的服务。
如图1所述,网络系统10包括网络14和客户端设备16A至16N(“客户端设备16”)。客户端设备16可以是计算设备,诸如移动设备、平板电脑、PDA、笔记本或台式计算机、或者任何其他计算设备。网络14可表示由服务供应商拥有和操作以与大量客户端设备(诸如客户端设备16)连接的公用网络。因此,网络14在本文中可被称为服务供应商(SP)网络,或者可替代地,“核心网络”。示例性的服务供应商包括Verizon通信公司(VerizonCommunications Inc.)或美国电话电报(AT&T)公司。
客户端设备16可以是包括移动设备的网络或设备。客户端设备16的设备和网络可根据多种网络协议(诸如与以太网协议相关联的网络协议802.3X族中的任一个、无线网络协议802.1X族中的任一个、全球移动通信系统(GSM)、波分多址(CDMA)、高速分组接入(HSPA)、长期演进(LTE)、互联网协议(IP协议)、异步传输模式(ATM)协议和传输控制协议(TCP))来操作。此外,在一个或多个客户端设备16是网络的情况下,该网络可包括虚拟专用网络(VPN)、大区域网络(LAN)或广域网(WAN)。尽管图1中为了便于说明的目的而未示出,但每个网络可包括多种互连的计算设备或节点,诸如web服务器、打印服务器、应用服务器、数据服务器、工作站、台式计算机、笔记本电脑、手机或其他移动设备、个人数字助理(PDA)以及能够经由无线和/或有线连接而连接至计算机网络的任何其他设备。
网络14可根据任何数量的协议来互连多个客户端设备。然而,一般地,将各个客户端设备16彼此互连的转接网络(诸如网络14)的实施用于快速交换数据包(该数据包可包括数据包或任何其他分立数据单元)的机制或协议。通常,实施这些机制的这些转接网络被称为“数据交换网络”或“数据包交换网络”。多协议标签交换(MPLS)是指网络14可实施为经由通过网络14的一个或多个路径交换数据包的机制的一个示例。且根据本公开的技术,网络14还可实施MPLS来以每个数据包为基础提供服务信息。为了说明的目的,本文中假设网络14实施MPLS数据携带和服务识别机制,且因此,本文中网络14可被称为“MPLS网络”。尽管下文针对MPLS进行了描述,但双倍宽度标签分发技术可被采用标签来通过网络转发数据包的任何网络设备使用。
网络14的MPLS数据携带机制可被视为位于开放式系统互连(OSI)模型的层2与层3之间,且通常被称为层2.5协议。网络14可实施一个或多个MPLS协议以协商和建立用于封装和通过网络转发许多不同类型的数据包(包括IP数据包)的LSP。MPLS在其包括网络14可实施为在网络中交换MPLS标签的一套协议(诸如标签分发协议(LDP)和用于建立流量工程LSP(诸如资源保留协议(RSVP)或其扩展(例如,所谓的RSVP流量工程或RSVP-TE协议))这层意义上可被视为“协议”。关于MPLS的其他信息和MPLS的各种特征以及关于MPLS的通用架构信息可在由互联网工程任务组(IETF)的网络工作组于2001年1月筹备的题为“MutiprotocolLabel Switching Architecture”的征求意见(RFC)3031中找到,将其整体结合于此供参考。
本公开中描述的技术扩展了MLPS,从而提供关于OSI层4(称作“传输层”)到层7(称作“应用层”)的服务和应用的信息以及关于那些服务和应用的用户信息。以这种方式,服务实例可以称作“L4到L7服务实例”。本公开的技术扩展了MPLS,从而为网络设备(诸如网络14的网络设备12)提供关于更高等级OSI模型服务的信息。
如上所述,根据本公开的技术,网络设备12形成和利用双倍宽度MPLS标签,其中双倍宽度MPLS标签可以包括服务实例部分和服务信息部分。服务实例部分通常定义解释服务信息部分的值所在的上下文(context)。因此,服务标签的服务信息部分还可以称作服务标签的上下文部分。支持服务标签的上下文部分的使用的网络设备(诸如网络设备12)从MPLS标签栈中的标签的上下文部分读取上下文值。
标签的上下文部分的值可以用于识别网络设备内的表,在该表中查询跟随在标签的上下文部分之后的标签的服务信息部分的数据。上下文(或服务实例)通常可以与数据包所起源和/或作为数据包目的地的客户设备中的任一个或全部对应。因此,标签的上下文部分可以将特定的上下文分配到紧随在标签的上下文部分之后的标签的服务信息部分。作为上下文标签怎样影响之后的MPLS标签的示例,网络设备将MPLS标签的服务信息部分具有相同值但标签的上下文部分不同的两个MPLS封装数据包不同地解释。关于上下文标签的常规使用的进一步信息可在由互联网工程任务组(IETF)的网络工作组于2008年8月筹备的题为“MPLS Upstream Label Assignment and Context-Specific Label Space”的征求意见(RFC)5331中找到,将其整体结合于此供参考。除了具有两个分离的标签,一个用于上下文以及一个用于上下文内的服务信息之外,本公开技术中的网络设备12利用具有上下文(或服务实例)部分和服务信息部分的单个标签。标签可以比传统MPLS标签宽,并且分配给服务实例和服务信息的部分可以比MPLS标签的传统宽度更宽或更窄。
除了MPLS标签具有比普通MPLS标签更多的位数以外,网络设备还可以灵活地解释双倍宽度的MPLS标签并且摆脱标准定义的语义。例如,诸如管理员的用户可以配置网络设备12以将双倍宽度标签解释为具有两个以上的部分。通常,双倍宽度的MPLS标签被解释为具有两个以上的部分,诸如服务实例部分和服务信息部分。网络设备可以将双倍宽度标签的服务实例部分的值与用于解释服务信息部分的值的上下文相关联。服务信息部分定义由网络设备12应用于由双倍宽度MPLS标签封装的数据包的一个以上网络服务或应用。网络设备可以基于双倍宽度MPLS标签的服务实例部分的值提供的一些服务和/或应用,包括内容缓存或与网络、服务、应用或协议有关的任何其他信息。本公开还提供了使用TLV来定义具有多于20位的服务标签(例如,40位标签)的语法和语义的技术。
支持双倍宽度MPLS标签的使用的网络设备还允许不在同一网络上解释双倍宽度MPLS标签的网络设备,同时仍然允许使用双倍宽度MPLS标签。即,双倍宽度MPLS标签的使用可以提供与被配置为进行MPLS的传统网络设备的向后兼容。为了允许两种网络设备在同一网络上的混合,诸如网络管理员的用户可以配置网络设备12来将服务实例和服务信息部分解释为具有相同的宽度。根据本公开的技术,支持双倍宽度MPLS标签的网络设备将第一部分解释为服务实例标签并且将第二部分解释为服务信息部分。
作为支持和不支持双倍宽度的设备工作的混合网络的示例,网络设备12A可以支持双倍宽度MPLS标签。网络设备12A和12C可以支持双倍宽度MPLS标签,而网络设备12B可以不支持双倍宽度MPLS标签。网络设备12A可以将具有相等的服务实例和服务信息部分的双倍宽度MPLS标签应用于数据包并且将MPLS封装数据包转发到网络设备12B。因为网络设备12B不支持双倍宽度MPLS标签,所以网络设备12B可以将双倍宽度MPLS标签的服务信息和服务信息部分分别解释为上下文标签和标准MPLS标签。网络设备12B可以忽视与标签相关联的服务信息并且可以仅将MPLS封装数据包转发到下一跳(本示例中,为网络设备12C)。网络设备12C解释服务实例和服务信息部分,网络设备12C可以将一个以上的服务应用于封装数据包并且可以将数据包转发到其下一跳。
双倍宽度MPLS标签的一个灵活性方面在于,诸如管理员的用户可以使用诸如应用程序接口(API)的程序接口来配置和/或重新配置网络设备,从而改变与双倍宽度MPLS标签的不同部分相关联的宽度以及该标签的任何部分可以具有的与上下文和那些上下文内的服务的任何关联。以这种方式,根据本公开的技术,双倍宽度标签被认为不具有标准规定的语法或语义。相反,在部署有被实现为识别和解释双倍宽度标签的设备之后,为双倍宽度的标签分配语法和语义。管理员可以基于网络设备12可以提供或预期提供的服务数量,来选择MPLS标签的服务实例部分的位的宽度。为了为更高的服务数分配空间,管理员可以将网络设备12配置为为双倍宽度MPLS标签的服务信息部分分配更多的位数,并且为服务实例部分分配更少的位数。如果服务数量和服务信息量较低,则管理员可以配置网络设备12为服务信息部分分配较少的位。
管理员可以配置网络设备12以与双倍宽度MPLS标签的服务信息部分类似的方式来分配服务实例部分的大小。如上所述,双倍宽度MPLS标签的服务实例部分可以包括用于识别服务上下文的用户标识符或其他数据。例如,管理员可以根据客户和/或服务器数量或在网络14内表示的服务实例数,来配置网络设备12怎样解释双倍宽度MPLS标签的服务实例部分的大小。如果管理员希望提供随后可能需要用于附加的定制者但是当前不需要的额外的空间,则管理员也可以将更多位分配给标签的服务实例部分。
作为管理员重新配置网络设备的另一示例,如果对一个以上的服务的订阅者数变得更大,并且分配给服务信息部分的标签空间量不足以给每个订阅者唯一的标识符,则管理员可以选择重新配置网络设备12,以将更多的位分配给双倍宽度MPLS标签的服务信息部分,并且将更少的位分配给标签的服务实例部分。
在又一示例中,网络管理员可以选择重新配置网络设备12,从而为双倍宽度MPLS标签的服务实例部分分配更多位。如果管理员希望对网络添加额外的服务,并且标签的服务信息部分中可用的位数不足以在没有重复的条件下分配提供特定服务实例值的各个服务,则管理员可以选择将更多位分配给标签的服务信息部分。管理员也可以选择将额外位分配给服务信息部分,使得存在可用于管理员可添加的用于将来服务的额外空间。
为了配置网络设备12,诸如管理员的用户可以使用软件开发工具包(SDK)。SDK可以允许用户汇编可以通过可兼容程序接口在网络设备上执行的本地代码、对象代码、字节代码或其他程序,并且允许用户经由网络设备12提供的API将指令提供到网络设备12。管理员可以在没有连接到即将配置的网络设备并且与即将配置的网络设备具有不同的硬件结构的计算设备上创建配置信息。计算设备执行允许用户为网络设备12的开发配置数据的SDK。以这种方式,管理员可以在设备上创建配置信息。然后,计算设备可以经由API将配置数据提供到网络设备12。另外地或可选地,一个以上的网络设备12可以实现SDK,并且用户可以登录网络设备、经由远程设备在网络设备上执行SDK并且使网络设备遍及网络14分发配置数据。
例如,管理员可以使用台式计算机来使用SDK(诸如Junos或Junos Space SDK)来汇编用于网络设备12A的配置信息。SDK可以允许管理员使用诸如C、C++、Java、专用领域语言(诸如路由语言)或任何其他编程语言的一种以上的编程语言,来创建用于一个以上网络设备的配置信息。
一旦管理员创建了详述一个以上的网络设备12可以怎样解释双倍宽度MPLS标签的配置信息,并且希望将其上传到一个以上的网络设备时,管理员可以使用各种技术来重新配置网络设备。管理员可以发起将管理员的网络配置信息传输到一个以上的待配置网络设备的网络传输,该网络传输诸如安全副本协议(SCP)、文件传输协议(FTP)或另一相似网络文件传输会话。管理员还可以使用可以本地或远程执行的命令行界面(CLI)来配置一个以上的网络设备。
不同于独立地配置各个网络设备12,管理员可以使用网络传输或命令行界面来配置一个网络设备,并且根据网络设备12来使用诸如标签分发协议(LDP)、资源预留协议-流量工程(RSVP-TE)、多协议边界网关协议(MP-BGP)或能够分发MPLS标签信息的另一协议的协议扩展版本,从而在网络14中分发与双倍宽度MPLS标签的一个以上部分相关联的配置信息。例如,管理员可以使用上述命令行界面或网络传输机制来配置诸如网络设备12A的一个网络设备。网络设备12A可以利用标签分发协议来建立用于一个以上服务实例的LSP,并且将与一个以上服务实例相关的配置信息发送到同一LSP上的其他网络设备。
在一些示例中,网络设备12实现LDP或诸如MP-BGP的另一协议,以建立通过网络14的至少一个路径18。为了示例的目的,LDP作为一个示例实现方式来讨论。网络设备还可以实施LDP以建立其他路径,诸如通过网络14的路径20。除了建立通过网络14的路线以外,网络14还可以利用LDP的扩展版本来将服务信息通信到网络14上的其他网络设备,诸如网络设备12B和12D。即,实施协议的设备可以通信关于一个以上的等级4到等级7服务的信息,从而提供MPLS封装数据包以及关于那些一个以上的服务的特定信息。根据本公开的技术,网络设备12A可以将服务标签(诸如包括服务实例和服务信息部分的双倍宽度标签)的语法通信到一个以上的上游或下游网络设备,诸如网络14中的网络设备12。根据本公开的技术,标签请求消息指定服务实例,而且支持特定长度的标签(例如,40位的标签),并且请求用于服务实例的特定长度的标签。作为响应,标签映射消息关联用于服务实例的该特定长度的标签。
更具体地,网络14可以包括上述多个网络设备12,这些网络设备12可以如上所述地代表LSR。网络设备12A、12C和12E均可以位于网络14的边缘,并且因此在本文中均可以被称为“标签边缘路由器”或LER。通常,诸如网络设备12A、12C和12E的LER根据诸如LDP的网络协议来建立通过网络14的一个以上的路径。关于LDP、LDP的各种服务和特征的其他信息以及关于标签和LDP到MPLS的应用的一般信息可在由互联网工程任务组(IETF)的网络工作组于2001年1月筹备的题为“LDP Applicability”的征求意见(RFC)3037中找到,将其整体结合于此供参考。
在图1的示例中,网络设备12A建立经由链路20A从网络设备12A流至网络设备12B、并且经由链路20B从网络设备12B流至网络设备12C的通过网络14的第一标签交换路径18。网络设备12A还建立经由链路21A从网络设备12A流至网络设备12D、并且经由链路21B从网络设备12D流至网络设备12E的第二标签交换路径。诸如路径18和20的路径通常代表根据一个MPLS信令协议(例如,LDP)建立的网络流量的单向流动。因此,当网络设备12A根据LDP版本建立路径18和20时,路径18会仅将来自网络设备12A的网络流量发送或携带至网络设备12C,而不将来自网络设备12C的网络流量发送或携带至网络设备12A。类似地,路径20可以仅将来自网络设备12A的网络流量发送或携带至网络设备12E,而不将来自网络设备12E的网络流量发送或携带至网络设备12A。
考虑沿着给定路径的网络流量的该单向流动,对于各个路径,一个网络设备可以称作“入站网络设备”而另一个网络设备可以称作“出站网络设备”。对于路径18,网络设备12A可以表示入站网络设备,而网络设备12C可以表示出站网络设备。对于路径20,网络设备12A可以再次表示入站网络设备而网络设备12E可以表示出站网络设备。网络设备12B和12D既不作为流量进入路径18的入站点又不作为流量离开路径18的出站点,并且可以称为“转接网络设备”。当网络设备12B和12D交换标签(例如,MPLS标签栈的传输标签)时,网络设备12B和12D可以称作“标签交换路由器”或LSR。
网络设备12A可以通过首先发现实施LDP的其他网络设备12来建立路径18和20。这些其他网络设备12可以称作“LDP同级(peer)”。当发现各个LDP同级时,设备12A可以发起与发现的一个网络设备12的LDP会话。然后,网络设备12A可以经由LDP会话诸如通过交换标签(包括双倍宽度MPLS标签)所采用的方法来协商LDP会话的参数。在协商参数之后,网络设备12A和另一个网络设备12根据所协商的参数来交换一个以上的标签。
例如,网络设备12A可以建立与网络设备12B的LDP会话,从而交换标签。网络设备12A可以经由所建立的LDP会话,来通告转发等价类(FEC)和标签或标签的一部分(诸如服务实例部分)之间的绑定(binding)。FEC是指给定的网络设备以相同的处理(诸如应用相同的服务或应用于数据包的服务)从相同的接口向外转发到相同的下一跳的数据包的集合。双倍宽度MPLS标签的一部分可以唯一地识别FEC,并且各个网络设备12可以保持多个FEC。网络设备12A还可以从网络设备12B和12D接收FEC和标签之间的绑定。网络设备12A可以利用已经由网络设备12A保持的那些绑定,来解析从网络设备12B和12D接收的绑定从而解析通过网络14的路径。网络设备12均可以进行该交换直至各个网络设备12都保持网络14的拓扑的表示。
作为怎样建立与双倍宽度MPLS标签一起工作的FEC的示例,管理员可以以如上所述的双倍宽度MPLS标签配置信息来配置网络设备12A(在图1的示例中是LER)。配置信息可以包括关于在一个以上的双倍宽度MPLS标签中存在多少部分的数据、标签的各个部分的位的宽度、关于各个部分的数据类型信息、为以一个以上的双倍宽度MPLS标签封装的数据包提供的一个以上的服务以及关于怎样解释标签的部分的信息。关于怎样解释这些部分的信息可以指示网络设备对双倍宽度MPLS标签的各个部分进行什么操作和为双倍宽度MPLS标签栈中封装的数据包提供什么服务。
网络设备可以对包括一个以上的双倍宽度MPLS标签的标签栈进行的示例操作包括去除标签、添加标签、交换标签或对标签的一部分执行操作。诸如LSR的网络设备可以在已经完成一个以上的服务时,去除与那些一个以上的服务对应的标签。LSR还可以在MPLS封装流量离开网络的MPLS使能部分时去除标签。
网络设备12A可以利用诸如LDP或MP-BGP的协议,来建立经由链路20A从网络设备12A流至网络设备12B,并且通过链路20B在网络设备12B和网络设备12C之间流动的通过网络14的第一标签交换路径18。网络设备12A还可以建立与网络设备12B的FEC,该FEC使一个以上的双倍宽度MPLS标签的一个以上的部分的值与下一跳、一个以上的服务和发送一个以上的标签所经由的接口相关联。此外,网络设备12A可以使用LDP或MP-BGP的扩展形式,经由链路20A将关于MPLS标签的配置信息发送到网络设备12B。网络设备12B可以也使用LDP或MP-BGP的形式,经由链路20B将相同的信息通信到网络设备12C,并且还可以在服务实例值、网络接口和到网络设备12C的下一跳中的一个以上之间建立FEC。
基于该拓扑,网络设备12可以解析拓扑,以确定转发与各个FEC相关联的数据包所利用的通过网络14的一个以上的路径。在一些示例中,因为FEC可以用于确定沿着给定路径的下一跳和应用于与FEC相关联的MPLS封装数据包的一个以上的服务,所以这些绑定可以称作标签或标签的部分与下一跳之间的绑定或关联。基于这些绑定,通过网络14的各个路径可以与识别沿着路径的各个后续下一跳并且为与各个FEC相关联的数据包提供的服务的一个以上(并且经常多个)的标签相关联。网络设备12A还可以经由管理方面或MPLS的协议(例如,RSVP)来保留带宽或其他资源。通过使用各种协议的管理方面,网络设备12A还可以确保对于给定路径的特定服务质量、等级或类别。例如,网络设备12A可以根据RSVP保留50兆位每秒(Mbps)的带宽以用于路径18和/或路径20。
在根据MPLS建立路径18之后,网络设备12A可以从一个客户端设备16接收数据包。在接收数据包后,网络设备12A可以通过检查数据包来确定数据包属于哪个FEC,并且基于FEC,将包括相应的双倍宽度MPLS标签的MPLS栈附加到数据包。网络设备12A可以将多个标签推入标签栈中。然后,网络设备12A可以根据标签沿着通过网络14的给定路径(例如,路径18)来路由数据包。
假设网络设备12A经由路径18来转发数据包,则网络设备12B接收到具有所附标签栈的数据包。网络设备12B可以检查可包括传输标签的顶部标签,该传输标签定义对应于对于路径18与网络设备12A相关的网络设备12B的“下一跳”。基于存储的配置信息,网络设备12B解释标签栈的双倍宽度标签的一个以上的部分,并且基于双倍宽度标签来对MPLS封装数据包应用一个以上的服务。然后,网络设备12B可以将标签的全部或一部分与另一标签或标签的一部分交换,其中网络设备12B将另一标签或标签的一部分与路径18相关联,其中该交换可以包括去除或出栈由网络设备12A附加的原始标签并推入或附加新标签,或改变当前标签的一个以上的部分。例如,网络设备12B可以出栈将网络设备12B识别为下一跳的传输标签,然后推入将网络设备12C识别为下一跳的标签。
在接收MPLS封装数据包之后,网络设备12B还可以改变MPLS标签栈中的一个以上的标签的一个以上的部分。网络设备12B可以对一个以上的双倍宽度MPLS标签的一个以上的部分进行添加、减去或进行另一数学运算或诸如XOR或NAND运算的布尔运算。网络设备12B可以改变标签的部分,这是因为改变这些部分可以将关于一个以上的服务的状态信息提供给接收数据包的下一个网络设备。在网络设备12B对所接收的数据包进行订阅者账单服务的情况下,例如,标签的部分可以指示诸如用户使用的带宽或流量的量的使用。网络设备12B可以增加双倍宽度MPLS标签的部分,从而向下一网络设备指示与MPLS标签相关联的用户使用了一些额外的资源量。
在接收数据包之后,网络设备12B可以经由链路20B沿着路径18将数据包转发至网络设备12C。网络设备12C可以检查标签,并确定识别路径18的标签或标签部分,这可以使得网络设备12C从路径18中去除数据包并将数据包转发至其目的地。网络设备12C可以从MPLS报头的标签堆栈中去除或出栈标签,并将数据包转发至原始数据包报头(诸如IP报头)中指示的目的地,而不是基于MPLS报头来转发数据包。网络设备12C然后可以经由多个路径中的任一个将数据包转发至目的地,所述路径如图1中由从网络设备12C出射的多个箭头表示。以这种方式,网络14可以实施MPLS协议以建立路径并根据与路径相关联的标签沿着所述路径交换数据包。在这方面,诸如路径18的路径可以称作标签交换路径(LSP)。
与LSP18类似,网络14还可以形成其他LSP,诸如LSP20。在形成LSP20时,网络设备12A、12D和12E可以发现彼此并使用诸如LDP或MP-BGP的协议建立网络拓扑。LSP20经由链路21A从网络设备12A流至网络12D,然后经由链路21B流至网络设备12E。对于链路18,经由LSP20前行的数据包可以从入站设备12A单向地流至出站设备12E。网络设备12A、12D和12E可以使用诸如LDP、RSVP或MBGP的协议建立经由LSP20的一个或多个FEC。然而,网络设备12A、12D和12E传输的标签可以不同于在路径18上传输的标签。如上所述,网络设备可以将FEC与一个或多个服务、下一跳以及网络设备的接口相关联。网络设备12A可以传输具有标签的MPLS封装数据包,该标签包括具有经由一个接口(例如,网络设备12A和网络设备12B之间的接口)的一宽度组的一组标签部分以及具有经由另一个接口(例如,网络设备12A和网络设备12D之间的接口)的不同宽度组的另一组标签部分。
网络14可以实施MPLS的原因有多个。第一,MPLS将路径选择和路径决定移至网络的边缘,从而提高网络核心中的转发性能,为了进行示出,在图1的示例中,只有网络设备12A(或LER)检查数据包以分别确定所述数据包属于哪个FEC以及由原始数据包指示的目的地。然而,转接网络设备(transit network device)12B和12D基于所附标签转发数据包,且可以忽略进一步的数据包检查。尽管诸如网络设备12A、12C和12E的LER可以建立和终止路径,并因此用作入站和出站网络设备(在允许数据包进入路径和从路径中去除数据包之前执行该检查),但诸如网络设备12B和12D的转接网络设备可以放弃检查而是基于标签来转发数据包,并不考虑每个数据包对应的协议。结果,诸如网络设备12B的转接网络设备可以更高效地转发数据包,因为网络设备12B可以基于标签来转发数据包而不必执行另外的数据包检查。
第二,诸如网络14的MPLS网络可以传输对应于多个不同协议(包括IP)的任何类型的数据包或网络流量。在这方面,MPLS在网络核心中可以不需要任何的专用协议硬件结构,并且可以被考虑为是协议无关的。因此,服务供应商可以采用MPLS网络14来为实施各种网络结构以形成客户端网络(诸如客户端网络16)的各种定制者服务。
网络设备12A可以将确定的标签推入数据包的标签栈中,并将具有该MPLS报头的数据包转发至网络设备12B。网络14的网络设备12B可以经由如上所述根据LDP或另外的协议建立的路径18,从网络14的网络设备12A接收数据包。接收的数据包可以包括一个或多个标签,每个标签包含两个以上部分,诸如服务实例部分(service instance portion)和服务信息部分(service information portion)。服务实例部分可以定义为MPLS封装数据包提供的一个或多个服务,而服务信息部分可以指示关于与数据包相关联的一个或多个服务的一些情况。
网络设备12B通常可以检查封装数据包中的服务实例部分和服务信息部分。基于服务实例部分和服务信息部分的内容,网络设备12B可以向数据包应用一个或多个服务。服务可以包括以下中的一个或多个:流量日志(traffic logging)、订阅者身份、上下文信息或另外的网络服务或应用。网络设备12B可以将栈的顶部标签和由网络设备12B保持的新标签进行交换,其中,新标签与作为沿着路径18的下一跳的网络设备12C相关联。网络设备12B然后可以根据新标签经由路径18将数据包转发至网络设备12C。网络设备12C可以在将原始数据包(例如,通过入站网络设备12A接收的数据包)转发至由数据包指示的目的地之前,出栈MPLS标签栈中的所有标签。
图2为示出了执行本文所描述的双倍宽度MPLS标签传输技术的路由器22示例的框图。路由器22可以表示与网络设备12B类似的转接网络设备,然而,所述技术可以由包含入站和出站网络设备的任意网络设备以及利用标签来转发流量的任何其他网络设备来执行。
在图2的示例中,路由器22包括分别经由链路24A-24N和26A-26N来接收并发送数据包(诸如数据包流)的接口卡23A-23N(统称IFC23)。路由器22可以包括底盘(未示出),所述底盘具有用来接收一组卡(包括IFC23)的多个插槽。每个卡可以被插入到底盘的对应插槽中,以用来经由高速开关(switch)30和内部数据路径32A-32N(统称为内部数据路径32)将卡电耦接至路由引擎28。
开关30还提供每个IFC23之间的互连路径。例如,开关30可以包括开关结构(switch fabric)、开关设备(switchgear)、可配置网络开关或插座(hub)或其他高速切换机构。内部数据路径32可以包括任何形式的通信路径,诸如集成电路中的电路径、外部数据总线、光学链路、网络连接、无线连接或其他通信路径。IFC23可以经由多个物理接口端口(未示出)耦接至网络链路24A-24N和26A-26N。通常,IFC23均可表示一个或多个网络接口,通过所述网络接口,路由器22可以与网络的链路(诸如,网络14的链路20)连接。
通常,路由引擎28操作为路由器22的控制单元。路由引擎28可以包括处理器、可编程处理器、通用处理器、集成电路、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)或能够实施本文所述技术的任何类型的硬件单元中的一个或多个。路由引擎28可进一步包括计算机可读存储介质,诸如动态存储器(例如,随机存取存储器或RAM,动态RAM或DRAM以及高速缓存存储器器)和/或静态存储器(例如,静态RAM或SRAM、只读存储器和闪存),以及存储设备,诸如光盘ROM或CDROM、硬件驱动器、RAM驱动器和数字化视频光盘(DVD)驱动器。在一些情况下,计算机可读存储介质可以包括使可编程处理器执行本文描述的技术的指令。
路由引擎28可以进一步包括MPLS协议模块36和用户界面(UI)模块38。MPLS协议模块36表示执行上述信令和路径管理协议(诸如,上述的LDP、上述RSVP、上述MP-BGP或其他协议)的硬件和/或软件模块。当以软件实施时,假设路由器22包括用来执行软件的对应硬件,诸如处理器,以及用来存储软件指令的对应硬件,诸如计算机可读存储介质。MPLS协议模块36可以被扩展为不仅执行这些协议,而且执行本文描述的双倍宽度MPLS传输技术。用户界面模块38可以表示这样的硬件和/或软件模块,即,所述硬件/和软件模块表示管理员或其他用户(诸如管理员39(“管理员39”))可以与之交互以配置和/或查看标签服务信息的用户界面,如在下文中详述。
路由引擎28可以进一步包括和保持反映网络的拓扑的路由信息34。路由器22可以以表格、数据库、链路列表、基数树(radix tree)、数据库、平面文件或任何其他的数据结构中的一个或多个形式保持路由信息34。基于路由信息34,路由引擎28为IFC23生成转发信息40A-40N(“转发信息40”)。
每个IFC23包括根据由路由引擎28产生的转发信息40和MPLS转发表42A-42N(“MPLS转发表42”)来转发数据包的转发部件(未示出)。具体地,IFC23的转发部件基于转发信息40为每个入站数据包确定下一跳,识别与所述下一跳相关联的对应一个IFC23,并经由开关30和对应的数据路径32将数据包中继至适当的IFC23。
IFC23可以进一步包括和保持MPLS转发表42。MPLS转发表42将与进入的MPLS数据包相关联的标签或标签的一部分和下一跳相关。根据本公开的技术,MPLS转发表42可以被扩展为将与双倍宽度MPLS标签的一个或多个部分相关联的一个或多个服务进行相关联。转发表可以包括双倍宽度MPLS标签的每一部分的类型和长度的定义或信息设定量(setamount)。即,每一个MPLS转发表42可以包括用于标签的一个或多个部分的条目,其中,每个标签条目包括指示标签的每一部分的字段数量和大小的一个或多个字段、对标签采取的一个或多个动作、为标签提供的一个或多个服务、和/或与标签的每一部分相关联的范围或数据类型以及设定长度或量。MPLS转发表42的这方面在图2中示出为服务信息44′,以表示该服务信息为服务信息44的衍生物。
在一个示例中,路由引擎28保持MPLS转发表42的主副本(master copy),并将这些表的副本分发至每个IFC23。路由引擎28可以对MPLS转发表42的条目进行添加、去除或修改,并可以向IFC23分发更新的副本。在另一个示例中,路由引擎28可以解析MPLS转发表42中的信息,并基于与每个IFC23相关联的接口仅发送每个IFC23所需的转发信息。
根据例如LDP的标签分发技术,路由器22可以解析通过路由器22所属网络(诸如网络14)的路径。为了解析路径,路由器22的路由引擎28可以采用MPLS协议模块36,以与其他对等网络设备来交换路由信息或更改路由信息。在LDP的情况下,MPLS协议模块36与LDP等同者建立一个或多个LDP会话以交换路由信息34。因此,路由信息34可在通过网络路由的MPLS数据包中包括由路由引擎28使用的标签空间。因此,路由引擎38可以根据由MPLS协议模块36执行的MPLS协议,建立或加入通过网络的一个或多个路径。
当建立路径时,MPLS协议模块36可以动态地协商或以其他方式指定与双倍宽度MPLS标签的部分相关联的服务信息,其中双倍宽度MPLS标签用于经由建立的给定路径转发MPLS数据包。管理员39可以用一个或多个FECS配置MPLS协议模块36,其中每一个FECS具有两个以上标签部分以及类型和长度或信息设定量,以经由与用户界面模块38所呈现的用户界面交互来协商每条路径。可替换地,管理员39可以静态地配置给定网络内的每个网络设备(例如,路由器22)的MPLS协议模块(类似于MPLS协议模块36),以定义服务信息的类型和长度或设定量,从而以每个相应的标签或标签的一部分进行传输。
尽管被示出为与用户界面模块38直接交互,但管理员39可以与另一个中间设备(诸如服务开通(provisioning)系统或设备)交互,以有利于网络设备的更有效配置。即,管理员39可以指定协商参数或服务信息(当静态地配置时)本身的范围,其中协商参数用于动态地确定范围,例如与标签的每个部分相关联的服务信息的类型和长度或设定量。服务开通系统然后可以与每个网络设备(诸如,路由器22)进行交互,代表管理员39来根据管理员39输入至服务开通系统的输入来配置这些设备。在该情况下,用户界面模块38可以提供服务开通系统或任何其他计算设备可以交互以输入配置信息(例如,以上所讨论的)所利用的用户界面。在这些情况下,用户界面可以接收输入脚本或定义命令列表的其他文件,以快速地输入配置。在这些情况下,用户界面可以包括例如命令行界面(CLI)。
在建立路径并且可能协商与沿着路径所使用的标签相关联的服务信息的范围后,路由引擎28可以更新路由信息34,以反映路径并将标签与特定路径的下一跳之间的绑定与相关性设置于一个或多个转发信息40和MPLS转发表42中,并且在各个MPLS转发表42中定义服务信息44′。路由引擎28可以继续解析路径,并且以此方式更新IFC23,结果,路由引擎28可以解析并且设置第一路径和第二路径(或,换言之,多个路径)于IFC23中。
另一方面,IFC23可以接收数据包。在为了示意性目的假定路由器22表示转接网络设备时,IFC23通常会接收与由路由引擎23解析的多条路径中的特定一条路径相对应的MPLS数据包。IFC23可以针对每个MPLS数据包检查由MPLS数据包中的MPLS报头限定的标签栈中所包括的最顶部或第一标签。例如,IFC23A可以在经由链路23A接收MPLS数据包并且以上述方式检查MPLS数据包后,使用所确定的顶部标签作为进入MPLS转发表42A中的密钥。IFC23A可以基于最顶部标签检索标签条目,并且基于服务信息44′确定与标签相关联的下一跳、采取的动作(例如,出栈、交换或进栈)以及服务信息的范围(例如,服务信息的类型和长度或设定量)。
然后,IFC23A可以采取由相应的标签条目所指定的动作。如果动作指示交换(最有可能考虑的是假定路由器22作为转接网络设备),则IFC23A可以用动作指示的标签替代(交换)最顶部标签,并且可能基于服务信息44′添加、去除和/或更新与先前的标签相关联的服务信息。即,标签条目可以指示与标签相关联的服务信息需要与其他服务信息44′交换,或指示与标签相关联的服务信息的一部分需要被替代或去除。可替换地,IFC23A可以以保留任何相应的服务信息不改变的方式交换标签。
如果动作指示出栈,则IFC23A可以从标签栈去除顶部标签。如果动作指示进栈,则IFC23A可以去除标签栈中最顶部标签,并且以与出栈类似的方式去除与标签相关联的任何服务信息,并且进栈动作仅将由标签条目限定的服务信息设定量添加在栈中相关标签的下方。
在采取上述动作之后,IFC23A可以将MPLS数据包转发至与下一跳相关联的一个IFC23,如由转发信息40A指定的。即,IFC23A使用下一跳作为密钥访问转发信息40A,以检索与下一跳相关联的条目。下一跳条目可以包括分配给沿着路径的下一个网络设备的标签,其中该路径与最顶部标签相关联。下一跳条目可以识别与下一跳耦接的一个IFC32,并且IFC23A可以经由开关30以及数据路径32将MPLS数据包转发至所识别的一个IFC32,该所识别的一个IFC32继续将MPLS数据包经由相应的一条出站链路26转发。
管理员39可以进一步与用户界面(上述相同的用户界面或不同的或第二用户界面)交互,以查看与一个或多个双倍宽度MPLS数据包相关联的信息。具体地,管理员39可以与用户界面交互,以使路由引擎28将IFC23配置为开始监控与一个或多个MPLS标签的一个或多个部分相关联的流量。
一旦以此方式进行配置,IFC23可以在访问特定标签条目后,确定与特定标签相关联的服务信息44′的每个部分的类型和长度,如上所述。为了记录该信息,IFC23可以访问与每个MPLS报头的标签栈中的一个或多个标签相关联的标签部分,其中其是由MPLS转发表42A中每个相应的标签条目所定义的(例如,由服务信息44′所定义的)。IFC23可以根据服务信息的相应范围,复制、解析或以其他方式确定该服务信息,并且将该服务信息转发至路由引擎28。路由引擎28可以将该记录的服务信息作为服务信息44来保持。服务信息44可以包括每个标签的条目,其用于识别服务信息的类型和长度以及IFC23提取的实际服务信息。
用户界面模块38可以访问服务信息44,以检索服务信息44中的一个或多个条目。管理员39可以通过提供用户界面模块38来检索服务信息44的条目所使用的标准,而直接地或经由另一计算设备(例如,开通服务系统)对服务信息44进行过滤。例如,管理员39可以指示用户界面仅提供对应于特定标准(例如,特定服务)的服务信息。然后,用户界面模块38可以访问服务信息44,并且仅检索与管理员39指定的标准所对应的服务信息44。此外,管理员39可以指示由服务信息所识别的特定源地址,并且用户界面模块38可以仅检索用于指示由管理员39所指定的特定值的服务信息44。
此外,用户界面模块38可以执行其他操作,以使管理员39查看和检索数据变得容易。在这方面,用户界面模块39可以预处理所检索到的服务信息44的一部分,以经由用户界面以图表、表格、曲线或其他图形的图形方式呈现这些部分。结果,管理员39可以更快速地查看和理解服务信息44,并且可行地对通过网络(例如,网络14)的路径(例如,路径18)进行更好地检修或调试
图2中示出的路由器22为了示例的目的而被示出。可替换地,路由器22可以具有中央化控制单元,其具有路由引擎和转发引擎。在该示例中,转发功能未分布到IFC32,而是集中于转发引擎中。然而,为了便于示出,本发明的技术的原理在路由器22的背景下示出。
路由器22表示可以发布标签请求消息的网络设备的示例。同样地,路由器22还表示可以向服务标签封装的数据包提供服务的服务网络设备的示例,其中服务标签(例如,40位标签)以标签映射消息发布。控制单元(例如,被配置为执行路由引擎28的一个或多个基于硬件的处理元件)可以被配置为执行与产生标签请求消息和/或标签映射消息相关联的一个或多个任务,以及在路由器22被配置为服务网络元件时执行服务。
因此,路由器22表示包括被配置为发送和接收网络数据的一个或多个网络接口的网络设备的示例。路由器22可以进一步包括控制单元,被配置为经由一个或多个网络接口接收根据标签交换协议转发的数据包。控制单元然后可以确定服务网络设备要对数据包执行的服务。控制单元还可以经由一个或多个网络接口发送标签请求消息至服务网络设备。根据本公开的技术,标签请求消息可以指示对具有特定长度的标签的支持,其中特定长度大于20位。标签请求消息还可以指定要对数据包执行的服务。路由器22的控制单元然后可以经由一个或多个网络接口接收用于定义特定长度的标签的标签映射消息,作为对标签请求消息的响应。因此,控制单元可以将标签附加至数据包以形成多协议标签交换(MPLS)封装数据包,并且根据标签交换协议将该MPLS封装数据包转发。
路由器22还表示被配置为从第二网络设备接收标签请求消息的服务网络设备的示例。标签请求消息可以指示对具有特定长度的标签的支持,使得特定长度大于20位。标签请求消息还可以指定路由器22要对数据包执行的服务。然后,控制单元可以将特定长度的标签与服务相关联。控制单元还可以响应于标签请求消息,发送用于定义特定长度标签与服务相关联的标签映射消息。随后,路由器22的控制单元可以接收封装有标签的数据包,并且基于标签对数据包执行服务。
图3是示出了包括40位标签52的示例52位标签栈50的概念图。标签栈50包括经验使用的字段(EXP)54、栈底部(S)位56以及生存时间(TTL)字段58以及40位标签52。这些值根据RFC-3032来设定,RFC-3032为网络工作组中Rosen等人于2001年1月撰的“MPLS LabelStack Encoding”,(在http://tools.ietf.org/html/3032中可找到),通过引证将其结合于本文中。除了40位标签52之外,标签栈可以包括其他标签。在一些示例中,标签栈(例如,标签栈50)可以包括20位标签和40位标签的组合。此外,在又一些其他示例中,本公开的技术可以用于将标签扩展到20位标签和40位标签除外的其他位数的标签,并且可以用于定义这种标签的语法和语义。
40位标签(例如,40位标签52)没有预定的语义,并且可以用适合对至或自服务节点(例如,图1中的一个或多个网络设备12)的流量进行转发和识别的任何格式来编程。根据本公开的技术,标签的可编程性可以提供更灵活的服务部署模型,这是因为标签的格式可以被调整(tailored)为满足特定的服务要求。例如,开始的8位可以被编程为识别服务实例,以及接下来的32位可以用于识别该服务的定制者。网络设备12可以使用本公开的技术来编程40位标签(例如,40位标签52),例如参照图4至图9所描述的。
图4是示出了层4(L4)至层7(L7)服务实例能力指示符70的数据组的示例的概念图。指示符70通常与特定能力相关联,特定能力反过来与能力文件相关联。根据本公开的技术,网络节点(例如,网络设备12)指示使用RFC-5561中文件记载的进程,在RFC-5036会话初始化期间对40位标签的支持。
如在RFC-5561中所描述的,需要LDP能力通告的LDP增强在能力文件中指定,该能力文件描述增强的动机、指定实现增强时LDP的行为、包括IANA考虑部分(其请求TLV名称空间中码点的IANA分配)以及描述相关能力数据(如果存在)的解释和处理。指示符70符合RFC-5561的这些要求,以在如下所讨论例示时描述L4-L7服务实例能力。
指示符70包括U位72、F位74、类型长度值(TLV)码点76、长度值78、S位80、保留字段82以及兼容数据84。U位72对应于未知的TLV位,如在RFC-5036中所描述的。U位72的值可以是0或1,如在相关能力文件中所指定的。F位74对应于提前未知的TLV位,如在RFC-5036中所描述的。在该示例中,F位74的值被设定为0,这是因为能力参数TLV仅在不被转发的初始化能力消息中发送。
TLV码点76是识别特定能力的TLV。在该示例中,TLV码点76具有14位的长度以及作为互联网编号分配机构(IANA)对于给定的能力从TLV名称空间所分配的码点的值,如在相关能力文件中所请求的。S位80是状态位,其指示指示符70的发送方是通告与TLV码点76相对应的能力还是将其撤回。在该示例中,S位80的值被分配和解释为如下:
1:指示符70当前通告TLV码点76中指定的能力
0:指示符70当前撤回TLV码点76中指定的能力。
保留字段82表示为将来使用所保留的7位数据。长度值78是16位字段,其描述兼容数据84的长度。除被要求完全指定能力的TLV码点76之外,兼容数据84包括关于能力的任何信息。用于解释和处理兼容数据84的方法对于TLV码点76是特定的,并且在指定能力的兼容文件中描述了,如在RFC-5561中所描述的。如上所注意的,兼容数据84的长度是可变的,如由长度值78所描述的。
根据本公开的技术,兼容数据84描述与特定40位标签相关联的特定能力。因此,当一个网络设备12通告与特定40位标签相关联的能力,并且相应的TLV码点76不完全描述能力时,网络设备包括兼容数据84中进一步描述能力的数据。该描述可以包括例如将40位标签的40位分成两个以上字段的语法描述符和针对40位标签的每个字段的语义。语义通常指示如何解释字段的值,并且可以依赖于其他字段的值。
因此,在一些示例中,通告L4-L7服务实例能力的网络设备基于以上这些字段的描述符,构建符合指示符70的格式的L4-L7服务实例能力指示符(包括字段中的数据)。例如,根据本公开的技术,网络设备基于能力的TLV码点的IANA值,来设定L4-L7服务实例的TLV码点76的值,并且进一步在能力数据84中描述能力。
图5是示出了示例40位标签TLV90的概念图。网络节点(诸如网络设备12(图1))根据RFC-5036,在标签映射消息中通告MPLS标签映射。然而,在假设标签是20位时定义RFC-5036,并且RFC-5036作为“通用标签”TLV内的标签映射信息的一部分而被携带。因此,代替使用“通用标签”TLV来通告40位标签,网络设备12使用40位标签TLV(例如,40位标签TLV90)来通告40位标签。40位标签TLV90包括两个零值位92、94,之后是40位标签指示符96,其指示40位标签TLV90的类型是通告40位标签的TLV类型。零值位92、94可以在语义上分别与U位72和F位74基本一致。
长度字段98描述了在此情况下为40位的40位标签字段100的长度。在其他示例中,对于其他标签长度,长度字段98描述了当前通告的标签的合适长度。即,如果当前通告N位标签,那么当N是整数时,长度字段98具有指示与40位标签字段100相对应的字段(在此情况下应为“N位标签”字段)具有N位。此外,在该示例中,40位标签TLV90包括40位标签字段100中的实际40位标签值。因此,根据本公开的技术,与使用RFC-5036的通用标签TLV通告的20位标签相反,N位标签TLV类似于40位标签TLV90而可用于通告N位(例如40位)标签。
图6是示出了转发等价类(FEC)元素110的示例的概念图。网络节点(诸如一个网络设备12(图1))可以使用标签请求消息,从诸如不同的另一个网络设备12的同级(peer)请求标签映射消息。FEC元素“L4-L7服务实例”可以根据FEC元素110的格式定义,从而使得LDP扬声器可以将需要40位标签分配时的入站标签请求和请求的关联性关联至特定的L4-L7服务实例。
FEC元素110包括L4-L7服务实例112、地址族字段114和PreLen字段116。地址族字段114包括对用于L4-L7服务实例的转发等价类的地址族进行编码的数据。PreLen字段116通常对应于描述PreLen字段116随后的地址前缀的位的长度的字段。在该示例中,FEC元素110不包括地址前缀字段,因此,PreLen字段116具有值0。FEC元素110表示具有类型名“L4-L7服务实例”的FEC元素的示例,其中类型为“0x99”,值为“无值”。即,该“值”表示0值八位字节。
图7是示出了包括用于所请求服务的参数的数据的示例性L4-L7服务实例TLV120的概念图。当网络节点(诸如一个网络设备12)从服务节点请求用于特定服务实例的标签映射消息时,网络节点在标签请求消息内包括所请求服务所需的任何特定参数。这些参数可以包括用户标识符(用户ID)、服务类型、服务能力等。L4-L7服务实例TLV120表示这样的参数作为标签请求消息内的可选参数被携带的TLV示例。
在该示例中,L4-L7服务实例TLV120包括U位122、F位124、类型字段126、长度字段128、供应商ID字段130以及L4-L7服务实例参数数据132。U位122和F位124可在语义上分别与U位72和F位74基本一致。类型字段126包括0x3E00到0x3EFF的范围中的值。类型字段126的十六进制“3”的前面的0可以省略,使得类型字段126具有14位的长度来表示在0x3E00到0x3EFF的范围中的值,而非16位。即,类型字段126的值的二进制前缀可包括“111110________,”而非“00111110________”,其中下划线“_”表示非前缀位,具有值“0”或“1”。
图8是示出了标签请求消息140的示例的概念图。当网络节点(诸如一个网络元件12)需要给定服务节点(诸如不同的另一个网络元件12)处的可用的特定服务功能时,例如根据标签请求消息140的格式,网络节点使用标签请求消息请求该服务并且传递任何特定参数。然后,服务节点基于标签请求消息的内容分配40位标签。因此,服务设置和标签分发本质上是下游需求的。
在该示例中,标签请求消息140包括0位142、标签请求字段144、消息长度字段146、消息标识符(ID)字段148、FEC TLV字段150以及可选的参数字段152。标签请求字段144通常表示标签请求消息140是对标签(例如40位标签)的请求。消息长度数据146包括指定(例如消息ID字段148、FEC TLV字段150和可选的参数字段152的)标签请求消息140的长度的数据。
消息ID字段148通常包括指定用于标签请求消息140的唯一标识符的数据。FECTLV字段150包括关于图6描述的“L4-L7服务实例”TLV元素。因此,接收标签请求消息140的服务节点可以使用FEC TLV字段150的数据来确定用于分配40位标签的步骤和用于提取请求了标签的网络节点的可选参数的步骤。可选参数字段152包括包含图7的“L4-L7服务实例”TLV的实例的数据。
图9是示出了标签映射消息160的示例的概念图。响应于关于标签请求消息140(图8)描述的格式的标签请求消息的接收,连同任何所提取的可选的参数,服务节点为相应的服务分配合适的标签(例如40位标签)。在该示例中,标签映射消息160包括0位162、标签请求字段164、消息长度字段166、消息标识符(ID)字段168、FEC TLV字段170、40位标签TLV172和可选的参数字段174。通常,消息标识符(ID)字段168基本上对应于消息ID字段148,FECTLV字段150基本上对应于FEC TLV字段150,并且可选的参数字段174基本上对应于可选的参数字段152。
尽管FEC TLV170、40位标签TLV172和可选参数174的长度示出为32位,但是应了解,在各种示例中这些字段的长度可以不是32位。例如,如关于图5的40位标签TLV90所讨论的,40位标签TLV172可以具有72位的长度。
在该示例中,40位标签TLV172包括定义诸如图5的40位标签TLV172的40位标签TLV的数据。标签映射字段164包括表示标签映射消息160包括从40位标签到诸如标签请求消息140的标签请求的映射的数据。服务节点可以使用标签请求消息的数据来构建标签映射消息。即,服务节点可以接收类似于标签请求消息140的标签请求消息,并且以诸如标签映射消息160的标签响应消息作为应答。以此方式,标签映射消息160通常包括映射至在诸如标签请求消息140的标签请求消息中指定的服务的标签的数据。
图10是示出了根据本公开技术请求并提供40位标签的方法示例的流程图。为了说明,关于客户端设备、网络设备和服务网络设备描述了图10的方法。客户端设备可以对应于一个客户端设备16(图1),网络设备可以对应于诸如网络设备12A(图1)的标签边缘路由器(LER),并且服务网络设备可以对应于不同于网络设备12的、用于提供特定服务的一个网络设备12。
初始,在该示例中,网络设备(例如LER)创建指定用于特定长度(例如40位)的标签的服务和支持的标签请求消息(200)。标签请求消息可与图8的标签请求消息140一致。所以,标签请求消息可以包括指定用于相应客户端设备的FEC的转发等价类(FEC)TLV以及可选参数。FEC TLV可与图6的FEC元素100一致,同时可选参数可与图7的L4-L7服务实例TLV120一致。在任何情况下,网络设备将用于服务的标签请求消息发送给服务网络设备。
服务网络设备从网络设备接收标签请求消息(202)。作为应答,服务网络设备将标签与服务实例相关联(204)。具体地,标签具有由标签请求消息所表示的长度。例如,当标签请求消息表示对40位标签的支持时,标签映射消息包括被映射至服务实例的40位标签。标签映射消息可以与图9的标签映射消息160一致。因此,标签映射消息可以包括与图5的40位标签TLV90一致的40位标签TLV。当然,可使用类似的数据结构来支持其他长度的标签(例如具有大于20位的长度的其他标签)。
然后,服务网络设备将包括特定长度的标签的标签映射消息发送至请求网络设备(206)。因此,网络设备从标签映射消息检索标签(208)。例如,假设标签映射消息与图9的标签映射消息160一致,则网络设备可以提取包括在标签映射消息的40位标签TLV172中的与40位标签TLV90(图5)的40位标签100相对应的数据。因此,这些标签分发技术可被描述为本质上是下游需求的,其中当需要标签时,网络设备从下游服务网络设备请求标签。然后,网络设备可以基于标签的数据对网络设备的转发平面的元件编程。例如,假设网络设备与路由器22(图2)一致,那么路由引擎28可使用标签的数据更新路由信息34,这可进一步引起IFC23中的转发信息40的重新编程。步骤200至208可以为需要标签的各个服务而执行。因此,网络设备可以使用这些技术为一个或多个各种服务实例的一个或多个服务获得具有大于20位长度的标签。
在该示例中,在接收到一个或多个服务的标签后,客户端设备发送要隧穿通过网络(例如,图1的网络14)的数据包(210)。此外,如上所述,客户端设备是一个或多个特定服务、即服务网络设备提供的服务(为该服务分发有标签)的用户。网络设备从客户端设备接收数据包(202),并且确定要对数据包执行的服务的服务实例(204)。例如,网络设备可以基于从其接收数据包的客户端设备确定用于数据包的FEC。然后,网络设备利用与该服务实例内的服务相对应的标签封装数据包(216)。当然,网络设备还可以利用其他标签(例如用于其他服务的其他服务标签和/或与通过网络14的网络隧道相关联的标签)来封装数据包。
然后,网络设备转发封装的数据包(218)。具体地,网络设备沿着网络隧道转发封装的数据包,其中服务网络设备也是网络隧道的元件。因此,服务网络设备可以包括沿着网络隧道的一个“跳(hop)”。在接收到封装的数据包时(220),服务网络设备对数据包执行相应的服务(222)。服务网络设备可以检查封装数据包的标签栈的标签,以确定要对数据包执行的服务以及沿着网络隧道的下一跳。
在对数据包执行服务后,服务网络设备将数据包转发至下一跳。在一些示例中,服务网络设备在转发数据包之前交换标签栈顶部的标签。因此,服务网络设备可以包括网络的标签交换路由器(LSR)。如果服务网络设备是沿着网络隧道的最后一个设备(例如,出站LER),则服务网络设备可以通过从数据包移除标签栈来对数据包解封装。可选地,在一些示例中,沿着网络隧道的倒数第二个设备可以通过从数据包移除标签栈来对数据包解封装。
在一些示例中,网络设备不是在接收服务实例的数据包之前请求用于一个或多个服务实例的一个或多个标签,而是可以响应于接收从用户对该服务的数据包,请求用于服务的标签。
以该方式,图10表示包括以下操作的方法的示例:通过第一网络设备发送标签请求消息以从第二网络设备请求标签映射,其中标签请求消息表示对特定长度大于20位的标签的支持,并且其中标签请求消息指定由第二网络设备提供并且根据标签映射对随后转发至第二网络设备的数据包执行的服务;响应于标签请求消息,接收定义特定长度的标签的标签映射消息;通过第一网络设备将标签附加至数据包以形成多协议标签交换(MPLS)封装的数据包;以及通过第一网络设备根据标签交换协议转发MPLS封装的数据包。
同样地,图10还表示包括以下操作的方法的示例:通过第一网络设备从第二网络设备接收标签请求消息,其中标签请求消息表示对具有特定长度的标签的支持,其中该特定长度大于20位,并且其中标签请求消息指定要对数据包执行的服务;将特定长度的标签与服务相关联;响应于标签请求消息,发送定义与服务相关联的特定长度的标签的标签映射消息;接收用标签封装的数据包;并且基于标签对数据包执行服务。
本公开的技术可以根据各种不同的示例实现。在一个示例中,计算设备包括一个或多个网络接口以及控制单元,所述网络接口被配置为发送和接收网络数据,所述控制单元被配置为经由所述一个或多个网络接口发送标签请求消息以从服务网络设备请求标签映射消息,其中所述标签请求消息指示对具有大于二十位的特定长度的标签的支持,并且其中所述标签请求消息指定由所述服务网络设备提供并且将依照标签映射对随后被转发至服务网络设备的数据包执行的服务,响应于标签请求消息经由所述一个或多个网络接口接收限定特定长度的标签的标签映射消息,将标签附加至数据包以形成多协议标签交换(MPLS)封装的数据包,以及根据标签交换协议转发MPLS封装的数据包。
在另一个示例中,除了可以实施以上示例之外,所述特定长度包括四十位。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述控制单元被进一步配置为确定由服务网络设备提供的服务的服务实例,并且形成标签请求消息以指定与服务实例相关联的转发等价类(FEC),其中FEC表示将对数据包执行的服务的规范。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述控制单元被进一步配置为确定与服务相关联的一个或多个参数,并且形成标签请求消息以指定所述一个或多个参数。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述一个或多个参数包括从其接收数据包的客户端设备的用户标识符、表明服务的类型的服务类型、以及表明与服务相关联的能力的服务能力中的至少一个,并且其中,所述控制单元被配置为形成标签请求消息以指定特定于服务的转发等价类(FEC)并且以包括特定于FEC的TLV来携带用于所请求的服务的参数。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述控制单元被配置为经由所述一个或多个网络接口在标签分发会话期间,从服务网络设备接收服务实例能力指示符,其中所述服务实例能力指示符提供由服务网络设备支持的服务实例的指示,并且其中,所述服务实例能力指示符表明服务网络设备支持具有特定长度的标签。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述服务网络设备包括多个服务网络设备中的一个,其中所述控制单元被进一步配置为从所述多个服务网络设备接收多个服务实例能力指示符,至少部分基于从所述多个服务网络设备中的所述一个接收的服务实例能力指示符选择所述多个服务网络设备中的所述一个,并且基于该选择来发送所述标签请求消息至第二网络设备。
在另一个示例中,计算机可读介质在其上存储有指令,该指令在执行时,使第一网络设备的处理器发送标签请求消息以从第二网络设备请求标签映射,其中所述标签请求消息表明支持具有大于二十位的特定长度的标签,并且其中,所述标签请求消息指定由第二网络设备提供的并且将依照标签映射对随后被转发至第二网络设备的数据包执行的服务,接收定义特定长度的标签的标签映射消息,将标签附加至数据包以形成多协议标签交换(MPLS)封装的数据包,以及根据标签交换协议转发MPLS封装的数据包。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述特定长度包括四十位。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述指令进一步使处理器确定由第二网络设备提供的服务的服务实例,并且形成标签请求消息以指定与服务实例相关联的转发等价类(FEC),其中FEC表示将对数据包执行的服务的规范。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述指令进一步使处理器确定与服务相关联的一个或多个参数,并且形成标签请求消息以指定所述一个或多个参数。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述一个或多个参数包括从其接收数据包的客户端设备的用户标识符、表明服务的类型的服务类型、以及表明与服务相关联的能力的服务能力(capacity)中的至少一个,并且其中,所述指令使处理器形成标签请求消息以指定特定于服务的转发等价类(FEC)并且以包括特定于FEC的TLV来携带用于所请求的服务的参数。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述指令使处理器在标签分发会话期间从第二网络设备接收服务实例能力指示符,其中所述服务实例能力指示符提供由第二网络设备支持的服务实例的指示,并且其中,所述服务实例能力指示符表明第二网络设备支持具有特定长度的标签。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述指令进一步使处理器从包括第二网络设备的多个服务网络设备接收多个服务实例能力指示符,以及至少部分基于从第二网络设备接收的服务实例能力指示符选择第二网络设备,其中使处理器发送标签请求消息的指令包括使处理器基于该选择来发送标签请求消息至第二网络设备的指令。
在另一个示例中,一种方法包括:通过第一网络设备从第二网络设备接收标签请求消息,其中所述标签请求消息表明支持具有特定长度的标签,其中所述特定长度大于二十位,并且其中所述标签请求消息指定要对数据包执行的服务;将特定长度的标签与所述服务相关联;响应于标签请求消息,发送定义与所述服务相关联的特定长度的标签的标签映射消息;接收封装有标签的数据包;以及基于标签对数据包执行服务。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述特定长度包括四十位。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,为了表明支持具有特定长度的标签并且其中为了指定服务,标签请求消息包括指定与服务实例相关联的转发等价类(FEC)的信息,并且其中将特定长度的标签与服务相关联包括基于在标签请求消息中指定的FEC将特定长度的标签与服务相关联。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述方法可进一步包括从标签请求消息确定与服务相关联的一个或多个参数,并且至少部分基于所述一个或多个参数将特定长度的标签与所述服务相关联。
在另一个示例中,除了以上示例中的任一个之外还可以实施以下,所述一个或多个参数包括从其接收数据包的客户端设备的用户标识符、表明服务的类型的服务类型、以及表明与所述服务相关联的能力的服务能力中的至少一个,并且其中标签请求消息指定特定于所述服务的转发等价类(FEC)并且包括对于携带用于所请求服务的参数的FEC特定的TLV。
在另一个示例中,一种系统包括:网络设备和服务网络设备,其中网络设备被配置为发送标签请求消息以从服务网络设备请求标签映射,其中所述标签请求消息表明支持具有大于二十位的特定长度的标签,并且其中所述标签请求消息指定由所述服务网络设备提供以依照标签映射对随后被转发至服务网络设备的数据包实施的服务,其中服务网络设备被配置为接收标签请求消息,将特定长度的标签与服务相关联,并且响应于标签请求消息将定义特定长度的标签与服务相关联的标签映射消息发送至网络设备,其中网络设备被配置为接收标签映射消息,将标签附加至数据包以形成多协议标签交换(MPLS)封装的数据包,以及根据标签交换协议转发MPLS封装的数据包,并且其中服务网络设备被配置为接收MPLS封装的数据包,并且基于标签对数据包实施服务。
本公开中描述的技术可以至少部分以硬件、软件、固件或其任何组合实现。例如,上述本技术的各个方面可以在一个或多个处理器内实现,所述处理器包括一个或多个微处理器、数字信号处理器(DSP)、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)或任何等同集成或分立逻辑电路以及这些组件的组合。术语“处理器”或“处理电路”通常是指任何上述单独的逻辑电路或者与其他逻辑电路的组合,或者任何其他等价电路。包括硬件的控制单元也可实施本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一设备或分离设备内实现以支持本公开描述的各种不同操作和功能。此外,任何上述单元、模块或组件可以一起实现,或者作为分立但能共同操作的逻辑器件分开实现。作为模块或单元的不同特征的描述是为了突出不同的功能方面,但并不一定意味着这样的模块或单元必须通过分开的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以通过分开的硬件或软件组件实施,或者集成在公共或分开的硬件或软件组件内。
本公开中描述的技术还可以体现为或编码在包含指令的计算机可读介质中,例如计算机可读存储介质。植入或编码到计算机可读介质中的指令可使可编程处理器或其他处理器例如在指令被执行时实施所述方法。计算机可读介质可包括永久计算机可读存储介质或临时通信介质。有形且永久的计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、磁带、磁介质、光学介质或者其它计算机可读存储介质。应当理解的是,术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他临时介质。
已经描述了各种不同示例。上述和其他示例均在权利要求的范围内。

Claims (12)

1.一种分发用于数据包封装的标签的方法,包括:
由第一网络设备发送标签请求消息,以从第二网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述第二网络设备提供的且根据所述标签映射对后续被转发到所述第二网络设备的数据包执行的服务;
响应于所述标签请求消息,接收定义所述特定长度的标签的标签映射消息;
由所述第一网络设备将所述标签添加至数据包,以形成多协议标签交换(MPLS)封装数据包;以及
由所述第一网络设备根据标签交换协议转发所述多协议标签交换封装数据包。
2.根据权利要求1所述的方法,其中,所述特定长度包括40位。
3.根据权利要求1至2中任一项所述的方法,还包括:
确定由所述第二网络设备提供的所述服务的服务实例;以及
形成所述标签请求消息以指定与所述服务实例相关联的转发等价类(FEC),其中,所述转发等价类表示对所述数据包执行的所述服务的规范。
4.根据权利要求1所述的方法,还包括:
确定与所述服务相关联的一个或多个参数;以及
形成所述标签请求消息以指定所述一个或多个参数。
5.根据权利要求4所述的方法,
其中,所述一个或多个参数包括客户端设备的用户标识符、指示所述服务的类型的服务类型以及指示与所述服务相关联的能力的服务能力中的至少一个,其中从所述客户端设备接收所述数据包,以及
其中,形成所述标签请求消息包括:形成所述标签请求消息以指定特定于所述服务的转发等价类(FEC)且包括特定于所述转发等价类的TLV以携带用于所请求的服务的参数。
6.根据权利要求1所述的方法,还包括:
由所述第一网络设备从客户端设备接收根据所述标签交换协议而被转发的所述数据包;以及
由所述第一网络设备确定所述第二网络设备要对所述数据包执行的所述服务。
7.根据权利要求1所述的方法,还包括:在标签分发会话期间,由所述第一网络设备从所述第二网络设备接收服务实例能力指示符,其中,所述服务实例能力指示符提供由所述第二网络设备支持的服务实例的指示,且其中,所述服务实例能力指示符指示所述第二网络设备支持具有所述特定长度的标签。
8.根据权利要求7所述的方法,还包括:
从包括所述第二网络设备的多个服务网络设备接收多个服务实例能力指示符;以及
至少部分基于从所述第二网络设备接收到的所述服务实例能力指示符来选择所述第二网络设备,
其中,发送所述标签请求消息包括基于所述选择向所述第二网络设备发送所述标签请求消息。
9.一种网络设备,包括用于执行根据权利要求1至8中任一项所述的方法的一个或多个装置。
10.根据权利要求9所述的网络设备,其中,所述一个或多个装置包括被配置为发送和接收网络数据的一个或多个网络接口;以及控制单元。
11.一种分发用于数据包封装的标签的方法,包括:
由第一网络设备从第二网络设备接收标签请求消息,其中,所述标签请求消息指示对具有特定长度的标签的支持,其中,所述特定长度大于20位,且其中,所述标签请求消息指定要对数据包执行的服务;
将所述特定长度的标签与所述服务相关联;
响应于所述标签请求消息,发送定义与所述服务相关联的所述特定长度的标签的标签映射消息;
接收用所述标签封装的数据包;以及
基于所述标签对所述数据包执行所述服务。
12.一种分发用于数据包封装的标签的系统,包括:
网络设备;以及
服务网络设备,
其中,所述网络设备被配置为发送标签请求消息,以从所述服务网络设备请求标签映射,其中,所述标签请求消息指示对具有大于20位的特定长度的标签的支持,且其中,所述标签请求消息指定由所述服务网络设备提供以根据所述标签映射对后续被转发到所述服务网络设备的数据包执行的服务;
其中,所述服务网络设备被配置为接收所述标签请求消息,将所述特定长度的标签与所述服务相关联,以及响应于所述标签请求消息,向所述网络设备发送定义与所述服务相关联的所述特定长度的标签的标签映射消息,
其中,所述网络设备被配置为接收所述标签映射消息,将所述标签添加至数据包以形成多协议标签交换(MPLS)封装数据包,以及根据标签交换协议转发所述多协议标签交换封装数据包,以及
其中,所述服务网络设备被配置为接收所述多协议标签交换封装数据包,并基于所述标签对所述数据包执行所述服务。
CN201310238870.8A 2012-06-15 2013-06-17 分配和分发用于数据包封装的标签 Active CN103516611B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/525,073 2012-06-15
US13/525,073 US9088519B2 (en) 2012-06-15 2012-06-15 Allocating and distributing labels for packet encapsulation

Publications (2)

Publication Number Publication Date
CN103516611A CN103516611A (zh) 2014-01-15
CN103516611B true CN103516611B (zh) 2018-03-09

Family

ID=48625852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310238870.8A Active CN103516611B (zh) 2012-06-15 2013-06-17 分配和分发用于数据包封装的标签

Country Status (3)

Country Link
US (1) US9088519B2 (zh)
EP (1) EP2675123B1 (zh)
CN (1) CN103516611B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516610B (zh) * 2012-06-18 2017-12-15 华为技术有限公司 业务处理方法、设备和系统
EP2891277B1 (en) * 2012-09-26 2017-08-09 Huawei Technologies Co., Ltd. Overlay virtual gateway for overlay networks
CN103716169B (zh) * 2012-09-29 2017-11-24 华为技术有限公司 点到多点的组播实现方法、网络节点和系统
US9967191B2 (en) * 2013-07-25 2018-05-08 Cisco Technology, Inc. Receiver-signaled entropy labels for traffic forwarding in a computer network
US10218524B2 (en) 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
US10003494B2 (en) 2013-09-17 2018-06-19 Cisco Technology, Inc. Per-prefix LFA FRR with bit indexed explicit replication
US11451474B2 (en) 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
WO2015042156A1 (en) 2013-09-17 2015-03-26 Cisco Technology, Inc. Bit indexed explicit replication
US9544230B2 (en) 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication
US10461946B2 (en) 2013-09-17 2019-10-29 Cisco Technology, Inc. Overlay signaling for bit indexed explicit replication
US9806897B2 (en) 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
US9438432B2 (en) 2013-09-17 2016-09-06 Cisco Technology, Inc. Bit indexed explicit replication packet encapsulation
US9253084B2 (en) * 2014-02-24 2016-02-02 Juniper Networks, Inc. Neighbor-label distribution with label distribution protocol
US9577927B2 (en) * 2014-06-30 2017-02-21 Nicira, Inc. Encoding control plane information in transport protocol source port field and applications thereof in network virtualization
US9608858B2 (en) 2014-07-21 2017-03-28 Cisco Technology, Inc. Reliable multipath forwarding for encapsulation protocols
CN105471727B (zh) * 2014-08-20 2018-11-09 新华三技术有限公司 Rpr网络中的报文转发方法及装置
US20160057004A1 (en) * 2014-08-21 2016-02-25 Caterpillar Inc. Systems and methods for machine-to-machine ad-hoc communication
US20160065552A1 (en) * 2014-08-28 2016-03-03 Drfirst.Com, Inc. Method and system for interoperable identity and interoperable credentials
US9819573B2 (en) 2014-09-11 2017-11-14 Microsoft Technology Licensing, Llc Method for scalable computer network partitioning
US9544225B2 (en) * 2014-09-16 2017-01-10 Microsoft Technology Licensing, Llc Method for end point identification in computer networks
US9906378B2 (en) 2015-01-27 2018-02-27 Cisco Technology, Inc. Capability aware routing
US10341221B2 (en) 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
US9961070B2 (en) 2015-09-11 2018-05-01 Drfirst.Com, Inc. Strong authentication with feeder robot in a federated identity web environment
CN106549871B (zh) * 2015-09-22 2020-09-08 华为技术有限公司 一种报文处理的方法、设备和系统
US10630743B2 (en) 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10637675B2 (en) 2016-11-09 2020-04-28 Cisco Technology, Inc. Area-specific broadcasting using bit indexed explicit replication
CN108111414B (zh) * 2016-11-25 2021-01-26 新华三技术有限公司 一种基于段路由的标签部署方法和装置
US10447496B2 (en) 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
US10164794B2 (en) 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
US10659291B2 (en) * 2017-05-30 2020-05-19 Juniper Networks, Inc. Label and associated traffic black hole correction
WO2019239172A1 (en) 2018-06-14 2019-12-19 Nokia Solutions And Networks Oy Path compression in routing of source routed packets
EP3808041A1 (en) 2018-06-14 2021-04-21 Nokia Solutions and Networks Oy Flow-specific fast rerouting of source routed packets
EP3808042A1 (en) * 2018-06-14 2021-04-21 Nokia Solutions and Networks Oy Flexible label value encoding in label switched packet networks
CN112368980B (zh) 2018-07-13 2022-03-01 华为技术有限公司 用于将一个或多个在网业务添加到mpls网络中的方法
CN111224874B (zh) * 2018-11-27 2022-06-14 中兴通讯股份有限公司 一种路径构建的方法及相关设备
US11368394B2 (en) * 2019-04-26 2022-06-21 Hewlett Packard Enterprise Development Lp Using labels in a virtualized device environment
CN112672363B (zh) * 2019-10-15 2023-04-18 华为技术有限公司 随流信息遥测能力的确认方法和设备
CN113094121B (zh) * 2021-04-30 2023-03-10 腾讯科技(成都)有限公司 一种数据处理方法、设备以及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242403A (zh) * 2007-02-07 2008-08-13 华为技术有限公司 流标签分配方法和系统以及流标签请求装置和分配装置
CN101485163A (zh) * 2006-06-08 2009-07-15 阿尔卡特朗讯公司 优化用于在mpls网络中建立伪线的资源的方法和系统
CN101656666A (zh) * 2009-09-24 2010-02-24 福建星网锐捷网络有限公司 标签分发协议会话处理方法与装置、标签交换路由器
CN101729384A (zh) * 2008-10-15 2010-06-09 华为技术有限公司 一种标签交换方法、装置和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606681B1 (en) * 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)
US7212526B2 (en) 2002-01-18 2007-05-01 Hitachi, Ltd. Method and apparatus for composing virtual links in a label switched network
US20040223497A1 (en) 2003-05-08 2004-11-11 Onvoy Inc. Communications network with converged services
US7821929B2 (en) 2004-04-05 2010-10-26 Verizon Business Global Llc System and method for controlling communication flow rates
US8223669B2 (en) * 2008-04-07 2012-07-17 Futurewei Technologies, Inc. Multi-protocol label switching multi-topology support
WO2009132592A1 (en) * 2008-04-29 2009-11-05 Huawei Technologies Co., Ltd. Systems and methods for implementing multitqpology support for label distribution protocol(ldp) of a multiprotocol label switching network
US8619769B2 (en) * 2008-06-12 2013-12-31 Mark Henrik Sandstrom Packet-layer transparent packet-switching network
US8811388B2 (en) 2008-11-14 2014-08-19 Rockstar Consortium Us Lp Service instance applied to MPLS networks
US8094575B1 (en) 2009-03-24 2012-01-10 Juniper Networks, Inc. Routing protocol extension for network acceleration service-aware path selection within computer networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101485163A (zh) * 2006-06-08 2009-07-15 阿尔卡特朗讯公司 优化用于在mpls网络中建立伪线的资源的方法和系统
CN101242403A (zh) * 2007-02-07 2008-08-13 华为技术有限公司 流标签分配方法和系统以及流标签请求装置和分配装置
CN101729384A (zh) * 2008-10-15 2010-06-09 华为技术有限公司 一种标签交换方法、装置和系统
CN101656666A (zh) * 2009-09-24 2010-02-24 福建星网锐捷网络有限公司 标签分发协议会话处理方法与装置、标签交换路由器

Also Published As

Publication number Publication date
EP2675123B1 (en) 2015-09-23
US9088519B2 (en) 2015-07-21
CN103516611A (zh) 2014-01-15
EP2675123A1 (en) 2013-12-18
US20130336315A1 (en) 2013-12-19

Similar Documents

Publication Publication Date Title
CN103516611B (zh) 分配和分发用于数据包封装的标签
CN111713079B (zh) 包括段路由的分组网络互通
CN111385206B (zh) 报文转发的方法、网络系统、相关设备及计算机存储介质
US9929947B1 (en) Transmitting packet label contexts within computer networks
US8295278B2 (en) Systems and methods for pseudowire-in-pseudowire to transport pseudowire payload across packet switched networks
US8467411B1 (en) Service-specific forwarding in an LDP-RSVP hybrid network
CN112087386B (zh) 一种报文处理的方法、设备和系统
AU2021261819B2 (en) Data packet processing method and device
CN112019433B (zh) 一种报文转发方法和装置
CN103828310B (zh) 一种链路发现的方法、系统及设备
US20050141504A1 (en) Methods, systems, and computer program products for encapsulating packet traffic associated with multiple layer two technologies
US8711838B1 (en) Using network labels without standard-defined syntax and semantics
US20060002423A1 (en) Methods, systems, and computer program products for direct interworking between pseudo wires associated with different services
US9686381B1 (en) Control word decapsulation in a hybrid BGP-VPLS network
US20240106751A1 (en) Method and apparatus for processing detnet data packet
CN115550252A (zh) 路由发布和转发报文的方法、装置、设备和存储介质
US11489768B2 (en) Method for creating inter-domain bidirectional tunnel, communication method and device, and storage medium
CN112714063B (zh) 一种报文传输方法、设备以及数字处理芯片
CN101611393B (zh) 伪线仿真的性能监视
CN106961412B (zh) 一种报文转换方法、装置及系统
CN110351394A (zh) 网络数据的处理方法及装置、计算机装置及可读存储介质
CN115695338A (zh) 一种报文转发的方法及网络设备
CN102833084A (zh) 一种在无源光网络中实现电路仿真的方法及系统
US10742570B1 (en) Utilizing virtual routing and forwarding (VRF) interfaces to manage packet transmission through an internal interface
CN111277504B (zh) 一种在mpls多层标签栈中插入流标签的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Juniper Networks, Inc.

Address before: California, USA

Patentee before: Jungle network