本发明实施例涉及通信技术领域,具体涉及一种分段标识的处理方法及设备。
背景技术:
分段路由(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报文开销较大的问题。
第一方面,本发明实施例提供一种分段标识的处理方法,应用于第一节点,包括:
获取所述第一节点的网络标识中的第一信息和所述第一节点的第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
向网络中其他节点发送所述第一信息和所述第二信息;
其中,所述第一信息和所述第二信息的组合用于表示所述第一节点的usid。
可选地,所述向网络中其他节点发送所述第一信息和所述第二信息,包括:
通过控制协议向网络中其他节点发送所述第一信息和所述第二信息。
可选地,所述方法还包括:
获取网络中各节点的网络标识的通用部分,所述通用部分用于与所述第一信息组合得到所述第一节点的网络标识。
可选地,所述获取网络中各节点的网络标识的通用部分,包括:
通过以下获取方式,获取所述网络中各节点的网络标识的通用部分;
所述获取方式包括以下一项或多项:
网络中各节点统一配置;
控制器向网络中各节点统一下发;
网络中各节点之间相互协商;
接收网络中的其他节点发送的信令,所述信令携带所述通用部分。
可选地,所述方法还包括:
从一个或多个第二节点接收所述第二节点的第三信息和第四信息;
其中,所述第三信息包括:所述第二节点的网络标识与网络中其他节点的网络标识的差异部分,所述第四信息包括所述第二节点的function的取值。
可选地,所述方法还包括:
生成段列表segmentlist,所述segmentlist包括:一个或多个usid,所述usid包括:所述第二节点的第三信息和所述第四信息;
将所述segmentlist封装到报文的通用分段路由头部genericsrh中。
可选地,所述方法还包括:
根据所述segmentlist,确定所述第二节点的第三信息和第四信息,所述第二节点为所述第一节点的下一个节点;
根据所述第二节点的第三信息和所述网络中各节点的网络标识的通用部分,生成所述第二节点的网络标识;
根据所述第二节点的网络标识和所述第四信息,生成所述报文的genericsrh中的目的地址;
根据所述目的地址,将所述报文发送给所述第二节点。
可选地,所述方法还包括:
接收报文;
如果所述报文的genericsrh中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid中的function的取值,对所述报文进行处理。
第二方面,本发明实施例还提供一种网络节点,所述节点为第一节点,包括:
第一获取模块,用于获取所述第一节点的网络标识中的第一信息和所述第一节点的第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
第一发送模块,用于向网络中其他节点发送所述第一信息和所述第二信息,其中,所述第一信息和所述第二信息的组合用于表示所述第一节点的usid。
第三方面,本发明实施例还提供一种网络节点,所述节点为第一节点,包括:收发机和处理器;
所述处理器,用于获取所述第一节点的网络标识中的第一信息和所述第一节点的第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
所述收发机,用于向网络中其他节点发送所述第一信息和所述第二信息,其中,所述第一信息和所述第二信息的组合用于表示所述第一节点的usid。
第四方面,本发明实施例还提供一种通信设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现包括如第一方面所述的分段标识的处理方法的步骤。
第五方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现包括如第一方面所述的分段标识的处理方法的步骤。
在本发明实施例中,网络中节点的usid包括该节点的网络标识与其他节点网络标识的差异部分和该节点的function的取值,其中差异部分使用的是网络标识的部分内容,这样不需要映射即可与网络中各节点的网络标识的通用部分组合成为节点的网络标识,有效减少报文中各节点的分段标识占用比特,提高芯片数据转发效率,减少传输和存储的信息量。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为srv6sid的示意图;
图2为净荷长度256b时不同sid个数sr承载效率对比分析示意图;
图3为本发明实施例中分段标识的处理方法的流程图;
图4为本发明实施例中4个32位的usid的示意图;
图5为本发明实施例中usid中的genericprefix和cl与现有的sid中的locator的映射示意图;
图6为本发明实施例中endpointfunction类型的示意图;
图7为本发明实施例中基于srv6usidte进行vpn流量转发的示意图;
图8为图7中节点a-e的cl信息的示意图;
图9为图7中节点b的usid的示意图;
图10、图11为图7中节点e的usid的示意图;
图12为图7中segmentlist中usid列表示意图;
图13至图15为图7中各节点的报文的示意图;
图16为本发明实施例中网络节点的示意图之一;
图17为本发明实施例中网络节点的示意图之二;
图18为本发明实施例中通信设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,说明书以及权利要求中使用“和/或”表示所连接对象的至少其中之一,例如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)的组织的文献中描述。本文所描述的技术既可用于以上提及的系统和无线电技术,也可用于其他系统和无线电技术。
参见图3,本发明实施例提供一种分段标识处理的方法,该方法的执行主体可以为第一节点,例如,第一节点可以是网络中的入节点(ingress节点)、中间节点、或者出节点(egress节点),该方法包括:步骤301和步骤302。
步骤301:获取所述第一节点的网络标识中的第一信息和所述第一节点的第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
上述function用于标识节点的编程能力,function的不同取值对应不同的业务行为。
在本发明实施例中,第一信息包含在第一节点的网络标识(例如nodesid)中,相当于从第一节点的网络标识中提取出第一节点的网络标识与其他各节点的网络标识的差异部分(不同的部分),即可以理解为对第一节点的网络标识进行压缩,例如,网络标识表示为locator,则第一信息可以表示为压缩位置标识(compressedlocator,cl),也就是将cl作为locator的片段,发送给网络中的其他节点,这样其他节点根据该差异部分与网络定义的网络标识的通用部分组合即可得到该第一节点的网络标识。
示例性地,网络中的节点包括:节点a、节点b、节点c、节点d和节点e,网络标识为节点的nodesid,比如,节点a的nodesid为:aa::11::/116(inta2),节点b的nodesid为:aa::12::/116(intb3),节点c的nodesid为:aa::13::/116(intc3),节点d的nodesid为:aa::14::/116(intd3),节点e的nodesid为:aa::15::/116(inte2),上述各节点的nodesid的差异部分如下:11,12,13,14和15,可以理解为,节点a的第一信息为:11,节点b的第一信息为12,节点c的第一信息为13,节点d的第一信息为14,节点d的第一信息为15。
步骤302:向网络中其他节点发送所述第一信息和所述第二信息。
可选地,通过控制协议向网络中其他节点发送所述第一节点的第一信息和所述第二信息,其中,控制协议包括但不限于内部路由协议(igp)、边界网关协议(bgp)等协议。
在本发明实施例中,第一节点的第一信息和第二信息的组合用于表示第一节点的usid。
上述usid是指:unifiedsid,统一分段标识,即第一节点的usid包括:第一节点的网络标识的差异部分(相当于cl)和第一节点的function的取值,例如,usid基础长度可以为32bit,其中cl的缺省长度20bit,function的缺省长度12bit。
在本发明实施例中,可选地,所述方法还可以包括:获取网络中各节点的网络标识的通用部分,所述通用部分用于与所述第一信息组合得到所述第一节点的网络标识。
例如,通过以下获取方式,获取所述网络中各节点的网络标识的通用部分;
所述获取方式包括以下一项或多项:
(1)网络中各节点统一配置;
(2)控制器向网络中各节点统一下发;
(3)网络中各节点之间相互协商;
(4)接收网络中的其他节点发送的信令,所述信令携带所述通用部分。
当然可以理解的是,在网络中的节点还可以通过其他方式获取通用部分,并不限于上述举例的四种方式。
上述通用部分指示各节点的网络标识的相同部分,可以理解的是,节点的网络标识的差异部分和该节点的网络标识的通用部分组合即可得到该节点的网络标识。
以网络标识为ip地址为例,该网络的各节点的网络标识的通用部分可以表示为通用前缀(genericprefix),其中,所述第一节点的cl和genericprefix组合得到所述第一节点的locator。
例如,locator+function的长度为128bit,cl的缺省长度20bit,function的缺省长度12bit,如果genericprefix长度不足96bit,则需要在genericprefix与cl之间用0补齐。
以网络标识为节点的ipv6地址(或者称为nodesid)为例,比如网络中各节点的网络标识的通用部分可以为:aa::/96,结合上述示例的描述,根据第一节点的第一信息(11)和通用部分(aa::/96)可以组合(或称为拼接)得到第一节点的网络标识(locator):aa::11::/116,网络中的其他节点的处理方式与此类似。
在一些实施方式中,所述方法还包括:从一个或多个第二节点(相当于网络中的其他节点)接收所述第二节点的第三信息和所述第四信息;所述第三信息包括:所述第二节点的网络标识与网络中其他节点的网络标识的差异部分,所述第四信息包括所述第二节点的function的取值。
在本发明实施例中,第三信息包含在第二节点的网络标识中,相当于从第二节点的网络标识中提取出其与其他各节点的差异部分,即对第二节点的网络标识进行了压缩,第二节点的第三信息相当于第二节点的cl。可以理解的是,第一节点可以根据第二节点的cl和网络中各节点的网络标识的通用部分组合得到第二节点的网络标识。
也就是说,网络中的某个节点可以获取其他节点的usid(包括cl和function的取值),以及网络中各网络节点的通用部分,这样该节点可以基于cl和通用部分拼接得到其他节点的locator。
在一些实施方式中,所述方法还包括:生成段列表(segmentlist),所述segmentlist包括:一个或多个usid,所述usid包括:所述第二节点的第三信息和所述第四信息;将所述segmentlist封装到所述报文的genericsrh中。
上述报文可以是ipv6报文,当然并不限于此。
在一些实施方式中,所述方法还包括:
根据所述segmentlist,确定所述第二节点的第三信息和第四信息,所述第二节点为所述第一节点的下一个节点;根据所述第二节点的第三信息和网络中各节点的网络标识的通用部分,生成所述第二节点的网络标识;根据所述第二节点的网络标识和所述第二节点的第四信息,生成所述报文的genericsrh中的目的地址;根据所述目的地址,将所述报文发送给所述第二节点。
在一些实施方式中,所述方法还包括:
从第一节点的上一节点接收报文;
如果所述报文的genericsrh中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid中的function的取值,对所述报文(例如ipv6报文)进行处理,即usid节点可以根据function的取值完成指定function的业务处理。例如,如果需要转发该报文,则第一节点根据所述报文中的segmentlist中指向下一个节点的网络标识的差异部分,以及第一节点获取的该下一个节点的网络标识的通用部分,确定第一节点的下一个节点的网络标识,基于下一个节点的网络标识和下一个节点的function的取值,生成报文的genericsrh中的目的地址,根据所述目的地址,将所述报文发送给下一个节点。
在本发明实施例中,网络中节点的usid包括该节点的网络标识与其他节点网络标识的差异部分和该节点的function的取值,其中差异部分使用的是网络标识的部分内容,不需要映射即可与通用部分组合成为节点的网络标识,有效减少报文中各节点的分段标识占用比特,提高芯片数据转发效率,减少协议传输和存储的信息量。
示例性地,usid的基础长度可以为32bit,对sid空间占用进行有效压缩,并继承了标准sid的locator与function结构,与现有标准的srv6sid存在如下对应关系,其中的:
1)每个128位的空间,被分为4个32位的usid(短sid),如图4所示。
nextheader:标识紧跟在srh之后的报文头的类型。
hdrextlen:srh头的长度。主要是指从segmentlist[0]到segmentlist[n]所占用的长度。
routingtype:标识路由头部类型,srhtype是4。
segmentleft:到达目的节点前仍然应当访问的中间节点数。
lastentry:在段列表中包含段列表的最后一个元素的索引。
flags:数据包的一些标识。
tag:标识同组数据包。
segmentlist[n]:段列表,段列表从路径的最后一段开始编码。
optionaltlv:可变长tlv部分。
2)同一网络定义通用前缀(genericprefix),usid的压缩位置标识(compressedlocator,cl)作为网络节点的差异部分与原生srv6sidlocator存在包含关系,如5图所示,20bitcl作为locator的低位地址片段直接与genericprefix拼接,可以形成128bit的locator。由于usid的cl部分缺省长度只有20bit,如果genericprefix长度小于96bit,则genericprefix与cl之间的位置用0补齐。
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的压缩长度,之前描述的cl和function占用长度均为举例性说明,在本发明实施例中对cl和function占用长度不做限定。
在本发明实施例中,usid中function可以全部继承draft-ietf-spring-srv6-network-programming-07section4的定义,当然并不限于此。
以一个usid32bit为例,function的缺省长度12bit,按照当前网络部署规模,可用于end.x,end.dt4,end.dt6,end.dt46这类基础的endpointfunction类型。
srv6usid生成机制中cl作为locator片段与genericprefix拼接可组合成原生srv6locator,例如参见图5。
1)同一网络中的所有节点的sid,提取通用部分作为genericprefix,该genericprefix通过配置或控制器下发等其他方式通知到网络中的各节点。
2)网络中各节点存在差异的低位部分地址片段可使用cl表示,通过igp/bgp等控制协议传输到网络中的其他节点,网络中所有节点均可获取其他节点的locator差异部分信息,并与已知的genericprefix直接拼接即可组合成完整的locator。由于usid基础长度32bit,其中cl长度缺省20bit,如果genericprefix长度不足96bit,则需要在genericprefix与cl之间用0补齐。
3)可以理解的是,cl使用地址形式表示,不需要映射即可组合成为ipv6地址,提高芯片数据转发效率,减少协议传输和存储的信息量。
网络中部署srv6usid的节点仅需要将自身原生srv6sid中locator的差异部分cl进行提取,并通过igp/bgp等控制协议传输到网络中的其他节点,这样网络中所有节点均可根据cl和已知的genericprefix组合成完整的locator。
同时为实现endpointfunction,部署srv6usid的网络节点也会指定function类型分配function取值,并把endpointfunction类型和对应的endusid通过igp/bgp等控制协议传输到网络中的其他节点。function取值不同于cl取值,仅对于业务的端点(通常为网络的ingress和egress节点)可识别,对其他中间节点仅用于传输。
1)网络的ingress节点使用srv6usid进行封装时,根据egress节点发布的cl,以及igp/bgp传输的endusid查询对应的function取值,按照前述cl:function组合形成一个usid。如果指定途经的节点集合,则对该集合中的每个节点ipv6地址分别提取genericprefix,剩余部分按照cl的地址片段位置提取并形成一个usid,function字段填0。如果指定途经的链路集合,则对该集合中的每个链路起始节点ipv6地址分别提取genericprefix,剩余部分按照cl的地址片段位置提取作为每个usid的cl,同时根据igp传输的endusid查询对应的链路function取值,按照前述cl:function组合形成一个usid。
2)网络的ingress节点将上述usid按照途经顺序由后向前形成usid列表,封装到报文的ipv6srh头部的segmentlist,即egress节点的usid在列表中第一个,指定路径上的第一个节点或链路usid在列表中最后一个,当前指向的usid为最后一个usid,这与原生srv6方式完全相同。当前指向usid的cl直接拼接根据配置或控制器下发等方式获取的genericprefix形成ipv6头部的目的地址locator部分,如果genericprefix不足96bit则在cl前补0,并在ipv6目的地址的最低12bit填充该usid的function取值,形成完整的ipv6目的地址。
3)报文在网络中转发时,每个节点均检查ipv6目的地址是否为自己,如果不是则按照ipv6路由表进行转发即可,如果是则需要对ipv6srh头部segmentlist当前指向的usid进行处理,即根据function取值进行对应的业务处理,例如查找指定的链路转发、查找对应vrf的路由表转发等。同时segmentlist中的usid指向前移一个usid,把新的usidcl与genericprefix拼接形成ipv6目的地址新的locator,并在ipv6目的地址的最低12bit填充新的usidfunction取值,形成新的ipv6头部完整的目的地址。
报文继续转发,重复以上过程,直到完成segmentlist中的第一个usid即egress节点usid的业务处理。
下面结合图7,按照上述方案流程介绍一种可选的实施方式。
usid采用基础长度32bit,cl采用缺省长度20bit,function采用缺省长度12bit。genericprefix使用aa::/96,srv6nodesid中locator长度116bit(96bit+20bit),endfunction采用最小集end.x/end.dt4/end.dt6,a和e部署l3vpnipv4和ipv6,基于srv6usidte的vpn流量转发。
节点a-e生成的cl信息参见图9,用于标识各节点srv6nodesid的差异部分,可通过igp(包括但不限于isis6、ospfv3)协议扩展subtlv洪泛到网络中其他节点,例如b节点cl=12可洪泛到a、c、d、e节点。
节点b起始的链路存在3条,基于cl=12使用end.xusid表示如图10所示,同样可通过igp(包括但不限于isis6、ospfv3)协议扩展subtlv洪泛到节点a、c、d、e,其中function=1表示到节点a,function=2表示到节点c,function=3表示到节点d。
节点e的end.dt4usid和end.dt6usid可通过bgp(包括但不限于vpnv4、vpnv6、evpn地址族等)协议扩展属性传递到bgpvpnpeer节点a,并通过rt交叉匹配各vpn可获取对应的usid中function取值。
其中节点e的inte3为loopback接口,可作为与节点a建立bgpvpnpeer的地址,节点a上查询vpn路由的下一跳就为inte3的ipv6地址,使用cl=15表示;节点e的vpn业务存在1k个vpnv4和1k个vpnv6,分别使用function取值1-1024和1025-2048表示,参见图11和图12。
如果需要从节点a发送ipv4-vpn2的流量,查询vpn2路由表目的地址的下一跳为节点e,而且vpn2流量需要经过b-c链路,则需要:
1)首先查询节点e发布的nodesidlocator差异部分cl=15,同时根据bgp扩展属性vpn2交叉匹配获取对应的function=2,组成第一个usid1=15|2;
2)查询b-c链路的起始节点b发布的nodesidlocator差异部分cl=12,同时查询b-c链路对应的end.xsidfunction=2,组成第二个也是最后一个usid2=12|2。
基于上述1)和2)的处理,segmentlist中usid列表,参见图13。
按照draft-ietf-6man-segment-routing-header-26草案对segmentleft(sl)的含义进行变更,每个segment由ipv6地址固定的128bit变为usid基础长度32bit。携带srv6usid的数据报文转发过程继续参见图7:
1)a节点segmentlist=<usid1=15|2,usid2=12|2>,其中usid2的cl=12拼接genericprefixaa::/96对应的locator=aa::12::/116,并将function=2填充到低位,形成ipv6目的地址aa::12::2进行转发,查询ipv6路由表转发到节点b,参见图14;
2)节点b检查ipv6目的地址aa::12::2为自己,则对sl指向的usid2=12|2进行处理,根据function=2为b-c链路,则将报文按照b-c链路转发,同时sl指向移动到usid1,并使用usid1的cl=15拼接genericprefixaa::/96对应的locator=aa::15::/116,并将function=2填充到低位,形成新的ipv6目的地址aa::15::2继续进行转发;
3)节点c检查ipv6目的地址aa::15::2不是自己,查询本节点ipv6路由表继续转发到节点e;
4)节点e检查ipv6目的地址aa::15::2是自己,则对sl指向的usid1=15|2进行处理,根据function=2为ipv4vpn2,,同时由于sl=0已经指向第一个usid1,则需要整体弹出ipv6的srh头部,将报文的payload部分按照vpn2的ipv4路由表继续进行转发,参见图15和图16。
参见图16,本发明实施例还提供一种网络节点,该网络节点为第一节点,该第一节点1600包括:
第一获取模块1601,用于获取所述第一节点的网络标识中的第一信息和第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
第一发送模块1602,用于向网络中其他节点发送所述第一信息和所述第二信息;
其中,所述第一信息和所述第二信息的组合用于表示所述第一节点的usid。
在一些实施方式中,第一发送模块1602进一步用于:通过控制协议向网络中其他节点发送所述第一节点的第一信息和所述第二信息。
在一些实施方式中,第一节点1600还包括:
第二获取模块,用于获取网络中各节点的网络标识的通用部分,所述通用部分用于与所述第一信息组合得到所述第一节点的网络标识。在一些实施方式中,第二获取模块进一步用于通过以下获取方式,获取所述网络中各节点的网络标识的通用部分;
所述获取方式包括以下一项或多项:
(1)网络中各节点统一配置;
(2)控制器向网络中各节点统一下发;
(3)网络中各节点之间相互协商;
(4)接收网络中的其他节点发送的信令,所述信令携带所述通用部分。
当然可以理解的是,在网络中的节点还可以通过其他方式获取通用部分,并不限于上述举例的四种方式。
在一些实施方式中,第一节点1600还包括:
第一接收模块,用于从一个或多个第二节点接收所述第二节点的第三信息和第四信息,所述第三信息包括:所述第二节点的网络标识与网络中其他节点的网络标识的差异部分,所述第四信息包括所述第二节点的function的取值。
在一些实施方式中,第一节点1600还包括:
第一生成模块,用于生成segmentlist,所述segmentlist包括:一个或多个usid,所述usid包括:所述第二节点的第三信息和所述第四信息;
封装模块,用于将所述segmentlist封装到所述报文的genericsrh中。
在一些实施方式中,第一节点1600还包括:
确定模块,用于根据所述segmentlist,确定所述第二节点的第三信息和function的取值,所述第二节点为所述第一节点的下一个节点;
第二生成模块,用于根据所述第二节点的第三信息和网络中各节点的网络标识的通用部分,生成所述第二节点的网络标识;
第三生成模块,用于根据所述第二节点的网络标识和第四信息,生成所述报文的genericsrh中的目的地址;
第二发送模块,用于根据所述目的地址,将所述报文发送给所述第二节点。
在一些实施方式中,第一节点1600还包括:
第二接收模块,用于接收报文;
处理模块,用于如果所述报文的genericsrh中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid中的function的取值,对所述报文进行处理。
本发明实施例提供的节点,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
参见图17,本发明实施例还提供一种网络节点,该网络节点为第一节点,该第一节点1700包括:收发机1701和处理器1702;
所述处理器1702,用于获取所述第一节点的网络标识中的第一信息和所述第二信息,所述第一信息包括:所述第一节点的网络标识与网络中其他节点的网络标识的差异部分,所述第二信息包括所述第一节点的function的取值;
所述收发机1701,用于向网络中其他节点发送所述第一信息和所述第二信息;
其中,所述第一信息和所述第二信息的组合用于表示所述第一节点的usid。
在一些实施方式中,收发机1701进一步用于:通过控制协议向网络中其他节点发送所述第一信息和所述第二信息。
在一些实施方式中,处理器1702还用于:获取网络中各节点的网络标识的通用部分,所述通用部分用于与所述第一信息组合得到所述第一节点的网络标识。
在一些实施方式中,处理器1702进一步用于:通过以下获取方式,获取所述网络中各节点的网络标识的通用部分;
所述获取方式包括以下一项或多项:
(1)网络中各节点统一配置;
(2)控制器向网络中各节点统一下发;
(3)网络中各节点之间相互协商;
(4)接收网络中的其他节点发送的信令,所述信令携带所述通用部分。
当然可以理解的是,在网络中的节点还可以通过其他方式获取通用部分,并不限于上述举例的四种方式。
在一些实施方式中,收发机1701还用于:从一个或多个第二节点接收所述第二节点的第三信息和所述第四信息;所述第三信息包括:所述第二节点的网络标识与网络中其他节点的网络标识的差异部分,所述第四信息包括所述第二节点的function的取值。
在一些实施方式中,处理器1702还用于:生成segmentlist,所述segmentlist包括:一个或多个usid,所述usid包括:所述第二节点的第三信息和所述第四信息;
处理器1702还用于:将所述segmentlist封装到所述报文的genericsrh中。
在一些实施方式中,处理器1702还用于:根据所述segmentlist,确定所述第二节点的第三信息和第四信息,所述第二节点为所述第一节点的下一个节点;根据所述第二节点的第三信息和网络中各节点的网络标识的通用部分,生成所述第二节点的网络标识;根据所述第二节点的网络标识和所述第二节点的function的取值,生成所述报文的genericsrh中的目的地址;
收发机1701还用于:根据所述目的地址,将所述报文发送给所述第二节点。
在一些实施方式中,收发机1701还用于:接收报文;
处理器1702还用于:如果所述报文的genericsrh中的目的地址与所述第一节点的网络标识匹配,则根据所述报文中的segmentlist当前指向的usid中的function的取值,对所述报文进行处理。
本发明实施例提供的节点,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
请参阅图18,图18是本发明实施例应用的通信设备的结构图,如图18所示,通信设备1800包括:处理器1801、收发机1802、存储器1803和总线接口,其中:
在本发明的一个实施例中,通信设备1800还包括:存储在存储器上1803并可在处理器1801上运行的计算机程序,计算机程序被处理器1801执行时实现图3所示实施例中的步骤。
在图18中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1801代表的一个或多个处理器和存储器1803代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1802可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
处理器1801负责管理总线架构和通常的处理,存储器1803可以存储处理器1801在执行操作时所使用的数据。
本发明实施例提供的通信设备,可以执行上述图3所示方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以由在处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、eprom、eeprom、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以携带在asic中。另外,该asic可以携带在核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。