CN113497800A - 一种SRv6信任域的边界过滤方法及装置 - Google Patents
一种SRv6信任域的边界过滤方法及装置 Download PDFInfo
- Publication number
- CN113497800A CN113497800A CN202010333905.6A CN202010333905A CN113497800A CN 113497800 A CN113497800 A CN 113497800A CN 202010333905 A CN202010333905 A CN 202010333905A CN 113497800 A CN113497800 A CN 113497800A
- Authority
- CN
- China
- Prior art keywords
- bsid
- message
- node
- edge node
- sid
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种SRv6信任域的边界过滤方法及装置,该方法包括:信任域的边缘节点接收目的地址为BSID的SRv6报文后,可以根据报文中的BSID和报文的SRH中的目标字段对报文进行验证,在报文通过验证的情况下转发报文,在报文未通过验证的情况下丢弃报文。在本申请实施例中,不仅要求信任域外的节点利用BSID接入信任域,而且,还要结合分段路由头中的目标字段对进入信任域的报文进行验证。利用本申请实施例的方案,相较于仅利用BSID对报文进行SRv6边界过滤而言,能够有效减少攻击报文对网络资源的占用,因此可以减少利用SRv6技术进行报文转发带来的安全隐患。
Description
本申请要求于2020年04月02日提交中国专利局、申请号为202010256371.1、发明名称为“一种基于SRv6信任域的边界过滤方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种报文转发方法及装置。
背景技术
互联网协议第6版段路由(Segment Routing Internet Protocol Version 6,SRv6)技术,可以将分段路由(segment routing,SR)技术应用于互联网协议第六版(internet protocol version 6,IPv6)报文的转发。
目前,利用SRv6技术进行报文转发时,存在一定的安全隐患。
发明内容
本申请实施例提供了一种报文转发方法,可以大大降低攻击报文对SRv6信任域网络资源的占用。
第一方面,本申请实施例提供了一种报文转发方法,该方法可以由SRv6信任域的边缘节点执行。信任域的边缘节点接收到来自信任域外的SRv6报文时,可以对该SRv6报文进行验证,并在第一报文通过验证的情况下转发第一报文。该方法包括:信任域的边缘节点接收第一报文,第一报文为SRv6报文,且第一报文的目的地址为绑定段标识(bindingsegment ID,BSID)。信任域的边缘节点接收到第一报文之后,可以根据第一报文中的BSID和第一报文的分段路由头(segment routing header,SRH)中的目标字段对第一报文进行验证,并在第一报文未通过验证的情况下丢弃第一报文。在本申请实施例中,不仅要求信任域外的节点利用BSID接入信任域,而且,还要结合分段路由头中的目标字段对第一报文进行验证。利用本申请实施例的方案,相较于信任域的边源节点仅利用BSID对第一报文进行边界过滤而言,能够有效识别出攻击报文,通过及时丢弃未通过验证的大量攻击报文,有效减少了攻击报文对信任域网络资源的占用,有效减少利用SRv6技术进行报文转发带来的安全隐患。
本申请中所述的SRv6信任域,也可以称之为SRv6安全域。
在一种实现方式中,边缘节点可以基于控制管理设备的指示,根据BSID和第一报文的SRH中的目标字段对第一报文进行验证。具体地,边缘节点可以接收来自于控制管理设备的安全防护策略,所述安全防护策略用于指示所述边缘节点根据所述BSID和所述SRH中的目标字段对所述第一报文进行验证。
在一种实现方式中,考虑到当SRv6报文需要跨信任域转发时,信任域可以提供一个BSID来表示该SRv6报文在信任域内的转发路径。因此BSID的下一跳SID在理论上用于指示信任域直接交互的域外节点。因此,所述目标字段可以包括所述BSID的下一跳SID。边缘节点可以利用BSID的下一跳SID确定第一报文是否被转发至合法的目的节点,或者,边缘节点可以利用BSID确定第一报文是否会对信任域造成攻击。
在一种实现方式中,考虑到BSID和SID list中的N个SIDs构成的第一SID list可以用于指示第一报文从边缘节点至目的节点的转发路径,或者,第一SID list用于指示第一报文从边缘节点至第一节点之间的转发路径,其中,第一节点为边缘节点和目的节点之间的节点。因此,目标字段可以包括SID list中的N个SIDs。这样一来,边缘节点可以对第一SID list进行验证,以确保第一SID list指示的路径是合法路径的前提下,才转发第一报文,从而保证SID list指示的路径中包括的节点不被网络攻击。
在一种实现方式中,当信任域外的节点需要将SRv6报文转发至信任域内时,信任域可以提供一个BSID来表示该SRv6报文在信任域内的转发路径。对于这种情况,该SRv6报文的SRH中应该不存在BSID的下一跳SID,或者说,BSID是指示SRv6报文转发路径的最后一个SID。对于这种情况,该SRv6报文的SL字段的值为0。因此,所述目标字段可以包括段剩余SL字段,以保证被转发至信任域内的SRv6报文能够正常被转发至信任域内。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,边缘节点可以确定所述BSID为所述信任域中的BSID;并确定所述目标字段是否在合法网段内,其中,所述合法网段是所述第一报文的合法目的节点所在的网段。若BSID的下一跳SID在合法网段内,则说明BSID的下一跳SID指示的节点是第一报文的合法目的节点。即第一报文在经过BSID指示的路径转发之后,被转发至第一报文的合法目的节点。对于这种情况,可以认为第一报文通过验证。相应的,若BSID的下一跳SID不在合法网段内,则说明第一报文在经过BSID指示的路径转发之后,并未被转发至第一报文的合法目的节点,而是被转发至其它节点。对于这种情况,BSID的下一跳SID很有可能经过了篡改。因此,该第一报文很有可能会其它节点造成攻击。因此,若BSID的下一跳SID不在合法网段内,则第一报文未通过验证。
在一种实现方式中,考虑到SRv6报文在转发时,指示该报文的目的节点的SID可能是节点SID,也可能是该节点上部署的VPN实例的SID,简称VPN SID。SRH的SID list中可以既包括目的节点的SID,又包括部署在该目的节点上的VPN SID。对于一个节点而言,无论是节点SID,还是该节点的VPN SID,其都在该节点的locator路由指示的网段内。其中,节点的locator路由,指的是该节点的节点SID所属的网段路由。因此,前述合法网段,可以是合法目的节点的locator路由指示的网段。这样一来,无论BSID的下一跳SID是节点SID还是VPNSID,都可以利用该合法网段确定第一报文是否被篡改。
在一种实现方式中,前述合法网段可以是控制管理设备携带在安全防护策略中发送给边缘节点的。
在一种实现方式中,前述合法网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,为了防止第一报文对信任域造成攻击,边缘节点例如可以确定BSID是否是信任域中的BSID。而后,边缘节点确定BSID的下一跳SID是否在第一网段内,第一网段指的是信任域内节点所属的网段。若BSID的下一跳SID在第一网段内,则说明BSID的下一跳SID指示的节点是信任域内的节点。即第一报文在经过BSID指示的路径转发之后,并未离开信任域,而是继续在信任域内转发。对于这种情况,BSID的下一跳SID很有可能经过了篡改。因此,该第一报文很有可能会对信任域内的节点造成网络攻击。因此,若BSID的下一跳SID在第一网段内,则第一报文未通过验证。相应的,若BSID的下一跳SID不在第一网段内,则说明第一报文在经过BSID指示的路径转发之后,离开了信任域并转发至信任域外的其它节点。对于这种情况,可以认为第一报文通过验证。
在一种实现方式中,前述第一网段可以是控制管理设备携带在安全防护策略中发送给边缘节点的。
在一种实现方式中,前述第一网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,边缘节点中可以预先存储SID list,边缘节点中存储的SID list用于指示合法路径。具体地,边缘节点中可以预先存储一个或者多个SID list,一个SID list指示一条合法路径。边缘节点可以将前述第一SID list与本地存储的SID list进行比对,若本地存储的SID list中包括前述第一SID list,则表示前述第一SID list指示的路径为合法路径,故而边缘节点可以确定第一报文通过验证。反之,若本地存储的SID list中不包括前述第一SID list,则确定第一报文未通过验证。
在一种实现方式中,边缘节点存储的SID list可以是控制管理设备通过安全防护策略下发给边缘节点的。
在一种实现方式中,边缘节点存储的SID list可以是静态配置在边缘节点上的。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,边缘节点中可以预先存储若干个哈希值。边缘节点存储的哈希值,是通过对合法路径对应的SID list进行哈希运算得到的。对于这种情况,边缘节点可以对第一SID list进行哈希运算,得到第一哈希值。边缘节点得到第一哈希值之后,可以查找本地存储的若干个哈希值,确定本地存储的哈希值中是否包括计算得到的第一哈希值。若本地存储的哈希值中包括第一哈希值,则表示第一SID list所指示的路径为合法路径,因此,可以确定第一报文通过验证。反之,若本地存储的哈希值中不包括第一哈希值,则确定第一报文未通过验证。
在一种实现方式中,第一报文中可以包括第一字段,第一字段可以用于指示待验证的SID的数量。边缘节点在接收到第一报文之后,可以对第一报文进行解析,得到第一字段的值,从而进一步获得前述BSID和SRH中的N个SIDs,并根据BSID和SRH中的N个SIDs对第一报文进行验证。
在一种实现方式中,当所述目标字段包括所述SL字段时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,所述边缘节点可以确定所述BSID为所述信任域中的BSID,并确定目标字段的值是否为0,当目标字段的值为0时,表示该第一报文是由信任域外转发至信任域内的合法报文,故而可以确定第一报文通过验证,当目标字段的值不为0时,可以确定第一报文未通过验证。
在一种实现方式中,边缘节点还可以接收第二报文,第二报文与第一报文类似,第二报文也是SRv6报文,第二报文的目的地址是BSID。边缘节点接收到第二报文之后,可以对第二报文进行验证。与边缘节点对第一报文进行验证的方式类似,边缘节点可以根据第二报文中的BSID和第二报文的SRH中的目标字段对第二报文进行验证,并在第二报文验证通过的情况下转发第二报文。由于对第二报文进行验证时不仅对BSID进行了校验,还对目标字段进行了校验,因此,验证通过的第二报文可以认为是合法报文,故而跨信任域转发该第二报文也不会带来安全隐患。利用本申请实施例提供的方案,可以减少利用SRv6技术进行报文转发带来的安全隐患。
第二方面,本申请实施例提供了一种报文转发方法,该方法包括:信任域的边缘节点接收第一报文,所述第一报文为SRv6报文,所述第一报文的目的地址是绑定段标识BSID;所述边缘节点根据所述第一报文中的所述BSID和所述第一报文的分段路由头SRH中的目标字段对所述第一报文进行验证;所述边缘节点转发通过验证的所述第一报文。在本申请实施例中,不仅要求信任域外的节点利用BSID接入信任域,而且,还要结合分段路由头中的目标字段对第一报文进行验证。相较于仅利用BSID对第一报文进行验证而言,对第一报文进行验证时结合的因素变多了,即允许SRv6报文跨信任域转发的校验标准更加严格。从而减少利用SRv6技术进行报文转发带来的安全隐患。
第三方面,本申请实施例提供了一种转发控制方法,所述方法包括:控制管理设备获取安全防护策略,所述安全防护策略用于指示信任域的边缘节点根据BSID和SRH中的目标字段对接收到的SRv6报文进行验证;所述控制管理设备将所述安全防护策略发送给所述信任域的边缘节点。在本申请实施例中,控制管理设备通过下发安全防护策略的方式,指示信任域的边缘节点基于BSID和SRH中的目标字段对接收到的SRv6报文进行验证。相较于仅利用BSID对第一报文进行验证而言,对第一报文进行验证时结合的因素变多了,即允许SRv6报文跨信任域转发的校验标准更加严格,故而可以减少利用SRv6技术进行报文转发带来的安全隐患。
在一种实现方式中,所述控制管理设备可以通过路径计算单元通信协议PCEP消息将所述安全防护策略发送给所述信任域的边缘节点。例如,在PCEP消息中扩展新的对象object或者在已有的object中扩展新的TLV字段来携带所述安全防护策略。
在一种实现方式中,所述控制管理设备可以通过边界网关协议BGP消息将所述安全防护策略发送给所述信任域的边缘节点。例如,可以再BGP消息中新增扩展属性或者在已有的属性中扩展新的TLV字段来携带所述安全防护策略。已有的属性例如可以是边界网关协议流规范BGP FS属性。
在一种实现方式中,所述控制管理设备可以通过网络配置协议NETCONF报文将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述控制管理设备可以通过简单网络管理协议SNMP报文将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述目标字段包括所述BSID的下一跳SID;或者,所述目标字段包括段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1;或者,所述目标字段包括段剩余SL字段。
一种实现方式中,当所述N大于1时,所述N个SIDs为所述SID列表中的连续N个SIDs。
在一种实现方式中,若所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和合法网段。
在一种实现方式中,所述信任域内的合法BSID和合法网段可以携带在BGP FS的扩展属性中,例如,信任域内的合法BSID携带在BGP FS的扩展属性type17中,合法网段携带在BGP FS的扩展属性type18中。
在一种实现方式中,若所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和第一网段。
在一种实现方式中,所述信任域内的合法BSID和第一网段可以携带在BGP FS的扩展属性中,例如,信任域内的合法BSID携带在BGP FS的扩展属性type17中,第一网段携带在BGP FS的扩展属性type18中。
在一种实现方式中,若所述目标字段包括段标识SID列表中的N个SIDs,则所述安全防护策略中携带指示合法路径的SID列表,所述SID列表包括所述信任域内的合法BSID。
在一种实现方式中,所述指示合法路径的SID list可以携带在BGP FS消息的扩展属性中。例如,所述指示合法路径的SID list可以携带在BGP FS消息的扩展属性type19中。
第四方面,本申请实施例提供了一种边缘节点,包括:通信接口;和与所述通信接口连接的处理器;根据所述通信接口和所述处理器,所述边缘节点用于执行前述第一方面任意一项所述的方法,或者执行前述第二方面任意一项所述的方法。
第五方面,本申请实施例提供了一种控制管理设备,包括:通信接口;和与所述通信接口连接的处理器;根据所述通信接口和所述处理器,所述控制管理设备用于执行前述第三方面任意一项所述的方法。
第六方面,本申请实施例提供了一种边缘节点,所述边缘节点包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述边缘节点执行以上第一方面任意一项所述的方法,或者,使得所述边缘节点执行以上第二方面任意一项所述的方法。
第七方面,本申请实施例提供了一种控制管理设备,所述控制管理设备包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述控制管理设备执行以上第三方面任意一项所述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面任意一项所述的方法,或者,使得所述计算机执行以上第二方面任意一项所述的方法,或者,使得所述计算机执行以上第三方面任意一项所述的方法。
第九方面,本申请实施例提供了一种通信系统,该通信系统包括边缘节点和控制管理设备,其中,所述控制管理设备用于执行以上第三方面任意一项所述的方法。
第十方面,本申请实施例提供了一种通信系统,该通信系统包括边缘节点和控制管理设备,其中,所述边缘节点用于执行以上第一方面任意一项所述的方法,或者,所述边缘节点用于执行以上第二方面任意一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种SRv6报文的结构示意图;
图2为本申请实施例提供的一种报文转发方法的示意图;
图3a为本申请实施例提供的一种网络结构示意图;
图3b为本申请实施例提供的又一个网络结构示意图;
图3c为本申请实施例提供的有一个网络结构示意图;
图4为本申请实施例提供的又一种SRv6报文的结构示意图;
图5为本申请实施例提供的一种报文转发方法的流程示意图;
图6为本申请实施例提供的一种报文转发方法的流程示意图;
图7为本申请实施例提供的一种报文转发方法的流程示意图;
图8为本申请实施例提供的一种转发控制方法的流程示意图;
图9为本申请实施例提供的一种边缘节点的结构示意图;
图10为本申请实施例提供的一种控制管理设备的结构示意图;
图11为本申请实施例提供的一种边缘节点的结构示意图;
图12为本申请实施例提供的一种控制管理设备的结构示意图;
图13为本申请实施例提供的一种边缘节点的结构示意图;
图14为本申请实施例提供的一种控制管理设备的结构示意图。
具体实施方式
本申请实施例提供了一种报文转发方法,能够减少利用SRv6技术进行报文转发时存在安全隐患。
为方便理解,首先对利用SRv6技术进行报文转发进行简单介绍。
利用SRv6技术转发报文时,由头节点指定报文转发路径,中间节点根据头节点指示的转发路径指导报文转发,直至将报文转发至目的节点。其中:利用SRv6技术转发的报文,也可以被称为SRv6报文。具体地,可以参见图1进行理解,图1为本申请实施例提供的一种SRv6报文的结构示意图。如图1所示,SRv6报文包括IPv6头(IPv6 header)101,分段路由头102和净荷103。其中,分段路由头102包括指示报文转发路径的段标识列表(segmentidentifier list,SID list)。在一种实现方式中,该SID list可以由若干个节点SID构成,例如,由若干个IPv6地址构成,该节点SID用于指示报文转发过程中经过的节点。在又一种实现方式中,SID list可以由若干个邻接链路SID构成,邻接链路SID用于指示报文转发所经过的邻接链路。所谓邻接链路,指的是两个节点之间直连的链路。在又一种实现方式中,SID list还可以由节点SID和邻接链路SID构成。
其中,IPv6头101中包括目的地址(destination address,DA)字段(图1中未示出)。DA字段的值在SRv6报文转发的过程中会发生改变。SRH 102中包括段剩余(segmentleft,SL)字段(图1中未示出)。SL字段用于指示SID list中尚未处理的SID的数量。SL从0开始编号,当SL的值等于m时,表示SID list中尚未处理的SID的数量为(m+1),当前正在处理的是segment list[m]。所谓对SID list中的SID进行处理,指的是将报文转发至该SID指示的节点。当SL的值等于m时,当IPv6头101中的目的地址为segment list[m]。头节点和中间节点在转发SRv6报文时,可以根据SL字段的值以及SID list,来确定报文转发的下一跳目的节点。具体地:中间节点接收到SRv6报文后,若SRv6报文中的目的地址为中间节点自身的地址,则中间节点可以将SL字段的值减去1,并根据执行减1操作得到的SL字段的值为索引,确定转发报文的下一跳目的节点,并在确定转发报文的下一跳目的节点之后,将目的地址字段的值修改为所确定的下一跳目的节点的IPv6地址。
以下结合图2介绍利用SRv6技术进行报文转发时,头节点以及各中间节点转发报文的具体方式。图2为本申请实施例提供的一种报文转发方法的示意图。如图2所示,头节点201确定报文依次经过节点202和节点203转发至目的节点204。头节点201获取的SRv6报文的SRH中携带SID list,该SID list中包括3个IPv6地址,分别为segment list[2]携带的地址2,segment list[1]携带的地址3和segment list[0]携带的地址4,其中:地址2为节点202的地址、地址3为节点203的地址、地址4为节点204的地址。头节点201获取SRv6报文之后,将该SRv6报文的目的地址修改为地址2,并将SL字段的值修改为2。而后,节点201将修改后的SRv6报文转发至节点202。节点202接收到的SRv6报文中包括前述SID list、且SL字段的值等于2。节点202接收到SRv6报文之后,确定目的地址是自身的地址,故而节点202将SL的值减去1,得到1,并以1为索引,确定报文转发的下一跳目的节点为segment list[1]携带的地址3所指示的节点203,节点202将该SRv6报文的目的地址修改为地址3。而后,节点202将该SRv6报文转发至节点203。依次类推,节点203接收到的SRv6报文中包括前述SID list、且SL字段的值等于1。节点203接收到SRv6报文之后,确定目的地址是自身的地址,故而节点203将SL的值减去1,得到0,并以0为索引,确定报文转发的下一跳目的节点为segment list[0]携带的地址3所指示的节点204,节点203将该SRv6报文的目的地址修改为地址4,并将该SRv6报文转发至节点204,从而完成报文转发。
前述节点201、节点202、节点203和节点204均为支持SRv6技术的节点。虽然图2中未示出,但是节点201在将SRv6报文转发至节点202的过程中,也可以经过若干个其它节点。另外,图2以SRH 102中携带节点SID为例进行说明,但是,SRH 102中携带邻接链路SID,或者SRH 102中携带节点SID和邻接链路SID。具体报文转发方式与SRH 102中携带节点SID的转发方式相同,此处不再赘述。
在一些实施例中,考虑到以太报文的长度需要在一个合理的范围内,若SID list所占的数据量比较大,会影响净荷103的数据量。而净荷103的数据量越小,则会影响整个网络的网络性能。因此,前述节点201所获得的SRv6报文中的SID list中也可以不包括地址2,从而减少了SID list所占的数据量。在这种场景下,节点201获取的SRv6报文中SL字段的值仍为2。在转发SRv6报文时,若前述SID list中不包括地址2,则这种转发SRv6报文的模式也可以被称作reduce模式。相应的,若前述SID list中包括地址2,则这种转发SRv6报文的模式也可以被称作普通模式。
通过以上描述可知,在利用SRv6技术转发报文时,中间节点基于SID list进行报文转发,其并不会对SID list进行校验。因此,网络黑客可以通过恶意篡改SID list的方式来进行网络攻击,影响网络安全。
目前,可以通过定义SRv6信任域的方式来防止前述网络攻击。其中,信任域用于指示防止前述网络攻击的网络范围。信任域可以基于多种方式确定,例如,可以基于网络场景确定,如指定网络中的核心网部分作为所述信任域;或者,可以基于业务类型确定,如将传输特定业务报文的网络范围确定为所述信任域,等等。具体地,为保证信任域不被攻击,可以在信任域的边缘节点或者中间节点上配置访问控制列表(access control list,ACL)流量过滤策略。例如,信任域的边缘节点对接收到的SRv6报文进行校验,若该SRv6报文的目的地址是信任域内的节点的地址,则丢弃该SRv6报文。又如,信任域的中间节点对接收到的SRv6报文进行校验,若该SRv6报文的源地址是信任域外的节点的地址,则丢弃该SRv6报文。通过上述方式,可以避免信任域外的SRv6报文传输至信任域内。实现仅对信任域内生成的SRv6报文进行转发,避免信任域被攻击。其中,上述信任域的边缘节点,指的是与信任域外的节点直接通信的节点,信任域的中间节点指的是除边缘节点之外的其它节点。
在一些实施例中,SRv6报文需要跨信任域转发。例如,信任域外的SRv6报文需要转发至信任域内,或者,第一域中产生的SRv6报文需要经过信任域转发至第二域,第一域和第二域不同于该信任域。对于这种情况,如何保证网络安全,是目前急需解决的问题。
本申请的发明人发现,为了保证信任域的安全性,防止信任域的网络拓扑泄露,从而降低信任域被攻击的可能性。当SRv6报文需要跨信任域转发时,该SRv6报文可以通过BSID接入信任域。其中,BSID可以用于标识一条转发路径。
具体地,在一个示例中,可以由控制管理设备生成标识信任域内的一条转发路径的BSID。相应的,控制管理设备在计算SRv6报文的转发路径时,可以得到包括BSID的SIDlist。另外,控制管理设备生成该BSID之后,可以将该BSID以及该BSID指示的转发路径的对应关系发送给信任域的边缘节点,以便于信任域的边缘节点对SRv6报文进行校验,以及在SRv6报文校验通过的情况下在信任域内转发该报文。在又一个示例中,可以由信任域的边缘节点生成BSID,并将BSID和该BSID指示的转发路径的对应关系发送给控制管理设备,以便于控制管理设备在计算SRv6报文的转发路径时,得到包括该BSID的SID list。本申请实施例中提及的控制管理设备例如可以为运行了网络管理软件的设备,又如可以为控制器,本申请实施例不做具体限定。
关于前述BSID以及该BSID指示的转发路径的对应关系,现举例说明:BSID 1指示信任域内的转发路径1,前述对应关系例如可以为BSID 1和指示转发路径1的SID list之间的对应关系。可结合下表1进行理解:
表1
如表1所示,BSID 1指示的转发路径为依次经过节点1、节点2和节点3的路径。表1只是为了方便理解而示出,其并不构成对本申请实施例的限定。
接下来,结合图3a,对信任域的边缘节点基于BSID对SRv6报文进行校验、以及信任域的边缘节点在信任域内转发通过校验的SRv6报文的具体实现方式。
图3a为本申请实施例提供的一种网络结构示意图。如图3a所示,节点R1是第一域100中的节点,节点R2和节点R4是信任域200的边缘节点,节点R5是第二域300中的节点,节点R2可以与节点R1直接通信,节点R4可以与节点R5直接通信。节点R6、节点R7和节点R8均为信任域200中的节点。在一些实施例中,第一域100和第二域300也可以被定义为信任域。
在本申请实施例中,信任域200可以属于接入网、承载网、核心网、运营商网络或者园区网络,本申请实施例不做具体限定。在一个示例中,前述信任域200可以属于运营商网络,节点R2作为基站侧网关(cell site gateway,CSG)设备部署在客户机房,第一域100属于企业网络,节点R1为客户前置设备(customer premise equipment,CPE)设备。
在图3a所示的场景中,头节点R1获得了包括BSID的SRv6报文,节点R1对该SRv6报文进行转发时,将该SRv6报文的目的地址修改为该BSID,并将修改后的报文转发给信任域200的节点R2。节点R2接收到该SRv6报文之后,通过该SRv6报文的目的地址对该SRv6报文进行验证,若该目的地址是信任域200内合法的BSID,则确定该SRv6报文通过验证。具体地,假设SRv6报文中的目的地址是address A,则节点R2例如可以查找本地存储的BSID列表中是否包括address A,若存在,则表示该address A是信任域内合法的BSID,此时,节点R2则在信任域内转发该SRv6报文。其中,节点R2本地存储的BSID列表中包括信任域内合法的BSID。
节点R2在转发该SRv6报文时,可以对该SRv6报文进行重新封装,将前述BSID转换成前述指示转发路径的SID list,并将该SID list封装至SRv6报文的SRH的SID list中,从而实现在信任域内转发该SRv6报文。
在本申请实施例中,节点R2对SRv6报文进行重新封装可以有多种封装方式,具体封装方式根据该SRv6报文的转发方式相关,以下介绍两种可能的节点R2对SRv6报文进行重新封装的实现方式。
在一种实现方式中,若该SRv6报文基于隧道转发,则节点R2在对SRv6报文进行重新封装时,可以在原有IPv6头和SRH的基础上新增一层IPv6头和一层SRH。原有的IPv6头和SRH中目的地址字段的更新以及SL字段的更新与传统技术相同。新增的IPv6头中的源地址为节点R2的地址,目的地址是与BSID对应的SID list中下一跳SID。
可结合图3b进行理解,图3b为本申请实施例提供的又一个网络结构示意图。如图3b所示,节点R1获得的SRv6报文,IPv6头301中携带的源地址是节点R1的地址,目的地址是节点R2的地址。SRH 302中SID list字段包括(R5,R2,……),其中,R2为信任域内的BSID,该BSID指示的路径为依次经过节点R2、节点R3和节点R4的转发路径。SID list字段中的省略号在该SRv6报文是节点R1从其它节点处接收时有效,用于指示该SRv6报文在节点R1之前的转发路径。SID list字段中的R5为节点R5的SID,节点R1获取到该SRv6报文时,SL字段的值等于2。节点R1将SL字段的值修改为1之后,将该SRv6报文发送给节点R2。节点R2接收到该SRv6报文之后,在本地查找BSID对应的SID list,查找得到的SID list为(R3,R4),其中,SID list中的R3为节点R3的SID,SID list中的R4为节点R4的SID。节点R2将查找得到的SIDlist封装至新增的SRH 303中,如图3b所示,SRH 303中SL字段的值等于1,节点R2根据该SL的值确定目的地址是R3,故而节点R2将新增的IPv6头304中的目的地址修改为R3,并将报文头304中的源地址修改为R2。在原有的IPv6头301中,源地址是R1,目的地址是R5。原有的SRH302中的SL字段的值为0。当SRv6报文在信任域200内转发时,IPv6头301中源地址和目的地址字段的内容保持不变、SRH 302中SL字段的值也保持不变。当该SRv6报文转发至R4节点之后,R4节点将IPv6头304和SRH 303剥离,节点R4基于SRH 302继续转发该SRv6报文。
在另一种实现方式中,若该SRv6报文不是基于隧道转发,则节点R2在对SRv6报文进行重新封装时,直接将该BSID对应的SID list添加到原有的SRH中。
可结合图3c进行理解,图3c为本申请实施例提供的又一个网络结构示意图。图3c与图3b中相同的部分可以参考上文对于图3b的描述部分,此处不再详述。如图3c所示,节点R2直接将BSID对应的SID list(R3,R4)添加到SRH 302中,IPv6头301中的源地址是R1,目的地址是R3。当该SRv6报文转发至节点R4之后,再继续通过R4转发至节点R5。
上述头节点利用BSID接入信任域的方式,虽然在一定程度上可以保证信任域的网络拓扑不被泄露。但是,由于信任域的边缘节点仅仅是对BSID进行验证,对SID list中的其它SID并未验证。因此,若SID list中其它SID被篡改,还是会导致网络被攻击。例如,可结合以上图3a进行理解,假设SRv6报文的合法目的节点是节点R5,若SRv6报文中SID list中指示R5节点的SID被篡改成信任域200中其它节点的SID,则会影响信任域200的安全。若SRv6报文中SID list中指示R5节点的SID被篡改成第二域300中其它节点的SID,则会影响第二域300的安全。
本申请的发明人发现,在又一种实现方式中,可以在信任域的边缘节点上配置密钥相关的哈希运算消息认证码(hashed-based message authentication code,HMAC)校验,从而防止SRH被篡改。HMAC运算可以以密钥和数据作为输入,将该数据压缩成固定长度的数据摘要。具体地,可参见图4进行理解,图4为本申请实施例提供的又一种SRv6报文的结构示意图。如图4所示,分段路由头SRH中包括HMAC Key ID字段和HMAC字段。HMAC Key ID字段用于标识HMAC校验所使用的密钥和哈希算法,该字段包括4字节;HMAC字段用于指示对SRv6报文中的特定字段的数据摘要,该字段包括32字节。其中,前述特定字段例如包括图4所示的源地址(source address,SA)字段、段列表最大标识(英文:last entry)字段、标识(英文:flags)字段、SID list字段和HMAC Key ID字段。关于图4所示的SRv6报文的各个字段,此处不一一详细说明。
在图4所示的SRv6报文中,SA字段包括16字节,Last Entry字段包括1字节,Flags字段包括1字节,SID list字段包括3个段标识,分别为segment list[2]、segment list[1]和segment list[0],共计48字节。该HMAC字段的值是利用HMAC Key ID指示的密钥和哈希算法对前述特定字段构成的70字节数据进行计算得到的数据摘要。关于前述特定字段,其总字节数可以根据SID list字段包括的SID数量确定,此处只是结合图4进行说明,特定字段的总字节数不限于70字节。
利用HMAC校验防止SRH被篡改在具体实现时,信任域外的头节点上可以存储有密钥和哈希算法。信任域外的节点生成SRv6报文时,可以利用密钥和哈希算法以及前述特定字段计算得到HMAC,得到具备如图4所示结构的SRv6报文,并将该SRv6报文转发给信任域的边缘节点。信任域的边缘节点上可以预先存储有密钥和哈希算法。信任域的边缘节点接收到该SRv6报文时,解析HMAC Key ID字段,并以HMAC Key ID为索引,查找HMAC校验所使用的密钥和哈希算法。而后,信任域的边缘节点根据查找得到的密钥和哈希算法,对接收到的SRv6报文中的前述特定字段进行计算,得到数据摘要。边缘节点将计算得到的数据摘要与SRv6报文中HMAC字段的值进行比较,若二者相同,则表示该SRv6报文未被篡改,故而可以继续转发该报文。若二者不相同,则表示该SRv6报文已经被篡改,此时可以丢弃该报文。需要说明的是,对于这种情况,前述信任域外的头节点可以认为是值得信任的节点。因为若持有密钥和哈希算法的头节点主动对报文进行篡改,则整个网络的安全则无法得到保证。
在一些实施例中,为了防止由于持有密钥和哈希算法的头节点被攻击而导致整个网络的安全性收到威胁。也可以由控制管理设备计算得到前述HMAC下发给头节点,本申请实施例不做具体限定。
上述方式虽然可以保证SRv6报文不被篡改,但是,由于信任域的边缘节点上需要预先存储有密钥和哈希算法,而密钥和哈希算法的安全性对前述验证结果的可靠性尤为重要。因此,还需要额外的保护措施来保护密钥和哈希算法的安全性。而一般情况下信任域的边缘设备是小型转发设备,其数据处理能力有限,保护密钥和哈希算法的安全性会耗费边缘设备较多的计算资源。因此,采用上述方式验证SRv6报文是否篡改,会影响信任域的边缘设备的性能,故而上述方式被采用的可能性比较低。
因此,如何在兼顾信任域的边缘节点的性能的前提下,尽可能减少利用SRv6技术进行报文转发时存在的安全隐患,是目前急需解决的问题。
为了解决这个问题,本申请实施例提供了一种报文转发方法,以下结合图3a所示的网络架构介绍本申请实施例提供的报文转发方法。参见图5,该图为本申请实施例提供的一种报文转发方法的流程示意图。图5所示的方法100,例如可以通过如下S101、S102和S103a实现,或者通过如下S101、S102和S103b实现。
S101:节点R2接收第一报文,第一报文为SRv6报文,第一报文的目的地址为BSID。
关于节点R2可以参考上文对于图3a的描述部分,此处不再重复描述。关于SRv6报文以及SRv6报文的目的地址,可以参考上文对于SRv6报文以及SRv6报文转发过程的描述部分,此处不再重复描述。
在本申请实施例中,第一报文是信任域外的节点发送给节点R2的,该信任域外的节点例如可以为图3a所示的节点R1。
在本申请实施例中,为了保证信任域的网络拓扑安全,信任域外的节点只能通过信任域内的合法BSID接入信任域。
S102:节点R2根据该BSID和第一报文的SRH中的目标字段对第一报文进行验证。
节点R2接收到第一报文之后,为了防止网络攻击,节点R2可以对第一报文进行验证,确定第一报文是否是攻击报文。具体地,当第一报文通过验证时,说明第一报文不是攻击报文,故而节点R2可以执行S103a所示的转发第一报文的步骤,即允许第一报文跨信任域转发。当第一报文未通过验证时,说明第一报文有可能是攻击报文。对于这种情况,若让第一报文跨信任域转发,则可能对信任域或者其它网络(例如图3a所述的第二域300)造成网络攻击。因此,节点R2可以执行S103b所述的丢弃第一报文的步骤。
在本申请实施例中,一方面,由于信任域外的节点只能通过信任域内的合法BSID接入信任域。因此,可以根据第一报文的目的地址是否是信任域内合法的BSID来确定第一报文是否是攻击报文。另一方面,考虑到SRv6报文的SRH中包含指导报文转发的关键信息例如SID list,对该关键信息进行验证,可以确定第一报文是否是攻击报文。因此,节点R2可以根据第一报文中的BSID以及第一报文的SRH中的目标字段对第一报文进行验证。
在本申请实施例的一种实现方式中,节点R2可以基于控制管理设备的指示执行S102。具体地,控制管理设备可以向节点R2发送安全防护策略,该安全防护策略中携带指示信息,该指示信息用于指示节点R2对接收到的SRv6报文进行校验。具体地:该指示信息用于指示节点R2根据接收到的SRv6报文中的BSID和SRH中的目标字段对该SRv6报文进行验证。具体地,控制管理设备可以通过网络配置协议(Network Configuration Protocol,NETCONF)、简单网络管理协议(Simple Network Management Protocol,SNMP)、路径计算单元通信协议(Path Computation Element Communication Protocol,PCEP)、边界网关协议(Border Gateway Protocol,BGP)等将安全防护策略发送给节点R2。一个具体的实现中,可以通过边界网关协议流规范(Border Gateway Protocol Flow Specification,BGP FS)路由发送所述安全防护策略。
以下对BGP FS路由做简单说明。
BGP FS路由为包含新的BGP网络层可达信息和扩展团体属性的路由。通过新的网络层可达信息和扩展团体属性,BGP FS路由可以携带相应的BGP FS规则,该BGP FS规则也可以看成是一种流量控制策略,具体地,BGP FS规则可以包括流量的匹配条件和流量匹配后对应的流量处理行为。目前,流量匹配条件作为网络层可达信息携带在BGP FS路由中,流量处理行为作为扩展团体属性携带在BGP FS路由中。目前,BGP FS已经定义了type1至type16这16种流量匹配条件。关于这16种流量匹配条件,此处不详细说明。关于S102的具体实现方式,可以根据目标字段来确定。目标字段不同,S102的具体实现方式也不同。以下介绍目标字段的具体内容、以及与目标字段对应的S102的具体实现方式。
第一种实现方式:目标字段为BSID的下一跳SID。
在本申请实施例中,一般情况下,当SRv6报文需要跨信任域转发时,信任域可以提供一个BSID来表示该SRv6报文在信任域内的转发路径。换言之,BSID的下一跳SID在理论上用于指示信任域直接交互的域外节点。可参考图3b进行理解,BSID的下一跳SID用于指示第二域300中节点R5。
在一些实施例中,若第一报文是未被篡改的合法报文,则BSID的下一跳SID可以用于指示第一报文的合法目的节点。为了保证第一报文能够被准确的转发至合法目的节点,防止对其它节点带来网络攻击。S102在具体实现时,节点R2例如可以确定BSID是否是信任域中的BSID。而后,节点R2确定BSID的下一跳SID是否在合法网段内,合法网段指的是第一报文的合法目的节点所在的网段。若BSID的下一跳SID在合法网段内,则说明BSID的下一跳SID指示的节点是第一报文的合法目的节点。即第一报文在经过BSID指示的路径转发之后,被转发至第一报文的合法目的节点。对于这种情况,可以认为第一报文通过验证。相应的,若BSID的下一跳SID不在合法网段内,则说明第一报文在经过BSID指示的路径转发之后,并未被转发至第一报文的合法目的节点,而是被转发至其它节点。对于这种情况,BSID的下一跳SID很有可能经过了篡改。因此,该第一报文很有可能会其它节点造成攻击。因此,在本申请实施例中,若BSID的下一跳SID不在合法网段内,则第一报文未通过验证。
在本申请实施例中,前述合法网段例如可以是静态配置在节点R2上的,也可以是由控制管理设备发送给节点R2的。本申请实施例不做具体限定。若合法网段是控制管理设备发送给节点R2的,则控制管理设备例如可以在向节点R2发送前述安全防护策略时,将合法网段携带在安全防护策略中发送给节点R2。这样做相较于控制管理设备将安全防护策略和第一网段分开发送给节点R2而言,可以减少控制管理设备和节点R2之间的交互次数,节省控制管理设备以及节点R2的输入输出(input-output,IO)资源。
如前文所述,控制管理设备可以将安全防护策略携带在BGP FS路由中发送给节点R2。并且,BGP FS已经定义了16种流量匹配条件。因此,在本申请实施例中,可以对BGP FS进行扩展,例如,新增一种流量匹配条件type 17和type 18,在新增的流量匹配条件type 17中可以携带BSID,在新增的流量匹配条件type 18中携带合法网段。
在一些实施例中,考虑到合法网段内包括的节点可能并不限于第一报文的合法目的节点。为了避免网络黑客对第一报文进行篡改以实现对属于该合法网段内的其它节点造成网络攻击,在本申请实施例的一种实现方式中,可以尽量将合法网段的掩码设置的长一些。作为一种示例,type 18中还可以携带合法网段的掩码长度。当然,type 18中还可以携带其它信息,此处不再一一列举说明。
关于节点R2确定BSID是否是信任域中的BSID的具体实现,可以参考上文对于图3a的相关描述部分,此处不再重复描述。
关于前述合法网段,本申请实施例不做具体限定。考虑到在实际应用中,SRv6报文在转发时,指示该报文的目的节点的SID可能是节点SID,也可能是该节点上部署的虚拟专用网络(virtual private network,VPN)实例的SID,简称VPN SID。当然,SRH的SID list中可以既包括目的节点的SID,又包括部署在该目的节点上的VPN SID。对于一个节点而言,无论是节点SID,还是该节点的VPN SID,其都在该节点的locator路由指示的网段内。其中,节点的locator路由,指的是该节点的节点SID所属的网段路由。因此,在一个实施例中,前述合法网段,可以是合法目的节点的locator路由指示的网段。这样一来,无论BSID的下一跳SID是节点SID还是VPN SID,都可以利用该合法网段确定第一报文是否被篡改。
接下来对type17和type18进行简单的举例说明,应理解,对于控制管理设备下发安全防护策略的相关方案仅是示例性说明,本申请实施例不限于此。
Type 17包括type和BSID两个字段,即<type,BSID>。BSID字段用于携带信任域内合法的BSID,type字段的值固定为17。
type18包括携带type字段、operator字段和value字段,即:<type,[operator,value]+>。
其中:
type字段的值为18;
value字段用于携带合法网段,value字段包括网络前缀和掩码长度,网络前缀包括一字节,掩码长度包括16字节;
operator字段包括8比特,分别为bit0至比特7;
“+”表示可以包括多个[operator,value]组合;
operator字段各比特的含义如下表2所示:
表2
Bit0 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 |
e | a | reserve | reserve | reserve | reserve | Miss | Match |
E:end-of-list bit,E的值为1,表示当前<operator,value>是最后一个<operator,value>组合;
A:and bit;a的值如果为1,表示当前<operator,value>字段表示和上一个<operator,value>字段是“或”的关系,如果为0,表示和上一个<operator,value>字段是“与”的关系;
reserve:预留字段;
Miss:标识BSID下一跳不在value指示的网段内时处理动作,Miss的值等于0表示转发报文,Miss的值等于1表示丢弃该报文;
Match:标识BSID下一跳在value指示的网段内时处理动作,Match的值等于0表示转发报文,Match的值等于1表示丢弃该报文;
关于携带BSID和合法网段的安全防护策略,现举例说明:对某一业务,对信任域外节点提供BSID b::1,指导在信任域内的转发路径。该业务对应的业务报文的合法目的节点在网段c::1/64。对信任域边界节点,通过BGP FS下发安全防护策略,具体地:包括:<0x11,b::1>和<0x12,[0x82,c::1/64]>。
其中,0x11指示type17,b::1用于指示节点R2验证接收到的报文1的目的地址是否是合法的BSID b::1;0x12指示type18,[0x82,c::1/64]用于指示节点R2在BSID的下一跳SID在c::1/64指示的网段内时,转发报文1,否则,丢弃报文1。
在一些实施例中,为了防止第一报文对信任域造成攻击,S102在具体实现时,节点R2例如可以确定BSID是否是信任域中的BSID。而后,节点R2确定BSID的下一跳SID是否在第一网段内,第一网段指的是信任域内节点所属的网段。若BSID的下一跳SID在第一网段内,则说明BSID的下一跳SID指示的节点是信任域内的节点。即第一报文在经过BSID指示的路径转发之后,并未离开信任域,而是继续在信任域内转发。对于这种情况,BSID的下一跳SID很有可能经过了篡改。因此,该第一报文很有可能会对信任域内的节点造成网络攻击。因此,在本申请实施例中,若BSID的下一跳SID在第一网段内,则第一报文未通过验证。相应的,若BSID的下一跳SID不在第一网段内,则说明第一报文在经过BSID指示的路径转发之后,离开了信任域并转发至信任域外的其它节点。对于这种情况,可以认为第一报文通过验证。
在本申请实施例中,前述第一网段例如可以是静态配置在节点R2上的,也可以是由控制管理设备发送给节点R2的。本申请实施例不做具体限定。若第一网段是控制管理设备发送给节点R2的,则控制管理设备例如可以在向节点R2发送前述安全防护策略时,将第一网段携带在安全防护策略中发送给节点R2。这样做相较于控制管理设备将安全防护策略和第一网段分开发送给节点R2而言,可以减少控制管理设备和节点R2之间的交互次数,节省控制管理设备以及节点R2的输入输出IO资源。
如前文所述,控制管理设备可以将安全防护策略携带在BGP FS路由中发生给节点R2。并且,BGP FS已经定义了16种流量匹配条件。因此,在本申请实施例中,可以对BGP FS进行扩展,新增流量匹配条件type 17和type 18,在新增的流量匹配条件type 17中可以携带该BSID,在新增的流量匹配条件type 18中携带第一网段。当然,type 18中还可以携带其它信息,例如携带第一网段的掩码长度等,此处不再一一列举说明。
关于type 17和type 18,可以参考上文的相关描述部分,此处不再详述。
关于携带BSID和第一网段的安全防护策略,现举例说明:信任域200内地址范围对应网段a::1/64,对某一业务,对信任域外节点提供BSID b::1,指导在信任域内的转发路径。对信任域边界节点,通过BGP FS下发安全防护策略,具体地:包括:<0x11,b::1>和<0x12,[0x81,a::1/64]>。
其中,0x11用于指示type17,b::1用于指示节点R2验证接收到的报文1的目的地址是否是合法的BSID b::1;0x11用于指示type18,[0x81,a::1/64]用于指示节点R2在BSID的下一跳SID不在a::1/64指示的网段内时,转发报文1,否则,丢弃报文1。
关于节点R2例如可以确定BSID是否是信任域中的BSID的具体实现,可以参考上文对于图3a的相关描述部分,此处不再重复描述。
通过以上描述可知,利用第一种实现方式,在SRv6报文通过BSID接入信任域之后,可以保证信任域不被攻击,或者,可以使得第一报文被转发至合法目的节点,避免合法目的节点之外的节点被攻击。而且,由于不涉及密钥以及哈希算法保护,故而可以节省节点R2的计算资源。因此,本申请实施例的方案,可以在兼顾节点R2性能的前提下,尽可能减少利用SRv6技术进行报文转发时存在的安全隐患。
第二种实现方式:目标字段为第一报文的SRH的SID list中的N个SIDs。
在本申请实施例中,N的值大于或者等于1,当N等于1时,该SID为BSID的下一跳SID。当N的值大于1时,该N个SIDs为SRH的SID list中的连续N个SIDs,并且,该N个SIDs的第一个SID为BSID的下一跳SID。换言之,BSID和该N个SIDs可以构成第一SID list,该第一SIDlist用于指示一条转发路径。在本申请实施例中,第一SID list可以用于指示第一报文从节点R2至目的节点的完整转发路径,或者,第一SID list可以用于指示前述完整转发路径的一部分,即用于指示第一报文从节点R2至第一节点之间的转发路径,第一节点为节点R2到第一报文的目的节点之间的节点。
在本申请实施例的一种实现方式中,若目标字段为SRH的SID list中的N个SIDs,S102在具体实现时,节点R2中可以预先存储SID list,节点R2中存储的SID list用于指示合法路径。具体地,节点R2中可以预先存储一个或者多个SID list,一个SID list指示一条合法路径。节点R2可以将前述第一SID list与本地存储的SID list进行比对,若本地存储的SID list中包括前述第一SID list,则表示前述第一SID list指示的路径为合法路径,故而节点R2可以确定第一报文通过验证。反之,若本地存储的SID list中不包括前述第一SID list,则确定第一报文未通过验证。
关于节点R2存储的SID list,可以参考下表3进行理解,表3示出了两个SID list。表3只是为了方便理解而输出,其并不构成本申请实施例的限定,节点R2中存储的SID list的数量不限于表3所示的两个,节点R2中存储的SID list也不限于表3示出的BSID-SID1-SID2以及BSID-SID3。
表3
如表3所示,节点R2存储的SID list中的第一个SID均为BSID。在本申请实施例的一种实现方式中,为了提升节点R2确定本地存储的SID list中包括前述第一SID list的效率,节点R2在存储SID list时,可以将SID list中的第一个BSID作为SID list的索引存储,在确定本地存储的SID list中是否包括前述第一SID list时,可以以第一SID list中的BSID为索引,确定本地存储的SID list中是否包括前述第一SID list。
在一种实现方式中,节点R2中存储的SID list可以是静态配置在节点R2上的。在又一种实现方式中,节点R2中存储的SID list可以是控制管理设备通过安全防护策略下发给节点R2的。
如前文所述,控制管理设备可以将安全防护策略携带在BGP FS路由中发生给节点R2。具体地,可以对BGP FS进行扩展,新增一种流量匹配条件type 17和type 19,在新增的流量匹配条件type 17中可以携带BSID,在新增的流量匹配条件type 19中携带其它待校验的SIDs。
关于type 17,可以参考上文对于type 17的描述部分,此处不再重复描述。接下来对type 19进行简单说明。
与type18类似,type19包括携带type字段、operator字段和value字段,即:<type,[operator,value]+>。其中:
type字段的值为19;
value字段用于SID;
operator字段包括8比特,分别为bit0至比特7;
“+”表示可以包括多个[operator,value]组合;
operator字段各比特的含义如下表4所示:
表4
E:end-of-list bit,E的值为1,表示当前<operator,value>是最后一个<operator,value>组合;
segment list number,用于携带SID编号。
关于携带BSID和N个SIDs的安全防护策略,现举例说明:对某一业务,对信任域外节点提供BSID b::1,指导在域内的转发路径。转发的合法路径可以通过下表5所示的SIDlist表示。
表5
Segment list[0] | D1::1 |
Segment list[1] | D2::1 |
Segment list[2] | D3::1 |
Segment list[3] | B::1 |
对于这种情况,控制管理设备可以对信任域边界节点,通过BGP FS下发安全防护策略,具体地:包括:<0x11,b::1>、<0x13,[0x00,D1::1]、[0x01,D2::1]、[0x02,D3::1]、[0x83,B::1]>。
其中,0x11指示type17,b::1用于指示合法的BSID;0x13指示type19,[0x00,D1::1]标识Segment list[0]=D1::1;<0x13,[0x01,D2::1]指示Segment list[1]=D2::1;[0x02,D3::1]指示Segment list[2]=D3::1;[0x83,B::1]指示Segment list[3]=B::1,且<0x13,[0x83,B::1]>是最后一个<operator,value>组合。
节点R2接收到上述<0x11,b::1>、<0x13,[0x00,D1::1]、[0x01,D2::1]、[0x02,D3::1]、[0x83,B::1]>之后,可以保存SID list。该SID list包括:b::1、B::1、D3::1、D2::1和D3::1。
在本申请实施例的又一种实现方式中,若目标字段为SRH的SID list中的N个SIDs,S102在具体实现时,节点R2中可以预先存储若干个哈希值,例如节点R2可以预先存储哈希表,该哈希表中包括若干个哈希值。节点R2存储的哈希值,是通过对合法路径对应的SID list进行哈希运算得到的。对于这种情况,节点R2可以对第一SID list进行哈希运算,得到第一哈希值。节点R2得到第一哈希值之后,可以查找本地存储的若干个哈希值,确定本地存储的哈希值中是否包括计算得到的第一哈希值。具体地,可以以第一哈希值为索引查找本地存储的若干个哈希值,从而确定本地存储的哈希值中是否包括第一哈希值。若本地存储的哈希值中包括第一哈希值,则表示第一SID list所指示的路径为合法路径,因此,可以确定第一报文通过验证。反之,若本地存储的哈希值中不包括第一哈希值,则确定第一报文未通过验证。
在本申请实施例中,前述合法路径对应的SID list中的第一个SID为BSID。为了提升节点R2确定本地存储的哈希值中包括前述第一哈希值,节点R2在存储哈希值时,可以将计算得到该哈希值的SID list中的第一个BSID作为该哈希值的索引存储。相应的,在确定本地存储的哈希值中是否包括前述第一哈希值时,可以以第一SID list中的BSID为索引,确定本地存储的哈希值中是否包括前述第一哈希值。当然,节点R2在保存哈希值时,也可以将计算得到哈希值的SID list对应存储,本申请实施例不做具体限定。
关于节点R2本地存储的哈希值,可结合下表6进行理解。表6示出了三种可能的哈希值的存储方式。第1种为仅存储哈希值,第二种为存储哈希值与BSID,第3种为存储哈希值与计算得到该哈希值的SID list。表6只是为了方便理解而示出,其并不构成对本申请实施例的限定。
表6
在本申请实施例的一种实现方式中,第一报文中可以包括第一字段,第一字段可以用于指示待验证的SID的数量。节点R2在接收到第一报文之后,可以对第一报文进行解析,得到第一字段的值,从而进一步获得前述BSID和SRH中的N个SIDs,并执行S102以实现对第一报文的验证。本申请实施例不具体限定第一字段,第一字段可以是SRv6报文中的预留字段,或者,第一字段可以是SRv6报文中的扩展字段。例如,第一字段可以是图4所示的Flags字段的后4个比特。在本申请实施例中,第一字段携带的值,可以为N,也可以为N+1,本申请实施例不做具体限定。具体地,当第一字段携带的值等于N时,第一字段指示的SID不包括第一报文的目的地址,即:不包括BSID。当第一字段携带的值等于N+1时,第一字段指示的SID包括第一报文的目的地址,即:包括BSID。
在一些实施例中,节点R2在保存哈希值时,还可以对应保存计算得到该哈希值的SID list中包括的SID的数量,相应的,在将第一哈希值与本地存储的哈希值进行匹配时,也进一步根据第一字段的值,将计算得到第一哈希值的第一SID list包括的SID数量,与本地存储的哈希表中的SID数量进行比对。在本地存储的哈希表中包括第一哈希值,且本地存储的第一哈希值对应的SID数量等于第一SID list包括的SID数量时,才确定第一报文通过验证。否则,确定第一报文未通过验证。
对于这种情况,可以参考下表7理解节点R2本地存储的哈希表。
表7
现结合表7对节点R2验证第一报文的方式进行举例说明。假设节点R2中存储的哈希值的方式为表7所示的第一种方式。则节点R2在验证第一报文时,例如可以查找本地存储的哈希值中是否包括第一哈希值。若第一哈希值即为哈希值1,则节点R2确定本地存储的哈希值中包括第一哈希值。进一步地,由于本地存储的哈希值中计算得到哈希值1的SID list包括的SID数量为a,若第一SID list包括的SID数量为a,则节点R2可以确定第一报文通过验证。若第一SID list包括的SID数量不为a,则节点R2可以确定第一报文未通过验证。其中,第一SID list包括的SID数量,可以根据前述第一字段的值确定。具体地,若第一字段的值指示的待验证的SID不包括BSID,则第一SID list包括的SID数量等于第一字段的值加1。若第一字段的值指示的待验证的SID包括BSID,则第一SID list包括的SID数量等于第一字段的值。
通过以上描述可知,当第一SID list用于指示第一报文从节点R2至目的节点的完整转发路径时,利用第二种实现方式,可以保证第一报文能够被转发至第一报文的合法目的节点。当第一SID list用于指示第一报文从节点R2至第一节点之间的转发路径时,利用第二种实现方式,可以使得节点R2至第一节点之间的网络不被网络攻击。
而且,节点R2对本地存储的SID list或者哈希值进行维护所耗费的计算资源,远远小于节点R2保护密钥和哈希算法的安全性所耗费的计算资源。因此,本申请实施例的方案,可以在兼顾节点R2性能的前提下,尽可能减少利用SRv6技术进行报文转发时存在的安全隐患。
第三种实现方式:目标字段为SL字段。
如前文,信任域可以提供一个BSID来表示该SRv6报文在信任域内的转发路径。在一些实施例中,域外节点需要将SRv6报文转发至信任域内。对于这种情况,第一报文的SRH中应该不存在BSID的下一跳SID,或者说,BSID是指示第一报文转发路径的最后一个SID。对于这种情况,第一报文中的SL字段的值为0。因此,为了保证被转发至信任域内的SRv6报文能够正常被转发至信任域内。S102在具体实现时,节点R2例如可以确定BSID是否是信任域中的BSID。而后,节点R2确定SL字段的值是否为0,当SL字段的值为0时,表示第一报文的目的节点是信任域内的节点。因此,可以确定第一报文通过验证。当SL字段的值不为0时,节点R2可以利用以上第一种方式或者第二种方式对第一报文进行验证。
S103a:节点R2丢弃未通过验证的第一报文。
节点R2丢弃第一报文,例如可以是节点R2从本地存储中删除第一报文。
S103b:节点R2转发通过验证的第一报文。
在本申请实施例中,节点R2转发第一报文在具体实现时,例如可以获取该BSID对应的SID list,根据该SID list对第一报文进行重新封装,并转发重新封装后的第一报文。关于节点R2根据该SID list对第一报文进行重新封装的具体实现方式,可以参考上文对于图3b以及图3c的描述部分,此处不再重复描述。
通过以上描述可知,利用本申请实施例的报文转发方法,可以在兼顾节点R2性能的前提下,尽可能减少利用SRv6技术进行报文转发时存在的安全隐患。
在本申请实施例的一个实施例中,节点R2还可以获取第二报文,第二报文与第一报文类似,也是SRv6报文,第二报文的目的地址为BSID。节点R2接收到第二报文之后,可以根据第二报文的BSID和第二报文的SRH中的目标字段对第二报文进行验证。关于节点R2对第二报文进行验证的具体实现,与节点R2对第一报文进行验证的方法类似,此处不再重复描述。节点R2对第二报文进行验证之后,可以在第二报文通过验证的情况下转发第二报文。由于对第二报文进行验证时不仅对BSID进行了校验,还对目标字段进行了校验,因此,验证通过的第二报文可以认为是合法报文,故而跨信任域转发该第二报文也不会带来安全隐患。
本申请实施例还提供了一种报文转发方法200,可参见图6,图6为本申请实施例提供的一种报文转发方法的流程示意图。以下结合图6对该方法进行说明。图6所示的方法,例如可以通过S201-S203实现。
S201:信任域的边缘节点接收第一报文,所述第一报文为SRv6报文,所述第一报文的目的地址是绑定段标识BSID。
S202:所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证。
S203:所述边缘节点丢弃未通过验证的所述第一报文。
方法200可以用于实现以上实施例提及的方法100中由节点R2执行的S101、S102和S103a,当方法200用于实现以上实施例提及的方法100中由节点R2执行的S101、S102和S103a时,信任域的边缘节点对应方法100中的节点R2,第一报文对应方法100中的第一报文。
在一种实现方式中,所述边缘节点还可以接收来自于控制管理设备的安全防护策略,所述安全防护策略用于指示所述边缘节点根据所述BSID和所述SRH中的目标字段对所述第一报文进行验证。
在一种实现方式中,所述目标字段包括所述BSID的下一跳SID;或者,所述目标字段包括段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1,当所述N大于1时,所述N个SIDs为所述SID列表中的连续N个SIDs;或者,所述目标字段包括段剩余SL字段。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:当所述BSID是所述信任域中的BSID、并且所述目标字段不在合法网段内时,边缘节点确定第一报文未通过验证,所述合法网段是所述第一报文的合法目的节点所在的网段。
在一种实现方式中,所述合法网段,是所述合法目的节点的locator路由指示的网段。此处提及的合法目的节点,例如可以对应图3a所示的第二域300中的节点R5。
在一种实现方式中,所述安全防护策略中携带所述合法网段;或者,所述合法网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:在所述BSID是所述信任域中的BSID、并且所述目标字段在第一网段内时,边缘节点确定第一报文未通过验证,所述第一网段为所述信任域内节点所属的网段。此处提及的第一网段,可以对应图3c所示的信任域200内的节点所属的网段。
在一种实现方式中,所述安全防护策略中携带所述第一网段;或者,所述第一网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述SID列表中的N个SIDs时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:所述边缘节点将所述BSID和所述目标字段构成的第一SID列表与所述边缘节点存储的SID列表进行比对,若所述边缘节点存储的SID列表中不包括所述第一SID列表,所述边缘节点确定所述第一报文未通过验证,所述边缘节点存储的SID列表用于指示合法路径。
在一种实现方式中,当所述目标字段包括所述SID列表中的N个SIDs时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:所述边缘节点对所述BSID和所述目标字段构成的第一SID列表进行哈希运算,得到第一哈希值;若所述边缘节点存储的哈希值中不包括所述第一哈希值,则所述边缘节点确定所述第一报文未通过验证,所述边缘节点存储的哈希值,是通过对指示合法路径的SID列表进行所述哈希运算得到的。
在一种实现方式中,所述第一报文包括第一字段,所述第一字段用于指示待验证的SID的数量。
在一种实现方式中,所述安全防护策略中携带所述指示合法路径的SID列表;或者,所述指示合法路径的SID列表静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述SL字段时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:
所述边缘节点确定所述BSID为所述信任域中的BSID;所述边缘节点在目标字段的值不等于0时,确定所述第一报文未通过验证。
在一种实现方式中,所述边缘节点还可以获取第二报文,所述第二报文为SRv6报文,所述第二报文的目的地址是绑定段标识BSID;所述边缘节点根据所述第二报文中的所述BSID和所述第二报文的SRH中的目标字段对所述第二报文进行验证;所述边缘节点转发通过验证的所述第二报文。
关于方法200的具体实现,可以参考上文对于方法100中的S101、S102和S103a的描述部分,此处不再重复描述。
本申请实施例还提供了一种报文转发方法300,可参见图7,图7为本申请实施例提供的一种报文转发方法的流程示意图。以下结合图7对该方法进行说明。图7所示的方法,例如可以通过S301-S303实现。
S301:信任域的边缘节点接收第一报文,所述第一报文为SRv6报文,所述第一报文的目的地址是绑定段标识BSID。
S302:所述边缘节点根据所述第一报文中的所述BSID和所述第一报文的分段路由头SRH中的目标字段对所述第一报文进行验证。
S303:所述边缘节点转发通过验证的所述第一报文。
方法300可以用于实现以上实施例提及的方法100中由节点R2执行的S101、S102和S103b,当方法200用于实现以上实施例提及的方法100中由节点R2执行的S101、S102和S103b时,信任域的边缘节点对应方法100中的节点R2,第一报文对应方法100中的第一报文。
在一种实现方式中,所述边缘节点还可以接收来自于控制管理设备的安全防护策略,所述安全防护策略用于指示所述边缘节点根据所述BSID和所述SRH中的目标字段对所述第一报文进行验证。
在一种实现方式中,所述目标字段包括所述BSID的下一跳SID;或者,所述目标字段包括段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1,当所述N大于1时,所述N个SIDs为所述SID列表中的连续N个SIDs;或者,所述目标字段包括段剩余SL字段。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,所述边缘节点可以在确定所述BSID为所述信任域中的BSID、且所述目标字段在合法网段内时,确定第一报文通过验证。其中,所述合法网段是所述第一报文的合法目的节点所在的网段。
在一种实现方式中,所述合法网段,是所述合法目的节点的locator路由指示的网段。此处提及的合法目的节点,例如可以对应图3a所示的第二域300中的节点R5。
在一种实现方式中,所述安全防护策略中携带所述合法网段;或者,所述合法网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,例如可以为:所述边缘节点确定所述BSID为所述信任域中的BSID、且所述目标字段不在第一网段内时,确定第一报文通过验证。其中,所述第一网段为所述信任域内节点所属的网段。此处提及的第一网段,可以对应图3c所示的信任域200内的节点所属的网段。
在一种实现方式中,所述安全防护策略中携带所述第一网段;或者,所述第一网段静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述SID列表中的N个SIDs时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,例如可以为:所述边缘节点将所述BSID和所述目标字段构成的第一SID列表与所述边缘节点存储的SID列表进行比对,若所述边缘节点存储的SID列表中包括所述第一SID列表,所述边缘节点确定所述第一报文通过验证,所述边缘节点存储的SID列表用于指示合法路径。
在一种实现方式中,当所述目标字段包括所述SID列表中的N个SIDs时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:所述边缘节点对所述BSID和所述目标字段构成的第一SID列表进行哈希运算,得到第一哈希值;若所述边缘节点存储的哈希值中包括所述第一哈希值,则所述边缘节点确定所述第一报文通过验证,所述边缘节点存储的哈希值,是通过对指示合法路径的SID列表进行所述哈希运算得到的。
在一种实现方式中,所述第一报文包括第一字段,所述第一字段用于指示待验证的SID的数量。
在一种实现方式中,所述安全防护策略中携带所述指示合法路径的SID列表;或者,所述指示合法路径的SID列表静态配置在所述边缘节点上。
在一种实现方式中,当所述目标字段包括所述SL字段时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证在具体实现时,例如可以为:所述边缘节点确定所述BSID为所述信任域中的BSID、且所述边缘节点在目标字段的值等于0时,确定所述第一报文通过验证。
关于方法300的具体实现,可以参考上文对于方法100中的S101、S102和S103b的描述部分,此处不再重复描述。
本申请实施例还提供了一种转发控制方法400,可参见图8,图8为本申请实施例提供的一种转发控制方法的流程示意图。以下结合图8对该方法进行说明。图8所示的方法,例如可以通过S401-S402实现。
S401:控制管理设备获取安全防护策略,所述安全防护策略用于指示信任域的边缘节点根据BSID和分段路由头SRH中的目标字段对接收到的SRv6报文进行验证。
S402:所述控制管理设备将所述安全防护策略发送给所述信任域的边缘节点。
方法400可以用于实现以上实施例提及的方法100中由控制管理设备执行的步骤,方法400中的信任域可以为图3a所示的信任域200,方法400中的信任域的边缘节点可以对应方法100中的节点R2。
在一种实现方式中,所述控制管理设备可以通过PCEP消息将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述控制管理设备可以通过BGP消息将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述控制管理设备可以通过NETCONF报文将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述控制管理设备可以通过议SNMP报文将所述安全防护策略发送给所述信任域的边缘节点。
在一种实现方式中,所述目标字段包括所述BSID的下一跳SID;或者,所述目标字段包括段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1,当所述N大于1时,所述N个SIDs为所述SID列表中的连续N个SIDs;或者,所述目标字段包括段剩余SL字段。
在一种实现方式中,若所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和合法网段。
在一种实现方式中,所述信任域内的合法BSID和合法网段可以携带在BGP FS的扩展属性中,例如,信任域内的合法BSID携带在BGP FS的扩展属性type17中,合法网段携带在BGP FS的扩展属性type18中。
在一种实现方式中,若所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和第一网段。
在一种实现方式中,所述信任域内的合法BSID和第一网段可以携带在BGP FS的扩展属性中,例如,信任域内的合法BSID携带在BGP FS的扩展属性type17中,第一网段携带在BGP FS的扩展属性type18中。
在一种实现方式中,若所述目标字段包括段标识SID列表中的N个SIDs,则所述安全防护策略中携带指示合法路径的SID列表,所述SID列表包括所述信任域内的合法BSID。
在一种实现方式中,所述指示合法路径的SID list可以携带在BGP FS的扩展属性中。例如,所述指示合法路径的SID list可以携带在BGP FS的扩展属性type19中。
关于方法400的具体实现,可以参考上文对于方法100中对于控制管理设备执行不步骤的描述部分,此处不再重复描述。
此外,本申请实施例还提供了一种边缘节点900,参见图9所示,图9为本申请实施例提供的一种边缘节点的结构示意图。该边缘节点900包括收发单元901和处理单元902。其中,收发单元901用于执行上述方法100对应的实施例中节点R2执行的收发操作;处理单元902用于执行上述方法100对应的实施例中由节点R2执行的除了收发操作以外的其他操作。例如:边缘节点900为方法100中的节点R2,那么,收发单元901用于执行接收第一报文的步骤;所述处理单元902用于执行根据BSID和SRH中的目标字段对第一报文进行验证、以及丢弃未通过验证的第一报文的步骤。
此外,本申请实施例还提供了一种控制管理设备1000,参见图10所示。图10为本申请实施例提供的一种控制管理设备的结构示意图。该控制管理设备1000包括收发单元1001和处理单元1002。其中,收发单元1001用于执行以上实施例中控制管理设备执行的收发操作。处理单元1002用于执行由以上实施例中提及的控制管理设备执行的除收发操作之外的操作。例如,收发单元1001用于向信任域的边缘节点发送安全防护策略,处理单元1002用于获取安全防护策略。
此外,本申请实施例还提供了一种边缘节点1100,参见图11所示,图11为本申请实施例提供的一种边缘节点的结构示意图。该边缘节点1100包括通信接口1101和与通信接口1101连接的处理器1102。其中,通信接口1101用于执行上述方法100对应的实施例中节点R2执行的收发操作;处理器1102用于执行上述方法100对应的实施例中节点R2执行的除了收发操作以外的其他操作。例如:边缘节点1100为方法100中的节点R2,那么,通信接口1101用于执行接收第一报文的步骤;处理器1102用于执行根据BSID和SRH中的目标字段对第一报文进行验证、以及丢弃未通过验证的第一报文的步骤。
此外,本申请实施例还提供了一种控制管理设备1200,参见图12所示,图12为本申请实施例提供的一种控制管理设备的结构示意图。该控制管理设备1200包括通信接口1201和与通信接口1201连接的处理器1202。其中,通信接口1201用于执行以上实施例中控制管理设备执行的收发操作。处理器1202用于执行由以上实施例中提及的控制管理设备执行的除收发操作之外的操作。例如,通信接口1201用于向信任域的边缘节点发送安全防护策略,处理器1202用于获取安全防护策略。
此外,本申请实施例还提供了一种边缘节点1300,参见图13所示,图13为本申请实施例提供的一种边缘节点的结构示意图。该边缘节点1300包括存储器1301和处理器1302。其中,存储器1301用于存储程序代码;处理器1302用于运行所述程序代码中的指令,使得该边缘节点1300执行上述方法100对应的实施例中节点R2执行的步骤。
此外,本申请实施例还提供了一种控制管理设备1400,参见图14所示,图14为本申请实施例提供的一种控制管理设备的结构示意图。该控制管理设备1400包括存储器1401和处理器1402。其中,存储器1401用于存储程序代码;处理器1402用于运行所述程序代码中的指令,使得该控制管理设备1400执行以上实施例中控制管理设备执行的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述方法100中由节点R2执行的步骤,或者,使得所述计算机执行上述方法100中由控制管理设备执行的步骤。
本申请实施例还提供了一种通信系统,所述通信系统包括控制管理设备和边缘节点。在一些实施例中,该边缘节点为执行上述方法100的节点R2。在一些实施例中,控制管理设备为上述方法100中向节点R2下发安全防护策略的控制管理设备。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (30)
1.一种报文转发方法,其特征在于,包括:
互联网协议第6版段路由SRv6信任域的边缘节点接收第一报文,所述第一报文为SRv6报文,所述第一报文的目的地址是绑定段标识BSID;
所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证;
所述边缘节点丢弃未通过验证的所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述边缘节点接收来自于控制管理设备的安全防护策略,所述安全防护策略用于指示所述边缘节点根据所述BSID和所述SRH中的目标字段对所述第一报文进行验证。
3.根据权利要求1或2所述的方法,其特征在于,所述目标字段包括以下一项或多项:
所述BSID的下一跳SID;
段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1;以及
段剩余SL字段。
4.根据权利要求3所述的方法,其特征在于,所述目标字段包括所述BSID的下一跳SID时,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:
确定所述BSID为所述信任域中的BSID,并且,确定所述下一跳SID所属的网段不是合法网段,则所述边缘节点确定所述第一报文未通过验证,所述合法网段为所述第一报文的合法目的节点所在的网段。
5.根据权利要求4所述的方法,其特征在于,所述合法网段,是所述合法目的节点的locator路由指示的网段。
6.根据权利要求4或5所述的方法,其特征在于,所述边缘节点从安全防护策略中获取所述合法网段;或者,所述合法网段静态配置在所述边缘节点上。
7.根据权利要求3所述的方法,其特征在于,所述目标字段包括所述BSID的下一跳SID,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:
在确定所述BSID为所述信任域中的BSID,并且,确定所述目标字段所属的网段属为第一网段时,则所述边缘节点确定所述第一报文未通过验证,所述第一网段为所述信任域内节点所属的网段。
8.根据权利要求7所述的方法,其特征在于,所述边缘节点从安全防护策略中获取所述第一网段;或者,所述第一网段静态配置在所述边缘节点上。
9.根据权利要求3所述的方法,其特征在于,所述目标字段包括所述SRH的SID列表中的N个SIDs,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,N为整数,包括:
所述边缘节点将所述BSID和所述N个SIDs构成的第一SID列表与所述边缘节点存储的SID列表进行比对,若所述边缘节点存储的SID列表中不包括所述第一SID列表,所述边缘节点确定所述第一报文未通过验证,所述边缘节点存储的SID列表用于指示合法路径。
10.根据权利要求3所述的方法,其特征在于,所述目标字段包括所述SRH的SID列表中的N个SIDs,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,N为整数,包括:
所述边缘节点对所述BSID和所述N个SIDs构成的第一SID列表进行哈希运算,得到第一哈希值;
若所述边缘节点存储的哈希值中不包括所述第一哈希值,则所述边缘节点确定所述第一报文未通过验证,所述边缘节点存储的哈希值,是通过对指示合法路径的SID列表进行所述哈希运算得到的。
11.根据权利要求9或10所述的方法,其特征在于,所述第一报文包括第一字段,所述第一字段用于指示待验证的SID的数量。
12.根据权利要求9或10所述的方法,其特征在于,所述安全防护策略中携带所述指示合法路径的SID列表;或者,所述指示合法路径的SID列表静态配置在所述边缘节点上。
13.根据权利要求3所述的方法,其特征在于,所述目标字段包括所述SL字段,所述边缘节点根据所述第一报文中的所述BSID和分段路由头SRH中的目标字段对所述第一报文进行验证,包括:
所述边缘节点确定所述BSID为所述信任域中的BSID;
所述边缘节点在目标字段的值不等于0时,确定所述第一报文未通过验证。
14.根据权利要求1-13任意一项所述的方法,其特征在于,所述方法还包括:
所述边缘节点接收第二报文,所述第二报文为SRv6报文,所述第二报文的目的地址是绑定段标识BSID;
所述边缘节点根据所述第二报文中的所述BSID和所述第二报文的SRH中的目标字段对所述第二报文进行验证;
所述边缘节点转发通过验证的所述第二报文。
15.一种通信方法,其特征在于,所述方法包括:
控制管理设备生成第一报文,所述第一报文包括获取安全防护策略,所述安全防护策略用于指示互联网协议第6版段路由SRv6信任域的边缘节点根据绑定段标识BSID和分段路由头SRH中的目标字段对接收到的SRv6报文进行验证;
所述控制管理设备将所述第一报文发送给所述SRv6信任域的边缘节点。
16.根据权利要求15所述的方法,其特征在于,所述第一报文为:
路径计算单元通信协议PCEP消息;
边界网关协议BGP消息;
网络配置协议NETCONF报文;或者,
简单网络管理协议SNMP报文。
17.根据权利要求15或16所述的方法,其特征在于,所述目标字段包括以下一项或多项:
所述BSID的下一跳SID;
段标识SID列表中的N个SIDs,所述N个SIDs中的第一个SID为所述BSID的下一跳SID,所述N大于等于1;以及,
段剩余SL字段。
18.根据权利要求17所述的方法,其特征在于,所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和合法网段。
19.根据权利要求18所述的方法,其特征在于,所述SRv6信任域内的合法BSID和所述合法网段携带在边界网关协议流规范BGP FS扩展属性中。
20.根据权利要求17所述的方法,其特征在于,所述目标字段包括所述BSID的下一跳SID,则所述安全防护策略中携带所述信任域内的合法BSID和第一网段。
21.根据权利要求20所述的方法,其特征在于,所述SRv6信任域内的合法BSID和所述第一网段携带在BGP FS扩展属性中。
22.根据权利要求17所述的方法,其特征在于,所述目标字段包括段标识SID列表中的N个SIDs,则所述安全防护策略中携带指示合法路径的SID列表,所述SID列表包括所述信任域内的合法BSID。
23.根据权利要求22所述的方法,其特征在于,所述指示合法路径的SID列表携带在BGPFS扩展属性中。
24.一种边缘节点,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述边缘节点用于执行前述权利要求1-14任意一项所述的方法。
25.一种控制管理设备,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述控制管理设备用于执行前述权利要求15-23任意一项所述的方法。
26.一种边缘节点,其特征在于,所述边缘节点包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述边缘节点执行以上权利要求1-14任意一项所述的方法。
27.一种控制管理设备,其特征在于,所述控制管理设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述控制管理设备执行以上权利要求15-23任意一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-14或者权利要求15-23任意一项所述的方法。
29.一种通信系统,其特征在于,包括边缘节点和控制管理设备,其中,所述控制管理设备用于执行权利要求15-23任意一项所述的方法。
30.一种通信系统,其特征在于,包括边缘节点和控制管理设备,其中,所述边缘节点用于执行权利要求1-14任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022560081A JP2023521022A (ja) | 2020-04-02 | 2021-03-10 | Srv6の信頼領域境界フィルタリングの方法および装置 |
PCT/CN2021/079923 WO2021197003A1 (zh) | 2020-04-02 | 2021-03-10 | 一种SRv6信任域的边界过滤方法及装置 |
EP21780133.1A EP4117227A4 (en) | 2020-04-02 | 2021-03-10 | BOUNDARY FILTERING METHOD AND APPARATUS FOR AN SRV6 TRUST DOMAIN |
US17/957,972 US20230044321A1 (en) | 2020-04-02 | 2022-09-30 | Srv6 trusted domain border filtering method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020102563711 | 2020-04-02 | ||
CN202010256371 | 2020-04-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113497800A true CN113497800A (zh) | 2021-10-12 |
Family
ID=77995561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010333905.6A Pending CN113497800A (zh) | 2020-04-02 | 2020-04-24 | 一种SRv6信任域的边界过滤方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113497800A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112105008A (zh) * | 2020-08-21 | 2020-12-18 | 云南瀚哲科技有限公司 | 一种基于数据单元的LoRaWAN网关节点数据交互方法 |
CN113904985A (zh) * | 2021-11-03 | 2022-01-07 | 迈普通信技术股份有限公司 | 一种段列表获取方法、报文转发方法、装置及电子设备 |
WO2024087688A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 报文转发方法、装置、设备、存储介质及计算机程序 |
-
2020
- 2020-04-24 CN CN202010333905.6A patent/CN113497800A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112105008A (zh) * | 2020-08-21 | 2020-12-18 | 云南瀚哲科技有限公司 | 一种基于数据单元的LoRaWAN网关节点数据交互方法 |
CN112105008B (zh) * | 2020-08-21 | 2023-02-17 | 云南瀚哲科技有限公司 | 一种基于数据单元的LoRaWAN网关节点数据交互方法 |
CN113904985A (zh) * | 2021-11-03 | 2022-01-07 | 迈普通信技术股份有限公司 | 一种段列表获取方法、报文转发方法、装置及电子设备 |
WO2024087688A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 报文转发方法、装置、设备、存储介质及计算机程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021197003A1 (zh) | 一种SRv6信任域的边界过滤方法及装置 | |
US10454822B2 (en) | Full-path validation in segment routing | |
US8555056B2 (en) | Method and system for including security information with a packet | |
US8700891B2 (en) | Preserving security association in MACsec protected network through VLAN mapping | |
CA2515510C (en) | Method and apparatus for enforcing security groups for vlans | |
CN113497800A (zh) | 一种SRv6信任域的边界过滤方法及装置 | |
CN113691490A (zh) | 一种校验SRv6报文的方法及装置 | |
US9258213B2 (en) | Detecting and mitigating forwarding loops in stateful network devices | |
US20230396624A1 (en) | Extending border gateway protocol (bgp) flowspec origination authorization using path attributes | |
US20090122784A1 (en) | Method and device for implementing the security of the backbone network | |
CN113395247B (zh) | 一种防止对SRv6 HMAC校验进行重放攻击的方法和设备 | |
WO2011082584A1 (zh) | 数据报文分类处理的实现方法、网络及终端 | |
CN112637237A (zh) | 基于SRoU的业务加密方法、系统、设备及存储介质 | |
Wolf | A credential-based data path architecture for assurable global networking | |
Akashi et al. | A vulnerability of dynamic network address translation to denial-of-service attacks | |
Mönnich et al. | Mitigation of IPv6 Router Spoofing Attacks with P4 | |
WO2023246501A1 (zh) | 报文校验方法、装置、相关设备及存储介质 | |
Zeng et al. | Hop-by-Hop Verification Mechanism of Packet Forwarding Path Oriented to Programmable Data Plane | |
US20240137338A1 (en) | Border gateway protocol (bgp) flowspec origination authorization using route origin authorization (roa) | |
Reuter | Source Packet Routing in Networking (SPRING) | |
WO2012075770A1 (zh) | 身份位置分离网络的阻断方法和系统 | |
Chen et al. | LRVP: Lightweight Real-Time Verification of Intradomain Forwarding Paths | |
CN115208600A (zh) | 路由验证、数据发送的方法、装置、设备及存储介质 | |
Wolf et al. | A high-performance capabilities-based network protocol | |
Kukek et al. | Native Send Kernel API for BSD |
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 |