本技术属于网络通信,特别涉及一种报文转发方法、装置、设备、存储介质和程序产品。
背景技术:
1、基于互联网协议第6版(internet protocol version 6,ipv6)转发平面的分段路由(segment routing ipv6,srv6)是未来ipv6的重要的技术方向,支持网络可编程,目前相关标准在互联网工程任务组(internet engineering task force,ietf)已经制定。srv6的整体思路为:在ipv6扩展头等报文头中携带段id(segment id,sid)列表(list),通过sid在节点执行某个功能。在互联网中,报文的有效载荷(payload)一般建议进行加密,但是报文头并不加密,在使用了srv6之后,如果特定的流量被执行了特殊的策略(sr-policy),由于sr-policy通常被封装在报文头的sid信息中,这样就会带来策略信息泄露的风险。
技术实现思路
1、为了解决相关技术中存在的策略信息泄露的问题,本技术实施例提供一种报文转发方法、装置、设备、存储介质和程序产品。
2、本技术实施例提供一种报文转发方法,应用于第一srv6节点中,所述方法包括:
3、接收所述第一srv6节点的上一跳srv6节点发送的业务报文;所述业务报文的第一报文头包括使用所述第一srv6节点的密钥加密的段标识sid信息;
4、使用所述第一srv6节点的密钥对所述第一报文头进行解密,得到解密的sid信息,所述解密的sid信息至少包括所述第一srv6节点的本地操作指令;
5、执行所述本地操作指令,在所述解密的sid信息包括所述第一srv6节点的下一跳srv6节点的标识的情况下,根据所述第一srv6节点的下一跳srv6节点的标识,向所述第一srv6节点的下一跳srv6节点发送所述业务报文。
6、在一些实施例中,在所述第一报文头包括预设的加密标志的情况下,确定所述第一报文头包括使用所述第一srv6节点的密钥加密的sid信息。
7、可以看出,在第一报文头包括预设的加密标志的情况下,可以确定第一报文头包括加密的sid信息,从而,可以通过第一srv6节点的密钥进行解密,得到解密的sid信息;因此,本技术实施例可以根据预设的加密标志,确定对第一报文头的解密方式,从而实现sid信息的准确解密。
8、在一些实施例中,所述方法还包括:在所述解密的sid信息不包括所述第一srv6节点的下一跳srv6节点的标识的情况下,使用所述第一srv6节点的密钥对所述业务报文的第二报文头进行解密;所述第二报文头中携带有用户实际访问的目的地址。
9、可以看出,在解密的sid信息不包括第一srv6节点的下一跳srv6节点的标识的情况下,可以认为第一srv6节点是业务报文的报文转发路径的末端节点,此时,可以通过对业务报文的第二报文头进行解密,来确定用户实际访问的目的地址;由于用户实际访问的目的地址只有通过解密才能获知,因而在一定程度上保障了用户的实际访问服务的地址的隐秘性。
10、在一些实施例中,所述方法还包括::在所述第一报文头与所述第一srv6节点的预定义字段匹配的情况下,确定所述业务报文的第一报文头包括使用所述第一srv6节点的密钥加密的sid信息;在使用所述第一srv6节点的密钥对所述第一报文头进行解密,得到所述解密的sid信息后,将所述预定义字段替换为特定字段,所述特定字段为sid信息中的未加密字段。
11、在一些实施例中,所述预定义字段为加密位置(locator)字段,所述特定字段为未加密的locator字段,所述第一srv6节点预先建立有加密locator字段与所述未加密的locator字段的关联关系;
12、所述将所述预定义字段替换为特定字段包括:根据所述关联关系将加密locator字段替换为所述未加密的locator字段。
13、可以看出,在第一报文头与第一srv6节点的加密定位locator字段匹配的情况下,可以确定第一报文头包括加密的sid信息,从而,可以通过第一srv6节点的密钥进行解密,得到解密的sid信息,并且可以根据加密locator字段与未加密的locator字段的关联关系,将加密locator字段替换为未加密的locator字段;因此,本技术实施例可以根据加密locator字段、以及加密locator字段与未加密的locator字段的关联关系,实现sid信息的准确解密和还原。
14、在一些实施例中,所述方法还包括:在所述第一报文头与所述第一srv6节点的加密定位locator字段不匹配的情况下,从所述第一报文头中获取未加密的信息,所述未加密的信息包括所述第一srv6节点的本地操作指令、以及所述第一srv6节点的下一跳节点的locator字段。
15、可以看出,本技术实施例中无需通过占用标志位的方式来确定是否接收到包含加密信息的报文头,而是可以根据报文头与加密locator字段是否匹配,来确定是否接收到加密的sid信息,从而可以在部分节点具有加密sid信息的场景中,准确地确定本地操作指令以及下一跳节点的locator字段的获取方式。
16、在一些实施例中,所述特定字段包括解密function,所述解密function用于表示预先定义的函数,所述解密function包含了参数arg字段;所述特定字段为功能(function)字段;所述将所述预定义字段替换为特定字段,包括:将所述解密function和参数arg字段替换为所述解密的sid信息中的function字段。
17、可以看出,在第一报文头与第一srv6节点的解密function字段匹配的情况下,可以确定第一报文头包括加密的sid信息,从而,可以通过第一srv6节点的密钥进行解密,可以实现sid信息的准确解密。
18、在一些实施例中,所述方法还包括:在所述第一报文头与所述第一srv6节点的解密function字段不匹配的情况下,从所述第一报文头中获取未加密的信息,所述未加密的信息包括所述第一srv6节点的本地操作指令、以及所述第一srv6节点的下一跳节点的locator字段。
19、可以看出,本技术实施例中无需通过占用标志位的方式来确定是否接收到包含加密信息的报文头,而是可以根据报文头与srv6节点的解密function字段是否匹配,来确定是否接收到加密的sid信息,从而可以在部分节点具有加密sid信息的场景中,准确地确定本地操作指令以及下一跳节点的locator字段的获取方式。
20、本技术实施例还提供另一种报文转发方法,应用于头节点中,所述方法包括:获取待发送的业务报文,所述业务报文的第一报文头包括头节点使用目标节点的密钥加密的sid信息,所述目标节点包括接收业务报文的至少一个srv6节点,所述使用目标节点的密钥加密的sid信息至少包括所述目标节点的本地操作指令;
21、根据所述第一报文头携带的所述头节点的下一跳srv6节点的标识,将所述业务报文发送至目标节点,所述目标节点用于接收所述业务报文,使用所述目标节点的密钥对所述第一报文头进行解密,得到解密的sid信息,执行所述本地操作指令。
22、本技术实施例还提供一种报文转发装置,应用于第一srv6节点中,所述装置包括:
23、接收模块,用于接收所述第一srv6节点的上一跳srv6节点发送的业务报文;所述业务报文的第一报文头包括使用所述第一srv6节点的密钥加密的sid信息;
24、第一处理模块,用于使用所述第一srv6节点的密钥对所述第一报文头进行解密,得到解密的sid信息,所述解密的sid信息至少包括所述第一srv6节点的本地操作指令;
25、第二处理模块,用于执行所述本地操作指令,在所述解密的sid信息包括所述第一srv6节点的下一跳srv6节点的标识的情况下,根据所述第一srv6节点的下一跳srv6节点的标识,向所述第一srv6节点的下一跳srv6节点发送所述业务报文。
26、本技术实施例还提供另一种报文转发装置,应用于头节点中,所述装置包括:
27、获取模块,用于获取待发送的业务报文,所述业务报文的第一报文头包括头节点使用目标节点的密钥加密的sid信息,所述目标节点包括接收业务报文的至少一个srv6节点,所述使用目标节点的密钥加密的sid信息至少包括所述目标节点的本地操作指令;
28、第三处理模块,用于根据所述第一报文头携带的所述头节点的下一跳srv6节点的标识,将所述业务报文发送至所述目标节点,所述目标节点用于接收所述业务报文,使用所述目标节点的密钥对所述第一报文头进行解密,得到解密的sid信息,执行所述本地操作指令。
29、本技术实施例还提供了一种电子设备,所述电子设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序以执行上述任意一种应用于第一srv6节点的报文转发方法。
30、本技术实施例还提供了另一种电子设备,所述电子设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序以执行上述任意一种应用于头节点的报文转发方法。
31、本技术实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种报文转发方法。
32、本技术实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述任意一种报文转发方法。
33、可以看出,由于业务报文的第一报文头包括使用第一srv6节点的密钥加密的sid信息,而sr-policy等策略通常被封装在sid信息中,因此,无法通过网络攻击手段来分析报文头中相关的策略,降低了策略信息泄露的风险,提升了业务报文传输过程的保密性和安全性。