一种SR报文传输方法、装置及系统与流程

文档序号:25956234发布日期:2021-07-20 17:15阅读:180来源:国知局
一种SR报文传输方法、装置及系统与流程

本申请实施例涉及通信领域,尤其涉及一种段路由(segmentrouting,sr)报文传输方法、装置及系统。



背景技术:

随着sr技术的普及,基于互联网协议版本6(internetprotocolversion6,ipv6)转发面的sr技术应运而生。基于ipv6转发面的sr称之为ipv6段路由(ipv6segmentrouting,简称srv6),是基于源路由理念而设计的在网络上转发ipv6数据包的方法。

为了在ipv6报文中实现srv6转发,在ipv6报文中插入一个路由扩展头(segmentroutingheader,srh),用于进行segment的编程组合形成srv6路径。图1示意了一种srv6的报文封装格式,包括ipv6报文头,srh以及报文负荷。

如图1所示,srh中压入了一个显式的路径信息(段列表segmentlist),中间节点根据srh中段索引(segmentleft,sl)的指示,根据显式的路径信息进行逐跳转发,端到端实现隧道可达。

但是,由于srh头中包含有完整的路径信息,攻击者若能在某个节点上获取到srv6流量报文,通过解析srh头即可获取路径信息展开网络攻击。

互联网协议安全性(internetprotocolsecurity,ipsec)使用加密的安全服务以确保在互联网协议(internetprotocol,ip)网络上进行保密而安全的通讯。但是,若将ipsec应用于srv6技术,由于ipsec是端到端的加密,中间传输过程是透明的,路由防火墙等基于内容过滤的安全策略将无法存在,且ipsec网络创建维护复杂成本高、路由器资源开销巨大。

因此,如何实现简单低成本的sr报文转发,以降低安全网络的资源消耗和部署难度,成为亟待解决的问题。



技术实现要素:

本申请提供一种一种sr报文传输方法、装置及系统,实现简单低成本的sr报文转发,降低安全网络的资源消耗和部署难度。

为达到上述目的,本申请采用如下技术方案:

第一方面,提供一种sr报文传输方法,应用于第一节点设备,该第一节点设备为sr报文传输路径上除尾节点之外的任一节点设备,该方法可以包括:第一节点设备获取第一sr报文,该第一sr报文包括传输路径上除首节点之外的n个节点设备的段路由标识(segmentid,sid),第一sr报文中部分或全部sid为隐藏sid,n大于或等于2,小于或等于传输路径上除首节点之外节点设备的数量;第一节点设备根据第一sr报文,确定第二节点设备的真实sid,第二节点设备为第一sr报文包括的sid中第一节点设备的下一跳节点设备;第一节点设备按照第二节点设备的真实sid,向第二节点设备发送第二sr报文,第二sr报文包括该n个节点设备的sid,第二sr报文包括的sid中第一个sid至第三节点设备的sid为隐藏sid,第三节点设备为第一节点设备或者第二节点设备。

通过本申请提供的sr报文传输方法,通过在sr报文中携带节点设备的隐藏sid,替代了显示路径信息,攻击者即使获取到sr报文,由于其对隐藏sid无法识别,也就无法获得具体的路径信息,也就进行攻击。在sr报文中携带隐藏sid的方式实现简单、节约资源且成本低,同时提高了sr报文传输的安全性,降低了安全网络的资源消耗和部署难度。

其中,第一节点设备可以为传输路径上首节点或中间节点。第二sr报文中除路径信息(可以理解为sid列表部分)之外的其他部分,与第一sr报文中除路径信息之外的其他部分相同。

结合第一方面,在一种可能的实现方式中,第一sr报文与第二sr报文包括的sid对应,包括的sid对应的节点相同。

结合第一方面,在一种可能的实现方式中,上述n个节点设备为支持sr技术的节点设备。

进一步的,第一节点设备可以为支持sr报文的安全传输。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,隐藏sid可以包括下述类型中的一种或多种:指定sid,或者,根据真实sid转译的sid、或者,根据真实sid偏移后的sid。可以根据实际需求配置安全传输模式,不同的安全传输模式中定义不同的隐藏sid类型,以提高方案灵活性。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,指定sid可以为全零。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,根据真实sid转译的sid,可以包括:真实sid叠加安全转译sid,该安全转译sid可以为安全地址池中节点设备的安全标识指示的sid。根据转译关系,可以实现路径溯源,为有路径溯源需求的业务提供了还原机制。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,根据真实sid偏移后的sid,可以包括:真实sid基础上偏移安全偏移值,该安全偏移值包括节点设备的安全标识。根据偏移关系,可以实现路径溯源,为有路径溯源需求的业务提供了还原机制。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,sr报文中不同节点设备的隐藏sid可以为不同类型。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一sr报文包括的sid中,第一个sid至第三节点设备的sid为隐藏sid,第二sr报文可以为第一sr报文。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的sr报文传输方法还可以包括:第一节点设备将第一sr报文包括的sid中,第一个sid至第三节点设备的sid中部分或全部sid替换为隐藏sid,得到第二sr报文。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一sr报文包括的sid中,第一个sid至第三节点设备的sid的上一个sid为第一类型的隐藏sid,第三节点设备及之后的节点的sid为第二类型的隐藏sid,第一节点设备将第一sr报文包括的sid中,第一个sid至第三节点设备的sid中部分或全部sid替换为隐藏sid,具体可以实现为:第一节点设备可以将第一sr报文中第三节点设备的sid替换为第一类型的隐藏sid。第一类型与第二类型不同。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一sr报文包括的sid中,第一个sid至第三节点设备的sid的上一个sid为第三类型的隐藏sid,第一sr报文包括sid中,第三节点设备及之后的节点的sid为真实sid,第一节点设备将第一sr报文包括的sid中,第一个sid至第三节点设备的sid中部分或全部sid替换为隐藏sid,具体可以实现为:第一节点设备可以将第一sr报文中第三节点设备的sid替换为第三类型的隐藏sid。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,隐藏sid包括根据真实sid偏移后的sid,第一sr报文中第二节点设备的sid为隐藏sid,第一节点设备根据第一sr报文,确定第二节点设备的真实sid,具体可以实现为:第一节点设备在第二节点设备的隐藏sid上,反偏移第二节点设备的安全偏移值,得到第二节点设备的真实sid,以保证sr报文的正常转发。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,隐藏sid包括根据真实sid转译后的sid,第一sr报文中第二节点设备的sid为隐藏sid,第一节点设备根据第一sr报文,确定第二节点设备的真实sid,具体可以实现为:第一节点设备在第二节点设备的隐藏sid上,减去第二节点设备的安全转译sid,得到第二节点设备的真实sid,以保证sr报文的正常转发。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一sr报文包括安全传输标志位,第二sr报文包括安全传输标志位,该安全传输标志位用于指示报文进行安全传输。通过安全传输标志位来指示sr报文是否进行安全传输,网络中支持安全传输的节点设备可以按照本申请提供的方案,对进行安全传输的sr报文进行安全传输。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,安全传输标志位可以包括:报文头中的比特位。通过扩展报文头中的预留字段作为安全传输标志位,以指示报文进行安全传输。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,作为安全传输标志位的报文头中的比特位,可以为srv6报文头的srh中的flags字段。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,安全传输标志位可以包括:位于栈底的安全sid。具体的,可以为网络中节点设备配置各自的安全sid,区别于真实sid。位于栈底作为安全传输标志位的安全sid可以为接收到报文的节点设备自己的安全sid,或者,也可以为传输路径的首节点的安全sid,或者,也可以为其他节点设备的安全sid,本申请对此不进行具体限定。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的sr报文传输方法还可以包括:在第一节点设备根据第一sr报文,确定第二节点设备的真实sid之前,第一节点设备将第一sr报文解密;在第一节点设备按照第二节点设备的真实sid,向第二节点设备发送第二sr报文之前,第一节点设备将第二sr报文加密。通过加密进一步提高sr报文的传输安全性,在节省资源的同时,最大限度地提升网络重要路径、业务的安全性。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,对sr报文的加解密方式,可以预先配置,或者在内部网关协议(interiorgatewayprotocol,igp)邻居建立过程中约定,或者,可以由控制器指示。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请描述的加解密方式,可以包括下述方式中任一种:消息摘要算法第五版(messagedigestalgorithm,md5)、安全哈希算法(securehashalgorithm,sha)等。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的sr报文传输方法还可以包括:第一节点设备从第四节点设备接收泛洪报文,该泛洪报文包括指示第四节点设备支持安全传输的能力信息和/或第四节点设备的安全标识;其中,第四节点设备为网络中第一节点设备之外的支持安全传输的任一节点设备。实现在igp邻居建立过程中,节点设备间交互安全标识和能力信息。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,泛洪报文还包括下述信息中一项或多项:第四节点设备的安全sid、或,安全模式指示信息,或,鉴权模式信息;其中,安全模式指示信息用于指示安全传输的模式;所述鉴权模式信息用于指示sr报文的加密方式。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一节点设备从第四节点设备接收泛洪报文,具体可以实现为:第一节点设备采用中间系统到中间系统(intermediatesystemintermediatesystem,isis)isis协议或者开放最短路径优先(openshortestpathfirst)osfp协议,从第四节点设备接收泛洪报文。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的sr报文传输方法还可以包括:第一节点设备泛洪发送泛洪报文,该泛洪报文的内容与第四节点设备发送的相似,不再赘述。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,在控制器架构中,本申请提供的sr报文传输方法还可以包括:第一节点设备向控制器发送能力报文,该能力报文包括指示第一节点设备支持安全传输的能力信息和/或第一节点设备的安全标识。

结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,能力报文还可以包括下述信息中一项或多项:协议指示信息,或者,鉴权模式信息。其中,协议指示信息用于指示节点设备间通信的协议类型;鉴权模式信息用于指示sr报文加密方式。

第二方面,提供一种sr报文传输方法,第五节点设备获取第三sr报文,该第三sr报文的路径信息中栈底包括安全传输标识;第五节点设备对第三sr报文进行安全传输。

通过本申请提供的sr报文传输方法,通过栈底增加安全传输标识指示报文安全传输,在提高安全性的同时降低了部署难度及资源消耗。

其中,安全传输可以为加密传输或者本申请提供的sr报文传输方法。

结合第二方面,在一种可能的实现方式中,安全传输标识可以为安全sid。具体的,可以为网络中节点设备配置各自的安全sid,区别于真实sid。位于栈底作为安全传输标识的安全sid可以为接收到报文的节点设备自己的安全sid,或者,也可以为传输路径的首节点的安全sid,或者,也可以为其他节点设备的安全sid,本申请对此不进行具体限定。

第三方面,提供一种sr报文传输方法,第六节点设备获取第四sr报文,第四sr报文包括传输路径上除首节点之外的部分或全部节点设备的sid;第六节点设备对第四sr报文解密;第六节点设备获取下一跳节点设备的sid,第六节点设备按照下一跳节点设备的sid,发送加密的第四sr报文。

通过本申请提供的sr报文传输方法,对sr报文加密后转发,在提高安全性的同时降低了部署难度及资源消耗。

结合第三方面,在一种可能的实现方式中,加解密方式可以包括下述方式中任一种:md5、sha等。

第四方面,本申请实施例还提供了一种sr报文传输装置,该sr报文传输装置部署于第一节点设备,用于实现上述第一方面描述的方法,第一节点设备为sr报文传输路径上除尾节点之外的任一节点设备。该sr报文传输装置为节点设备或支持节点设备实现该第一方面描述的方法的装置,例如该装置包括芯片系统。

结合第四方面,在一种可能的实现方式中,该sr报文传输装置可以包括:获取单元,确定单元、处理单元及发送单元。

获取单元,用于获取第一sr报文,该第一sr报文包括传输路径上除首节点之外的n个节点设备的段路由标识sid,第一sr报文中部分或全部sid为隐藏sid,n大于或等于2,小于或等于传输路径上除首节点之外节点设备的数量。

确定单元,用于根据第一sr报文,确定第二节点设备的真实sid,第二节点设备为第一sr报文包括的sid中第一节点设备的下一跳节点设备。

处理单元,用于根据第一sr报文,得到第二sr报文,第二sr报文包括该n个节点设备的sid,第二sr报文包括的sid中第一个sid至第三节点设备的sid为隐藏sid,第三节点设备为第一节点设备或者第二节点设备。

发送单元,用于按照确定单元确定的第二节点设备的真实sid,向第二节点设备发送处理单元获取的第二sr报文。

结合第四方面,在另一种可能的实现方式中,该sr报文传输装置可以包括:获取单元及处理单元。

获取单元,用于获取第三sr报文,该第三sr报文的路径信息中栈底包括安全传输标识。

处理单元,用于对第三sr报文进行安全传输。

结合第四方面,在另一种可能的实现方式中,该sr报文传输装置可以包括:获取单元、鉴权单元及发送单元。

获取单元,用于获取第四sr报文,第四sr报文包括传输路径上除首节点之外的部分或全部节点设备的sid;

鉴权单元,用于对第四sr报文解密;

获取单元还用于,从第四sr报文中获取下一跳节点设备的sid;

发送单元,用于按照下一跳节点设备的sid,发送加密的第四sr报文。

需要说明的是,第四方面的各个单元具体实现同第一方面至第三方面中任一种方法描述,这里不再赘述。

第五方面,本申请提供了另一种sr报文传输装置,该sr报文传输装置可以实现上述所述的方法示例中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该sr报文传输装置的装置可以以芯片的产品形态存在。

结合第五方面,在一种可能的实现方式中,该sr报文传输装置的结构中包括处理器和收发器,该处理器被配置为支持该sr报文传输装置执行上述方法中相应的功能。该收发器用于支持该sr报文传输装置与其他设备之间的通信。该sr报文传输装置还可以包括存储器,该存储器用于与处理器耦合,其保存该sr报文传输装置必要的程序指令和数据。

第六方面,提供一种节点设备,包括第三方面或第四方面提供的sr报文传输装置。

第七方面,提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面或任一种可能的实现方式提供的sr报文传输方法。

第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面或任一种可能的实现方式提供的sr报文传输方法。

第九方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中相应的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

其中,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。

需要说明的是,上述第二方面至第九方面提供的方案,用于执行上述第一方面及其任一种可能的实现方式提供的方法,可以达到相同的效果,不再一一赘述。

附图说明

图1为一种srv6的报文封装格式示意图;

图2为一种srv6转发场景示意图;

图3为本申请提供的一种数据网络的架构示意图;

图4为本申请实施例提供的一种报文格式示意图;

图5为本申请实施例提供的另一种报文格式示意图;

图5a为本申请实施例提供的另一种报文格式示意图;

图6为本申请实施例提供的再一种报文格式示意图;

图7为本申请实施例提供的又一种报文格式示意图;

图8为本申请实施例提供的一种节点设备的结构示意图;

图9为本申请实施例提供的一种sr报文传输方法的流程示意图;

图10为本申请实施例提供的另一种sr报文传输方法的流程示意图;

图11为本申请实施例提供的一种srv6报文转发场景示意图;

图12为本申请实施例提供的另一种srv6报文转发场景示意图;

图13为本发明实施例提供的再一种srv6报文转发场景示意图;

图14为本发明实施例提供的另一种sr报文传输方法的流程示意图;

图15为本发明实施例提供的再一种sr报文传输方法的流程示意图;

图16为本发明实施例提供的一种sr报文传输装置的结构示意图;

图17为本发明实施例提供的另一种sr报文传输装置的结构示意图;

图18为本发明实施例提供的再一种sr报文传输装置的结构示意图;

图19为本发明实施例提供的又一种sr报文传输装置的结构示意图。

具体实施方式

在本申请实施例中,为了便于清楚描述本申请实施例的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。该“第一”、第二”描述的技术特征间无先后顺序或者大小顺序。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,a/b可以表示a或b;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。

需要说明的是,本申请中描述的a向b发送某内容,当网络架构中a和b之间不是直连时,可通过a和b之间的网元逐级转发该内容,使得该内容到达b,本文中统一描述为“a向b发送该内容”。

此外,本申请实施例描述的网络架构以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知。随着网络架构的演变和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

在描述本申请的实施例之前,此处先对本申请涉及的名词统一进行解释说明,后续不再一一进行说明。

真实sid,可以为sr技术中为网络中节点分配的用于转发sr报文的标识信息。

隐藏sid,可以为与节点设备的真实sid不同的sid,用于避免攻击者识别sid对节点设备攻击。隐藏sid用于替换sr报文的路径信息中的真实sid。

首节点(也可称为入口节点),是指生成报文的节点设备。

尾节点(也可称为出口节点),是指报文的目的节点设备。

传输路径,是指报文传输过程中经过的节点设备的组成的路径。

中间节点,是指报文传输路径上的除首节点及尾节点之外的节点。

安全地址池,可以指本申请中提出的配置的专用于选择安全转译sid的集合。

安全转译sid,是指在安全地址池中为节点设备选择的生成隐藏sid的参考值。节点设备的真实sid叠加该节点设备的安全转译sid,可以得到该节点设备的隐藏sid。

安全标识(identity,id),可以指本申请中提出的为节点设备配置的用于进行安全传输的id,该id全网唯一。

下面以srv6对sr报文的传输过程进行简单说明。

为了在ipv6报文中实现srv6转发,引入了一个srv6扩展头(routingtype为4),称为srh,用于进行segment的编程组合形成srv6路径。如图1示意的srv6的报文封装格式,ipv6下一个头(nextheader)字段取值为43,表示后接的是ipv6路由扩展头。路由类型(routingtype)=4,表明这是srh的路由扩展头。该扩展头中的字段解释如表1所示。

表1

图2为一种srv6转发场景示例。如图2所示,节点r1要指定路径(通过r2-r3、r4-r5的链路转发)转发到r6,其中r1、r2、r4、r6为有srv6能力(即支持sr技术)的设备,r3、r5为不支持srv6的设备。r1的真实sid为a1::1,r2的真实sid为a2::11,r4的真实sid为a4::13,r6的真实sid为a6::1。在该场景中,sr报文的传输过程中,节点发布的报文格式如图2所示,该场景中报文转发步骤包括:

步骤1:首节点r1将srv6路径信息封装在srh扩展头,指定r2和r4的end.xsid,同时初始化sl=2,并将sl指示的sid(segmentlist[2])a2::11拷贝到外层ipv6头目的地址。r1根据外层ipv6目的地址查路由表转发到r2。

步骤2、r2收到报文以后,根据外层ipv6地址a2::11查找本地localsid表,命中end.xsid,执行end.xsid的指令动作:将sl-1,并将sl指示的sid(segmentlist[1])a4::13拷贝到外层ipv6头目的地址,同时根据end.x关联的下一跳转发。

步骤3、r3根据a4::13查ipv6路由表进行转发,不处理srh扩展头。

步骤4、r4收到报文以后,根据外层ipv6地址a4::13查找本地localsid表,命中end.xsid,执行end.xsid的指令动作:将sl-1,并将sl指示的sid(segmentlist[0])a6::1拷贝到外层ipv6头目的地址,由于sl=0,弹出srh扩展头,同时根据end.x关联的下一跳转发。

步骤5、弹出srh扩展头以后,报文就变成普通的ipv6头,由于a6::1是1个正常的ipv6地址,遵循普通的ipv6转发到r6。

需要说明的是,在报文转发过程中,可以在接收到报文时将sl-1再选取sl指示的段列表中的sid(如上述示例);或者,也可以在接收到报文时选取sl指示的段列表中的sid,报文发出前将sl-1后发出,本申请实施例对此不予限定。

从上面的转发可以看出,对于支持srv6转发的节点,可以通过sid指示经过特定的链路转发,对于不支持srv6的节点,可以通过普通的ipv6路由转发。但是,整个转发过程中报文中的segmentlist均携带了完整的路径信息,一旦攻击者在某一个节点获取到报文,通过解析srh即可获取路径沿途节点分布来进行网络攻击。

为此,本申请实施例提供一种sr报文传输方法,在sr报文传输过程中将报文中的真实sid替换为隐藏sid,攻击者即使获取到sr报文,由于其对隐藏sid无法识别,也就无法获得具体的路径信息,也就进行攻击。在sr报文中携带隐藏sid的方式实现简单、节约资源且成本低,同时提高了sr报文传输的安全性,降低了安全网络的资源消耗和部署难度。

本申请实施例提供的sr报文传输方法适用于图3示出的数据网络30。数据网络30可以为通信网络,也可以为计算机网络,本申请对数据网络的类型不进行具体限定。如图3所示,该数据网络30包括多个节点301(称之为节点设备、转发节点等)。

其中,用户在配置数据网络30时,为其中的节点301配置功能及参数,配置内容可以包括但不限于sid、是否支持安全传输、安全id、支持的鉴权加密类型。节点301在igp邻居建立阶段泛洪扩散自身的功能及参数。或者,节点301在配置有控制器的架构,向控制器上报其功能及参数。支持安全传输的节点接收到sr报文时,按照本申请提供的sr报文传输方法,对sr报文进行安全传输。

其中,igp邻居建立阶段节点间可以使用isis协议或者osfp协议。在配置有控制器的架构中,节点与控制器间可使用边界网关协议(bordergatewayprotocol,bgp)-链路状态(link-state,ls)协议。

需要说明的是,数据网络30包括的各个设备的数量以及具体架构,可以根据实际需求配置,本申请实施例对于数据网络30的规模及具体架构均不进行限定。

需要说明的是,本申请中描述的节点设备(也可称为节点),可以为路由器或者交换机或者其他,本申请对于节点的实际形态不进行具体限定。

可选的,本申请实施例可以对通信协议进行了扩展,以支持本申请提供的方案。

例如,可以对igp邻居建立阶段节点间使用的协议进行扩展,或者,可以对节点与控制器间的通信协议进行扩展。

一种可能的实现方式中,可以扩展isis协议或者osfp协议,新增安全tlv(securitytlv)。网络中支持安全传输的节点设备,泛洪时携带securitytlv。

另一种可能的实现方式中,可以扩展bgp-ls协议,新增security属性tlv,代表节点支持安全传输。

其中,扩展securitytlv或者新增的security属性tlv的报文格式定义可以如图4所示。对于图4定义的报文格式中的字段说明如下:

增加type=新的字段的isis或osfptlv或bgp属性,用于标识网络中支持srv6安全能力的节点。例如,可以加type=0x168的isis或osfptlv或bgp属性,用于标识网络中支持srv6安全能力的节点。

长度(lenth)字段标识整个tlv的长度。

一种可能的实现方式中,标志位(flags)字段中的高x位比特位可以用于标识安全模式(securitymode,sm),以指示隐藏sid的具体方案。flags字段中低位比特位置0预留。其中,x可以为4。图5中示意了securitytlv中flags字段的格式。

另一种可能的实现方式中,flags字段中的p比特位标识节点间通信的协议类型。例如,0为isis,1为ospf。flags字段中其余比特位置0预留。图5a中示意了新增的security属性tlv中flags字段的格式。

安全id(securityid)字段,用于标识网络中支持安全传输的节点的安全id。其中,安全id地段可以为4字节。例如,安全id通常可以使用路由器的routerid,也可以静态规划为其他值,全网唯一即可,本申请实施例对此不予限定。

可选字段(optionalpara)保留。

一种可能的实现中,optionalpara字段可以用于指示节点支持的鉴权类型。例如,图6示意了一种optionalpara字段的格式,可以使用类型(type)字段携带节点支持的鉴权类型,使用长度(lenth)字段携带鉴权数据(如秘钥)部分的长度信息,使用数据(data)字段携带鉴权数据(如秘钥)信息。

例如,鉴权类型可以有如下几种取值,用于更为高级的加密诉求:

0-reserved(保留)

1-simplepassword

2-keyedmd5

3-meticulouskeyedmd5

4-keyedsha1

5-meticulouskeyedsha1

6-255-reservedforfutureuse。

需要说明的是,上述对igp邻居建立阶段节点间使用的协议进行扩展,仅为示例说明,并不对协议类型以及协议格式进行限定。凡是为了支持本申请方案的协议扩展,均属于本申请范围。

可选的,本申请实施例可以对sr报文的报文头格式进行扩展,以支持本申请提供的方案。

例如,可以扩展srv6srh头中的flag1比特标识,作为安全传输标志位:s标记(security)。扩展后的ipv6srh头部flag字段报文格式可以如图7所示。

其中,可以扩展srv6srh头中flag字段的预留比特,作为s比特(securitybit),标识该srv6报文是安全传输的报文,不支持srv6安全能力的节点设备忽略s比特,支持srv6安全能力的节点设备可以按照本申请提供的方案进行安全传输。例如,可以扩展srv6srh头中flag字段的第6比特,作为s比特。

下面结合附图,对本申请的实施例进行具体阐述。

一方面,本申请实施例提供一种节点设备,用于执行本申请提供的sr报文传输方法,该节点设备可以为前述节点301。图8示出的是与本申请各实施例相关的一种节点设备80。如图8所示,节点设备80可以包括处理器801、存储器802以及收发器803。

下面结合图8对节点设备80的各个构成部件进行具体的介绍:

其中,存储器802可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);或者非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、配置文件或其他内容。

处理器801是节点设备80的控制中心。例如,处理器801可以是一个中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsingnalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。

收发器803用于与其他设备进行通信。收发器803可以为通信端口或者其他。

一种可能的实现方式中,处理器801通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行如下功能:

获取第一sr报文,第一sr报文包括传输路径上除首节点之外的n个节点设备的sid,第一sr报文中部分或全部sid为隐藏sid,n大于或等于2,小于或等于传输路径上除首节点之外节点设备的数量;第一节点设备根据第一sr报文,确定第二节点设备的真实sid,第二节点设备为第一sr报文包括的sid中第一节点设备的下一跳节点设备;第一节点设备按照第二节点设备的真实sid,向第二节点设备发送第二sr报文,第二sr报文包括该n个节点设备的sid,第二sr报文包括的sid中第一个sid至第三节点设备的sid为隐藏sid,第三节点设备为第一节点设备或者第二节点设备。

另一种可能的实现方式中,处理器801通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行如下功能:

获取第三sr报文,该第三sr报文的路径信息中栈底包括安全传输标识;对第三sr报文进行安全传输。

再一种可能的实现方式中,处理器801通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行如下功能:

获取第四sr报文,第四sr报文包括传输路径上除首节点之外的部分或全部节点设备的sid;对第四sr报文解密;获取下一跳节点设备的sid,按照下一跳节点设备的sid,发送加密的第四sr报文。

另一方面,本申请实施例提供一种sr报文传输方法,应用于第一节点设备,第一节点设备可以为sr报文传输路径上除尾节点之外任一个节点设备。第一节点设备具备安全传输能力,即第一节点设备支持安全传输。

需要说明的是,控制器或者具有算路能力的首节点可以计算出sr报文传输的传输路径,首节点按照传输路径传输sr报文。网络中支持安全传输的节点设备在接收到sr报文时均可以按照本申请提供的方案进行安全传输,本申请下述实施例仅以第一节点设备传输第一sr报文为例对本申请的方案进行详细描述,其他不再一一赘述。其中,第一sr报文为泛指的任一sr报文。

如图9所示,本申请实施例提供的sr报文传输方法可以包括:

s901、第一节点设备获取第一sr报文,第一sr报文包括传输路径上除首节点之外的n个节点设备的sid,第一sr报文中部分或全部sid为隐藏sid。

其中,n大于或等于2,小于或等于传输路径上除首节点之外节点设备的数量。

一种可能的实现方式中,支持sr技术的节点设备才会分配sid,第一sr报文包括传输路径上除首节点之外的n个节点设备的sid,可以理解为:第一sr报文包括传输路径上除首节点之外的支持sr技术的节点设备的sid,即该n个节点设备为传输路径上除首节点之外的支持sr技术的节点设备。

另一种可能的实现方式中,可以根据实际需求配置第一sr报文中包括的sid,本申请实施例对此不予限定。

可选的,当第一节点设备为首节点,s901中第一节点设备获取第一sr报文具体实现为:第一节点设备根据业务需求、管理员配置或者控制器配置,生成第一sr报文。具体生成第一sr报文的过程本申请不进行赘述。

可选的,当第一节点设备为中间节点,s901中第一节点设备获取第一sr报文具体实现为:第一节点设备从传输路径中上一跳节点接收第一sr报文。

具体的,第一sr报文是进行安全传输的sr报文。

一种可能的实现方式中,可以配置所有sr报文都进行安全传输。相应的,支持安全传输的节点设备在获取到第一sr报文时,均可以按照本申请提供的方案对sr报文进行安全传输。

另一种可能的实现方式中,通过在sr报文中携带安全传输标志位,该安全传输标志位用于指示报文进行安全传输。例如,第一sr报文中可以包括安全传输标志位。相应的,当第一节点设备为首节点时,生成第一sr报文时携带安全传输标志位。当第一节点设备为中间节点时,在接收到sr报文时则需侦测sr报文是否包括安全传输标志位,如包括安全传输标志位,则可以按照本申请提供的方案对sr报文进行安全传输。

示例性的,安全传输标志位可以包括:报文头中的比特位。通过扩展报文头中的预留字段作为安全传输标志位,以指示报文进行安全传输。相应的,首节点可以在报文头中携带安全传输标志位,中间节点可以侦测报文头是否包括安全传输标志位。

例如,安全传输标志位可以为前述srh中的s标记。例如,作为安全传输标志位的报文头中的比特位,可以为srv6报文头的srh中的flags字段。

示例性的,安全传输标志位可以为位于栈底的安全标识。位于栈底的安全标识可以由首节点加入报文。相应的,首节点可以在报文栈底携带安全传输标志位,中间节点可以通过栈底侦测技术侦测是否包括安全传输标志位。

可选的,安全标识可以为安全sid,或者安全id或者其他类型的字段,本申请实施例对此不予限定。

其中,可以为网络中节点设备配置各自的安全sid,区别于真实sid。位于栈底作为安全传输标志位的安全sid可以为接收到报文的节点设备自己的安全sid,或者,也可以为传输路径的首节点的安全sid,或者,也可以为其他节点设备的安全sid,本申请对此不进行具体限定。

进一步的,本申请描述的隐藏sid用于区别于真实sid,对于隐藏sid的类型可以根据实际需求配置,本申请实施例不予限定。本申请实施例提供几种可能的隐藏sid的类型,但并不构成具体限定。

可选的,本申请描述的隐藏sid可以包括但不限于下述三种类型中一种或多种:

类型1、指定sid。

其中,指定sid的取值可以根据实际需求配置,本申请实施例对此不进行具体限定。

例如,指定sid可以为全零地址(::)。

进一步的,由于指定sid无法溯源,当隐藏sid为指定sid时,第一sr报文中包括的传输路径已经经过的节点的sid可以为隐藏sid。传输路径已经经过的节点可以包括当前接收到报文的节点设备,也可以不包括当前接收到报文的节点设备。

示例性的,若第一sr报文中包括的隐藏sid为指定sid时,第一节点设备为首节点时,第一sr报文中包括的传输路径的第一跳的sid可以为指定sid。

示例性的,若第一sr报文中包括的隐藏sid为指定sid时,第一节点设备为中间节点时,第一sr报文中包括的传输路径的第一跳至第一节点设备的sid为指定sid。

示例性的,若第一sr报文中包括的隐藏sid为指定sid时,第一节点设备为中间节点时,第一sr报文中包括的传输路径的第一跳至第一节点设备的上一跳节点的sid为指定sid。

类型2、根据真实sid转译的sid。

其中,根据真实sid转译的sid,可以包括:真实sid叠加安全转译sid。不同节点设备的安全转译sid可以相同也可以不同,本申请实施例对此不进行具体限定。

一种可能的实现方式中,可配置固定的sid作为安全转译sid。

另一种可能的实现方式中,安全转译sid包括安全地址池中节点设备的安全标识(id)指示的sid。

例如,节点设备的真实sid是2019:09:15::/64,function是end.dt4类型,值为::101,该节点设备的安全id为1905,安全映射专用security地址池定义为2022:fa:6d::/64,则转译后的function为::2006,该节点设备的类型2的隐藏sid可以为2022:fa:6d::2006。

类型3、根据真实sid偏移后的sid。

其中,根据真实sid偏移后的sid,包括:真实sid基础上偏移安全偏移值。具体的,可以按照指定方向偏移,例如左偏或者右偏。不同节点设备的安全偏移值可以相同也可以不同,本申请实施例对此不进行具体限定。

一种可能的实现方式中,可配置固定的偏移值作为安全偏移值。

另一种可能的实现方式中,安全偏移值可以包括节点设备的安全标识。

例如,假设节点设备b的真实sid为sid3,其安全id为5,其安全偏移值则可以为5,节点设备b的类型3的隐藏sid则为sid3偏移5。

例如,网络中sid的locator是2019:09:15::/64,function是end.dt4类型,值为::101,该节点设备的安全id为1905,安全映射专用security地址池定义为2022:fa:6d::/64,传输路径途径的节点有end类型的ipd::f4,ipc::f3,ipb::f2则偏移后的function为::2006,则传输路径上节点设备的类型3的隐藏sid分别可以为:segmentlist[0]为2022:fa:6d::2006,segmentlist[0]为2022:fa:6d::f2,segmentlist[1]为2022:fa:6d::f3,segmentlist[2]为2022:fa:6d::f4。

需要说明的是,一个sr报文传输过程中可以采用一种或多种类型的隐藏sid实现安全传输。上述隐藏sid类型仅为示例说明,在实际应用中可以根据实际需求配置其他类型的隐藏sid,本申请实施例不予一一说明。

可选的,sr报文传输时隐藏sid采用哪种类型,可以由管理员配置,或者可以由隐藏规则决定,本申请对此不予限定。

示例性的,可以配置多种隐藏规则,不同隐藏规则规定了对报文中包括的哪些节点设备的sid按照哪种类型进行隐藏。节点设备可以在igp邻居建立阶段,或者与控制器的交互阶段,确定传输所采用的隐藏规则。

例如,前述扩展securitytlv或者新增的security属性tlv的报文格式中,标志位(flags)字段中的高4位比特位标识的sm,可以用于指示sr报文传输时所采用的隐藏规则。

进一步的,对于隐藏规则,可以根据实际需求配置,本申请实施例对此不进行具体限定。

例如,隐藏规则可以包括但不限于下述规则中任一种:

规则1、节点设备在接收到sr报文时,将sr报文中包括的自身的真实sid替换为指定类型的隐藏sid。

其中,指定隐藏sid类型可以为上述三种类型中任一种。

例如,规则1可以为节点设备都将自身的真实sid替换为全零sid。第一sr报文包括的sid中第一个sid至第一节点设备的sid的上一个sid为全零sid。

规则2、节点设备在接收到sr报文时,将sr报文包括的sid中自己的下一个sid替换为指定类型的隐藏sid。

例如,规则2可以为节点设备都将自身的下一个sid替换为全零sid。第一sr报文包括的sid中第一个sid至第一节点设备的sid为全零sid。

规则3、首节点将sr报文中所有sid均配置为类型3的隐藏sid,节点设备在接收到sr报文时,将sr报文中包括的sid中第一个sid至自身的sid替换为类型2的隐藏sid。

例如,第一sr报文包括的sid中第一个sid至第一节点设备的sid的前一个sid为类型3的隐藏sid。

规则4、首节点将sr报文中所有sid均配置为类型3的隐藏sid,节点设备在接收到sr报文时,将sr报文中包括sid中第一个sid至自身sid的前一个sid替换为类型2的隐藏sid。

规则5、首节点将sr报文中所有sid均配置为类型3的隐藏sid,节点设备在接收到sr报文时直接转发。

需要说明的是,上述隐藏规则均为示例说明,并不构成具体限定。在实际应用中可以根据实际需求配置隐藏规则。

s902、第一节点设备根据第一sr报文,确定第二节点设备的真实sid。

其中,第二节点设备为第一sr报文中包括的sid中第一节点设备的下一跳节点设备。应理解,第二节点设备的sid为第一sr报文中包括的sid中第一节点设备的sid的下一个sid。

具体的,在s902中,第一节点设备可以从第一sr报文中获取第二节点设备的sid,此处获取的第二节点设备的sid可以为真实sid或者隐藏sid。

例如,在s902中若sr报文为srv6报文,第一节点设备可以根据srh头中的sl的数值,从sengmentlist中选取sengmentlist[sl]作为第二节点设备的sid。

例如,在s902中若sr报文为srv4报文,第一节点设备可以在标签栈中选取第二节点设备的sid。

进一步的,当第一节点设备从第一sr报文中确定第二节点设备的sid为隐藏sid,第一节点设备可以根据隐藏规则,对第二节点设备的隐藏sid进行反隐藏,得到第二节点设备的真实sid。

其中,第一节点设备可以根据第一sr报文中用于指示隐藏规则的字段确定隐藏规则。

一种可能的是实现方式中,当隐藏规则指示的隐藏sid为根据真实sid偏移后的sid,且第一sr报文中第二节点设备的sid为隐藏sid,s902中第一节点设备在第二节点设备的隐藏sid上,反偏移第二节点设备的安全偏移值,得到第二节点设备的真实sid。

另一种可能的实现方式中,当隐藏规则指示的隐藏sid为根据真实sid转译后的sid,s902中第一节点设备在第二节点设备的隐藏sid上,减去第二节点设备的安全转译sid,得到第二节点设备的真实sid。

s903、第一节点设备确定第二sr报文,第二sr报文包括该n个节点设备的sid,第二sr报文包括的sid中第一个sid至第三节点设备的sid为隐藏sid。

其中,第三节点设备为第一节点设备或者第二节点设备。第二sr报文包括的sid中第一个sid,是指按照传输路径中首节点到尾节点的顺序,第二sr报文包括的sid中第一个sid。

具体的,第二sr报文是第一节点设备将第一sr报文进行安全传输,转发给下一跳的sr报文。第二sr报文中除路径信息之外的其他部分,与第一sr报文中除路径信息之外的其他部分相同。其中,第二sr报文包括与第一sr报文中相同的安全传输标志位。

进一步的,第一sr报文与第二sr报文包括的sid对应,包括的sid对应的节点相同。换言之,第一sr报文与第二sr报文包括的sid的数量及sid归属的节点设备都相同。例如,第一sr报文包括3个节点设备(节点1、节点4、节点5)的sid,第二sr报文也包括这3个节点设备(节点1、节点4、节点5)的sid,只是同一节点的sid在第一sr报文和第二sr报文中可能相同,也可能不同。

具体的,根据隐藏规则的不同,s903中第一节点设备确定第二sr报文的方式也不同。可选的,s903中第一节点设备确定第二sr报文可以通过但不限于下述两种可能的实现:

第一种可能的实现、第一节点设备将第一sr报文包括的sid中,第一个sid至第三节点设备的sid中部分或全部sid替换为隐藏sid,得到第二sr报文。

具体的,第一节点设备将第一sr报文包括的sid中,第一个sid至第三节点设备的sid中哪些sid替换为隐藏sid,取决于隐藏规则,不再一一说明。

示例性的,第一sr报文包括的sid中第一个sid至第三节点设备的sid的上一个sid为第一类型的隐藏sid,第三节点设备及之后的节点的sid为第二类型的隐藏sid,s903中第一节点设备可以将第一sr报文中第三节点设备的sid替换为第一类型的隐藏sid。第一类型与第二类型不同。

示例性的,第一sr报文包括的sid中第一个sid至第三节点设备的sid的上一个sid为第三类型的隐藏sid,第一sr报文包括的sid中第三节点设备及之后的节点的sid为真实sid,s903中第一节点设备可以将第一sr报文中第三节点设备的sid替换为第三类型的隐藏sid。

当然,第一种可能的实现根据隐藏规则的还可以有其他实现,此处不再一一赘述。

第二种可能的实现中,第一节点设备将第一sr报文作为第二sr报文。

例如,第一sr报文包括的sid中第一个sid至第三节点设备的sid为隐藏sid,第二sr报文可以为第一sr报文。可以对应于前述规则5。

需要说明的是,在s903中第一节点设备确定第二sr报文的过程中,还需按照sr报文的传输方式进行报文头的处理,本申请不再赘述。

例如,当sr报文为srv6报文,第一节点设备可以将第二节点设备的真实sid拷贝到外层ipv6头目的地址,将srh头中的sl的数值减1后得到第二sr报文。

特别的,当第二节点设备为尾节点,s903中第一节点设备还可以将第一sr报文中的路径信息弹出,得到第二sr报文。

s904、第一节点设备按照第二节点设备的真实sid,向第二节点设备发送第二sr报文。

进一步的,第二节点设备在接收到第二sr报文之后,若第二节点设备支持安全传输,第二节点设备可以执行上述s901至s904中第一节点设备的操作,对第二sr报文安全传输。若第二节点设备不支持安全传输,第二节点设备按照传输路径转发第二sr报文即可。直至sr报文传输至尾节点。

进一步的,当第二节点设备为尾节点,在s904之后,sr报文传输结束,由第二节点设备处理sr报文的负荷。

通过本申请提供的sr报文传输方法,通过在sr报文中携带节点设备的隐藏sid,替代了显示路径信息,攻击者即使获取到sr报文,由于其对隐藏sid无法识别,也就无法获得具体的路径信息,也就进行攻击。在sr报文中携带隐藏sid的方式实现简单、节约资源且成本低,同时提高了sr报文传输的安全性,降低了安全网络的资源消耗和部署难度。

进一步的,为了更好的提高sr报文的安全性,在sr报文的传输过程中,还可以对sr报文进行加密传输。相应的,如图10所示,本申请实施例提供的sr报文传输方法在s902之前还可以包括s902a,在s904之前还可以包括s904a。

s902a、第一节点设备将第一sr报文解密。

s904a、第一节点设备将第二sr报文加密。

具体的,在s902a、s904a中,第一节点设备可以根据支持或协商的加解密方法对sr报文加密或者解密。

例如,前述的扩展securitytlv或者新增的security属性tlv中携带的可选字段:optionalpara字段,指示了双方协商的隧道加密方式。该加密可以支持md5、sha等多种灵活的加密方式。

进一步的,节点设备在igp邻居建立阶段,可以通过泛洪的方式向邻居节点扩散自己的能力以及参数,例如本申请中涉及的是否支持安全传输、安全标识、安全sid等。

例如,节点设备可以在igp邻居建立阶段按照前述扩展的isis协议或者osfp协议进行泛洪扩散,扩散时携带扩展securitytlv或者新增的security属性tlv。

相应的,如图10所示,本申请实施例提供的sr报文传输方法还可以包括s905和s906。

s905、第一节点设备从第四节点设备接收泛洪报文。

其中,泛洪报文包括指示第四节点设备支持安全传输的能力信息和/或第四节点设备的安全标识。第四节点设备为网络中第一节点设备之外的支持安全传输的任一节点设备。

进一步的,泛洪报文还可以包括下述信息中一项或多项:第四节点设备的安全sid,或,安全模式指示信息,或,鉴权模式信息。

其中,安全模式指示信息用于指示安全传输的模式;鉴权模式信息用于指示sr报文的加密方式。

例如,在s905中,第一节点设备可以采用isis协议或者osfp协议,从第四节点设备接收泛洪报文。

s906、第一节点设备扩散泛洪报文。

其中,s906中第一节点设备扩散的泛洪报文,其内容与s905中的泛洪报文相似,不同之处在于s906中的泛洪报文包含的是第一节点设备的能力信息或参数,不再一一赘述。

进一步的,在配置有控制器的结构中,节点设备还可以上控制器上报自己的能力以及参数,例如本申请中涉及的是否支持安全传输、安全标识、安全sid等。

相应的,如图10所示,本申请实施例提供的sr报文传输方法还可以包括s907。

s907、第一节点设备向控制器发送能力报文。

其中,能力报文包括指示第一节点设备支持安全传输的能力信息及第一节点设备的安全标识。

可选的,能力报文还可以包括下述信息中一项或多项:协议指示信息,或者,鉴权模式信息。其中,协议指示信息用于指示节点设备间通信的协议类型;鉴权模式信息用于指示sr报文加密方式。

需要说明的是,图9或图10中包括的各个步骤的执行顺序,可以根据实际需求配置,图5仅示意了一种可能的执行顺序,并不构成对各个步骤执行顺序的限定。

下面以传输srv6报文为例,对本申请图9或图10提供的方案进行示例说明。

实施例1:支持安全传输的路由器在报文入srv6安全隧道时,识别srv6报文srh头部的flagsbit为1,将sl(segmentlist)中的srv6sid(locator和function)转换为::(全零的ipv6地址),再对sl-1并对外发布转发数据包。

如图11所示的srv6报文转发场景,r5作为支持安全传输的流量入口路由器,传输需要安全传输的srv6报文时将sl所指向的ipd(r4的地址)srv6sid转换为::(全零ipv6地址),然后对sl-1,再向r4发布。r4作为支持安全传输的流量中转路由器,在解封装时读取srh头部flag的sbit为1,将sl所指向的ipc(r3的地址)srv6sid转换为::(全零ipv6地址)后发给r3。r3、r2执行相同的操作,直至srv6报文传输至尾节点r1。图11中示意了该srv6报文传输过程中携带的路径信息。

实施例2、支持安全传输的路由器在报文入srv6安全隧道时,将sl(segmentlist)中的srv6sid(locator和function)进行转译后,再对sl-1并对外发布转发数据包。

如图12所示的srv6报文转发场景,r5作为支持安全传输的流量入口路由器,向需要进行安全加密的srv6隧道转发时将sl所指向的ipd(r4的地址)srv6sid转译成为ipd’(例如上述类型2的隐藏sid),然后对sl-1向r4发布。r4作为支持安全传输的流量中转路由器,在解封装时读取srh头部flag的sbit为1,将sl所指向的ipc(r3的地址)srv6sid转译成为ipc’后发给r3。r3、r2执行相同的操作,直至srv6报文传输至尾节点r1。图12中示意了该srv6报文传输过程中携带的路径信息。

实施例3、支持安全传输的srv6隧道入节点路由器在流量入隧道前,将各个节点的安全id作为安全偏移量,计算出每段segmentlist[n]在真实sid基础上偏移安全偏移量的隐藏sid,将隐藏sid压入srh头部进行转发。支持安全传输的路由器在报文在srv6安全隧道中转发时,识别srv6报文srh头部flag中的sbit,并将sl(segmentlist)中的srv6sid(locator和function)按下一跳的安全id作为偏移量进行反偏移后得到下一跳的真实的srv6sid信息,并将srv6报文srh头部中下一跳的sid替换为转译后的sid。

如图13所示的srv6报文转发场景,r5作为支持安全传输的流量入口路由器,将segmentlist中ipd的sid偏移ipd的securityid值2,将ipc的sid偏移ipc的securityid值5,将ipb的sid偏移ipb的securityid值1,依次类推,使用偏移后的结果进行封装再向r4发布;r4作为支持安全传输的流量中转路由器,在解封装时读取srh头部flag的sbit为1,对sl指向的r3的sid根据r3的securityid值5进行反向偏移(-5)得到r3的真实sid,然后对sl-1向r3发布。r3、r2执行相同的操作,直至srv6报文传输至尾节点r1。图13中示意了该srv6报文传输过程中携带的路径信息。

需要说明的是,上述示例仅仅是举例说明,并不是对本申请方案的限定。

另一方面,本申请提供另一种sr报文传输方法,如图14所示,该方法可以包括:

s1401、第五节点设备获取第三sr报文,该第三sr报文的路径信息中栈底包括安全传输标识。

其中,安全传输标识与图9或图10示意的方案中描述的安全传输标识相同,此处不再赘述。

s1402、第五节点设备对第三sr报文进行安全传输。

其中,安全传输可以为加密传输或者本申请提供的sr报文传输方法。

需要说明的是,s1401和s1402的具体实现可以参照图9或图10示意的方案。

通过本申请提供的sr报文传输方法,通过栈底增加安全传输标识指示报文安全传输,在提高安全性的同时降低了部署难度及资源消耗。

再一方面,本申请实施例提供再一种sr报文传输方法,如图15所示,该方法可以包括:

s1501、第六节点设备获取第四sr报文,第四sr报文包括传输路径上除首节点之外的部分或全部节点设备的sid。

s1502、第六节点设备对第四sr报文解密,获取下一跳节点设备的sid。

s1503、第六节点设备按照下一跳节点设备的sid,发送加密的第四sr报文。

其中,s1502、s1503中的加解密方式可以包括下述方式中任一种:md5、sha等。

需要说明的是,s1501-s1503的具体实现可以参照图9或图10示意的方案。

通过本申请提供的sr报文传输方法,对sr报文加密后转发,在提高安全性的同时降低了部署难度及资源消耗。

上述主要从节点设备的工作原理角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述节点设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。节点设备中包括的执行各个功能相应的硬件结构和/或软件模块可以称之为sr报文传输装置。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对sr报文传输装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图16示出了上述实施例中所涉及第一节点设备中部署的sr报文传输装置160的一种可能的结构示意图。该sr报文传输装置160可以为节点设备,也可以为节点设备中的功能模块或者芯片,也可以为与节点设备匹配使用的装置。如图16所示,sr报文传输装置160可以包括:获取单元1601、确定单元1602、处理单元1603及发送单元1604。其中,获取单元1601用于执行图9或图10中的过程s901;确定单元1602用于执行图9或图10中的过程s902;处理单元1603用于执行图9或图10中的过程s903;发送单元1604用于执行图9或图10中的过程s904、s906、s907。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

进一步的,如图16所示,sr报文传输装置160还可以包括鉴权单元1605和接收单元1606。其中,鉴权单元1605用于执行图10中的过程s902a、s904a。接收单元1606用于执行图10中的过程s905。

在采用对应各个功能划分各个功能模块的情况下,图17示出了上述实施例中所涉及节点设备中部署的sr报文传输装置170的一种可能的结构示意图。该sr报文传输装置170可以为节点设备,也可以为节点设备中的功能模块或者芯片,也可以为与节点设备匹配使用的装置。如图17所示,sr报文传输装置170可以包括:获取单元1701、处理单元1702。其中,获取单元1701用于执行图14中的过程s1401;处理单元1702用于执行图14中的过程s1402。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用对应各个功能划分各个功能模块的情况下,图18示出了上述实施例中所涉及节点设备中部署的sr报文传输装置180的一种可能的结构示意图。该sr报文传输装置180可以为节点设备,也可以为节点设备中的功能模块或者芯片,也可以为与节点设备匹配使用的装置。如图18所示,sr报文传输装置180可以包括:获取单元1801、鉴权单元1802、发送单元1803。其中,获取单元1801用于执行图15中的过程s1501;鉴权单元1802用于执行图15中的过程s1502;发送单元1803用于执行图15中的过程s1503。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,图19示出了上述实施例中所涉及的节点设备中部署的sr报文传输装置190的一种可能的结构示意图。该sr报文传输装置190可以为节点设备,也可以为节点设备中的功能模块或者芯片,也可以为与节点设备匹配使用的装置。sr报文传输装置190可以包括:处理模块1901、通信模块1902。处理模块1901用于对sr报文传输装置190的动作进行控制管理,通信模块1902用于与其他设备通信。例如,处理模块1901用于执行图9或图10中的过程s901至s903、s902a、s904a,或者,图14中的过程s1401、s1402,或者图15中的过程s1501和s1502。处理模块1901还可以用于通过通信模块1902执行图9或图10中的过程s904、s905、s906、s907,或者,图15中的过程s1503。sr报文传输装置190还可以包括存储模块1903,用于存储sr报文传输装置190的程序代码和数据。

其中,处理模块1901可以为图8所示的节点设备80的实体结构中的处理器801,可以是处理器或控制器。例如可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理模块1901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1902可以为图8所示的节点设备80的实体结构中的收发器803,通信模块1902可以是通信端口,或者可以是收发器、收发电路或通信接口等。或者,上述通信接口可以通过上述具有收发功能的元件,实现与其他设备的通信。上述具有收发功能的元件可以由天线和/或射频装置实现。存储模块1903可以是图8所示的节点设备80的实体结构中的存储器803。

当处理模块1901为处理器,通信模块1902为收发器,存储模块1903为存储器时,本申请实施例图19所涉及的sr报文传输装置190可以为图8所示的节点设备80。

如前述,本申请实施例提供的sr报文传输装置160或sr报文传输装置170或sr报文传输装置180或sr报文传输装置190可以用于实施上述本申请各实施例实现的方法中相应的功能,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。

另一方面,本申请实施例提供一种节点设备,包括上述任一实施例描述的sr报文传输装置。

再一方面,本申请实施例提供一种sr报文传输系统,包括多个上述节点设备。

作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的sr报文传输方法。

作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的sr报文传输方法。

本申请实施例再提供一种芯片系统,该芯片系统包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本发明实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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