CN115695278A - 报文转发方法、控制器及报文转发系统 - Google Patents
报文转发方法、控制器及报文转发系统 Download PDFInfo
- Publication number
- CN115695278A CN115695278A CN202110784100.8A CN202110784100A CN115695278A CN 115695278 A CN115695278 A CN 115695278A CN 202110784100 A CN202110784100 A CN 202110784100A CN 115695278 A CN115695278 A CN 115695278A
- Authority
- CN
- China
- Prior art keywords
- node
- controller
- srh
- routing address
- nodes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000004044 response Effects 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 22
- 230000006835 compression Effects 0.000 claims description 16
- 238000007906 compression Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006837 decompression Effects 0.000 claims description 12
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种报文转发方法、控制器及报文转发系统,涉及通信安全领域,所述方法包括:响应于控制器管理的域内的源节点的请求,控制器确定包括多个第一节点的第一路由地址的源节点发送报文的第一路径信息,多个第一节点包括中间节点和目的节点;控制器对每个第一节点的第一路由地址执行第一处理以得到第二路由地址,第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密,至少一个第一节点的第二路由地址的长度不同于其他第一节点;控制器封装包括多个第一节点的第二路由地址的第二路径信息以得到第一SRH,第一SRH携带表示每个第一节点的第二路由地址的长度的信息;控制器将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
Description
技术领域
本公开涉及通信安全领域,尤其是一种报文转发方法、控制器及报文转发系统。
背景技术
IPv6报文携带分段路由头(Segment Routing Header,SRH),并按照封装在SRH中的路径信息从源节点被转发至目的节点。这导致SRH中的路径信息极容易泄露,提高了网络拓扑泄露的风险,从而降低了网络安全。
相关技术中,可以对SRH中的路径信息中的每个路由地址进行加密以提高网络安全。
发明内容
在相关技术中的加密方式下,需要采用不改变信息长度的加密方式以使得每个加密后的路由地址的长度均相同。发明人注意到,通过对路由地址进行加密虽然提高了网络安全,但报文转发的成功率却降低了。发明人通过分析后发现,并非全部加密后的路由地址均相同,而是存在不同长度的加密后的路由地址,这使得转发报文的各个节点无法成功解密得到下一跳节点的路由地址,从而导致报文转发的成功率降低。
为了解决上述问题,本公开实施例提出了如下解决方案。
根据本公开实施例的一方面,提供一种报文转发方法,包括:响应于控制器管理的域内的源节点的请求,控制器确定源节点发送报文的第一路径信息,所述第一路径信息包括所述域内的多个第一节点的第一路由地址,所述多个第一节点包括至少一个中间节点和目的节点;控制器对所述多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址,所述第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密,其中,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址;控制器对第二路径信息进行封装以得到第一分段路由头SRH,所述第二路径信息包括所述多个第一节点的第二路由地址,第一SRH携带表示每个第一节点的第二路由地址的长度的信息;控制器将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
在一些实施例中,所述第一处理还包括所述加密之前的压缩。
在一些实施例中,至少一个第一节点的第一路由地址在所述压缩后的长度不同于其他第一节点的第一路由地址在所述压缩后的长度。
在一些实施例中,所述信息包括每个第一节点的第二路由地址的起始位和结束位在所述第二路径信息中的序号。
在一些实施例中,所述方法还包括:源节点和中间节点中的每一个在向下一跳节点转发报文之前,从第一SRH的所述信息中删除下一跳节点的第二路由地址的所述序号。
在一些实施例中,所述方法还包括:源节点和中间节点中的每一个确定下一跳节点的第一路由地址,包括:基于第一SRH携带的所述信息,从所述第二路径信息中确定下一跳节点的第二路由地址;对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址,其中,源节点执行的所述第二处理包括基于源节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压,中间节点执行的所述第二处理包括基于中间节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压;源节点和中间节点中的每一个根据下一跳节点的第一路由地址向下一跳节点转发报文,其中,在下一跳节点为中间节点的情况下,转发的报文携带第一SRH。
在一些实施例中,在下一跳节点为目的节点的情况下,转发的报文不携带第一SRH。
在一些实施例中,第一SRH还携带基于控制器的私钥对第一数字摘要进行加密得到的数字签名,第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的;所述方法还包括:中间节点利用所述哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要;中间节点基于与所述私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要;在第一数字摘要与第二数字摘要相同的情况下,中间节点确定下一跳节点的第一路由地址。
在一些实施例中,所述方法还包括:在第一数字摘要与第二数字摘要不同的情况下,中间节点向控制器发送告警信息;控制器重新确定源节点发送报文的第三路径信息,所述第三路径信息包括所述域内的多个第二节点的第一路由地址,所述多个第二节点包括至少一个中间节点和目的节点,并且不包括发送告警信息的中间节点的上一跳中间节点;控制器将所述多个第二节点作为所述多个第一节点,重新执行所述第一处理。
在一些实施例中,所述域内的每个第一节点与控制器之间的会话密钥被定期更新。
根据本公开实施例的另一方面,提供一种控制器,包括:确定模块,被配置为响应于控制器管理的域内的源节点的请求,确定源节点发送报文的第一路径信息,所述第一路径信息包括所述域内的多个第一节点的第一路由地址,所述多个第一节点包括至少一个中间节点和目的节点;处理模块,被配置为对所述多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址,所述第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密,其中,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址;封装模块,被配置为对第二路径信息进行封装以得到第一分段路由头SRH,所述第二路径信息包括所述多个第一节点的第二路由地址,第一SRH携带表示每个第一节点的第二路由地址的长度的信息;发送模块,被配置为将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
根据本公开实施例的还一方面,提供一种控制器,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。
根据本公开实施例的还一方面,提供一种报文转发系统,包括:上述任意一个实施例所述的控制器;源节点,被配置为根据第一SRH转发报文;中间节点和目的节点。
在一些实施例中,所述信息包括每个第一节点的第二路由地址的起始位和结束位在所述第二路径信息中的序号;源节点和中间节点中的每一个被配置为:在向下一跳节点转发报文之前,从第一SRH的所述信息中删除下一跳节点的第二路由地址的所述序号。
在一些实施例中,所述第一处理还包括所述加密之前的压缩;源节点和中间节点中的每一个被配置为:确定下一跳节点的第一路由地址,包括:基于第一SRH携带的所述信息,从所述第二路径信息中确定下一跳节点的第二路由地址;和对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址,其中,源节点执行的所述第二处理包括基于源节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压,中间节点执行的所述第二处理包括基于中间节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压;根据下一跳节点的第一路由地址向下一跳节点转发报文,其中,在下一跳节点为中间节点的情况下,转发的报文携带第一SRH。
在一些实施例中,第一SRH还携带基于控制器的私钥对第一数字摘要进行加密得到的数字签名,第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的;中间节点还被配置为:利用所述哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要;基于与所述私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要;在第一数字摘要与第二数字摘要相同的情况下,确定下一跳节点的第一路由地址。
在一些实施例中,中间节点还被配置为:在第一数字摘要与第二数字摘要不同的情况下,向控制器发送告警信息;控制器还被配置为:重新确定源节点发送报文的第三路径信息,所述第三路径信息包括所述域内的多个第二节点的第一路由地址,所述多个第二节点包括至少一个中间节点和目的节点,并且不包括发送告警信息的中间节点的上一跳中间节点;将所述多个第二节点作为所述多个第一节点,重新执行所述第一处理。
根据本公开实施例的还一方面,提供一种计算机可读存储介质,包括计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述任意一个实施例所述的方法。
本公开实施例中,一方面,控制器向源节点发送的第一SRH携带的第二路径信息包括经加密得到的第二路由地址而非第一路由地址。如此,可以降低第一路径信息泄露的风险,从而降低网络拓扑泄露的风险,提高网络安全。另一方面,第一SRH携带表示每个第一节点的第二路由地址的长度的信息,即便至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址,转发报文的源节点和中间节点仍能够根据表示每个第一节点的第二路由地址的长度的信息解密得到下一跳节点的路由地址,从而提高报文转发的成功率。如此,可以兼顾网络安全和报文转发的成功率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一些实施例的报文转发方法的流程示意图;
图2是根据本公开另一些实施例的报文转发方法的流程示意图;
图3是根据本公开一些实施例的控制器的结构示意图;
图4是根据本公开又一些实施例的控制器的结构示意图;
图5是根据本公开一些实施例的报文转发系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是根据本公开一些实施例的报文转发方法的流程示意图。
如图1所示,报文转发方法包括步骤102至步骤108。
在步骤102,响应于控制器管理的域内的源节点的请求,控制器确定源节点发送报文的第一路径信息。
例如,控制器管理域内的多个SRv6节点。当多个节点中的一个节点(即,源节点)需要发送IPv6报文时,该源节点向控制器发送请求。响应于该请求,控制器确定该源节点发送该报文的第一路径信息。
这里,第一路径信息包括控制器管理的域内的多个第一节点的第一路由地址。多个第一节点包括至少一个中间节点和目的节点。
应理解,基于第一节点的第一路由地址,报文可以被准确地路由至该第一节点。第一节点的第一路由地址为例如,分段标识(Segment ID,SID)。第一路径信息为例如,段列表(Segment List)。
在步骤104,控制器对多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址。
这里,第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密。
例如,控制器管理域内的多个节点。控制器可以与域内的每个节点进行密钥协商,以得到控制器与该节点之间的会话密钥。如此,可以降低密钥泄露的风险,从而提高安全性。
在一些实施例中,控制器管理的域内的每个节点(例如,第一节点)与控制器之间的会话密钥被定期更新。如此,可以降低密钥泄露的风险,从而提高安全性。
应注意,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址。例如,每个第一节点的第一路由地址的长度均为128比特,而每个第一节点的第二路由地址的长度可以不等于128比特。
应理解,本申请可以采用任何合适的加密算法,例如,数据加密标准(DES)算法、三重数据加密(3DES)算法、RC2算法等。
在步骤106,控制器对第二路径信息进行封装以得到第一SRH。这里,第二路径信息包括多个第一节点的第二路由地址。第一SRH携带表示每个第一节点的第二路由地址的长度的信息。
应理解,第一SRH还包括常规SRH携带的信息,例如,剩余分段(Segment Left)、标志(Flag)、可选类型/长度/值对象(Optional TLV)等。
表示每个第一节点的第二路由地址的长度的信息可以被封装在第一SRH的例如,Optional TLV处。
在步骤108,控制器将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
后文将结合图2说明源节点根据第一SRH转发报文的一些实现方式。
上述实施例中,一方面,控制器向源节点发送的第一SRH携带的第二路径信息包括经加密得到的第二路由地址而非第一路由地址。如此,可以降低第一路径信息泄露的风险,从而降低网络拓扑泄露的风险,提高网络安全。另一方面,第一SRH携带表示每个第一节点的第二路由地址的长度的信息,即便至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址,转发报文的源节点和中间节点仍能够根据表示每个第一节点的第二路由地址的长度的信息解密得到下一跳节点的路由地址,从而提高报文转发的成功率。如此,可以兼顾网络安全和报文转发的成功率。
随着报文携带的第一SRH的负载增加,报文的传输速度降低。相关技术中,可以对每个第一节点的第一路由地址进行压缩以减少报文的负载,从而提高报文的传输速度。发明人还注意到,因压缩后的路由地址的长度变化明显,在这种场景下,报文转发的成功率更低。
然而,因第一SRH携带表示每个第一节点的第二路由地址的长度的信息,故,即便针对这种场景,本公开实施例仍然能够保证报文转发的成功率。据此,本公开还提出如下能够兼顾报文传输速度、网络安全和报文转发的成功率的实施例。
在一些实施例中,第一处理还包括压缩。控制器可以在加密之前或之后执行压缩。
例如,控制器可以首先对每个第一节点的第一路由地址进行压缩,然后基于控制器与该第一节点的上一跳节点之间的会话密钥对压缩后的该第一节点的第一路由地址进行加密。如此,可以使得每个第一节点的第一路由地址的压缩率得到保证,从而减少报文携带的第一SRH的负载,提高报文的传输速度。
在一些实施例中,控制器在加密之前执行压缩,并且,至少一个第一节点的第一路由地址在压缩后的长度不同于其他第一节点的第一路由地址在压缩后的长度。
应理解,这里,首先对第一节点的第一路由地址执行压缩,以得到压缩后的第一路由地址(仍称作第一路由地址),然后对该压缩后的第一路由地址进行加密以得到第二路由地址。
图2是根据本公开另一些实施例的报文转发方法的流程示意图。
如图2所示,除步骤102至步骤108之外,报文转发方法还包括步骤202至步骤208。
在步骤202,源节点确定下一跳节点的第一路由地址。
源节点可以按照如下方式确定下一跳节点的第一路由地址。
首先,源节点基于第一SRH携带的表示每个第一节点的第二路由地址的长度的信息,从第二路径信息中确定下一跳节点的第二路由地址。
例如,第一SRH的第二路径信息包括一个中间节点和目的节点的第二路由地址,中间节点的第二路由地址的长度为40比特,目的节点的第二路由地址的第二路由地址的长度为60比特。每个第一节点的第二路由地址按照第一节点转发报文的先后顺序排列在第二路径信息中。第一SRH携带的表示每个第一节点的第二路由地址的长度的信息为例如,“40:60”。源节点可以根据该信息从第二路径信息中确定下一跳节点的第二路由地址。
然后,源节点对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址。
应理解,源节点执行的第二处理与步骤104中控制器执行的第一处理相对应。
例如,第一处理包括基于控制器与源节点之间的会话密钥的加密,则第二处理包括基于源节点与控制器之间的会话密钥的解密。
又例如,第一处理包括基于控制器与源节点之间的会话密钥的加密、以及加密之后的压缩,则第二处理包括解压、以及解压之后的基于源节点与控制器之间的会话密钥的解密。
再例如,第一处理包括压缩、以及压缩之后的基于控制器与源节点之间的会话密钥的加密,则第二处理包括基于源节点与控制器之间的会话密钥的解密、以及解密之后的解压。
在一些实施例中,第一SRH携带的Flag表示控制器执行的第一处理的类型。在接收到第一SRH后,可以根据第一SRH携带的Flag确定对应的第二处理。例如,在控制器仅对每个第一节点的第一路由地址执行加密的情况下,第一SRH携带的Flag为“1”;在控制器对每个第一节点的第一路由地址首先执行压缩、之后执行加密的情况下,第一SRH携带的Flag为“2”;在控制器对每个第一节点的第一路由地址首先执行加密、之后执行压缩的情况下,第一SRH携带的Flag为“3”。如此,能够准确地确定下一跳节点的第一路由地址,从而提高报文转发的成功率。
在步骤204,源节点根据下一跳节点的第一路由地址向下一跳节点转发报文。
例如,源节点更新报文的目的地址为下一跳节点的第一路由地址,并更新第一SRH中的Segment Left减一。然后,源节点向下一跳节点转发携带第一SRH的报文。
然后,中间节点接收到携带第一SRH的报文,从而执行步骤206至步骤208。
在步骤206,中间节点确定下一跳节点的第一路由地址。
与步骤202类似地,中间节点按照如下方式确定下一跳节点的第一路由地址。首先,中间节点基于第一SRH携带的表示每个第一节点的第二路由地址的长度的信息,从第二路径信息中确定下一跳节点的第二路由地址。然后,中间节点对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址。应理解,中间节点基于中间节点与控制器之间的会话密钥对确定的下一跳节点的第二路由地址进行解密。
在步骤208,中间节点根据下一跳节点的第一路由地址向下一跳节点转发报文。
应理解,步骤208与步骤204类似,相同的部分再此不再赘述。
在一些实施例中,在下一跳节点仍然为中间节点的情况下,转发的报文携带第一SRH;在下一跳节点为目的节点的情况下,中间节点转发的报文不再携带第一SRH。如此,可以减少报文在从最后一个中间节点转发至目的节点的过程中的负载,从而提高报文在这一阶段的传输速度。中间节点可以根据例如,Segment Left确定下一跳节点是否为目的节点。
上述实施例中,源节点和中间节点根据第一SRH携带的表示每个第一节点的第二路由地址的长度的信息,对从第二路径信息中确定的下一跳节点的第二路由地址执行第二处理。如此,不论每个第一节点的第二路由地址的长度多少,源节点和中间节点均能够准确地确定下一跳节点的第一路由地址,从而提高报文转发的成功率。
应理解,本公开实施例中,源节点或中间节点只能确定下一跳节点的第一路由地址,而不能确定全部第一节点的第一路由地址。这种方式下,网络拓扑泄露的风险极低,从而有效地保证了网络安全。
下面结合一些实施例进一步说明图2所示的报文转发方法。
在一些实施例中,第一SRH还携带基于控制器的私钥对第一数字摘要进行加密得到的数字签名。第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的。
例如,在对第二路径信息进行封装之前,控制器还利用哈希算法对第二路径信息进行处理以生成第一数字摘要。然后,控制器基于控制器的私钥对第一数字摘要进行加密以得到数字签名。数字签名也可以被封装在第一SRH的例如,Optional TLV处。
在第一SRH还携带数字签名的这种情况下,中间节点执行如下操作。首先,中间节点利用哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要。应理解,中间节点使用的哈希算法与控制器使用的哈希算法相同。然后,中间节点基于与控制器私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要。在第一数字摘要与第二数字摘要相同的情况下,中间节点执行步骤206。如此,可以确保第二路径信息未被篡改,从而确保报文按照控制器预定的路径被转发,提高报文转发的安全性。
应理解,中间节点执行步骤206后,则自动执行步骤208。
在一些实施例中,与控制器私钥对应的公钥由第三方证书颁发机构(CA)发送给每个中间节点。
在一些实施例中,在第一数字摘要与第二数字摘要不同的情况下,中间节点向控制器发送告警信息。在接收到中间节点发送的告警信息之后,控制器重新确定源节点发送报文的第三路径信息。与第一路径信息类似地,第三路径信息包括控制器管理的域内的多个第二节点的第一路由地址。与多个第一节点类似地,多个第二节点包括至少一个中间节点和目的节点。应注意,多个第二节点不包括发送告警信息的中间节点的上一跳中间节点。然后,控制器将多个第二节点作为步骤102中的多个第一节点,重新执行步骤104。
应理解,控制器执行步骤104之后,则自动执行步骤106和步骤108。
也应理解,第一数字摘要与第二数字摘要不同表示第二路径信息被篡改。这意味着发送告警的中间节点的上一跳中间节点可能遭受外部攻击。控制器重新确定不包括该中间节点的第三路径信息,如此,可以确保报文不再经遭受外部攻击的中间节点转发,从而提高报文转发的安全性。
在一些实施例中,第一SRH携带的表示每个第一节点的第二路由地址的长度的信息包括每个第一节点的第二路由地址的起始位和结束位在第二路径信息中的序号。如此,源节点和中间节点可以更快速地确定下一跳节点的第二路由地址,从而更快速地确定下一跳节点的第一路由地址,提高报文的转发速度。
在这种方式下,在一些实施例中,源节点和中间节点在向各自的下一跳节点转发报文之前,从第一SRH携带的表示每个第一节点的第二路由地址的长度的信息中删除下一跳节点的第二路由地址的两个序号。如此,可以减少报文携带的第一SRH的负载,从而提高报文的传输速度。
下面仍然以第一SRH的第二路径信息包括一个中间节点和目的节点的第二路由地址,中间节点的第二路由地址的长度为40比特,目的节点的第二路由地址的第二路由地址的长度为60比特为例进行说明。控制器向源节点发送的第一SRH所携带的表示每个第一节点的第二路由地址的长度的信息为例如,“1.40:41.100”。在源节点确定了下一跳节点的第二路由地址之后,源节点删除下一跳节点(即,中间节点)的第二路由地址的两个序号(即,“1.40”。然后,源节点向下一跳节点发送的报文携带的第一SRH所携带的信息为“41.100”。
在一些实施例中,表示每个第一节点的第二路由地址的长度的信息中,每个第一节点的第二路由地址的两个序号的信息长度均相同(例如,“1.40”和“41.100”的信息长度均为7比特)。如此,源节点和中间节点可以更快速地确定下一跳节点的第二路由地址,从而更快速地确定下一跳节点的第一路由地址,提高报文的转发速度。
图3是根据本公开一些实施例的控制器的结构示意图。
如图3所示,控制器300包括确定模块301、处理模块302、封装模块303和发送模块304。
确定模块301被配置为响应于控制器管理的域内的源节点的请求,确定源节点发送报文的第一路径信息。这里,第一路径信息包括控制器管理的域内的多个第一节点的第一路由地址,多个第一节点包括至少一个中间节点和目的节点。
处理模块302被配置为对多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址。这里,第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密。应注意,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址。
封装模块303被配置为对第二路径信息进行封装以得到第一分段路由头SRH。第二路径信息包括多个第一节点的第二路由地址。第一SRH携带表示每个第一节点的第二路由地址的长度的信息。
发送模块304被配置为将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
图4是根据本公开又一些实施例的控制器的结构示意图。
如图4所示,控制器400包括存储器401以及耦接至该存储器401的处理器402,处理器402被配置为基于存储在存储器401中的指令,执行前述任意一个实施例的方法。
存储器401例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
控制器400还可以包括输入输出接口403、网络接口404、存储接口405等。这些接口403、404、405之间、以及存储器401与处理器402之间例如可以通过总线406连接。输入输出接口403为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口404为各种联网设备提供连接接口。存储接口405为SD卡、U盘等外置存储设备提供连接接口。
图5是根据本公开一些实施例的报文转发系统的结构示意图。
报文转发系统包括控制器300/400、源节点501、中间节点502和目的节点503。
源节点501被配置为根据第一SRH转发报文。
应理解,报文转发系统可以包括一个或多个中间节点502(图5示意性地示出1个)。
在一些实施例中,第一SRH携带的表示每个第一节点的第二路由地址的长度的信息包括每个第一节点的第二路由地址的起始位和结束位在第二路径信息中的序号。源节点501和中间节点502被配置为:在向下一跳节点转发报文之前,从表示每个第一节点的第二路由地址的长度的信息中删除下一跳节点的第二路由地址的序号。
在一些实施例中,控制器300/400执行的第一处理包括压缩和在压缩之后的加密。源节点501(中间节点502)被配置为:确定下一跳节点的第一路由地址,包括:基于第一SRH携带的表示每个第一节点的第二路由地址的长度的信息,从第二路径信息中确定下一跳节点的第二路由地址;和对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址,第二处理包括基于源节点501(中间节点502)与控制器300/400之间的会话密钥的解密、以及在解密之后的解压;根据下一跳节点的第一路由地址向下一跳节点转发报文,其中,在下一跳节点为中间节点的情况下,转发的报文携带第一SRH。
在一些实施例中,第一SRH还携带基于控制器300/400的私钥对第一数字摘要进行加密得到的数字签名,第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的。中间节点502还被配置为:利用哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要;基于与控制器300/400的私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要;在第一数字摘要与第二数字摘要相同的情况下,确定下一跳节点的第一路由地址,并根据下一跳节点的第一路由地址向下一跳节点转发报文。
在一些实施例中,中间节点502还被配置为:在第一数字摘要与第二数字摘要不同的情况下,向控制器300/400发送告警信息。控制器300/400还被配置为:重新确定源节点501发送报文的第三路径信息,第三路径信息包括控制器300/400管理的域内的多个第二节点的第一路由地址,多个第二节点包括至少一个中间节点502和目的节点503,并且不包括发送告警信息的中间节点502的上一跳中间节点502;将多个第二节点作为多个第一节点,重新执行步骤104至步骤108。
本公开实施例还提供了一种计算机可读存储介质,包括计算机程序指令,该计算机程序指令被处理器执行时实现上述任意一个实施例的方法。
至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解,可由计算机程序指令实现流程图中一个流程或多个流程和/或方框图中一个方框或多个方框中指定的功能。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。
Claims (18)
1.一种报文转发方法,包括:
响应于控制器管理的域内的源节点的请求,控制器确定源节点发送报文的第一路径信息,所述第一路径信息包括所述域内的多个第一节点的第一路由地址,所述多个第一节点包括至少一个中间节点和目的节点;
控制器对所述多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址,所述第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密,其中,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址;
控制器对第二路径信息进行封装以得到第一分段路由头SRH,所述第二路径信息包括所述多个第一节点的第二路由地址,第一SRH携带表示每个第一节点的第二路由地址的长度的信息;
控制器将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
2.根据权利要求1所述的方法,其中,所述第一处理还包括所述加密之前的压缩。
3.根据权利要求2所述的方法,其中,至少一个第一节点的第一路由地址在所述压缩后的长度不同于其他第一节点的第一路由地址在所述压缩后的长度。
4.根据权利要求1所述的方法,其中,所述信息包括每个第一节点的第二路由地址的起始位和结束位在所述第二路径信息中的序号。
5.根据权利要求4所述的方法,还包括:
源节点和中间节点中的每一个在向下一跳节点转发报文之前,从第一SRH的所述信息中删除下一跳节点的第二路由地址的所述序号。
6.根据权利要求2所述的方法,还包括:
源节点和中间节点中的每一个确定下一跳节点的第一路由地址,包括:
基于第一SRH携带的所述信息,从所述第二路径信息中确定下一跳节点的第二路由地址;
对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址,其中,源节点执行的所述第二处理包括基于源节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压,中间节点执行的所述第二处理包括基于中间节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压;
源节点和中间节点中的每一个根据下一跳节点的第一路由地址向下一跳节点转发报文,其中,在下一跳节点为中间节点的情况下,转发的报文携带第一SRH。
7.根据权利要求6所述的方法,其中,在下一跳节点为目的节点的情况下,转发的报文不携带第一SRH。
8.根据权利要求6所述的方法,其中,第一SRH还携带基于控制器的私钥对第一数字摘要进行加密得到的数字签名,第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的;
所述方法还包括:
中间节点利用所述哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要;
中间节点基于与所述私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要;
在第一数字摘要与第二数字摘要相同的情况下,中间节点确定下一跳节点的第一路由地址。
9.根据权利要求8所述的方法,还包括:
在第一数字摘要与第二数字摘要不同的情况下,中间节点向控制器发送告警信息;
控制器重新确定源节点发送报文的第三路径信息,所述第三路径信息包括所述域内的多个第二节点的第一路由地址,所述多个第二节点包括至少一个中间节点和目的节点,并且不包括发送告警信息的中间节点的上一跳中间节点;
控制器将所述多个第二节点作为所述多个第一节点,重新执行所述第一处理。
10.根据权利要求1-9中任一项所述的方法,其中,所述域内的每个第一节点与控制器之间的会话密钥被定期更新。
11.一种控制器,包括:
确定模块,被配置为响应于控制器管理的域内的源节点的请求,确定源节点发送报文的第一路径信息,所述第一路径信息包括所述域内的多个第一节点的第一路由地址,所述多个第一节点包括至少一个中间节点和目的节点;
处理模块,被配置为对所述多个第一节点中的每个第一节点的第一路由地址执行第一处理以得到第二路由地址,所述第一处理包括基于控制器与该第一节点的上一跳节点之间的会话密钥的加密,其中,至少一个第一节点的第二路由地址的长度不同于其他第一节点的第二路由地址;
封装模块,被配置为对第二路径信息进行封装以得到第一分段路由头SRH,所述第二路径信息包括所述多个第一节点的第二路由地址,第一SRH携带表示每个第一节点的第二路由地址的长度的信息;
发送模块,被配置为将第一SRH发送给源节点,以便源节点根据第一SRH转发报文。
12.一种控制器,包括:
存储器;和
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行权利要求1-4中任一项所述的方法。
13.一种报文转发系统,包括:
权利要求11或12所述的控制器;
源节点,被配置为根据第一SRH转发报文;
中间节点和目的节点。
14.根据权利要求13所述的系统,其中,所述信息包括每个第一节点的第二路由地址的起始位和结束位在所述第二路径信息中的序号;
源节点和中间节点中的每一个被配置为:在向下一跳节点转发报文之前,从第一SRH的所述信息中删除下一跳节点的第二路由地址的所述序号。
15.根据权利要求13所述的系统,其中,所述第一处理还包括所述加密之前的压缩;
源节点和中间节点中的每一个被配置为:确定下一跳节点的第一路由地址,包括:基于第一SRH携带的所述信息,从所述第二路径信息中确定下一跳节点的第二路由地址;和对下一跳节点的第二路由地址执行第二处理以得到下一跳节点的第一路由地址,其中,源节点执行的所述第二处理包括基于源节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压,中间节点执行的所述第二处理包括基于中间节点与控制器之间的会话密钥的解密、以及在所述解密之后的解压;根据下一跳节点的第一路由地址向下一跳节点转发报文,其中,在下一跳节点为中间节点的情况下,转发的报文携带第一SRH。
16.根据权利15所述的系统,其中,第一SRH还携带基于控制器的私钥对第一数字摘要进行加密得到的数字签名,第一数字摘要是利用哈希算法对第二路径信息进行处理而生成的;
中间节点还被配置为:利用所述哈希算法对报文携带的第一SRH中的第二路径信息进行处理以生成第二数字摘要;基于与所述私钥对应的公钥对第一SRH携带的数字签名解密以得到第一数字摘要;在第一数字摘要与第二数字摘要相同的情况下,确定下一跳节点的第一路由地址。
17.根据权利要求16所述的系统,其中,中间节点还被配置为:在第一数字摘要与第二数字摘要不同的情况下,向控制器发送告警信息;
控制器还被配置为:重新确定源节点发送报文的第三路径信息,所述第三路径信息包括所述域内的多个第二节点的第一路由地址,所述多个第二节点包括至少一个中间节点和目的节点,并且不包括发送告警信息的中间节点的上一跳中间节点;将所述多个第二节点作为所述多个第一节点,重新执行所述第一处理。
18.一种计算机可读存储介质,包括计算机程序指令,其中,所述计算机程序指令被处理器执行时实现权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784100.8A CN115695278A (zh) | 2021-07-12 | 2021-07-12 | 报文转发方法、控制器及报文转发系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784100.8A CN115695278A (zh) | 2021-07-12 | 2021-07-12 | 报文转发方法、控制器及报文转发系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695278A true CN115695278A (zh) | 2023-02-03 |
Family
ID=85044497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110784100.8A Pending CN115695278A (zh) | 2021-07-12 | 2021-07-12 | 报文转发方法、控制器及报文转发系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695278A (zh) |
-
2021
- 2021-07-12 CN CN202110784100.8A patent/CN115695278A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371549B (zh) | 一种报文数据传输方法、装置及系统 | |
CN112204921A (zh) | 利用区块链和多方计算保护轻量级设备的数据隐私的系统和方法 | |
CN110535748B (zh) | 一种vpn隧道模式优化方法及系统 | |
CN111654511A (zh) | 一种链式数据加密方法、链式数据解密方法及相应的系统 | |
EP4258593A1 (en) | Ota update method and apparatus | |
CN110048986B (zh) | 一种保证环网协议运行安全的方法及装置 | |
KR101608815B1 (ko) | 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법 | |
CN110912920A (zh) | 数据处理方法、设备及介质 | |
CN110690962B (zh) | 一种服务节点的应用方法与装置 | |
CN111914291A (zh) | 消息处理方法、装置、设备及存储介质 | |
CN105141635A (zh) | 一种群发消息安全通讯的方法和系统 | |
CN110166489B (zh) | 一种物联网中数据传输方法、系统、设备及计算机介质 | |
CN102821098A (zh) | 云环境下即时通讯消息自溶解系统及方法 | |
US20100005307A1 (en) | Secure approach to send data from one system to another | |
CN104268716A (zh) | 电子商务信息处理方法、电商服务器及电子发票服务器 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
CN108141353B (zh) | 密码算法升级的方法及设备 | |
CN107872315B (zh) | 数据处理方法和智能终端 | |
CN110620650A (zh) | 通信方法、系统、装置及计算机可读存储介质 | |
CN114142995B (zh) | 面向区块链中继通信网络的密钥安全分发方法及装置 | |
CN106789008B (zh) | 对可共享的加密数据进行解密的方法、装置及系统 | |
CN112398655B (zh) | 一种文件传输方法、服务器及计算机存储介质 | |
CN114745114B (zh) | 基于口令派生的密钥协商方法、装置、设备及介质 | |
CN115695278A (zh) | 报文转发方法、控制器及报文转发系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |