本发明实施例涉及通信技术领域,具体涉及一种分段标识的处理方法及设备。
背景技术:
分段路由(segmentrouting,sr)是一种源路由技术,基于软件定义网络(softwaredefinednetwork,sdn)理念,构成面向路径连接的网络架构,支撑未来网络多层次的可编程需求,可以满足第五移动通信技术(5thgeneration,5g)超大连接和切片的应用场景下的连接需求。
sr-多协议标签交换(multi-protocollabelswitching,mpls)是基于当前主流mpls转发面形成的sr解决方案。srv6是基于互联网协议第6版(internetprotocolversion6,ipv6)扩展的sr解决方案。sr-mpls沿用mpls转发机制,自然演进,并已经在传输网络得到广泛应用。srv6则进一步增强了网络可编程能力,支持网络和业务可编程。
当前国际互联网工程任务组(theinternetengineeringtaskforce,ietf)草案draft-ietf-6man-segment-routing-header-26定义了ipv6扩展头部的分段路由头部(segmentroutingheader,srh),用于srv6的数据面转发,其中段列表(segmentlist)中的每个分段标识(segmentid,sid)包含128bit,包含位置标识(locator)、功能(function)、变量(arguments)等几个部分,参见图1。
(1)位置标识(locator):网络中分配给一个网络节点的标识,可以用于路由和转发数据包。locator有两个重要的属性,可路由和聚合。在srv6sid中locator是一个可变长的部分,用于适配不同规模的网络。
(2)function的值:设备分配给本地转发指令的一个标识(identity,id)值,该值可用于表达需要设备执行的转发动作,相当于计算机指令的操作码。在srv6网络编程中,不同的转发行为由不同的功能id值来表达。一定程度上功能id和mpls标签类似,用于标识虚拟专用网络(virtualprivatenetwork,vpn)转发实例等。
(3)args(变量):转发指令在执行的时候所需要的参数,这些参数可能包含流,服务或任何其他相关的可变信息。
ipv6技术成是新一代网络的主体技术,基于ipv6的srv6长远考虑是未来网络的演进趋势,关于srv6技术的机制研究是业界热点。
运营商网络中对sr标签层数要求较高。以5g承载网为例,随着5g核心网集中化部署,基站的流量需要穿过城域网以及ip骨干网。典型场景下,在城域网中,接入环有8-10个节点,汇聚环有4-8个节点,核心环也有4-8个节点。在ip骨干网,流量还需穿过多个路由器节点。同时,由于网络切片、高可靠服务等级协议(service-levelagreement,sla)、可管可控的要求,运营商网络需要能够指定显式路径,端到端sr隧道会有10跳甚至以上。因此,目前国内外多数部署mpls-sr的运营商都要求支持8层以上sid标签。
当前,srv6方案基于srh,其sid长度为128bit。按照8层sid,为报文带来128byte的开销,对于平均长度256byte的应用净荷,srv6带来的开销超过1/3,带宽利用率则下降为67%以下。而相同场景下,sr-mpls的开销只有32byte,带宽利用率仍有89%。srv6和sr-mpls在sid个数从1-10时承载效率的对比分析如图2所示(仅简单对比srh和sr-mplssid的开销)。
开销的增大一方面造成了网络利用率的降低,另一方面为支持深层报文深层负载均衡、带内遥测(in-bandtelemetry)、网络服务包头(networkserviceheader,nsh)带来更大挑战。
另外,srv6部署必然会和sr-mpls网络共存,由于网络利用率的不同可能会导致网络边界接口不平衡的问题,从而导致投资浪费。在sr-mpls网络与srv6网络域对接时,考虑100g链路,256byte报文,8层sid的情况,由于链路利用率差异较大,sr-mpls域中的1个100ge链路在srv6域中可能需要2条100ge链路才能匹配。在运营商应用中,srv6需要在网络芯片在报文中插入超过128byte长度的字段,相当于32层mpls-sr标签深度,超出了已部署网络芯片的能力,如果在芯片内部采用环回的解决方案,将大幅降低网络性能并引入更高的时延和抖动。在重新设计的网络芯片中,支持srv6需要进一步扩大内部处理总线带宽,其是芯片成本和功耗的关键因素。
srv6在中间节点要求网络芯片读取完整srh,然后根据指针指示的位置提取需要处理的segment并进行转发。对比mpls-sr仅需读取最外层标签,引入的复杂性进一步增加网络芯片的处理时延。
低功耗和低时延是运营商5g解决方案的关键因素,srv6复杂性对网络芯片带来的功耗、成本、时延的增加为其落地应用带来挑战。
根据以上分析,现有srv6报文开销较大,增加网络芯片的复杂性和难以平滑升级,导致srv6难以快速部署到运营商网络中,需要在srv6技术基础上进一步进行演进。
技术实现要素:
本发明实施例的一个目的在于提供一种分段标识的处理方法及设备,解决现有srv6报文开销较大的问题。
第一方面,本发明实施例提供一种分段标识的处理方法,应用于第一节点,包括:
为所述第一节点分配全局唯一的index;
将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function的取值和所述第一节点的index。
可选地,将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送,包括:
通过控制协议向网络中一个或多个第二节点发送所述第一节点的第一信息和/或第一节点的第二信息。
可选地,所述方法还包括:
接收所述一个或多个第二节点的第三信息和/或第二节点的第四信息;
其中,所述第二节点的第三信息包括:所述第二节点的网络标识和对应的第二节点的index,所述第二节点的第四信息包括:所述第二节点的function的取值和第二节点的index。
可选地,所述方法还包括:
根据报文途径节点的顺序以及所述第二信息和/或第四信息,生成segmentlist,所述segmentlist包括:所述报文途径的节点的usid信息,所述usid信息包括:function的取值和index;
将所述segmentlist封装到所述报文中。
可选地,所述方法还包括:
根据所述segmentlist中的usid信息,确定所述第一节点的下一个节点的index和function的取值;
根据所述第二节点的index和function的取值,生成所述报文的头部中的目的地址;
根据所述目的地址,将所述报文发送给所述第一节点的下一个节点。
可选地,所述方法还包括:
从所述第一节点的上一个节点接收所述报文;
如果所述报文的头部中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid信息中的function的取值和index,对所述报文进行处理。
可选地,所述方法还包括:
如果所述报文的头部中的目的地址与所述第一节点的网络标识不匹配,则根据预设的路由规则,将所述报文发送给所述第一节点的下一个节点。
可选地,所述第二信息和/或第四信息还包括:
指示信息,所述指示信息用于指示是否使用扩展方式的function。
可选地,所述指示信息位于所述index的字段中的预留位,或者所述function的字段中的预留位。
可选地,所述第二信息和/或第四信息中的index还用于指示是否使用扩展方式的function。
第二方面,本发明实施例提供一种节点,包括:
分配模块,用于为所述第一节点分配全局唯一的index;
第一发送模块,用于将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function和所述第一节点的index。
第三方面,本发明实施例提供一种节点,包括:收发机和处理器;
所述处理器,用于为所述第一节点分配全局唯一的index;
所述收发机,用于将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function和第一节点的index。
第四方面,本发明实施例提供一种通信设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现包括如第一方面所述的分段标识的处理方法的步骤。
第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现包括如第一方面所述的分段标识的处理方法的步骤。
在本发明实施例中,为节点分配全局唯一的index,然后将该节点的网络标识和对应的index,和/或该节点的function的取值和index通知网络中的其他节点,这样在报文中的usid信息只需包括function的取值和index,网络中的其他节点在接收到报文后,可以根据网络标识与index的映射关系,确定对应的index,如果该节点识别该报文中的index对应于该节点,则根据该报文中的function的取值对业务进行对应的处理,有效减少了报文的开销,降低网络芯片的复杂性,实现平滑的系统升级,可以使得srv6快速部署到运营商网络。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为srv6sid的示意图;
图2为净荷长度256b时不同sid个数sr承载效率对比分析示意图;
图3为本发明实施例中分段标识的处理方法的流程图;
图4为本发明实施例中4个32位的usid的示意图;
图5为本发明实施例中usid中的index与现有的sid中的locator的映射示意图;
图6为本发明实施例中endpointfunction类型的示意图;
图7为本发明实施例中function的扩展示意图之一;
图8为本发明实施例中function的扩展示意图之二;
图9为本发明实施例中基于srv6usidte进行vpn流量转发的示意图;
图10为图9中节点b的usidindex信息的示意图;
图11为图9中节点b的usid信息的示意图;
图12为图9中节点e的usidindex信息的示意图;
图13、图14为图9中节点e的usid信息的示意图;
图15为图9中各节点的index映射关系示意图;
图16为图9中segmentlist中usid列表示意图;
图17至图19为图9中各节点的usid的示意图;
图20为本发明实施例中节点的示意图之一;
图21为本发明实施例中节点的示意图之二;
图22为本发明实施例中通信设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,说明书以及权利要求中使用“和/或”表示所连接对象的至少其中之一,例如a和/或b,表示包含单独a,单独b,以及a和b都存在三种情况。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本文所描述的技术不限于第五代移动通信(5th-generation,5g)系统以及后续演进通信系统,以及不限于lte/lte的演进(lte-advanced,lte-a)系统,并且也可用于各种无线通信系统,诸如码分多址(codedivisionmultipleaccess,cdma)、时分多址(timedivisionmultipleaccess,tdma)、频分多址(frequencydivisionmultipleaccess,fdma)、正交频分多址(orthogonalfrequencydivisionmultipleaccess,ofdma)、单载波频分多址(single-carrierfrequency-divisionmultipleaccess,sc-fdma)和其他系统。
术语“系统”和“网络”常被可互换地使用。cdma系统可实现诸如cdma2000、通用地面无线电接入(universalterrestrialradioaccess,utra)等无线电技术。utra包括宽带cdma(widebandcodedivisionmultipleaccess,wcdma)和其他cdma变体。tdma系统可实现诸如全球移动通信系统(globalsystemformobilecommunication,gsm)之类的无线电技术。ofdma系统可实现诸如超移动宽带(ultramobilebroadband,umb)、演进型utra((evolution-utra,e-utra))、ieee802.11((wi-fi))、ieee802.16((wimax))、ieee802.20、flash-ofdm等无线电技术。utra和e-utra是通用移动电信系统(universalmobiletelecommunicationssystem,umts)的部分。lte和更高级的lte(如lte-a)是使用e-utra的新umts版本。utra、e-utra、umts、lte、lte-a以及gsm在来自名为“第三代伙伴项目”(3rdgenerationpartnershipproject,3gpp)的组织的文献中描述。cdma2000和umb在来自名为“第三代伙伴项目2”(3gpp2)的组织的文献中描述。本文所描述的技术既可用于以上提及的系统和无线电技术,也可用于其他系统和无线电技术。
参见图1,本发明实施例提供一种分段标识处理的方法,该方法的执行主体可以为第一节点,例如,第一节点可以是网络中的入节点(ingress节点)、中间节点、或者出节点(egress节点),该方法包括:步骤301和步骤302。
步骤301:为第一节点分配全局唯一的索引(index);
可选地,根据第一节点的网络标识,为第一节点分配全局唯一的index,其中,第一节点的网络标识可以为第一节点的ip地址或者第一节点的设备id,当然并不限于此。
例如,第一节点的ip地址可以是第一节点的ipv6前缀(prefix),当然并不限于此。
步骤302:将第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index;所述第一节点的第二信息包括:所述第一节点的function的取值和第一节点的index。
其中,index用于标识网络位置,function用于标识节点的编程能力,function不同取值对应不同的业务行为。
在本发明实施例中,usid(或者称为uni-sid)是指:unifiedsid,统一分段标识。上述第一节点的第一信息也可以称为第一节点的usidindex信息,第一节点的第二信息也可以称为第一节点的usid信息。
例如,通过控制协议将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送,其中,控制协议包括但不限于内部路由协议(igp)、边界网关协议(bgp)等协议。
例如,第一节点的“function”字段的长度为12bit,“index”字段的长度为20bit,该第一节点的usid信息的长度为32bit,这样可以有效节省报文(例如srv6报文)的开销。
在本发明实施例中,可选地,所述方法还包括:
接收所述一个或多个第二节点的第三信息(或者称为第二节点的usidindex信息)和/或第二节点的第四信息(或者称为第二节点的usid信息);
其中,所述第二节点的第三信息包括:所述第二节点的网络标识和对应的第二节点的index,所述第二节点的第四信息包括:所述第二节点的function的取值和第二节点的index;
所述第二节点的index是所述第二节点根据所述第二节点的网络标识分配的,例如,第二节点的index可以是所述第二节点根据所述第二节点的ip地址(ipv6prefix)分配的。
在本发明实施例中,可选地,所述方法还包括:
根据报文途径节点的顺序、以及第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息),生成段列表(segmentlist),所述segmentlist包括:所述报文途径的节点的usid信息;将所述segmentlist封装到所述报文中。
可选地,上述报文可以是ipv6报文,当然并不限于此。
在本发明实施例中,可选地,所述方法还包括:
根据所述segmentlist中的usid信息,确定所述第一节点的下一个节点的index和function的取值,usid信息中包括:index和function的取值;
根据所述第一节点的下一个节点的index和function的取值,生成所述报文的头部中的目的地址;
根据所述目的地址,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,可选地,所述方法还包括:
从所述第一节点的上一个节点接收所述报文;
如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)匹配,则根据所述报文中的segmentlist当前指向的usid信息中的function和index,对所述报文进行处理。
在本发明实施例中,可选地,所述方法还包括:
如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)不匹配,则根据预设的路由规则,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,可选地,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)还包括:指示信息,所述指示信息用于指示是否使用扩展方式的function。
进一步地,所述指示信息位于所述index的字段预留位(例如最低预留位),或者所述function的字段预留位(例如最高预留位)。
在本发明实施例中,可选地,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)中的index还用于指示是否使用扩展方式的function。
可选地,第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)的基础长度可以为32bit,对sid空间占用进行有效压缩,并继承了标准sid的locator与function结构,与现有标准的srv6sid存在如下对应关系,其中的:
1)每个128位的空间,被分为4个32位的usid,如图4所示。
nextheader:标识紧跟在srh之后的报文头的类型。
hdrextlen:srh头的长度。主要是指从segmentlist[0]到segmentlist[n]所占用的长度。
routingtype:标识路由头部类型,srhtype是4。
segmentleft:到达目的节点前仍然应当访问的中间节点数。
lastentry:在段列表中包含段列表的最后一个元素的索引。
flags:数据包的一些标识。
tag:标识同组数据包。
segmentlist[n]:段列表,段列表从路径的最后一段开始编码。
optionaltlv:可变长tlv部分。
2)索引(index)与locator存在映射关系,如图5所示,20bit的index可以映射到最多128bitlocator。
在本发明实施例中,每个index表示一个locator,以20bit的index为例最多可达2的20次方个locator。由于index无法按照地址组织形式进行聚合,需要传递明细映射表,协议传输信息量相对较大,映射关系表查询相对较多。
3)usid的function字段由于长度相比标准sid的要小,如图5所示,12bit无法完全对应当前已经定义类型(参见draft-ietf-spring-srv6-network-programming-07section9.2.1),按照可用空间至少实现end.dt4,end.dt6,end.dt46的基本function能力。同时为支持流量工程(trafficengineering,te),需要实现end.x,如图6所示的举例不同的数值区域分别表示上述不同端点特性(endpointbehavior)类型。可以理解的是,图6仅为举例,网络中各节点均可自行定义function的取值的含义。
需要说明的是,对于usid的压缩长度,之前描述的index和function占用长度均为举例性说明,在本发明实施例中对index和function占用长度不做限定。
在本发明实施例中,usid中function可以全部继承draft-ietf-spring-srv6-network-programming-07section4的定义,当然并不限于此。
在本发明实施例中,可以为节点分配全局唯一的index,然后将该节点的网络标识(例如ipv6prefix)与index,和/或该节点的function的取值和index,通知网络中的其他节点,这样报文中的usid信息只需包括function的取值和index,网络中的其他节点在接收到报文后,可以根据网络标识与index的映射关系,确定对应的index,如果该节点识别该报文中的index对应于该节点,则根据该报文中的function的取值对业务进行对应的处理,有效减少了报文的开销,降低网络芯片的复杂性,实现平滑的系统升级,可以使得srv6快速部署到运营商网络。
以一个usid32bit为例,function的基础长度12bit,按照当前网络部署规模,可用于end.x、end.dt4、end.dt6、end.dt46这类基础的endpointfunction。
而对于end.dx4、end.dx6等其他function由于空间限制则无法表达。为支持完整的function,usid的function部分需要支持灵活扩展,即可扩展一个32bitusid达到2个usid拼接的效果,20bit作为index,function总长度可以达到44bit,但需要在usid中标识是否使用扩展方式的function,用于设备转发数据时识别。
示例性地,标识扩展方式包括如下两种方式:
1)预留index,使用特殊值表示当前32bit的usid与下一个32bit的usid合并为一个有效usid。
参见图7,例如将当前usid信息后面的整个usid信息都作为function并入当前usid信息,而当前usid的index不变,function部分 新并入的整个usid信息整体作为新的function部分。这样芯片转发可复用已有预留mpls标签方式的实现。
2)index字段最低位或function字段最高位预留1bitflag(如图8中dbit)表示是否扩展方式的usid。
也就是,通过新增flag标识扩展方式。
示例性地,srv6usid的生成机制中需要对原生srv6locator分配唯一的index值,即index作为标签值,与locator形成1:1映射关系。
控制协议例如isis6和ospfv3扩展协议subtlv洪泛协议信息,携带index与ipv6前缀prefix的映射关系,这样同一网络中的所有网络节点均可建立ipv6prefix和index的映射关系表。其中与srmpls技术不同之处在于,usid仅为ipv6prefix分配index,不再为邻接链路分配邻接索引(adjacencyindex),而使用end.x的function表示。
网络中部署srv6usid的节点为自身ipv6前缀(prefix)(包括但不限于普通接口和loopback接口的ipv6prefix)分配全局唯一的index值,并通过igp/bgp等控制协议传输到网络中的其他节点,网络中所有节点均可获取ipv6prefix与index的映射关系,并形成ipv6prefix与index的映射关系表。
同时为实现端点(endpoint)function,部署srv6usid的网络节点也会为指定function分配function的取值,并把endpointfunction和对应的endusid通过igp/bgp等控制协议传输到网络中的其他节点。function取值不同于index取值,仅对于业务的端点(通常为网络的入节点(ingress节点)和出节点(egress节点))可识别,对其他中间节点仅用于传输。
其中,网络的ingress节点使用srv6usid进行封装时,根据egressipv6地址查找映射关系表,获取对应的index值,同时根据igp/bgp传输的endusid查询对应的function取值,按照前述index:function组合形成一个usid。如果指定途经的节点集合,则对该集合中的每个ipv6prefix分别查询映射关系表,分别把每个对应的index值形成一个usid,function字段填0。如果指定途经的链路集合,则对该集合中的每个链路起点ipv6地址查找映射关系表,获取对应的index值,同时根据igp传输的endusid查询对应的链路function取值,按照前述index:function组合形成一个usid。
其中,网络的ingress节点将上述usid按照途经顺序由后向前形成usid列表,封装到报文的ipv6srh头部的segmentlist,即egress节点的usid在列表中第一个,指定路径上的第一个节点或链路usid在列表中最后一个,当前指向的usid为最后一个usid,这与原生srv6方式完全相同。当前指向usid的index映射到对应的ipv6prefix并在ipv6地址的最低12bit填充该usid的function取值,形成ipv6头部的目的地址。
其中,报文在网络中转发时,每个节点均检查ipv6目的地址是否为自己,如果不是则按照ipv6路由表进行转发即可,如果是则需要对ipv6srh头部segmentlist当前指向的usid进行处理,根据index查询对应的ipv6prefix,同时根据function取值进行对应的业务处理,例如查找指定的链路转发、查找对应vrf的路由表转发等。同时segmentlist中的usid指向前移一个usid,并把新的usidindex映射到对应的ipv6prefix并在ipv6地址的最低12bit填充该usid的function取值,形成新的ipv6头部的目的地址。
报文继续转发,重复以上过程,直到完成segmentlist中的第一个usid即egress节点usid的业务处理。
下面结合图9,按照上述方案流程介绍一种可选的实施方式。
usid采用基础长度32bit,function采用基础长度12bit,ipv6prefix均使用64bit,endfunction采用最小集end.x/end.dt4/end.dt6,节点a和节点e部署l3vpnipv4和ipv6,基于srv6usidte进行vpn流量转发。
节点b的usidindex信息和endusid信息,参见图10和图11,可通过igp(包括但不限于isis6、ospfv3)协议扩展subtlv洪泛到a、c、d、e节点。
例如,b节点的intb2为一个lan接口,存在c和d两个邻居,则使用index=1200表示intb2配置的ipv6prefix,function=1表示到节点c,function=2表示到节点d。
节点e的usidindex信息和endusid信息,参见图12、图13和图14,其中index映射关系可通过igp(包括但不限于isis6、ospfv3)扩展subtlv洪泛,end.dt4usid和end.dt6usid可通过bgp(包括但不限于vpnv4、vpnv6、evpn地址族等)协议扩展属性传递到bgpvpnpeera节点,并通过rt交叉匹配各vpn可获取对应的usid中function取值。
例如,节点e的inte3为loopback接口,可作为与节点a建立bgpvpnpeer的地址,节点a上查询vpn路由的下一跳就为inte3的ipv6地址,使用index=5300表示;节点e的vpn业务存在1k个vpnv4和1k个vpnv6,分别使用function取值1-1024和1025-2048表示。
按照上述协议发布过程,a-e各节点均可形成图15所示的index映射关系表以便查询(图15中,仅列出了b和e节点的index映射关系)。
如果需要从节点a发送ipv4-vpn2的流量,查询vpn2路由表目的地址的下一跳为e节点,而且vpn2流量需要经过b-c链路,则需要:
首先,查询映射关系表,节点e的loopback接口ipv6prefix对应index=5300,同时根据bgp扩展属性vpn2交叉匹配获取对应的function=2,组成第一个usid1=5300|2
然后,查询b-c链路的起点intb2接口ipv6prefix对应index=1200,同时查询b-c链路对应的end.xsidfunction=1,组成第二个也是最后一个usid2=1200|1,segmentlist中usid列表如图16所示。
需要说明的是,对draft-ietf-6man-segment-routing-header-26草案segmentleft(sl)的含义进行变更,每个segment长度由ipv6地址固定的128bit变为usid基础长度32bit。
结合图9、图17-图19,携带srv6usid的数据报文转发过程如下:
1)节点asegmentlist=<usid1=5300|2,usid2=1200|1>,其中usid2的index=1200对应的ipv6prefix=a202::/64,并将function=1填充到低位,形成ipv6目的地址a202::1进行转发,查询ipv6路由表转发到b;
2)节点b检查ipv6目的地址a202::1为自己,则对sl指向的usid2=1200|1进行处理,根据index=1200查询对应的ipv6prefix为intb2接口,function=1为b-c链路,则将报文按照b-c链路转发,同时sl指向移动到usid1,并查询usid1的index=5300对应的ipv6prefix=a503::/64,并将function=2填充到低位,形成新的ipv6目的地址a503::2继续进行转发;
3)节点c检查ipv6目的地址a503::2不是自己,查询本节点ipv6路由表继续转发到节点e;
4)节点e检查ipv6目的地址a503::2是自己,则对sl指向的usid1=5300|2进行处理,根据index=5300查询对应的ipv6prefix为inte3接口即建立bgpvpnpeer的loopback接口,function=2为vpn2,同时由于sl=0已经指向第一个usid1,则需要整体弹出ipv6的srh头部,将报文的payload部分按照vpn2的路由表继续进行转发。
参见图20,本发明实施例还提供一种节点,该节点2000为第一节点,该节点2000包括:
分配模块2001,用于为所述第一节点分配全局唯一的index,可选地,根据第一节点的网络标识(例如ipv6prefix)为所述第一节点分配全局唯一的index;
第一发送模块2002,用于将所述第一节点的第一信息(或者称为第一节点的usidindex信息)和/或第一节点的第二信息(或者称为第一节点的usid信息),向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function和第一节点的index。
在本发明实施例中,第一发送模块2002进一步用于通过控制协议向网络中一个或多个第二节点发送所述第一节点的第一信息(或者称为第一节点的usidindex信息)和/或第一节点的第二信息(或者称为第一节点的usid信息)。
在本发明实施例中,节点2000还包括:
第一接收模块,用于接收所述一个或多个第二节点的第三信息(或者称为第二节点的usidindex信息)和/或第二节点的第四信息(或者称为第二节点的usid信息);
其中,所述第二节点的第三信息包括:所述第二节点的网络标识(例如ipv6prefix)和与其对应的第二节点的index,所述第二节点的第四信息包括:所述第二节点的function和第二节点的index;所述第二节点的index是所述第二节点根据所述第二节点的网络标识(例如ipv6prefix)分配的。
在本发明实施例中,节点2000还包括:
第一生成模块,用于根据报文途径节点的顺序以及第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息),生成segmentlist,所述segmentlist包括:所述报文途径的节点的usid信息;
封装模块,用于将所述segmentlist封装到所述报文中。
在本发明实施例中,节点2000还包括:
确定模块,用于根据所述segmentlist中的usid信息,确定所述第一节点的下一个节点的index和function的取值;
第二生成模块,用于根据所述index和function的取值,生成所述报文的头部中的目的地址;
第二发送模块,用于根据所述目的地址,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,节点2000还包括:
第二接收模块,用于从所述第一节点的上一个节点接收所述报文;
第二确定模块,用于如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)匹配,则根据所述报文中的segmentlist当前指向的usid信息中的function和index,对所述报文进行处理的。
在本发明实施例中,节点2000还包括:
第三发送模块,用于如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)不匹配,则根据预设的路由规则,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)还包括:指示信息,所述指示信息用于指示是否使用扩展方式的function。
在本发明实施例中,所述指示信息位于所述index的字段最低预留位,或者所述function的字段最高预留位。
在本发明实施例中,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)中的index还用于指示是否使用扩展方式的function。
本发明实施例提供的节点,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
参见图21,本发明实施例还提供一种节点,该节点2100为第一节点,该节点2100包括:收发机2101和处理器2102;
所述处理器2102,用于为所述第一节点分配全局唯一的index;
所述收发机2101,用于将所述第一节点的第一信息(或者称为第一节点的usidindex信息)和/或第一节点的第二信息(或者称为第一节点的usid信息),向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识(例如ipv6prefix)和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function和第一节点的index。
在本发明实施例中,所述收发机2101,还用于接收所述一个或多个第二节点的第三信息(或者称为第二节点的usidindex信息)和/或第二节点的第四信息(或者称为第二节点的usid信息);
其中,所述第二节点的第三信息包括:所述第二节点的网络标识(例如ipv6prefix)和对应的第二节点的index,所述第二节点的第四信息包括:所述第二节点的function和第二节点的index;所述index是所述第二节点根据所述第二节点的网络标识(例如ipv6prefix)分配的。
在本发明实施例中,所述处理器2102,还用于根据报文途径节点的顺序以及第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息),生成segmentlist,所述segmentlist包括:所述报文途径的节点的usid信息;
所述收发机2101,还用于将所述segmentlist封装到所述报文中。
在本发明实施例中,所述处理器2102,还用于根据所述segmentlist中的usid信息,确定所述第一节点的下一个节点的网络标识和index;
所述处理器2102,还用于根据所述function的取值和index,生成所述报文的头部中的目的地址;
所述收发机2101,还用于根据所述目的地址,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,所述收发机2101,还用于从所述第一节点的上一个节点接收所述报文;
所述处理器2102,还用于如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)匹配,则根据所述报文中的segmentlist当前指向的usid信息中的function和index,对所述报文进行处理。
在本发明实施例中,所述收发机2101,还用于如果所述报文的头部中的目的地址与所述第一节点的网络标识(例如ipv6prefix)不匹配,则根据预设的路由规则,将所述报文发送给所述第一节点的下一个节点。
在本发明实施例中,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)还包括:
指示信息,所述指示信息用于指示是否使用扩展方式的function。
在本发明实施例中,所述指示信息位于所述index的字段最低预留位,或者所述function的字段最高预留位。
在本发明实施例中,所述第二信息和/或第四信息(或者称为第一节点的usid信息和/或第二节点的usid信息)中的index还用于指示是否使用扩展方式的function。
本发明实施例提供的节点,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
请参阅图22,图22是本发明实施例应用的通信设备的结构图,如图22所示,通信设备2200包括:处理器2201、收发机2202、存储器2203和总线接口,其中:
在本发明的一个实施例中,通信设备2200还包括:存储在存储器上2203并可在处理器2201上运行的计算机程序,计算机程序被处理器2201执行时实现图3所示实施例中的步骤。
在图22中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器2201代表的一个或多个处理器和存储器2203代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机2202可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
处理器2201负责管理总线架构和通常的处理,存储器2203可以存储处理器2201在执行操作时所使用的数据。
本发明实施例提供的通信设备,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以由在处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、eprom、eeprom、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以携带在asic中。另外,该asic可以携带在核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种分段标识的处理方法,应用于第一节点,其特征在于,包括:
为所述第一节点分配全局唯一的索引index;
将所述第一节点的第一信息和/或第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function的取值和所述第一节点的index。
2.根据权利要求1所述的方法,其特征在于,将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送,包括:
通过控制协议向网络中一个或多个第二节点发送所述第一节点的第一信息和/或第一节点的第二信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述一个或多个第二节点的第三信息和/或第二节点的第四信息;
其中,所述第二节点的第三信息包括:所述第二节点的网络标识和对应的第二节点的index,所述第二节点的第四信息包括:所述第二节点的function的取值和所述第二节点的index。
4.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
根据报文途径节点的顺序以及所述第二信息和/或第四信息,生成段列表segmentlist,所述segmentlist包括:所述报文途径节点的统一分段标识usid信息,所述usid信息包括:function的取值和index;
将所述segmentlist封装到所述报文中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述segmentlist中的usid信息,确定所述第一节点的下一个节点的index和function的取值;
根据所述index和function的取值,生成所述报文的头部中的目的地址;
根据所述目的地址,将所述报文发送给所述第一节点的下一个节点。
6.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
从所述第一节点的上一个节点接收报文;
如果所述报文的头部中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid信息中的function的取值和index,对所述报文进行处理。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述报文的头部中的目的地址与所述第一节点的网络标识不匹配,则根据预设的路由规则,将所述报文发送给所述第一节点的下一个节点。
8.根据权利要求1~7任一项所述的方法,其特征在于,所述第二信息和/或第四信息还包括:
指示信息,所述指示信息用于指示是否使用扩展方式的function。
9.根据权利要求8所述的方法,其特征在于,所述指示信息位于所述index的字段中的预留位,或者所述function的字段中的预留位。
10.根据权利要求1~7任一项所述的方法,其特征在于,所述第二信息和/或第四信息中的index还用于指示是否使用扩展方式的function。
11.一种节点,所述节点为第一节点,其特征在于,包括:
分配模块,用于为所述第一节点分配全局唯一的index;
第一发送模块,用于将所述第一节点的usidindex信息和/或第一节点的usid信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的所述第一节点的index,所述第一节点的第二信息包括:所述第一节点的function的取值和所述第一节点的index。
12.一种节点,所述节点为第一节点,其特征在于,包括:收发机和处理器;
所述处理器,用于为所述第一节点分配全局唯一的index;
所述收发机,用于将所述第一节点的第一信息和/或第一节点的第二信息,向网络中一个或多个第二节点发送;
其中,所述第一节点的第一信息包括:所述第一节点的网络标识和对应的第一节点的index,所述第一节点的第二信息包括:所述第一节点的function的取值和所述第一节点的index。
13.一种通信设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现包括如权利要求1至10中任一项所述的分段标识的处理方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现包括如权利要求1至10中任一项所述的分段标识的处理方法的步骤。
技术总结