报文转发方法以及网络设备与流程

文档序号:29733587发布日期:2022-04-21 13:25阅读:164来源:国知局
1.本技术实施例涉及通信领域,尤其涉及一种报文转发方法以及网络设备。
背景技术
::2.分段路由网络协议第六版(segmentroutinginternetprotocolversion6,srv6)是基于网络协议第六版(internetprotocolversion6,ipv6)和段路由(segmentrouting,sr)的新一代网络协议(internetprotocol,ip)承载协议,可以统一传统的复杂网络协议,实现网络协议简化和应用级的服务等级协议(service-levelagreement,sla)保障。3.现有的srv6业务链网络中,集中编排器完成业务链编排,该业务链包括一个或多个具备相同或不同功能的业务功能(servicefunction)模块,并将业务链下发给控制器,控制器下发完整srv6业务链给业务分类功能(serviceclassifier,sc),该srv6业务链中包含了业务转发功能(servicefunctionforwarder,sff)等信息。4.现有技术中,存在业务链计算压力较大的问题。技术实现要素:5.本技术提供了一种报文转发方法以及网络设备,能够减轻业务链计算压力。6.第一方面提供了一种报文转发方法,包括:基于业务链网络,网络设备可以获取其他设备传输或网络设备本身生成的第一数据报文。该第一数据报文包括第一业务段标识servicesid。网络设备可以根据上述第一数据报文中的第一servicesid,确定该第一servicesid所要执行的设备的第一业务功能段标识sfsid。其中,第一sfsid为用于执行第一目标业务功能的第一业务功能设备的标识。网络设备在确定第一sfsid后,可以将该第一数据报文发送到由上述第一sfsid所指示的第一业务功能设备。7.网络设备根据接收的第一数据报文中的第一servicesid确定第一sfsid,不需要控制器计算数据报文详细的的转发路径,减轻了业务链计算压力。8.在一种可能的设计中,网络设备在确定第一sfsid后,可以将该第一sfsid封装在第一数据报文的扩展头中的第一段标识列表中,完成对第一数据报文的更新。9.本技术中,网络设备将第一sfsid更新在第一数据报文的第一段标识列表中,使得其他网络设备接收到更新后的第一数据报文后可以即时确定第一sfsid,提高处理速率。10.在一种可能的设计中,网络设备为头节点,头节点可以接收来自网络传输的第二数据报文,然后根据该第二数据报文和报文分类规则确定报文转发的第二段标识列表,然后将该第二段标识列表封装到第二数据报文的扩展头中,用以生成第一数据报文。第一数据报文满足上述报文分类规则,第二段标识列表与该报文分类规则对应,第一数据报文包括所第二段标识列表,第二段标识列表包括第一servicesid和第二servicesid,第二servicesid和第一servicesid相邻,第二servicesid用于使网络设备执行根据第一servicesid确定第一sfsid的步骤。11.本技术中网络设备根据接收的第二数据报文和报文分类规则确定第二段标识列表,并生成第一数据报文,提高了方案的可实现性。12.在一种可能的设计中,网络设备可以根据该第一数据报文中的第一servicesid确定与该第一servicesid对应的第一关系。该第一关系可以包括多个sfsid和多个sfsid中每个sfsid对应的指标参数,其中,多个sfsid中包括第一sfsid。即网络设备即可根据上述第二段标识列表对应的指标需求和上述第一关系中的指标参数匹配,用以确定上述第一sfsid。13.本技术中,网络设备根据第二段标识列表对应的指标需求,从获得的包括指标参数的第一关系中根据第一servicesid确定第一sfsid,由网络设备确定执行servicesid对应的业务功能设备,无需控制器集中进行计算详细路径,减轻了业务链计算压力。14.在一种可能的设计中,该第一关系可以从网络设备接收的第一内部网关协议(interiorgatewayprotocol,igp)报文中确定,该第一igp报文可以由网络设备的其他节点发布。该第一igp报文可以直接包括该第一servicesid和该第一关系。该第一关系也可以是网络设备接收多个sff节点发送的第二igp报文和第三igp报文,该第二igp报文可以包括上述第一servicesid、第一sfsid和第一sfsid对应的第一指标参数,第三igp报文可以包括上述第一servicesid、第四sfsid和第四sfsid对应的第四指标参数,网络设备可以基于该第二igp报文和第三igp报文确定上述第一关系。15.本技术中,网络设备通过获得其他设备发送的igp报文的方式获得上述第一关系,减轻了由控制器等设备集中控制的压力。16.在一种可能的设计中,网络设备为头节点,可以获得集中编排器发送或预配置的报文分类规则,该报文分类规则可以用于表示第二段标识列表与数据报文特征的关联关系,然后将该报文分类规则发送给头节点。头节点在接收到第二数据报文后,可以确定该第二数据报文的报文特征,以匹配上述报文分类规则所指示的第二段标识列表与数据报文特征的关联关系中的数据报文特征,来确定第二数据报文对应的第二段标识列表。17.本技术中,网络设备根据第二数据报文的报文特征从报文分类规则中匹配第二段标识列表,提高了方案的可实现性。18.在一种可能的设计中,网络设备为中间节点sff时,中间节点可以接收头节点发送的第一数据报文,该第一数据报文包括第二servicesid。该第二servicesid为该中间节点的sid,第二servicesid与上述第一servicesid相邻,中间节点可以根据该第二servicesid的指示确定与该第一servicesid对应的第一sfsid。19.本技术中,网络设备接收包含包括第二sfsid和第三servicesid的第三数据报文,并将该第三数据发送给第二业务功能设备以获得第一数据报文,即网络设备还可以是中间节点,提高了方案的灵活性。20.在一种可能的设计中,第二sfsid和第二sfsid对应的第二指标参数为网络设备的段标识。21.本技术中,限定了第二sfsid和第二指标参数是网络设备的段标识,提高了方案的可实现性。22.第二方面提供了一种报文转发方法,包括:sid对应的指标参数用于指示第一关系,第一关系用于根据第二段标识列表的指标需求确定第一sfsid,第一servicesid用于指示第一目标业务功能,第一sfsid包括执行第一目标业务功能的第一业务功能设备的标识,第二段标识列表包括第一servicesid;发布模块,用于发布第一通告报文。43.在一种可能的设计中,第一通告报文还包括第二sfsid和第二sfsid对应的第二指标参数,第二sfsid包括用于执行第一目标业务功能的第二业务功能设备的标识,第一指标参数与第二指标参数不同。44.在一种可能的设计中,第一通告报文包括第一sfsidtlv,第一sfsidtlv包括第一sfsid、第一指标参数和状态status,status用于指示第一sfsid对应的第一目标业务功能是否可用。45.第七方面提供了一种网络设备,包括:处理器、存储器、以及通信接口,该处理器用于执行该存储器中存储的指令,使得网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,该通信接口用于接收或发送报文。第七方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。46.第八方面提供了一种网络设备,包括:处理器、存储器、以及通信接口,所述处理器用于执行所述存储器中存储的指令,使得所述网络设备上述第二方面或第二方面任一种可选方式所提供的方法,该通信接口用于接收或发送报文。第八方面提供的网络设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。47.第九方面提供了一种网络设备,包括:处理器、存储器、以及通信接口,所述处理器用于执行所述存储器中存储的指令,使得所述网络设备执行上述第三方面或第三方面任一种可选方式所提供的方法,该通信接口用于接收或发送报文。第九方面提供的网络设备的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。48.第十方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有程序,当该计算机执行程序时,执行前述第一方面或第一方面任一种可选方式提供的方法。49.第十一方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有程序,当该计算机执行程序时,执行前述第二方面或第二方面任一种可选方式提供的方法。50.第十二方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有程序,当该计算机执行程序时,执行前述第三方面或第三方面任一种可选方式提供的方法。51.第十三方面提供了一种计算机程序产品,当该计算机程序产品在计算机上执行时,该计算机执行前述第一方面或第一方面任一种可选方式提供的方法。52.第十四方面提供了一种计算机程序产品,当该计算机程序产品在计算机上执行时,该计算机执行前述第二方面或第二方面任一种可选方式提供的方法。53.第十五方面提供了一种计算机程序产品,当该计算机程序产品在计算机上执行时,该计算机执行前述第三方面或第三方面任一种可选方式提供的方法。54.第十六方面提供了一种芯片,当该芯片在设备上运行时,使得设备执行前述第一方面或第一方面任一种可选方式提供的方法。55.第十七方面提供了一种芯片,当该芯片在设备上运行时,使得设备执行前述第二方面或第二方面任一种可选方式提供的方法。56.第十八方面提供了一种芯片,当该芯片在设备上运行时,使得设备执行前述第三方面或第三方面任一种可选方式提供的方法。57.第十九方面提供了一种网络系统,该网络系统包括前述第四方面至第六方面提供的网络设备。附图说明58.图1为本技术实施例提供的srv6业务链网络的系统框架图;59.图2为本技术实施例提供的一种报文转发方法示意图;60.图3为本技术实施例提供的另一种报文转发方法示意图;61.图4为本技术实施例提供的另一种报文转发方法示意图;62.图5为本技术实施例提供的分布编排算法示意图;63.图6为本技术实施例提供的管理面示意图;64.图7为本技术实施例提供的一种网络设备700的结构示意图;65.图8为本技术实施例提供的一种网络设备800的结构示意图;66.图9为本技术实施例提供的一种网络设备900的结构示意图;67.图10为本技术实施例提供的一种网络设备1000的结构示意图;68.图11为本技术实施例提供的一种网络设备1100的结构示意图。具体实施方式69.下面结合附图,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。70.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。71.本技术实施例提供了一种报文转发方法以及网络设备,用于减轻业务链计算压力。72.以下,对本技术中的部分用语进行解释说明,以便于本领域技术人员理解。73.分段路由(segmentrouting,sr):是基于源路由的理念而设计的在网络中转发数据包的一种协议。sr将网络路径划分为一个个段,并且为这些段和网络节点分配分段标识(segmentid,sid),通过对sid进行有序排列,可以得到sid列表(sidlist,在sr-mpls中也称标签栈),sidlist可以指示一条转发路径。通过sr技术,可以指定携带了sidlist的数据包经过的节点以及路径,从而满足流量调优的要求。做一个类比,数据包可以比作行李,sr可以比作行李上贴的标签,如果要将行李从a地区发送到d地区,途径b地区和c地区,则可以在始发地a地区给行李贴上一个标签“先到b地区,再到c地区,最后到d地区”,这样一来,各个地区只需识别行李上的标签,依据行李的标签将行李从一个地区转发至另一个地区即可。在sr技术中,源节点会向数据包添加标签,中间节点可以根据标签转发至下一个节点,直至数据包到达目的节点。例如在数据包的包头中,插入《sid1,sid2,sid3》,则数据包packet会首先转发给sid1对应的节点,之后转发给sid2对应的节点,之后转发给sid3对应的节点。其中,sr-mpls的中英文全称为分段路由多协议标签交换(segmentroutingmulti-protocollabelswitching)。74.基于互联网协议第6版(internetprotocolversion6,ipv6)的分段路由(srv6):是指将sr技术应用在ipv6网络中。使用ipv6地址(128bits)作为sid的表现形式。在转发数据包时,支持srv6的网络设备会按照数据包中的目的地址((destinationaddress,da),查询本地段标识表(localsidtable),当数据包的目的地址与本地段标识表中的任一sid最长匹配时,则按照本地段标识表中的sid相关的策略,执行该策略对应的操作,例如,可以将数据包从sid对应的出接口转发出去);如果数据包的目的地址与本地段标识表中的每个sid均不最长匹配,则再查ipv6的转发表,按照ipv6的转发表进行最长匹配转发。75.srv6网络中的不同节点之间可以通过互联网协议(internetprotocol,ip)地址层链路相连。对于任一节点来说,该节点可以发布至少一个端点三层交叉连接段标识(end.xsid,end表示endpoint,意为端点;x表示crossing,意为三层交叉连接,sid意为段标识),每个end.xsid用于标识该节点直连的一条ip层链路,网络中的其他节点通过收发彼此发布的end.xsid,可以确定网络中每条ip层的链路对应的sid。当数据包进入srv6网络时,头节点会接收到数据包,确定数据包的转发路径之后,在一种可能的实现中,头节点可以根据转发路径需要经过的每条ip层链路,获取每条ip层的链路对应的end.xsid,将得到的end.xsid写入到数据包,再将携带了end.xsid的数据包发送至下一节点。当任一节点接收到数据包时,节点会解析该数据包,得到数据包携带的end.xsid,将数据包从end.xsid绑定的ip层出接口发送出去,则数据包会通过该ip层出接口对应的ip层链路,到达下一节点,下一节点会通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。在另一种可能的实现中,头节点可以根据转发路径需要经过的每个节点,获取每个节点对应的端点段标识(endsid,end表示endpoint,意为端点,sid意为段标识),将得到的endsid写入到数据包,再将携带了endsid的数据包发送至下一节点。当任一节点接收到数据包时,该节点会解析该数据包,得到数据包携带的endsid,向endsid对应的节点发送数据包,则数据包会到达该endsid对应的节点,以此类推,每个节点通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。需要说明的是,上述的end.x或end构成的sidlist可以仅指明路径上的部分节点,而不是全部的节点。另外,也可以混合使用end.x和end,以及其他的srv6functions。76.分段路由头(segmentroutingheader,srh):ipv6报文是由ipv6标准头+扩展头(0...n)+负载payload组成。为了基于ipv6转发平面实现srv6,新增加一种ipv6扩展头,称作srh扩展头,该扩展头指定一个ipv6的显式路径,存储的是ipv6的segmentlist信息,其作用与srmpls里的segmentlist一样。头节点在ipv6报文增加一个srh扩展头,中间节点就可以按照srh扩展头里包含的路径信息转发。77.绑定的sid(bindingsid,bsid):bsid会绑定到一个sidlist上。当节点获得一个合法的bsid时,会执行bsid相关的操作。在sr-mpls中,bsid相关的操作可以为:将bsid弹出,压入相应的sidlist。在srv6中,bsid相关的操作可以为:根据bsid函数的不同,插入一个新的srh头(end.b6.insert),或者是插入一个新的包含srh的外层ipv6头(end.b6.encaps)。78.头节点(headnode):sr转发路径的起始节点,负责封装段标识。79.以下,示例性介绍本技术的应用场景。如图1所示的srv6业务链网络的系统框架,该系统框架包括:业务链(servicefunctionchain,sfc)协同层(orchestrator)、sfc控制层(controller)、流分类器(serviceclassifier,sc)、业务链尾端设备(postservice,ps)、业务转发功能节点(servicefunctionforwarder,sff)、业务功能节点(servicefunction,sf)和业务节点(servicenode,sn)。在相关技术中,sfcorchestrator通过sfccontroller向sc下发完整srv6业务链路径,sc基于该业务链路径的路径信息封装数据报文发送给sff,sff从该封装的数据报文中确定该报文对应的sf后,将该数据报文发送给sf,sf从sff接收数据报文并提供对应的业务功能,再将数据报文回传到sff,sff再将该数据报文发送给下一个sf、sff或ps。80.业务链协同层主要完成提供业务链服务所需的基础资源预置,包括sc、sff和sn的预置及基础配置,sf与sff的网络连接协同以及sf的业务策略配置等功能,为业务链特性的统一入口。81.业务链控制层还提供业务链特性的网络控制功能,包括业务链所需要的叠加层(overlay)网络管理及业务链路径计算和流表下发等功能。同时,业务链控制层还可以提供接口与云管理平台或协同层对接,也可以通过网络配置协议(thenetworkconfigurationprotocol,netconf)等接口与sc/sff/ps对接。82.sc从非sfc网络接收数据报文,并基于安全复制(securecopy,scp)协议对数据报文进行流分类,匹配到业务链路径后再对数据报文进行封装,并转发给首跳sff,sc与sff可以合一部署。83.ps为数据报文经过业务链路径之后要到达的业务链的目的设备,ps与sff可以合一部署。84.sff负责将由sc引入业务链的数据报文沿预先定义的业务链路径转发,并在业务链尾端将数据报文转发给ps,即作为未识别的(unaware)类型sf的代理对数据报文进行解封装和封装并更新头部信息,sff可以为多个,本框架图以2个为例,即以sff1和sff2为例,业务链的数据报文由sc引入sff1,由sff2转发给ps。85.业务功能节点中的sf实例通常为虚拟资源,比如一个虚拟系统(virtualsystem,vsys)实例从sff接收数据报文并提供相应的业务功能,如应用业务策略,再将数据报文发送回sff,示例性的,sf实例可以为sf1-sf8,sff1可以在sf1-sf4实例应用业务功能,sff2可以在sf5-sf8实例应用业务功能。86.sn作为sf容器,可以是物理网络功能(physicalnetworkfunction,pnf)或虚拟网络功能(virtualnetworkfunction,vnf)网络业务设备,sn包括单sf实例或多sf实例模式工作,示例性的,本框架图可以sn可以为sn1-sn4,sn1包括sf1和sf2,sn2包括sf3和sf4,sn3包括sf5和sf6,sn4包括sf7和sf8。87.图1所示的srv6业务链网络的系统框架图中,sc为头节点,ps为尾节点,头节点和尾节点之间可以建立至少一条路径。对于头节点与尾节点之间的任一条路径,在该路径上位于头节点和尾节点之间还包括至少一个其他节点,为了便于说明称位于头节点和尾节点之间的其他节点为中间节点。例如,如图1所示的路径11是头节点sc和尾节点ps之间的路径,在路径11上位于头节点和尾节点之间还包括sff1和sff2,即sff1和sff2为该路径11上的中间节点。业务链的数据报文转发过程中可以通过sff1将该数据报文转发到sf4,由sf4提供对应的业务功能,还可以通过sff2将该数据报文转发到sf5,由sf5提供对应的业务功能。88.应用于上述srv6的系统框架,下面对相关技术中的报文转发方法进行描述:89.在相关技术中,业务链主要应用于数据中心,随着数据中心海量虚机突发迁移需求的增长,很多基于用户业务的系统和平台(例如防火墙或负载均衡器等)都与网络拓扑紧密相关的,需要根据报文路径部署,数据中心通过业务链的方式来实现业务的灵活串接以及虚拟网络和物理网络的解耦。现有的业务链网络中,集中编排器完成业务链编排和下发控制器,控制器下发完整srv6业务链路径给sc,业务链中包含了指示sff/sf物理位置的sid。由于网络中的业务链、sf等较多,由集中编排器集中对业务链路径进行计算或编排的方案对集中编排器的算力要求较高。当sff故障或sf迁移时,集中编排器需要重新计算并下发业务链路径,重新计算和下发需要占用额外的时间。90.为了解决上述问题,本技术实施例提供了一种报文转发方法,该方法如下所述:91.下面分别从控制面流程和转发面流程的角度分别介绍本技术实施例提供的报文转发的过程。92.本技术实施例的控制面流程中,网络设备既包括接收通告报文的情况,也发送通告报文的情况。93.以下,结合图2介绍本技术实施例提供的一种报文处理方法,本方法主要介绍网络设备发送通告报文的情况,该方法包括如下步骤:94.201、网络设备根据第一servicesid、第一sfsid和第一sfsid对应的第一指标参数生成第一通告报文。95.上述网络设备可以为中间节点sff,也可以为头节点或者尾节点,本技术实施例对此不做限定。网络设备可以接收第一servicesid、sfsid和第一指标参数可以是由集中编排器发送的,也可以是提前在网络设备中预先配置的。网络设备可以在获得上述第一servicesid,第一sfsid和第一sfsid对应的指标参数后,即生成第一通告报文。在一个示例中,该通告报文可以为igp报文,如:中间系统到中间系统(intermediatesystemtointermediatesystem,isis)报文或开放式最短路径优先(openshortestpathfirst,ospf)报文。上述第一servicesid用于指示数据报文转发所需执行的第一目标业务功能,第一sfsid可以作为执行该第一目标业务功能的第一业务功能设备的标识。96.可选的,网络设备还可以获得与第一servicesid对应的第二sfsid和第二sfsid对应的第二指标参数,并在上述第一通告报文中携带第二sfsid和第二sfsid对应的指标参数。该第二sfsid为执行第一目标业务功能的第二业务功能设备的标识。可选的,第一指标参数与第二指标参数的参数数值不同。该指标参数可以包括算力值或其他标识性能的指标,例如时延、丢包率或吞吐量等,本技术对此不作限定。97.在一个示例中,第一通告报文包括servicesid类型-长度-值(tag-length-value,tlv),该servicesidtlv包括第一servicesid,示例性的,该servicesidtlv为本实施例对igp协议的扩展实现,servicesidtlv可以如表1所示。sid,s2_1sid,s1_1sid,s0_1sid}或{s3_2sid,s2_2sid,s1_2sid,s0_2sid},即servicesid可以为s3_1sid,s2_1sid,s1_1sid或s0_1sid,具体的srh1指定的转发路径可以由数据报文特征确定,srh1中的servicesid可以为bsid类型的标识。136.可选的,该报文分类规则可以是集中编排器预先配置在头节点中,也可以是网络设备接收到第二数据报文后从集中编排器获取的,本技术对此不作限定。137.情况b:当网络设备为中间节点或尾节点时,网络设备可以接收其上一节点设备发送的第一数据报文,该第一数据报文包括第二段标识列表。138.第二段标识列表中还包括第二servicesid,该第二servicesid为网络设备的sid,且与第一serivcesid相邻。在一个示例中,当第二段标识列表为{s3_1sid,s2_1sid,s1_1sid,s0_1sid}时,可以认为s3_1sid为第二servicesid,s2_1sid为第一servicesid,在顺序上,可以认为s3_1sid为先被执行的sid,而s2_1sid为后被执行的sid。139.则网络设备在确定段标识列表中的段剩余(segmentleft,sl)指示的sid为自己的servicesid或该第一数据报文中的目的地址为自己的servicesid后,确定与该servicesid相邻的第一servicesid,进一步确定与该servicesid对应的第一sfsid。140.402、网络设备根据第一servicesid确定第一sfsid。141.每个第二段标识列表都预先设置好对应的指标需求,示例性的,上述的{s3_1sid,s2_1sid,s1_1sid,s0_1sid}的指标需求例如算力需求可以固定设置为100,{s3_2sid,s2_2sid,s1_2sid,s0_2sid}的算力需求可以固定设置为400。142.基于上述情况a,头节点sc接收到的数据报文可以有多种,即数据报文的转发路径可以有多种。在一个示例中,头节点接收到报文后,根据报文分类规则中的报文特征与段标识列表和指标需求的对应关系,确定该数据报文对应的段标识列表。如,根据报文特征和算力需求为100,确定对应的段标识列表为{s3_1sid,s2_1sid,s1_1sid,s0_1sid}。在这个段标识列表中,仅包括了指示业务功能的servicesid,但并不需要明确执行具体业务功能的sfsid。每个servicesid对应的sfsid,由转发该报文的网络设备来确定,可以减少集中编排器的算路压力。143.基于上述情况b,网络设备在接收到的数据报文中即包括了确定的段标识列表,该段标识列表包括servicesid。144.综合以上两种情况,网络设备可以根据第一数据报文中,段标识列表中的段剩余(segmentleft,sl)指示的第二servicesid来确定与其相邻的servicesid对应的sfsid。在一个示例中,该报文中的sl指示的第二servicesid为该网络设备的servicesid,则网络设备根据该第二servicesid的指示,执行确定与其相邻的servicesid(即,第一servicesid)如s1sid对应的sfsid。145.网络设备可以通过第一关系来确定与第二段标识列表对应的指标需求对应的第一servicesid对应的sfsid。如图5所示的分布编排算法,网络设备根据算力需求确定多个sfsid之间的算力需求比,在一个示例中,该编排算法由网络设备的分布编排系统来进行分布编排计算。示例性的,可以假定第一servicesid的总算力需求sum为s,其分别对应4个sfsid,如:a1、a2、a3和a4。假设a1-a4的算力值分别cp100,cp200,cp300,cp400,用s1-s4表示。则网络设备可以根据分担项确定各个sfsid对应的各个算力值之间的算力比,示例性的,该分担项可以分别为weigth1、weigth2、weigth3和weigth4,则可以根据满足拟合方差最小来确定对应的sfsid:s1/s《-》weigth1、s2/s《-》weigth2、s3/s《-》weigth3、s4/s《-》weigth4。对于第二段标识列表中携带的第一servicesid,可以依次尝试a1-a4各路径类似如上计算,选择拟合方差最小的sfsid为第一sfsid。在一个示例中,即网络设备可以确定算力需求为100的第二段标识列表包括的第一servicesid对应的第一sfsid为a1sid,算力需求为400的第二段标识列表包括的第一servicesid对应的第一sfsid为a4sid。146.网络设备在确定第一servicesid对应的sfsid之前,还先获得第一关系。网络设备获得第一关系的情况如下所示:147.网络设备可以根据其他设备发送的第一servicesid指示的第一目标业务功能对应的第一关系。该第一关系可以包括多个sfsid和多个sfsid中每个sfsid对应的指标参数,多个sfsid中包括第一sfsid。148.网络设备获得第一关系的方法详细可参考上述图3所示的方法实施例中的详细描述,本技术在此不再赘述。149.下面,示例性介绍网络设备获得的第一关系。指标参数可以包括算力值或其他标识性能的指标,例如时延、丢包率或吞吐量等,本技术对此不作限定,本示例以算力值为例。150.示例性的,如图6所示的本技术实施例提供的管理面示意图,集中编排器分别与头节点sc、sff1、sff2和tail相连,sff1与sf实例a1、a2和a3相连,sff2与sf实例a4以及sf实例b1相连,tail则包含c1功能(图中未示出)。集中编排器可以直接向sff1、sff2和tail发送servicesid、sfsid和sfsid对应的算力值。151.示例性的,servicesid可以包括s1sid、s2sid和s3sid,sfsid包括a1sid、a2sid、a3sid、a4sid、b1sid和c1sid,以及相应的算力值cp:100、200、300、400、500、1500。以第一servicesid为s1sid为例,第一servicesid的第一关系的表示可以如下表3所示。152.表3[0153][0154]403、网络设备更新第一数据报文。[0155]网络设备在确定第一sfsid后,可以执行第二servicesid对应的插入srh头的操作,将上述第一sfsid封装在第一数据报文的srh2的第一段标识列表中。示例性的,头节点执行算力需求为100的第二段标识列表中的s0_1sid对应的操作,即将sfsid:a1sid插入到第一数据报文的srh2中。[0156]404、网络设备根据第一sfsid向第一业务功能设备发送第一数据报文。[0157]网络设备在根据第一servicesid确定第一sfsid后,可以根据第一sfsid的指示,向第一sfsid指示的第一业务功能设备发送该第一数据报文。[0158]网络设备在发送第一数据报文之前,可以执行上述步骤403,也可以不执行上述步骤403所示的更新第一数据报文的动作。即,网络设备也可以不将第一sfsid更新到第一数据报文中,而是在确定第一sfsid后即向其对应的第一业务功能设备发送该第一数据报文。即,上述步骤403为可选步骤。[0159]网络设备在向第一业务功能设备发送该第一数据报文后,还可以接收第一业务功能设备发送的第一数据报文。在一个示例中,该第一数据报文包括上述sfsid,则网络设备还可以执行该sfsid对应的剥离srh头的操作,更新第一数据报文。[0160]如此,在第一数据报文包括的第二段标识列表指示的路径上的设备,根据servicesid确定对应的sfsid的方式,确定该报文的最终传输路径。[0161]示例性的,经过网络设备中的各设备的根据servicesid确定对应的sf的方法,满足特征a以及网络指标参数为100的报文的最终转发路线如图6中路径61所示,经sc、sff1、a1、sff2、b1和tail传输;满足特征b以及网络指标参数为400的报文转发路线如图6中路径62所示,经sc、sff1、a4、sff2、b1和tail传输。[0162]网络设备根据接收的第一数据报文中的第一servicesid确定第一sfsid,不需要控制器计算数据报文完整的转发路径,减轻了业务链计算压力。[0163]进一步的,通过一种分布编排sf实例的srv6业务链方法,在满足按用户信息分担sf实例同时,降低srv6业务链集中编排复杂度。[0164]以上介绍了本技术实施例的图2、图3或图4所示的方法,以下介绍本技术实施例的网络设备,以下分别介绍的网络设备具有上述图2、图3或图4所示的方法中网络设备的任意功能。[0165]图7是本技术实施例提供的一种网络设备700的结构示意图,如图7所示,网络设备700包括:获得模块701,用于执行步骤401,确定模块702,用于执行步骤402,更新模块703,用于执行步骤403,发送模块704,用于执行步骤404,第一接收模块705,用于在步骤401之前执行接收第二数据报文的步骤和在步骤402之前执行接收第一igp报文或接收第二igp报文和第三igp报文的步骤,生成模块706,用于在接收第二igp报文和第三igp报文步骤之后执行生成第一关系的步骤,第二接收模块707,用于在步骤401之前执行接收第一数据报文的步骤。[0166]网络设备700对应于上述图4所示的方法实施例中的网络设备,网络设备700中的各模块和上述其他操作和/或功能分别为了实现图4所示的方法实施例中的网络设备所实施的各种步骤和方法,具体细节可参见上述图4所示的方法,为了简洁,在此不再赘述。[0167]网络设备700在处理报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备700的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络设备700与上述图4所示的方法属于同一构思,其具体实现过程详见图4所示的方法,这里不再赘述。[0168]图8是本技术实施例提供的一种网络设备800的结构示意图,如图8所示,网络设备800包括:接收模块801,用于执行步骤201,生成模块802,用于执行步骤202。[0169]网络设备800对应于上述图2所示的方法实施例中的网络设备,网络设备800中的各模块和上述其他操作和/或功能分别为了实现图2所示的方法实施例中的网络设备所实施的各种步骤和方法,具体细节可参见上述图2所示的方法,为了简洁,在此不再赘述。[0170]网络设备800在处理报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备800的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络设备800与上述图2所示的方法属于同一构思,其具体实现过程详见图2所示的方法,这里不再赘述。[0171]图9是本技术实施例提供的一种网络设备900的结构示意图,如图9所示,网络设备900包括:生成模块901,用于执行步骤301,发送模块902,用于执行步骤302。[0172]网络设备900对应于上述图3所示的方法实施例中的网络设备,网络设备900中的各模块和上述其他操作和/或功能分别为了实现图3所示的方法实施例中的网络设备所实施的各种步骤和方法,具体细节可参见上述图3所示的方法,为了简洁,在此不再赘述。[0173]网络设备900在处理报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备900的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络设备900与上述图3所示的方法属于同一构思,其具体实现过程详见图3所示的方法,这里不再赘述。[0174]与本技术提供的方法实施例以及虚拟装置实施例相对应,本技术实施例还提供了一种网络设备,下面对网络设备的硬件结构进行介绍。[0175]下面描述的网络设备1000或网络设备1100对应于上述方法实施例中的网络设备,网络设备1000或网络设备1100中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中的网络设备1000或网络设备1100所实施的各种步骤和方法,关于网络设备1000或网络设备1100如何基于ipv6实现微分段的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,上述图2、图3或图4所示的方法的各步骤通过网络设备1000或网络设备1100处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。[0176]网络设备1000或网络设备1100对应于上述虚拟装置实施例中的网络设备800、网络设备900或网络设备1000,网络设备800、网络设备900或网络设备1000中的每个功能模块采用网络设备1000或网络设备1100的软件实现。换句话说,网络设备800、网络设备900或网络设备1000包括的功能模块为网络设备1000或网络设备1100的处理器读取存储器中存储的程序代码后生成的。[0177]参见图10,图10示出了本技术一个示例性实施例提供的网络设备1000的结构示意图,该网络设备1000可以由一般性的总线体系结构来实现。[0178]网络设备1000包括至少一个处理器1001、通信总线1002、存储器1003以及至少一个通信接口1004。[0179]处理器1001可以是一个通用cpu、np、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。[0180]通信总线1002用于在上述组件之间传送信息。通信总线1002可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0181]存储器1003可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1003可以是独立存在,并通过通信总线1002与处理器1001相连接。存储器1003也可以和处理器1001集成在一起。[0182]通信接口1004使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口1004包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wirelesslocalareanetworks,wlan)接口,蜂窝网络通信接口或其组合等。[0183]在具体实现中,作为一种实施例,处理器1001可以包括一个或多个cpu,如图10中所示的cpu0和cpu1。[0184]在具体实现中,作为一种实施例,网络设备1000可以包括多个处理器,如图10中所示的处理器1001和处理器1005。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。[0185]在具体实现中,作为一种实施例,网络设备1000还可以包括输出设备1006和输入设备1007。输出设备1006和处理器1001通信,可以以多种方式来显示信息。例如,输出设备1006可以是液晶显示器(liquidcrystaldisplay,lcd)、发光二级管(lightemittingdiode,led)显示设备、阴极射线管(cathoderaytube,crt)显示设备或投影仪(projector)等。输入设备1007和处理器1001通信,可以以多种方式接收用户的输入。例如,输入设备1007可以是鼠标、键盘、触摸屏设备或传感设备等。[0186]在一些实施例中,存储器1003用于存储执行本技术方案的程序代码1010,处理器1001可以执行存储器1003中存储的程序代码1010。也即是,网络设备1000可以通过处理器1001以及存储器1003中的程序代码1010,来实现方法实施例提供的图2、图3或图4所示的方法。[0187]本技术实施例的网络设备1000可对应于上述各个方法实施例中的网络设备,并且,该网络设备1000中的处理器1001、通信接口1004等可以实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。[0188]网络设备700中的获得模块701、发送模块704相当于网络设备1000中的通信接口1004;网络设备700中的确定模块702和更新模块703可以相当于网络设备1000中的处理器1001。[0189]网络设备800中的接收模块801相当于网络设备1000中的通信接口1004;网络设备800中的生成模块802可以相当于网络设备1000中的处理器1001。[0190]网络设备900中的发送模块902相当于网络设备1000中的通信接口1004;网络设备900中的生成模块901可以相当于网络设备1000中的处理器1001。[0191]参见图11,图11示出了本技术一个示例性实施例提供的网络设备1100的结构示意图,网络设备1100包括:主控板1110和接口板1130。[0192]主控板1110也称为主处理单元(mainprocessingunit,mpu)或路由处理卡(routeprocessorcard),主控板1110用于对网络设备1100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1110包括:中央处理器1111和存储器1112。[0193]接口板1130也称为线路接口单元卡(lineprocessingunit,lpu)、线卡(linecard)或业务板。接口板1130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packetoversonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexibleethernetclients,flexeclients)。接口板1130包括:中央处理器1131、网络处理器1132、转发表项存储器1134和物理接口卡(ph11sicalinterfacecard,pic)1133。[0194]接口板1130上的中央处理器1131用于对接口板1130进行控制管理并与主控板1110上的中央处理器1111进行通信。[0195]网络处理器1132用于实现报文的转发处理。网络处理器1132的形态可以是转发芯片。具体而言,网络处理器1132用于基于转发表项存储器1134保存的转发表转发接收到的报文,如果报文的目的地址为网络设备1100的地址,则将该报文上送至cpu(如中央处理器1111)处理;如果报文的目的地址不是网络设备1100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。[0196]物理接口卡1133用于实现物理层的对接功能,原始的流量由此进入接口板1130,以及处理后的报文从该物理接口卡1133发出。物理接口卡1133也称为子卡,可安装在接口板1130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1132处理。在一些实施例中,中央处理器也可执行网络处理器1132的功能,比如基于通用cpu实现软件转发,从而物理接口卡1133中不需要网络处理器1132。[0197]可选地,网络设备1100包括多个接口板,例如网络设备1100还包括接口板1140,接口板1140包括:中央处理器1141、网络处理器1142、转发表项存储器1144和物理接口卡1143。[0198]可选地,网络设备1100还包括交换网板1120。交换网板1120也可以称为交换网板单元(switchfabricunit,sfu)。在网络设备有多个接口板1130的情况下,交换网板1120用于完成各接口板之间的数据交换。例如,接口板1130和接口板1140之间可以通过交换网板1120通信。functionsvirtualization,nfv)技术来实现网络设备。网络设备为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出具有上述功能的网络设备。此处不再赘述。[0208]例如,虚拟化设备可以是容器,容器是一种用于提供隔离的虚拟化环境的实体,例如,容器可以是docker容器。可以将容器配置为网络设备。例如,可以通过对应的镜像来创建出网络设备,例如可以通过proxy-container(提供代理服务的容器)的镜像,为proxy-container创建2个容器实例,分别是容器实例proxy-container1、容器实例proxy-container2,将容器实例proxy-container1提供为网络设备或计算设备,将容器实例proxy-container2提供为网络设备或计算设备。采用容器技术实现时,网络设备可以利用物理机的内核运行,多个网络设备可以共享物理机的操作系统。通过容器技术可以将不同的网络设备隔离开来。容器化的网络设备可以在虚拟化的环境中运行,例如可以在虚拟机中运行,容器化的网络设备可也可以直接在物理机中运行。[0209]例如,虚拟化设备可以是pod,pod是kubernetes(kubernetes是谷歌开源的一种容器编排引擎,英文简称为k8s)为部署、管理、编排容器化应用的基本单位。pod可以包括一个或多个容器。同一个pod中的每个容器通常部署在同一主机上,因此同一个pod中的每个容器可以通过该主机进行通信,并且可以共享该主机的存储资源和网络资源。可以将pod配置为网络设备。例如,具体地,可以指令容器即服务(英文全称:containerasaservice,英文简称:caas,是一种基于容器的paas服务)来创建pod,将pod提供为网络设备。[0210]当然,网络设备还可以是其他虚拟化设备,在此不做一一列举。[0211]在一些可能的实施例中,上述设备也可以由通用处理器来实现。例如,该通用处理器的形态可以是一种芯片。具体地,实现网络设备的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于通过输入接口执行上述各个方法实施例中的报文的生成步骤,该处理电路用于通过输入接口执行上述各个方法实施例中的接收步骤,该处理电路用于通过输出接口执行上述各个方法实施例中的发送步骤。可选地,该通用处理器还可以包括存储介质,该处理电路用于通过存储介质执行上述各个方法实施例中的存储步骤。存储介质可以存储处理电路执行的指令,该处理电路用于执行存储介质存储的指令以执行上述各个方法实施例。[0212]本技术实施例提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述方法实施例中的图2、图3或图4所示的方法。[0213]上述各种产品形态的网络设备,分别具有上述方法实施例中网络设备的任意功能,此处不再赘述。[0214]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0215]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。[0216]在本技术所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。[0217]该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。[0218]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0219]该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0220]以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。[0221]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideodisc,dvd)、或者半导体介质(例如固态硬盘)等。[0222]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0223]以上描述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1