CN116866243A - 流量回注方法及防护系统 - Google Patents
流量回注方法及防护系统 Download PDFInfo
- Publication number
- CN116866243A CN116866243A CN202210314660.1A CN202210314660A CN116866243A CN 116866243 A CN116866243 A CN 116866243A CN 202210314660 A CN202210314660 A CN 202210314660A CN 116866243 A CN116866243 A CN 116866243A
- Authority
- CN
- China
- Prior art keywords
- router
- message
- reinjection
- protection system
- ipv6
- 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 99
- 238000004140 cleaning Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001681 protective effect Effects 0.000 claims description 7
- 238000005538 encapsulation Methods 0.000 description 25
- 238000005516 engineering process Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 230000009471 action Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 230000002829 reductive effect Effects 0.000 description 9
- 230000006855 networking Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000010926 purge Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000779 depleting effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
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的流量回注方式,由防护系统进行流量清洗后,将受保护网络前路由器的SRv6SID添加至清洗后流量,使得清洗后流量能够借助SRv6SID引导至受保护网络前路由器。利用该方式,回注链路经过的每一跳路由器基于IPv6即可实现清洗后流量的转发,而不必要求回注链路上每一跳路由器都升级,从而降低实现复杂度。
Description
技术领域
本申请涉及网络安全领域,特别涉及一种流量回注方法及防护系统。
背景技术
在网络攻击防御的场景中,通常存在引流、清洗和回注这三个过程。所谓引流,是指将外部网络发往受保护的流量从原始路径引导至防护系统。所谓清洗,是指防护系统接收到引流而来的流量后,去除其中有威胁的流量,而保留正常业务流量。所谓回注,是指将防护系统清洗后流量返回到原始路径,以便清洗后流量发往受保护网络。
在引流、清洗和回注这三个过程中,本说明书主要关注回注的过程,即,如何让防护系统清洗后的流量返回到去往受保护网络的路径上。
目前,实现回注的方法有很多种。常用的回注方法例如二层回注、静态路由回注、用户网络路由(user network route,UNR)回注、策略路由回注、基于通用路由封装(generic routing encapsulation,GRE)的回注、基于多协议标签交换(multi-protocollabel switching,MPLS) 的回注等。下面,针对基于MPLS的回注方式进行分析描述。
所谓基于MPLS回注,是指防护系统与受保护网络之前的一台路由器建立一条标签交换路径(label switch path,LSP);防护系统获得清洗后流量后,防护系统向清洗后流量中的每个报文添加MPLS标签,将包含MPLS标签的报文发送出去,使得清洗后流量按照LSP转发至受保护网络之前的路由器,由该路由器从清洗后流量弹出MPLS标签后,送往受保护网络。
所谓LSP,是MPLS技术在标准协议中的一个术语,相当于利用MPLS标签建立的一条隧道。在回注的场景中,LSP即为防护系统与受保护网络前路由器之间的回注链路,LSP的头节点为防护系统,LSP的尾节点为受保护网络前路由器。LSP是一个单向路径,路径的方向与流量回注的方向一致。LSP经过的每一跳路由器接收到报文时,要识别MPLS标签,基于MPLS标签进行标签交换操作后,转发至下一跳路由器,直至清洗后流量转发至受保护网络前路由器。
以上介绍的基于MPLS的回注方法,要求回注链路上每一跳路由器都要支持MPLS标签转发,相当于提高了对组网中路由器的要求,导致实现复杂度高。
发明内容
本申请提供了一种流量回注方法及防护系统,能够在无需要求回注链路上每一跳路由器都升级支持的情况下,提供一种新的流量回注方式。所述技术方案如下。
第一方面,提供了一种流量回注方法,该方法包括:防护系统接收来自第一路由器的待清洗流量,所述防护系统旁挂在所述第一路由器上,所述待清洗流量为所述外部网络发往受保护网络的流量;所述防护系统对所述待清洗流量进行清洗,得到清洗后流量;对于所述清洗后流量包含的第一报文,所述防护系统基于所述第一报文获得第二报文,所述第二报文为基于互联网协议第6版的段路由(internet protocol version 6for segmentrouting,SRv6)报文,所述第二报文包括第二路由器的SRv6段标识(segment ID,SID),所述第二路由器的SRv6 SID为所述第二路由器的互联网协议第6版(internet protocolversion 6,IPv6)地址,所述第二路由器和所述第一路由器通过IPv6网络连接,所述第二路由器部署在所述IPv6网络与所述受保护网络之间;所述防护系统向所述第二路由器发送所述第二报文。
SRv6领域中,所谓SRv6 SID,从技术实质上来看是一种IPv6地址,SRv6报文的形式仍与IPv6报文一致。因此,SRv6技术具有native IPv6的特点,即,设备支持IPv6,即可识别和转发SRv6报文,不必要求路径上每一跳设备都支持SRv6。
第一方面提供的方法中,防护系统通过将受保护网络前路由器的SRv6 SID添加至清洗后流量,使得清洗后流量能够借助SRv6 SID引导至受保护网络前路由器,从而提供了一种基于 SRv6的流量回注方式。利用该方法,由于基于SRv6进行回注,一定程度上继承了SRv6技术天然具有的优势,回注链路经过的每一跳路由器基于IPv6即可实现清洗后流量的转发,而不必要求回注链路上每一跳路由器都升级来支持SRv6,因此一定程度上降低实现复杂度。
在一些实施方式中,所述防护系统基于所述第一报文获得第二报文,包括:所述防护系统在所述第一报文的外层添加IPv6基本头从而得到所述第二报文,所述IPv6基本头的目的地址字段携带第一回注链路上所述第一路由器的下游节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
通过上述实施方式,由于清洗后流量中外层的IPv6基本头中不是携带真实的目的IP地址(即受保护网络中防护对象的IP地址),而是携带回注路由器下游节点的SRv6 SID。因此,当第一路由器接收到清洗后流量后,根据清洗后流量中外层IPv6基本头的目的地址查找路由转发表时,会根据第一路由器的下游节点的IPv6地址查询路由转发表,从而将清洗后流量发送给下游节点,避免根据真实目的IP匹配到引流路由从而导致路由环路。
在一些实施方式中,所述下游节点为所述第二路由器;或者,
所述下游节点为所述防护系统与所述第二路由器之间的一个中间节点。
通过上述实施方式,在采用SRv6 BE的工作模式下,防护系统可以通过封装尾节点的 SRv6 SID的方式避免路由环路,在采用SRv6 TE的工作模式下,防护系统可以通过封装第一路由器下游的中间节点的SRv6 SID的方式避免路由环路。因此,本技术方案在应用SRv6典型的两种工作模式时都能避免路由环路,适用场景更丰富。
在一些实施方式中,若所述第一报文为IPv6报文,所述防护系统基于所述第一报文获得第二报文,包括:
所述防护系统将所述第一报文的IPv6基本头的目的地址字段的内容更新为所述第二路由器的SRv6 SID从而得到所述第二报文。
通过上述实施方式,在原始报文本身即为IPv6报文的场景下,一方面解决了路由环路的问题,另一方面不必要求防护系统增加IPv6头,而是能够复用原始报文的IPv6头,从而节省开销,提升灵活性。
在一些实施方式中,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述防护系统写入的、所述第一报文的IPv6基本头的目的地址字段更新前的内容,所述IPv6扩展头为段路由头SRH或者目的选项头。
通过上述实施方式,防护系统可以通过SRv6技术中的SRH来携带原始报文的目的IP,或者在原始报文携带DOH(目的选项头)的情况下,利用IPv6协议中的DOH将原始报文目的IP带给回注链路尾节点(第二路由器),都能实现回注链路尾节点得到原始目的IP,以便将清洗后流量路由转发至受保护网络中主机的目的,提升灵活性。
在一些实施方式中,所述方法还包括:
所述防护系统向所述第一报文添加SRH从而得到所述第二报文,所述SRH包括第一段列表segment list,所述第一segment list包括所述第二路由器的SRv6 SID以及第一回注链路经过的至少一个中间节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
通过上述实施方式,由于向清洗后流量封装了segment list,segment list不仅包含了回注链路上尾节点(第二路由器)的SRv6 SID,也包含中间节点的SRv6 SID,相当在清洗后流量中显式指定了所需经过的部分或全部中间节点,或者说给回注链路施加了一定程度的约束,从而有助于满足用户自定义回注链路的需求。
在一些实施方式中,所述防护系统向所述第一报文添加SRH,包括:所述防护系统在所述第一报文的外层添加所述SRH;或者,所述防护系统在所述第一报文的IPv6基本头的内层插入SRH。
通过上述实施方式,支持Insert和Encapsulation这两种SRv6封装模式,提升灵活性。
在一些实施方式中,所述防护系统与所述第二路由器之间存在第一回注链路和第二回注链路,所述防护系统向所述第一报文添加SRH之前,所述方法还包括:所述防护系统根据所述第一回注链路的质量和第二回注链路的质量,从所述第一segment list和第二segment list 中选择所述第一segment list,其中,所述第一segment list表示所述第一回注链路,所述第二 segment list表示所述第二回注链路,所述第一回注链路的质量高于所述第二回注链路的质量,所述第一回注链路或第二回注链路的质量根据拥塞情况、时延、丢包率、带宽或者开销中至少一项确定。
通过上述实现方式,在存在多条回注链路的场景下,支持防护系统按需自动化选择回注链路,例如,如果一条回注链路发生拥塞,就选择另外一条回注链路的segment list进行回注,从而降低网络拥塞对回注的影响。又如,如果一条回注链路带宽利用率低,当前比较空闲,就选择这条回注链路的segment list进行回注,从而提高带宽利用率。
在一些实施方式中,所述防护系统向所述第一报文添加SRH之前,所述方法还包括:所述防护系统向控制器发送所述IPv6网络的拓扑信息;所述防护系统接收来自控制器的所述第一segment list,所述第一segment list是所述控制器基于所述IPv6网络的拓扑信息确定的。
通过上述实施方式,由于控制器基于回注链路所跨越的、IPv6网络的拓扑信息来确定 segment list,与SRv6 TE policy的架构更加匹配,能够复用SRv6 TE policy的机制,降低实现复杂度。
在一些实施方式中,所述第二路由器的SRv6 SID包括定位信息和功能信息,所述定位信息指示所述第二路由器的位置,所述功能信息指示所述第二路由器进行SRv6解封装。
通过上述实施方式,能够自动触发第二路由器将第二报文的格式从SRv6报文恢复为原始报文,从而减少对第二路由器的配置工作量。
在一些实施方式中,所述防护系统接收来自所述第二路由器的通告报文,所述通告报文用于通告所述第二路由器的SRv6 SID。
通过上述实施方式,能够利用已有的路由发布流程,将回注链路经过的路由器的SRv6 SID自动传递至防护系统,从而降低实现复杂度。
第二方面,提供了一种流量回注方法,该方法包括:
路由器接收来自防护系统的第二报文,所述路由器部署在IPv6网络与受保护网络之间,所述第二报文包括所述路由器的SRv6 SID,所述路由器的SRv6 SID为所述路由器的IPv6地址;所述路由器基于所述第二报文获得第一报文;所述路由器向所述受保护网络发送所述第一报文。
在一些实施方式中,所述路由器基于所述第二报文获得第一报文,包括:所述路由器从所述第二报文的外层剥离IPv6基本头,从而得到所述第一报文。
在一些实施方式中,所述路由器基于所述第二报文获得第一报文,包括:
所述路由器将所述第二报文的IPv6基本头的目的地址字段的内容更新为所述受保护网络中防护对象的IP地址从而得到所述第一报文。
在一些实施方式中,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述防护系统写入的、所述第一报文的IPv6基本头的目的地址字段更新前的内容,所述IPv6扩展头为段路由头SRH或者目的选项头,所述路由器将所述第二报文的IPv6基本头的目的地址字段的内容更新为所述受保护网络中防护对象的IP地址之前,所述方法还包括:
所述路由器从所述第二报文包括的所述IPv6扩展头,获得所述受保护网络中防护对象的 IP地址。
在一些实施方式中,所述第二路由器的SRv6 SID包括定位信息和功能信息,所述定位信息指示所述第二路由器的位置,所述功能信息指示所述第二路由器进行SRv6解封装;所述路由器基于所述第二报文获得第一报文,包括:所述路由器从所述第二报文获得所述第二路由器的SRv6 SID;响应于所述SRv6 SID中的功能信息指示所述第二路由器进行SRv6解封装,所述路由器对所述第二报文进行SRv6解封装,从而得到所述第一报文。
在一些实施方式中,所述方法还包括:所述路由器生成通告报文,所述通告报文用于通告所述第二路由器的SRv6 SID。所述路由器向所述防护系统发送所述通告报文。
第三方面,提供了一种防护系统,该防护系统具有实现上述第一方面或第一方面任一种可选方式的功能。该防护系统包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
在一些实施例中,防护系统中的单元通过软件实现,防护系统中的单元是程序模块。在另一些实施例中,防护系统中的单元通过硬件或固件实现。第三方面提供的防护系统的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种路由器,该路由器具有实现上述第二方面或第二方面任一种可选方式的功能。该路由器包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面任一种可选方式所提供的方法。
在一些实施例中,路由器中的单元通过软件实现,路由器中的单元是程序模块。在另一些实施例中,路由器中的单元通过硬件或固件实现。第四方面提供的路由器的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第五方面,提供了一种防护系统,该防护系统包括处理器和网络接口,所述处理器与存储器耦合,所述网络接口用于接收或发送报文,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,使得该防护系统执行上述第一方面或第一方面任一种可选方式所提供的方法,第五方面提供的防护系统的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第六方面,提供了一种路由器,该路由器包括处理器和网络接口,所述处理器与存储器耦合,所述网络接口用于接收或发送报文,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,使得该路由器执行上述第二方面或第二方面任一种可选方式所提供的方法,第六方面提供的路由器的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第七方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第十二方面,提供了一种芯片,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用并运行该计算机指令,以执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十三方面,提供了一种网络系统,该网络系统包括上述第三方面所述的防护系统以及上述第四方面所述的路由器。
第十四方面,提供了一种网络系统,该网络系统包括上述第五方面所述的防护系统以及上述第六方面所述的路由器。
附图说明
图1是本申请实施例提供的一种SRv6 SID的结构示意图;
图2是本申请实施例提供的一种SRH的格式示意图;
图3是本申请实施例提供的一种SRv6 BE与SRv6 TE policy报文封装格式的对比示意图;
图4是本申请实施例提供的一种流量清洗方案的应用场景示意图;
图5是本申请实施例提供的一种流量清洗方案的应用场景示意图;
图6是本申请实施例提供的一种流量清洗方案的应用场景示意图;
图7是本申请实施例提供的一种流量回注方法流程图;
图8是本申请实施例提供的一种基于SRv6回注报文的处理流程图;
图9是本申请实施例提供的一种SRv6报文的封装格式示意图;
图10是本申请实施例提供的一种基于SRv6回注报文的处理流程图;
图11是本申请实施例提供的一种SRv6报文的封装格式示意图;
图12是本申请实施例提供的一种SRv6报文的封装格式示意图;
图13是本申请实施例提供的一种防护系统800的结构示意图;
图14是本申请实施例提供的一种防护系统900的结构示意图。
具体实施方式
本申请的发明人发现,传统的各种回注方式分别存在一定程度的局限性。
对于基于多协议标签交换(multi-protocol label switching,MPLS)的回注而言,由于MPLS 往互联网协议(internet protocol,IP)报文头之下插入标签的方式,使得报文丧失了IP技术的普适性,要求回注链路经过的每个路由器都支持基于MPLS标签转发。如果回注链路经过的任一台路由器不支持基于MPLS标签转发,则需要对这台路由器进行软件版本升级。此外,网络管理员要对回注链路经过的每个路由器上都进行MPLS相关的配置,操作繁琐,导致部署效率低下,部署时间较长,影响回注业务的开通速度。
对于基于通用路由封装(generic routing encapsulation,GRE)的回注而言,基于GRE的回注方式中,回注链路经过的每一跳中间节点均基于内部网关协议(internalgateway protocol, IGP)算路的结果,选择最短路径转发清洗后流量,而无法支持设定流量所经过的节点或链路,也即是并不支持流量工程,因此难以按照自定义的路径进行回注。此外,这样的选路方式,容易出现清洗后流量集中于最短路径而导致拥塞,而其他可选链路则较为空闲,影响回注效率。
基于此,本申请提供的一些实施例中,提供了一种利用基于互联网协议第6版的段路由 (internet protocol version 6for segment routing,SRv6)技术进行攻击流量清洗后回注的方法。该实施例提供的方法,继承了SRv6技术中原生(native)互联网协议第6版(internet protocol version 6,IPv6)的优势,清洗后流量能够基于IPv6可达性传输至回注链路的尾节点,而不必要求回注链路上每一台路由器都支持基于SRv6转发。此外,网络管理员对作为回注链路头节点的防护设备,以及回注链路经过的尾节点进行SRv6相关的配置,然后基于SRv6部署回注业务即可,不必对回注链路经过的每个中间节点进行SRv6相关的配置,从而提升部署效率,缩短部署时间,有助于快速开通回注业务。此外,本申请提供的一些实施例中,利用 SRv6技术中源路由以及路径可编程的能力,支持按照自定义的路径进行回注,帮助缓解拥塞。
下面对SRv6技术中涉及的一些术语概念进行解释说明,以帮助读者理解技术方案。下面提供的术语概念的解释,共性适用于后文描述的各个实施例。
(1)SRv6段标识(segment ID,SID)
所谓SRv6 SID,是SRv6中段(segment)的标识。SRv6 SID的形式为IPv6地址,具有128个比特。SRv6 SID与普通IPv6地址的主要区别在于,普通IPv6地址一般仅能够用于路由转发;SRv6 SID不仅能够用于路由转发,还能够代表设备的处理行为,或者标识业务,相当于融合了路由和业务两方面的能力。SRv6 SID如何实现这样的功能,要从SRv6 SID的结构谈起。
如图1所示,SRv6 SID主要包括locator(定位信息)和function(功能信息)这两部分。 SRv6 SID的高比特位表示locator。SRv6 SID的低比特位表示function。
locator具有定位功能。locator相当于IPv6地址前缀。当设备A上配置locator之后,设备A会生成一条locator网段路由,并且通过IGP在SRv6域内扩散locator网段路由。SRv6 域中其他设备接收到设备A发布的locator网段路由后,将locator网段路由保存至本地的路由转发表中,以便通过locator网段路由来定位到设备A。此外,设备A发布的所有SRv6 SID 通常均能通过该条locator网段路由到达设备A。
function代表设备的指令(instruction),function用于指示SRv6 SID的生成节点进行相应的功能操作。
此外,function可选地分出一个参数(arguments)部分,arguments用于定义报文的流和服务信息。
在SRv6 SID的各组成部分中,function和arguments都是能够自定义的,因此SRv6SID 的结构更有利于对网络进行编程。
目前,SRv6 SID主要包括路径SID和业务SID两种类型。路径SID例如为End SID或End.X SID。业务SID例如为End.DT4 SID、End.DT6 SID、End.DX4 SID或者End.DX6 SID。
(2)End SID
End SID表示端点SID(Endpoint SID),用于标识网络中一个目的节点(node)。EndSID 对应的动作(function)是:更新IPv6目的地址(destination address,DA),并查找IPv6转发表进行报文转发。
(3)End.X SID
End.X SID表示三层交叉连接的Endpoint SID,用于标识网络中的一条链路。End.X SID 对应的动作是:更新IPv6目的地址,并从End.X SID绑定的出接口转发报文。
(4)End.DT4 SID
End.DT4 SID表示网络侧边缘(provider edge,PE)类型的Endpoint SID,用于标识网络中的一个互联网协议第4版(internet protocol version 4,IPv4)虚拟专用网络(virtual private network,VPN)实例。End.DT4 SID对应的转发动作是:解封装报文,并且查找IPv4 VPN 实例路由表转发。
(5)End.DT6 SID
End.DT6 SID表示PE类型的Endpoint SID,用于标识网络中的一个IPv6 VPN实例。End.DT6 SID对应的转发动作是:解封装报文,并且查找IPv6 VPN实例路由表转发。
(6)End.DX4 SID
End.DX4 SID表示PE类型的三层交叉连接的Endpoint SID,用于标识网络中的某个IPv4 用户边缘设备(Customer Edge,CE)。End.DX4 SID对应的转发动作是:解封装报文,并且将解封后的IPv4报文在该SID绑定的三层接口上转发。
(7)End.DX6 SID
End.DX6 SID表示PE类型的三层交叉连接的Endpoint SID,用于标识网络中的某个IPv6 CE。End.DX6 SID对应的转发动作是:解封装报文,并且将解封后的IPv6报文在该SID绑定的三层接口上转发。
(8)段列表(segment list)
所谓segment list,是指一系列SRv6 SID,用于指示一条IPv6转发路径。segmentlist通常携带在SRH中。
(9)段路由头(segment routing header,SRH)
所谓SRH,是一种IPv6路由扩展报文头(routing header,RH),SRH的主要作用在于携带segment list。头节点通过向报文中增加一个SRH,从而指示中间节点按照SRH中的segment list转发报文。
图2示出了SRH的格式。SRH主要包括segment list、路由类型(routing type)字段以及剩余段数量(segments left,SL)字段。
图2中的SRH可简化表示为(segment list[0],segment list[1],segment list[2],...,segment list[n])。通常情况下,segment list[0]为segment list中第1个待处理的SID,segment list[1] 为segment list中第2个待处理的SID,segment list[n]为segment list中最后一个待处理的SID。
本说明书为了便于理解,报文示意图均以SID排序为正序为例来表达技术方案。可选地,报文中SID排序为逆序,即,从头节点开始,路径经过的每一跳节点对segment list从下到上进行逆序操作,这与MPLS中标签栈中各个标签的处理顺序有所区别。当然,本说明书并不限定SRH中segment list中各个SID是正序排列,还是逆序排列,还是按照其他顺序排列,也不限定路径经过的每一跳节点对segment list中各个SID的处理顺序。
routing type字段用于标识IPv6 RH的类型。当routing type字段值为4时,表明报文头是 SRH。
SL的作用相当于一个指针,指示当前活跃的segment。SL最小值是0,SL最大值等于SRH里的SID个数减一。
关于IPv6路由扩展报文头的详细定义,读者也可参考RFC8200。关于SRH的详细定义,读者也可参考draft-ietf-6man-segment-routing-header-26。
(10)SRH的处理过程
在SRv6的SRH里,SL和segments list信息共同决定报文头部的IPv6目的地址。在SRv6 中,每经过一个SRv6节点,SL字段减1,IPv6 DA(Destination Address,目的地址)变换一次,IPv6 DA取值是指针当前指向的SID。SL和segment list字段共同决定IPv6 DA。
如果SL值是n,则IPv6 DA取值就是SID[0]的值;如果SL值是n-1,则IPv6 DA取值就是SID[1]的值;如果SL值是1,则IPv6 DA取值就是SID[n-1]的值;如果SL值是0,则IPv6 DA取值就是SID[n]的值。
总结来看,SRv6中间节点(midpoint)在处理SRv6报文时,执行的转发行为是对SL减 1,并将下一个SID复制到IPv6报文头的目的地址字段。
此外,如果SRv6报文经过的中间节点不支持SRv6,则该不支持SRv6的节点无需执行上述动作,基于IPv6 DA(即SRv6 SID)按照最长匹配查找IPv6路由表转发。
向报文中添加SRH包括两种实现方式,分别称为encapsulation模式和insert模式。
(11)封装(encapsulation)模式
encapsulation模式是指在原始业务报文的外层插入IPv6基本头和SRH。encapsulation模式适于原始业务报文为IPv4报文、IPv6报文或者以太网(ethernet)报文的情况。encapsulation 模式可参考RFC8986的介绍。
(12)插入(insert)模式
insert模式是指在原始业务报文的IPv6基本头的内层添加一个SRH,相当于复用了原始业务报文的IPv6基本头,而不必增加IPv6基本头。insert模式适于原始业务报文为IPv6报文的情况。例如,原始业务报文是一个用户数据报协议(user datagram protocol,UDP)报文,原始业务报文的形式为IPv6基本头+UDP报文,通过在IPv6基本头与UDP报文之间插入 SRH,从而产生SRv6报文,产生的SRv6报文的形式为IPv6基本头+SRH+UDP报文。
此外,如果原始业务报文中包含了封装于IPv6基本头内层、载荷外层的一个或多个IPv6 扩展头,可选地在原始业务报文包含的多个IPv6扩展头之间插入SRH,或者在原始业务报文包含的所有IPv6扩展头之后插入SRH。insert模式可参考RFC8986的早期draft版本以及draft-filS7ils-spring-srv6-net-pgm-insertion-04的介绍。
(13)SRv6流量工程(traffic engineering,TE)策略(policy)
SRv6 TE policy是SRv6的一种工作模式。在采用SRv6 TE policy模式的情况下,头节点会在报文中添加SRH,SRH包括segments list,segments list用于指示报文按照规划的路径转发,从而具备路径可编程能力。通常情况下,由控制器向头节点下发SRv6 TEpolicy中segments list。
(14)SRv6尽最大努力(best effort,BE)
SRv6 BE是SRv6的另一种工作模式。SRv6 BE与SRv6 TE policy的主要区别在于,在采用SRv6 BE的模式下,报文中通常不包含SRH,仅使用一个SID(即IPv6 DA字段携带的SID)指引报文进行尽力而为的转发。图3示出了SRv6 BE与SRv6 TE policy这两种报文封装格式的对比示意图,图3中的(a)示出了SRv6 TE policy报文封装格式,图3中的(b) 示出了SRv6 BE报文封装格式。SRv6 BE与普通IPv6的主要区别在于,普通IPv6报文的目的地址字段表示一个主机或者网段,而SRv6 BE报文的目的地址是一个SRv6 SID,该SRv6 SID用于指引报文按照最短路径转发至生成该SID的节点,由该节点执行SID的指令。
以上描述了SRv6技术中一些术语概念,下面描述SRv6技术为什么能够实现nativeIPv6、源路由以及路径可编程这三大特点,以帮助读者理解技术方案。
关于native IPv6而言,由于SRv6中基于SRv6 SID来指导转发,而SRv6 SID的形式为一种IPv6地址,即使中间节点不支持SRv6,也能够基于SRv6 SID,按照最长匹配的方式,查找IPv6路由表转发报文。此外,即使是在报文中插入SRH的情况,由于SRH属于IPv6 中RH这种报文头的一种扩展,包含SRH的报文仍然是IPv6报文,而没有丧失IPv6报文的封装结构,因此SRv6具有native IPv6的特点,支持SRv6设备能够和普通IPv6设备共同组网,对存量网络具有较好的兼容性。
关于源路由而言,所谓源路由,是指由报文的源端来决定报文在网络中的传输路径,这一点和传统的路由转发技术中各个路由器自行选择最短路由具有本质的区别。源路由这一概念的定义,读者也可参考Carl A.Sunshine在1977年发表的论文"Source routingin computer networks"。在源路由(segment routing,SR)技术中,将报文转发路径分割为不同的段(segment), SR路径的头节点往报文中插入SID,SR路径经过的中间节点按照SID来转发报文,这种手段相当于在头节点处指定了路径,因此实现了源路由。
所谓路径可编程,是指支持(如通过软件)设定流量的转发路径所经过的节点或者链路,例如,设定流量所经过的每一跳节点(这种方式也称严格源路由),或者,设定流量经过的部分节点,而剩余节点由路由器按照最短路由的方式选择(这种方式也称松散源路由)。在 SRv6技术中,提供了End SID和End.X SID这两类SRv6 SID,End SID标识网络中一个目的节点,End.X SID标识网络中一条链路,使用End SID和End.X SID编排产生的segment list,通常情况下已经足够表征任何一条网络路径,因此实现了路径可编程。此外,Linux 4.10版本已开始支持SRv6,Linux 4.14版本开始支持SRv6 function大部分功能,更是降低了基于SRv6 路径编程的难度。
以上描述了SRv6技术中一些相关内容,下面描述SRv6技术与本申请应用场景之间的关系。
本申请的一些实施例应用于攻击流量清洗后回注的场景。其中,回注链路基于SRv6技术构建,换句话说,回注链路为一条SRv6路径。回注链路的起点,也即是防护设备,为SRv6 技术中路径的头节点。回注链路的终点,也即是受保护网络前路由器,为SRv6技术中路径的尾节点。清洗后流量沿着回注链路,从防护设备沿途转发至受保护网络的过程,相当于SRv6 报文从头节点沿途转发至尾节点的过程。回注链路经过的每一个路由器转发清洗后流量的方式,与SRv6技术中每一跳节点转发SRv6报文的方式类似。
下面结合图4至图6对本申请实施例的应用场景举例说明。
请参考图4,图4示出了本申请实施例提供的一种流量清洗方案的应用场景。
下面,首先整体性描述图4示出的场景,然后再分别描述该场景中涉及的各个设备。
图4提供了一种防护设备旁路部署的场景。图4所示场景用于为受保护网络12抵御来自外部网络11的网络攻击,从而保护受保护网络12的网络安全性。
从攻击类型的角度来看,图4所示的流量清洗方案适用于防御各种网络攻击,例如分布式拒绝服务攻击(distributed denial-of-service attack,DDoS)、命令及控制(Command and Control,C&C)攻击、网页后门攻击等等。以DDoS为例,DDoS攻击指攻击者控制大量攻击主机(如僵尸网络中的僵尸主机)向攻击目标发送大流量数据,耗尽攻击目标的系统资源,导致攻击目标无法响应正常的服务请求。结合图4所示场景来看,图4中外部网络11中例如存在攻击者111以及攻击主机112,受保护网络12中服务器121为攻击者111的攻击目标。攻击者111控制攻击主机112发起目的IP地址为1.1.1.1的DDoS攻击流量。而路由器A将目的IP地址为1.1.1.1的流量作为待清洗流量,引流至防护设备C,防护设备C从待清洗流量中过滤掉DDoS攻击报文,剩下的正常业务报文作为清洗后流量回注至服务器121,从而降低DDoS攻击对服务器121的影响。
从整体部署位置的角度来看,在一个示例性场景中,图4为防御互联网对企业网的攻击的场景。例如,图4中外部网络11为互联网,受保护网络12为企业网。图4所示组网用于清洗互联网进入的攻击流量,保证企业网的安全性。在另一个示例性场景中,图4应用于防御外城域网对本城域网的攻击。例如,图4中外部网络11为城域网A,受保护网络12为城域网B,图4所示组网用于清洗城域网A进入的攻击流量,从而保护城域网B的安全。在再一个示例性场景中,图4应用于保护互联网数据中心(Internet data center,IDC)的安全性,图4中受保护网络12为IDC。
图4所示的场景中部署有路由器A、路由器B以及防护设备C。受保护网络12中部署有防护设备C的防护对象,防护对象例如服务器121或客户端122等。
下面分别从位置、作用、连接关系和产品形态等多个角度,对路由器A、路由器B以及防护设备C展开介绍。
(1)路由器A
从位置的角度来看,路由器A部署在外部网络11和IPv6网络13之间。
从作用的角度来看,路由器A负责引流。路由器A也称引流路由器。引流的基本概念可参考本说明书中背景技术部分的描述。结合图4所示的场景来看,引流的过程包括:路由器 A将来自外部网络11、且目的地址为受保护网络12中防护对象的IP地址的待清洗流量,发送至防护设备C。
路由器A的不同接口例如具有不同的作用。如图4所示,路由器A具有接口A0、接口A1和接口A2和接口A3。接口A0用于接收来自外部网络11的待清洗流量。接口A1与防护设备C具有的接口C1通过链路相连。接口A1用于将待清洗流量发送至接口C1,使得待清洗流量从路由器A传输至防护设备C。路由器A的接口A2与防护设备C具有的接口C2通过链路相连。接口A2用于接收来自防护设备C的清洗后流量。接口A3用于向IPv6网络13 发送清洗后流量。
本说明书用“设备编号+接口编号”的形式简化表示具体的接口,如“A0”表示路由器A 上的0号接口,“C1”表示防护设备C上的1号接口。所述接口可选地为物理接口,或者为逻辑接口(如tunnel接口)。
从产品形态的角度来看,路由器A的产品形态不限于物理路由器。可替代地,路由器A 为三层交换机、防火墙或者服务器等。
关于路由器这一术语概念的解释,本说明书中所谓“路由器”(router),泛指基于报文头中目的IP地址进行路由转发的设备。根据RFC8504对IPv6 router的定义,如果一个设备能够将接收到的IP报文转发给本设备之外其他设备,该设备即可理解为路由器,本说明书对各个实施例中涉及的路由器的物理产品形态不做限定。
(2)防护设备C
从位置的角度来看,防护设备C旁挂在路由器A上。换句话说,防护设备C采用旁路的方式部署。
从作用的角度来看,防护设备C负责清洗和回注。
清洗的基本概念可参考本说明书中背景技术部分的描述。清洗也称为过滤。清洗包括丢弃攻击报文和转发非攻击报文这两种动作。丢弃攻击报文的作用例如是阻断攻击流量,防止攻击流量进入受保护网络12。转发非攻击报文的作用例如是允许正常的业务流量转发至受保护网络12。结合图4所示的场景来看,清洗的过程例如是防护设备C对外部网络11发往受保护网络12的流量进行清洗,得到清洗后流量。
回注例如是防护设备C将清洗后流量返回至受保护网络12。在本申请的一些实施例中,防护设备C用于在流量回注的过程中,将清洗后流量转换为一系列SRv6报文。例如,防护设备C负责向清洗后流量中每个报文添加SRv6相关信息,如路由器B的SRv6 SID,从而产生SRv6报文,进而支持通过SRv6的方式进行流量回注。
防护设备C为回注链路的头节点,也是SRv6路径的头节点。防护设备C的不同接口例如具有不同的作用。如图4所示,防护设备C具有接口C1和接口C2。接口C1用于接收来自路由器A的待清洗流量。接口C2用于向路由器A发送清洗后流量。
从产品形态的角度来看,防护设备C包括而不限于防火墙、安全网关(如路由器或交换机)、入侵检测系统(intrusion detection system,IDS)类设备、入侵防御系统(intrusion prevention system,IPS)类设备、统一威胁管理(unified threatmanagement,UTM)设备、反病毒(anti-virus, AV)设备、抗分布式拒绝服务攻击(distributed denial-of-service attack,DDoS)(anti-DDoS) 设备、下一代防火墙(Nextgeneration firewall,NGFW)、深度报文检测(Deep packet inspection, DPI)中一项或多项的集成。
(3)路由器B
从位置的角度来看,路由器B部署在IPv6网络13和受保护网络12之间。
从作用的角度来看,路由器B负责向受保护网络12发送清洗后流量。在本申请的一些实施例中,路由器B支持SRv6,路由器B负责基于SRv6 SID向受保护网络12转发清洗后流量。路由器B具有接口B3和接口B0。接口B3用于接收来自IPv6网络13的清洗后流量。接口B0用于向受保护网络12发送清洗后流量。
路由器B的产品形态和路由器A类似,可参考对路由器A产品形态的描述。
图4示出的场景,以流量清洗、将清洗后流量转换为一系列SRv6报文这两个任务在同一台防护设备上执行为例描述。在另一个示例性场景中,流量清洗、将清洗后流量转换为一系列SRv6报文这两个任务由防护系统中不同设备协作执行。例如参考图5,防护系统14包括防护设备C以及路由器H,防护设备C用于进行流量清洗,而路由器H用于将清洗后流量转换为一系列SRv6报文。例如,防护设备C将清洗后流量中原始报文21发送给路由器H,路由器H将原始报文21转换为SRv6报文22后,将SRv6报文22发送给防护设备C,由防护设备C将SRv6报文22进行回注。
图4和图5所示场景,以流量清洗的任务由一台独立的防护设备执行为例描述。在另一个示例性场景中,流量清洗的任务通过多台防护设备执行。例如,防护系统为一个集群或者分布式系统,防护系统包括多个防护设备,多个防护设备共同承担流量清洗的任务,每个防护设备的作用与防护设备C类似。例如,防护系统中多个防护设备采用负载均衡方式,共同承担流量清洗的任务。又如,采用近源清洗的方式,由防护系统中距离攻击主机112最近的防护设备承担流量清洗的任务。
图4和图5所示场景,以回注路由器和引流路由器为同一台设备(路由器A)为例描述。在另一个示例性场景中,回注路由器和引流路由器不是同一台设备。例如参考图6,图6示出的场景中,引流路由器为路由器A,而回注路由器是路由器M。防护设备C得到清洗后流量后,向路由器M发送清洗后流量。路由器M通过接口M2接收清洗后流量,通过接口M3 向IPv6网络13发送清洗后流量。
图4示出的受保护网络中存在两个防护对象的场景是举例说明。在另一个示例性场景中,受保护网络12中防护对象的数量例如更多或更少,例如受保护网络12中仅存在一个防护对象,或者,受保护网络12中存在几十个、几百个、或者更多数量的防护对象。在受保护网络 12中存在更多防护对象的场景下,防护设备C可选地采用相似的过程,针对发往每一个防护对象的流量分别进行清洗和回注。
以上对本申请的应用场景举例说明,下面对本申请的方法流程举例说明。
请参考图7,图7示出了本申请实施例提供的一种流量回注方法。
图7所示方法涉及引流路由器以及作为回注链路终点的路由器。为了区分不同的路由器,用“第一路由器”描述引流路由器,用“第二路由器”描述作为回注链路终点的路由器。
图7所示方法涉及防护设备将清洗后流量中报文转换为SRv6报文后发往受保护网络。为了区分描述不同的报文,用“第一报文”描述清洗后流量包含的一个报文,用“第二报文”描述防护系统发送出去的SRv6报文。
图7所示方法可选地用于对清洗后流量中每一个报文进行回注。为使描述简洁和清楚,图7所示方法以如何对清洗后流量中一个报文(第一报文)进行回注为例描述,清洗后流量中其他报文的回注流程可参考第一报文的回注流程。
在一些实施方式中,图7所示方法所基于的组网架构例如上述图4所示。结合图4来看,图7所示方法中的防护系统例如为图4中的防护设备C。图7所示方法中的第一路由器例如为图4中的路由器A。图7所示方法中的第二路由器例如为图4中的路由器B。图7所示方法涉及的引流链路例如是图4中从接口A1至接口C1的链路。图7所示方法涉及的回注链路例如是图4中从接口C2至接口B3的链路。此外,图7所示方法中的第一报文例如为图4中的原始报文21。图7所示方法中的第二报文例如为图4中的SRv6报文22,报文流经路径例如图4中A0→A1→C1→C2→A2→A3→B3→B0。
在另一些实施方式中,图7所示方法所基于的组网架构例如图5所示。图7所示方法中的防护系统例如为图4中的防护系统14。图5对应的实施方式与图4对应的实施方式之间的主要区别在于,在基于图4所示组网架构实现的情况下,以下步骤S703以及步骤S704由防护系统中同一台设备执行,例如均由图4中防护设备C执行。而在基于图5所示组网架构实现的情况下,以下步骤S703以及步骤S704由防护系统中不同设备协作执行,例如步骤S703 由图5中防护设备C执行,步骤S704由图5中路由器H执行。
如图7所示,本实施例提供的方法包括以下步骤S701至步骤S708。
步骤S701、第一路由器向防护系统发送待清洗流量。
待清洗流量(traffic)为外部网络发往受保护网络的流量。换句话说,待清洗流量的源主机位于外部网络,而目的方位于受保护网络,待清洗流量的传输方向为从外部网络到受保护网络。
示例性地,待清洗流量包含一系列IP报文。待清洗流量中的IP报文包括IP基本头和IP 载荷,该IP基本头中的目的IP地址为受保护网络中防护对象的IP地址。
下面从协议类型的角度出发,结合两种细化的场景对待清洗流量举例说明,见下述场景一至场景二。
场景一、针对IPv4流量进行清洗和回注的场景。
待清洗流量例如为IPv4流量,待清洗流量例如包含一系列IPv4报文。例如,结合图4 来看,待清洗流量为图4中发往服务器121的流量,待清洗流量的目的IP地址为服务器121的IPv4地址1.1.1.1。
场景二、针对IPv6流量进行清洗和回注的场景。
待清洗流量例如为IPv6流量,待清洗流量例如包含一系列IPv6报文。例如结合图4来看,图7所示方法中的待清洗流量为图4中发往客户端122的流量,待清洗流量的目的IP地址为客户端122的IPv6地址2001:DB8:3::C100。
下面从引流方式的角度出发,结合两种细化的场景对待清洗流量举例说明,见下述场景 A至场景B。
场景A、静态引流
所谓静态引流,是指将所有去往受保护网络的流量都作为待清洗流量,发给防护系统进行清洗,无论流量中是否存在攻击。在采用静态引流的情况下,待清洗流量可能包含攻击报文,也可能不包含攻击报文。
场景B、动态引流
所谓动态引流,是指如果发现去往受保护网络的流量中存在攻击,则将流量作为待清洗流量,发给防护系统进行清洗。在采用动态引流的情况下,待清洗流量通常情况下包含攻击报文。可选地,由第一路由器检测去往受保护网络的流量中是否存在攻击。
步骤S702、防护系统接收来自第一路由器的待清洗流量。
步骤S703、防护系统对待清洗流量进行清洗,得到清洗后流量。
步骤S704、对于清洗后流量包含的第一报文,防护系统基于第一报文获得第二报文。
第二报文为SRv6报文。第二报文包括第二路由器的SRv6 SID。可选地,第二报文包含第一报文的全部内容,第二报文中第二路由器的SRv6 SID是防护系统添加的。
第二报文中第二路由器的SRv6 SID的携带位置包括多种情况。例如,第二报文包括IPv6 基本头,IPv6基本头中目的IP地址字段的内容为第二路由器的SRv6 SID。又如,第二报文包括SRH,SRH包括segment list,segment list包括第二路由器的SRv6 SID。例如,参考图3,在防护系统采用SRv6 TE policy的工作模式的情况下,第二报文具有图3中(a)示出的SRv6 TE报文的格式,第二报文中SRH中包含第二路由器的SRv6 SID。在防护系统采用SRv6 BE 的工作模式的情况下,第二报文具有图3中(b)示出的SRv6 BE报文的格式,第二报文中外层IPv6基本头的中包含第二路由器的SRv6 SID。
第二路由器的SRv6 SID是第二路由器的一种IPv6地址。第二路由器的SRv6 SID包括 locator和function。locator用于指示第二路由器的位置。例如,locator表示第二路由器的IPv6 地址所属的网段。function用于指示第二路由器对第二报文待执行的操作。
在步骤S704中,由于防护系统对清洗后流量进行回注时,在报文中添加了SRv6SID,从而起到了引流的作用,能够将清洗后流量引导至回注链路终点,以使清洗后流量返回至受保护网络。例如,由于添加的SRv6 SID包含了第二路由器的locator,回注链路经过的每一跳中间节点能够根据第二路由器的locator以及本地保存的locator网段路由进行路由转发,或者根据第二路由器的locator以及本地保存的IPv6路由进行路由转发,从而将清洗后流量逐跳转发至第二路由器。
防护系统添加的第二路由器的SRv6 SID的类型包括多种情况。可选地,防护系统添加的第二路由器的SRv6 SID中的function用于指示第二路由器剥离SRv6相关信息,例如解封装 SRv6,比如剥离SRH以及外层的IPv6基本头。例如,防护系统添加的第二路由器的SRv6 SID 包括而不限于第二路由器的End.DT4 SID、End.DT6 SID、End.DX4 SID或者End.DX6 SID。防护系统通过添加上述类型的SRv6 SID,能够自动触发第二路由器将第二报文的格式从SRv6 报文恢复为原始报文,从而减少对第二路由器的配置工作量。
步骤S705、防护系统发送第二报文。
防护系统向回注链路上防护系统的下一跳节点,或者说回注链路所经过的第二跳节点发送第二报文。
例如,在引流路由器和回注路由器为同一个路由器的情况下,防护系统向第一路由器发送第二报文。例如,结合图4所示的组网场景来看,防护设备C(防护系统的实例)向路由器A(第一路由器的实例)发送清洗后流量(其中包含第二报文)。
又如,在引流路由器和回注路由器不是同一个路由器的情况下,防护系统不是向第一路由器发送第二报文,而是向回注链路上其他下游节点发送第二报文。例如,结合图6所示的组网场景来看,防护设备C(防护系统的实例)向路由器M(回注链路下游节点的实例)发送清洗后流量(其中包含第二报文)。
步骤S706、第二路由器接收来自防护系统的第二报文。
步骤S707、第二路由器基于第二报文获得第一报文。
步骤S707相当于步骤S704的逆操作,起到了恢复原始报文封装格式的作用,即,将清洗后流量从SRv6报文的封装格式恢复为原始报文的封装格式,使得受保护网络无需感知和识别报文在回注流程中封装格式的改变。
可选地,第二路由器根据防护系统添加的SRv6 SID执行步骤S707。例如,在步骤S707 中,第二路由器从第二报文中获得防护系统添加的SRv6 SID;第二路由器根据SRv6SID查询本地SID表,得到SRv6 SID绑定的剥离SRv6相关信息的指令;第二路由器基于第二报文执行剥离SRv6相关信息的指令,获得第一报文。
步骤S708、第二路由器向受保护网络发送第一报文。
本实施例提供的方法,防护系统通过将受保护网络前路由器的SRv6 SID封装至清洗后流量中,使得清洗后流量能够借助SRv6 SID引导至受保护网络前路由器,实现回流的目的。此外,回注链路上每一跳路由器基于IPv6即可实现清洗后流量的转发,而不必要求回注链路上每一跳路由器都要升级来支持SRv6,因此一定程度上降低实现复杂度。
上文描述的图7所示实施例,介绍了如何实现通过SRv6的方式进行流量回注。本申请还提供了一些针对图7所示实施例中步骤S704进一步细化的实现方式,有助于在回注路由器和引流路由器是同一台路由器的情况下,避免路由环路。
所谓路由环路,结合图4所示的应用场景来看,是指流量回注时,防护设备C将清洗后流量发送给路由器A,路由器A查找路由表后,又将清洗后流量发送回防护设备C的情况。这种路由环路的情况,会导致清洗后流量无法到达受保护网络,因为清洗后流量会在防护设备C→路由器A→防护设备C这样的环路内不停循环。
本申请的发明人发现,导致路由环路的原因为,在引流阶段,防护设备C向路由器A发布一条引流路由。这条引流路由中的目的IP地址指向受保护网络中防护对象,下一跳指向防护设备C,以便路由器A根据这条引流路由,将待清洗流量发送给防护设备C。在回注阶段,如果路由器A充当回注路由器,且清洗后流量中外层的IPv6基本头的目的地址仍然指向受保护网络中防护对象,当路由器A接收到清洗后流量,根据清洗后流量中外层的IPv6基本头的目的地址查找路由转发表时,会匹配到引流路由,由于引流路由的下一跳指向防护设备C,因此路由器A将清洗后流量又送回到防护设备C,从而形成路由环路。
基于此,本申请提供的一些实现方式中,清洗后流量中外层的IPv6基本头中不是携带真实的目的IP地址(即受保护网络中防护对象的IP地址),而是携带回注路由器下游节点的 IPv6地址(如SRv6 SID)。因此,当路由器A接收到清洗后流量后,根据清洗后流量中外层IPv6基本头的目的地址查找路由转发表时,会根据路由器A的下游节点的IPv6地址(如SRv6 SID)查询路由转发表,从而将清洗后流量发送给下游节点,避免根据真实目的IP匹配到引流路由从而导致路由环路。此外,真实的目的IP封装于IPv6基本头内层的报文头中,因此真实的目的IP仍能够随着清洗后流量传递至回注链路尾节点,以便回注链路尾节点根据真实的目的IP地址向受保护网络转发清洗后流量。
如何使清洗后流量外层IPv6基本头携带回注路由器下游节点的IPv6地址包括多种实现方式,下面结合实现方式(1)至实现方式(2)举例说明。
实现方式(1)增加IPv6基本头
在采用实现方式(1)的情况下,步骤S704包括:所述防护系统在所述第一报文的外层添加IPv6基本头。步骤S707包括:第二路由器剥离第二报文中外层的IPv6基本头。
所述IPv6基本头的目的地址字段携带第一回注链路上所述第一路由器的下游节点的 SRv6 SID。所述下游节点例如为所述第二路由器,又如为回注链路上位于所述防护系统与所述第二路由器之间的一个中间节点。
在一种可能的实现中,在采用SRv6 BE方式的情况下,防护系统在所述IPv6基本头的目的地址字段中携带第二路由器的SRv6 SID。在采用SRv6 TE方式的情况下,防护系统在所述 IPv6基本头的目的地址字段中携带第一路由器的下一跳SRv6节点的SRv6 SID,并在SRH 中携带第二路由器的SRv6 SID。其中,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
在采用实现方式(1)的情况下,所述第二报文具有IP in IP(IP协议承载IP协议)的封装格式。所谓IP in IP,是指IP协议承载IP协议报文,这种方式的报文通常包含两个IP基本头。例如,第二报文包括外层的IPv6基本头以及内层的IP头,外层的IPv6基本头是防护系统添加的,而内层的IP头是原始报文本身包含的IP头。参考图7,第一报文例如是图7中原始报文21(1),第二报文例如是图7中SRv6报文22(1)。基于实现方式(1)的步骤S704 如图7中S704(1)所示,防护设备C在原始报文21(1)的IP头的外层,添加一个目的地址为路由器B的SRv6 SID的IPv6基本头,从而得到SRv6报文22(2)。基于实现方式(1) 的步骤S707如图7中SS707(1)所示,路由器从SRv6报文22(2)中剥离外层IPv6基本头,从而将SRv6报文22(2)恢复为原始报文21(1)。
防护系统通过增加IPv6基本头,使得清洗后流量能够基于新增的IPv6基本头中的目的地址,从第一路由器转发至第一路由器的下游节点,起到避免路由环路的作用。此外,真实的目的IP仍携带在内层的IP头中,而没有丢失,便于回注链路尾节点根据内层IP头中的的目的IP地址,将清洗后流量转发至受保护网络。
实现方式(1)例如应用于步骤S701中描述的场景一(IPv4流量的回注),又如应用于步骤S701中描述的场景二(IPv6流量的回注)。
在场景一采用实现方式(1)的情况下,步骤S704包括:所述防护系统在所述第一报文的IPv4头的外层添加IPv6基本头。所述第二报文具有IPv4 in IPv6的封装格式。第二报文包括外层的IPv6基本头以及内层的IPv4头,内层的IPv4头即第一报文的IPv4头。
在场景二采用实现方式(1)的情况下,步骤S704包括:所述防护系统在所述第一报文的IPv6头的外层添加IPv6基本头。所述第二报文具有IPv6 in IPv6的封装格式。第二报文包括外层的IPv6基本头以及内层的IPv6头。
实现方式(2)更新原始报文的IPv6基本头
实现方式(2)应用于步骤S701中描述的场景二。即,第一报文为IPv6报文,第一报文本身包含IPv6基本头。
在采用实现方式(2)的情况下,步骤S704包括:所述防护系统将所述第一报文的IPv6 基本头的目的地址字段的内容更新为所述第二路由器的SRv6 SID从而得到第二报文。步骤 S707包括:第二路由器将第一报文的IPv6基本头的目的地址字段的内容更新为受保护网络中防护对象的IP地址,即真实的目的IP地址。
此外,可选地,防护系统将所述第一报文的IPv6基本头的目的地址字段中更新前的内容 (即受保护网络中防护对象的IP地址或者说真实的目的IP),携带在IPv6基本头之外的其他报文头中,以免真实的目的IP丢失,使得清洗后流量的目的IP能切换回真实的目的IP。步骤S707包括:第二路由器从第二报文中IPv6基本头之外的其他报文头获得真实的目的IP。
可选地,第二报文中用于携带真实目的IP地址的报文头是SRH。例如,步骤S704不仅包括更新目的地址的动作,还包括:防护系统在第一报文的IPv6基本头的内层添加SRH。SRH 包括第一报文的IPv6基本头的目的地址字段更新前的内容,即真实的目的IP地址。
在一种可能的实现中,在SRH中可选类型长度值(type length value,TLV)部分中,扩展一种TLV,利用扩展的TLV来携带真实的目的IP地址。步骤S707包括:第二路由器从第二报文中SRH中的TLV获得真实的目的IP。
可替代地,第二报文中用于携带真实目的IP地址的报文头是目的选项头(Destination Options Header,DOH)。在一种可能的实现中,如果第一报文包含DOH,则防护系统在第一报文的DOH中写入真实目的IP地址。例如,扩展一种目的选项,该目的选项用于携带真实的目的IP地址。在另一种可能的实现中,如果第一报文不包含DOH,则防护系统在第一报文的IPv6基本头的内层添加DOH,添加的DOH用于携带真实目的IP地址。
通过上述实施方式,在原始报文本身即为IPv6报文的场景下,一方面解决了路由环路的问题,另一方面不必要求额外增加IPv6基本头,而是能够复用原始报文的IPv6基本头,从而节省开销,提升灵活性。
上文从如何避免路由环路的角度,描述了步骤S704中一些细化的实现方式。本申请还提供了另一些针对步骤S704中细化的实现方式,用于支持按照自定义的路径进行回注。所谓按照自定义的路径回注,是指建立满足一定约束条件的回注链路,使得清洗后流量按照指定的路径传输至受保护网络,达到流量工程的目的。下面对按照自定义的路径进行回注的实现方式举例说明。
下面介绍的实现方式涉及多个回注链路或者说多个segment list的选择机制。为了区分不同的回注链路,用“第一回注链路”、“第二回注链路”区分描述防护系统与第二路由器之间不同的回注链路。为了区分不同的segment list,用“第一segment list”、“第二segment list”区分描述表示不同回注链路的segment list。
在一些实施方式中,防护系统利用SRv6技术中源路由以及路径可编程的能力,按照SRv6 TE policy模式进行流量回注,从而实现按照自定义的路径回注。
例如,上述步骤S704包括:所述防护系统向所述第一报文添加SRH,所述SRH包括第一segment list。步骤S707包括:第二路由器剥离第二报文中的SRH。
所述第一segment list表示所述第一回注链路,所述第一segment list包括所述第二路由器的SRv6 SID以及第一回注链路经过的至少一个中间节点的SRv6 SID。所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
通过上述实施方式,由于在清洗后流量增加了segment list,segment list不仅包含了回注链路上尾节点(第二路由器)的SRv6 SID,也包含中间节点的SRv6 SID,相当在清洗后流量中显式指定了所需经过的部分或全部中间节点,或者说给回注链路施加了一定程度的约束,从而有助于满足用户自定义回注链路的需求。
下面从SRH的封装模式的角度,对添加SRH的实现方式举例说明,见下述实现方式I至实现方式II。
实现方式I、防护系统在第一报文的外层添加SRH。
也即是,通过encapsulation模式向清洗后流量添加SRH。
实现方式I与上文中实现方式(1)可选地组合实现。在这两种实现方式的组合时,上述步骤S704例如包括:所述防护系统在所述第一报文的外层添加IPv6基本头以及所述SRH。其中,IPv6基本头封装于SRH外层。步骤S707例如包括:第二路由器剥离第二报文中外层的IPv6基本头以及所述SRH,得到第一报文。其中,所述IPv6基本头的目的地址字段携带第一路由器的下一跳SRv6节点的SRv6 SID。SRH中的segment list包含第二路由器的SRv6SID。
实现方式II、防护系统在第一报文的IPv6基本头的内层插入SRH。
也即是,通过insert模式向清洗后流量添加SRH。
实现方式II与上文中实现方式(2)可选地组合实现。在这两种实现方式的组合时,上述步骤S704例如包括:所述防护系统将所述第一报文的IPv6基本头的目的地址字段的内容更新为所述第二路由器的SRv6 SID,并且在所述第一报文的IPv6基本头的内层插入SRH。步骤S707例如包括:第二路由器将第二报文中外层的IPv6基本头的目的地址字段的内容更新为受保护网络中防护对象的目的地址,并且弹出第二报文中的SRH,得到第一报文。
通过上述实现方式I至实现方式II,支持insert和encapsulation这两种SRv6封装模式,提升灵活性。
上文从SRH的封装模式的角度,描述步骤S704中可能采用的一些细化实现方式。本申请还提供了另一些针对步骤S704中细化的实现方式,用于实现对回注链路更细粒度的控制,尽可能地满足业务需求,如避免回注链路的拥塞、保障回注链路的带宽、减少回注的时延、提高回注的可靠性等,下面进行举例说明。
在一些实施方式中,防护系统按需自动选择segment list,从而控制清洗后流量经过的回注链路。例如,所述防护系统与所述第二路由器之间存在第一回注链路和第二回注链路,所述防护系统根据所述第一回注链路的质量和第二回注链路的质量,从所述第一segment list和第二segment list中选择所述第一segment list,将选择的第一segmentlist添加至SRH中。其中,所述第一segment list表示所述第一回注链路,所述第二segmentlist表示所述第二回注链路,所述第一回注链路的质量高于所述第二回注链路的质量。
回注链路的质量根据拥塞情况、时延、丢包率、带宽或者开销中至少一项确定。所述第一回注链路的质量高于所述第二回注链路的质量,例如是第一回注链路的拥塞情况轻于所述第二回注链路的拥塞情况,比如第一回注链路不经过拥塞节点或者拥塞链路,又如是第一回注链路的时延低于所述第二回注链路的时延,又如是第一回注链路的可用带宽大于所述第二回注链路的可用带宽,又如是第一回注链路的开销小于所述第二回注链路的开销。
防护系统如何确定回注链路的质量包括多种方式。例如,回注链路经过的节点主动向防护系统上报回注链路的质量。又如,防护系统向回注链路经过的节点发送探测报文,根据返回的响应报文确定回注链路的质量。
通过上述实现方式,在存在多条回注链路的场景下,支持防护系统按需自动化选择回注链路,例如,如果一条回注链路发生拥塞,就选择另外一条回注链路的segment list进行回注,从而降低网络拥塞对回注的影响。又如,如果一条回注链路带宽利用率低,当前比较空闲,就选择这条回注链路的segment list进行回注,从而提高带宽利用率。
segment list的生成包括多种实现方式,下面结合生成方式一和生成方式二举例说明。
生成方式一、由控制器基于拓扑信息进行路径计算得出segment list。
在一种可能的实现中,所述防护系统获取所述IPv6网络的拓扑信息,所述防护系统向控制器发送所述IPv6网络的拓扑信息;控制器接收IPv6网络的拓扑信息,控制器基于IPv6网络的拓扑信息,确定第一segment list和第二segment list。控制器向防护系统发送第一segment list和第二segment list。所述防护系统接收来自控制器的所述第一segment list和第二segment list。
上述IPv6网络的拓扑信息,即回注链路所跨越的、第一路由器和上述第二路由器之间的 IPv6网络的拓扑信息。IPv6网络的拓扑信息包括而不限于IPv6网络中节点的标识以及链路的标识,以及链路的开销、带宽和时延等。所述防护系统发送IPv6网络的拓扑信息所基于的协议例如是BGP LS。控制器发送segment list所基于的协议例如是BGP SR-policy扩展。
以上防护系统和控制器分设为例描述流程,防护系统负责拓扑收集和上报,而控制器负责路径计算和路径下发。在另一些实施例中,防护系统和控制器合设实现,在防护系统和控制器合设实现时,控制器执行的步骤是防护系统执行的。
生成方式二、网络管理员静态配置segment list。
例如,由网络管理员在防护系统上触发配置操作,输入上述第一segment list和第二 segment list。
下面举例描述防护系统获得路由器的SRv6 SID的实现方式。
以获取第二路由器的SRv6 SID的过程为例,例如,第二路由器生成通告报文,向防护系统发送通告报文。所述防护系统接收来自所述第二路由器的通告报文,所述防护系统从通告报文获得第二路由器的SRv6 SID。
所述通告报文用于通告所述第二路由器的SRv6 SID。通告报文携带第二路由器的SRv6 SID。例如,所述通告报文为内部网关协议(interior gateway protocol,IGP)报文。又如,通告报文为边界网关协议(border gateway protocol,BGP)报文。在一种可能的实现中,在防护系统与第二路由器属于同一自治系统(autonomous system,AS)域的情况下,第二路由器采用IGP报文通告第二路由器的SRv6 SID。在防护系统与第二路由器属于不同AS域的情况下,第二路由器采用边界网关协议(border gateway protocol,BGP)报文通告第二路由器的SRv6 SID。
可选地,第二路由器还向IPv6网络中支持SRv6的节点发送上述通告报文,以便IPv6网络中支持SRv6的节点基于SRv6 SID将清洗后流量路由转发至第二路由器。
上文描述了通过SRv6的方式进行流量回注的一些实施例,下面结合图4示出的应用场景,对上文描述的回注流程举例说明,见实例1和实例2。实例2示出了在图4示出的应用场景下基于SRv6 TE进行回注的流程
实例1:基于SRv6 BE的回注
图8是本实施例提供的一种基于SRv6回注报文的处理流程图,图8示出的拓扑为图4 网络拓扑的平铺结构。防护设备C和路由器B支持SRv6。路由器A支持IPv6报文转发功能。图8中C1:10表示防护设备C的IPv6地址;A1:10表示路由器A的IPv6地址;B1:10表示路由器B的IPv6地址,同时B1:10也是路由器B的SRv6 SID。图8中S704(1)是图7所示方法中S704可能采用的一种实现方式。图8中S707(1)是图7所示方法中S707可能采用的一种实现方式。图8中报文22(1)是对图7所示方法中第二报文的举例说明,图8中报文21(1)是对图7所示方法中第一报文的举例说明。
流量在回注时,防护设备C为SRv6路径的起始节点。防护设备C接收来自路由器A的待清洗的IP报文流,对IP报文流进行清洗后,执行S704(1),对每个原始IP报文封装SRv6 头部信息。封装SRv6头部信息即新增加一个IPv6头,该新增的IPv6头中目的IP地址是一个SID。SID用于指引报文按照最短路径转发到生成该SID的父节点(即路由器B),并由该节点执行SID绑定的指令。图9是本实施例提供的一种执行S704(1)得到的SRv6报文的封装格式示意图。如图9所示,防护设备C产生的SRv6报文包含原始IP报文以及新增的IPv6 基本头。新增的IPv6基本头中的目的地址为路由器B的SRv6 SID,即B1::10。新增的IPv6 基本头中的源地址为防护设备C的IPv6地址,即C1::10。
当SRv6报文发送到路由器A后,路由器A将SRv6报文作为普通IPv6报文转发。其中,由于报文新增加了IPv6头部,不会产生环路。SRv6报文经过中间的IPv6网络到达路由器B。路由器B作为SRv6路径的终结节点,路由器B查找到匹配目的IP的本地SID,则执行S707(1),解封装去掉SRv6头部,将原始的IP报文发到受保护网络中。
实例2:基于SRv6 TE的回注
图10是本实施例提供的一种基于SRv6回注报文的处理流程图。图10示出的拓扑为图4 网络拓扑的平铺结构。防护设备C、路由器B和路由器E支持SRv6。防护设备C为SRv6 路径的起始节点。路由器E为SRv6路径的中间节点。路由器B为SRv6路径的终结节点。
路由器A支持IPv6报文转发功能。IPv6网络中存在支持SRv6的网络节点,如路由器E。图10中S704(2)是图7所示方法中S704可能采用的一种实现方式。图10中S707(2)是图7所示方法中S707可能采用的一种实现方式。图10中报文22(2)是对图7所示方法中第二报文的举例说明,图8中报文21(2)是对图7所示方法中第一报文的举例说明。
流量在回注时,防护设备C接收来自路由器A的待清洗的IP报文流,对IP报文流进行清洗后,执行S704(2),对每个原始IP报文封装SRv6头部信息。封装的SRv6头部信息包括新增加的IPv6基本头和SRH。SRH中添加一个表示IPv6转发路径的segment list。
图11是本实施例提供的一种执行S704(2)得到的SRv6报文的封装格式示意图。如图 11所示,防护设备C产生的SRv6报文包含原始IP报文、新增的IPv6基本头以及新增的SRH。
新增的IPv6基本头中的目的地址为路由器B的SRv6 SID,即B1::10。新增的IPv6基本头中的源地址为防护设备C的IPv6地址,即C1::10。新增的IPv6基本头中下一个头(nextheader)的值为43,用于指示IPv6基本头的下一个头是SRH。新增的SRH中包含两个SRv6SID,一个是路由器B的SRv6 SID,即B1::10,另一个是路由器E的SRv6 SID,即E1::10。当SRv6报文发送到路由器A后,路由器A将SRv6报文作为普通IPv6报文转发。
SRv6报文经过中间的IPv6网络到达路由器E。路由器E支持SRv6功能。路由器E接收SRv6报文后,路由器E从SRH中的segment list获得路由器B的SRv6 SID,即B1::10。路由器E将外层的IPv6基本头目的IP地址刷新为B1::10,并将SL字段的值减一。图12示出了路由器E产生和发送的SRv6报文封装的格式示意图。路由器B接收到SRv6报文后,解封装去掉SRv6头部,将原始IP报文发到受保护网络中。
图13是本申请实施例提供的一种防护系统800的结构示意图。防护系统800包括接收单元801、处理单元802和发送单元803。
下面结合之前描述的应用场景以及方法步骤,描述防护系统800中的各个功能单元如何相互作用来执行技术方案。
可选地,结合附图4所示的应用场景来看,图13所示的防护系统800例如为图4中的防护设备C。接收单元801例如为图4中的接口C1,接收单元801用于从图4中接口A1接收待清洗流量。处理单元802通过防护设备C具有的处理器(图中未示出)实现,处理单元802 用于对接口C1接收到的待清洗流量,执行图4示出的清洗动作,得到清洗后流量,如图4 示出的原始报文21。处理单元802还用于对清洗后流量中的报文添加SRv6相关信息,从而产生一系列SRv6报文,如图4示出的SRv6报文22。发送单元803例如为图4中的接口C2。处理单元802用于指示接口C2向接口A2发送SRv6报文22。
可选地,结合附图7所示方法流程来看,图13所示的防护系统800是附图7中的防护系统。接收单元801用于执行S702。处理单元802用于执行S703和S704。发送单元803用于执行S705。
图13所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
防护系统800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合图14描述的防护系统900,描述使用硬件或软件来实现防护系统800中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述处理单元802是由图14中的处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,图13中处理单元802由图14中的处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field -programmable gate array,FPGA)、或协处理器等可编程器件来完成。接收单元801和发送单元803由图14中的网络接口903实现。
下面对防护系统的基本硬件结构举例说明。
图14是本申请实施例提供的一种防护系统900的结构示意图。防护系统900包括处理器 901、存储器902以及网络接口903。
可选地,结合附图4所示的应用场景来看,图14所示的防护系统900为图4中的防护设备C。网络接口903包括图4中的接口C1和接口C2,网络接口903用于从图4中接口A1 接收待清洗流量。处理器901用于对接口C1接收到的待清洗流量,执行图4示出的清洗动作,得到清洗后流量,如图4示出的原始报文21。处理器901还用于对清洗后流量中的报文添加SRv6相关信息,从而产生一系列SRv6报文,如图4示出的SRv6报文22。处理器901 用于指示接口C2向接口A2发送SRv6报文22。
可选地,结合附图7所示方法流程来看,图14所示的防护系统900是附图7中的防护系统。网络接口903用于执行S702。处理器901用于执行S703和S704,并指示网络接口903 执行S705。
处理器901例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器901包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。 PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL) 或其任意组合。
存储器902例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器902独立存在,并通过内部连接904与处理器901相连接。或者,可选地存储器902和处理器901集成在一起。
网络接口903使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口 903例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网 (wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器901包括一个或多个CPU,如图14中所示的CPU0和CPU1。
在一些实施例中,防护系统900可选地包括多个处理器,如图14中所示的处理器901和处理器905。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据 (如计算机程序指令)的处理核。
在一些实施例中,防护系统900还包括内部连接904。处理器901、存储器902以及至少一个网络接口903通过内部连接904连接。内部连接904包括通路,在上述组件之间传送信息。可选地,内部连接904是单板或总线。可选地,内部连接904分为地址总线、数据总线、控制总线等。
在一些实施例中,防护系统900还包括输入输出接口906。输入输出接口906连接到内部连接904上。
可选地,处理器901通过读取存储器902中保存的程序代码910实现上述实施例中的方法,或者,处理器901通过内部存储的程序代码实现上述实施例中的方法。在处理器901通过读取存储器902中保存的程序代码910实现上述实施例中的方法的情况下,存储器902中保存实现本申请实施例提供的方法的程序代码。
处理器901实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个回注链路是指两个或两个以上的回注链路。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)) 或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk (SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (26)
1.一种流量回注方法,其特征在于,所述方法包括:
防护系统接收来自第一路由器的待清洗流量,所述防护系统旁挂在所述第一路由器上,所述待清洗流量为所述外部网络发往受保护网络的流量;
所述防护系统对所述待清洗流量进行清洗,得到清洗后流量;
对于所述清洗后流量包含的第一报文,所述防护系统基于所述第一报文获得第二报文,所述第二报文为基于互联网协议第6版的段路由SRv6报文,所述第二报文包括第二路由器的SRv6段标识SID,所述第二路由器的SRv6 SID为所述第二路由器的互联网协议第6版IPv6地址,所述第二路由器和所述第一路由器通过IPv6网络连接,所述第二路由器部署在所述IPv6网络与所述受保护网络之间;
所述防护系统向所述第二路由器发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述防护系统基于所述第一报文获得第二报文,包括:
所述防护系统在所述第一报文的外层添加IPv6基本头从而得到所述第二报文,所述IPv6基本头的目的地址字段携带第一回注链路上所述第一路由器的下游节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
3.根据权利要求2所述的方法,其特征在于,所述下游节点为所述第二路由器;或者,
所述下游节点为所述防护系统与所述第二路由器之间的一个中间节点。
4.根据权利要求1所述的方法,其特征在于,若所述第一报文为IPv6报文,所述防护系统基于所述第一报文获得第二报文,包括:
所述防护系统将所述第一报文的IPv6基本头的目的地址字段的内容更新为所述第二路由器的SRv6 SID从而得到所述第二报文。
5.根据权利要求4所述的方法,其特征在于,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述防护系统写入的、所述第一报文的IPv6基本头的目的地址字段更新前的内容,所述IPv6扩展头为段路由头SRH或者目的选项头。
6.根据权利要求2至5中任一项所述的方法,其特征在于,所述方法还包括:
所述防护系统向所述第一报文添加SRH从而得到所述第二报文,所述SRH包括第一段列表segment list,所述第一segment list包括所述第二路由器的SRv6 SID以及第一回注链路经过的至少一个中间节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
7.根据权利要求6所述的方法,其特征在于,所述防护系统向所述第一报文添加SRH,包括:
所述防护系统在所述第一报文的外层添加所述SRH;或者,
所述防护系统在所述第一报文的IPv6基本头的内层插入SRH。
8.根据权利要求6或7所述的方法,其特征在于,所述防护系统与所述第二路由器之间存在第一回注链路和第二回注链路,所述防护系统向所述第一报文添加SRH之前,所述方法还包括:
所述防护系统根据所述第一回注链路的质量和第二回注链路的质量,从所述第一segment list和第二segment list中选择所述第一segment list,其中,所述第一segmentlist表示所述第一回注链路,所述第二segment list表示所述第二回注链路,所述第一回注链路的质量高于所述第二回注链路的质量,所述第一回注链路或第二回注链路的质量根据拥塞情况、时延、丢包率、带宽或者开销中至少一项确定。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述防护系统向所述第一报文添加SRH之前,所述方法还包括:
所述防护系统向控制器发送所述IPv6网络的拓扑信息;
所述防护系统接收来自控制器的所述第一segment list,所述第一segment list是所述控制器基于所述IPv6网络的拓扑信息确定的。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述第二路由器的SRv6 SID包括定位信息和功能信息,所述定位信息指示所述第二路由器的位置,所述功能信息指示所述第二路由器进行SRv6解封装。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
所述防护系统接收来自所述第二路由器的通告报文,所述通告报文用于通告所述第二路由器的SRv6 SID。
12.一种防护系统,其特征在于,所述防护系统包括:
接收单元,用于接收来自第一路由器的待清洗流量,所述防护系统旁挂在所述第一路由器上,所述待清洗流量为所述外部网络发往受保护网络的流量
处理单元,用于对所述待清洗流量进行清洗,得到清洗后流量流量;对于所述清洗后流量包含的第一报文,基于所述第一报文获得第二报文,所述第二报文为基于互联网协议第6版的段路由SRv6报文,所述第二报文包括第二路由器的SRv6段标识SID,所述第二路由器的SRv6 SID为所述第二路由器的互联网协议第6版IPv6地址,所述第二路由器和所述第一路由器通过IPv6网络连接,所述第二路由器部署在所述IPv6网络与所述受保护网络之间;
发送单元,用于向所述第二路由器发送所述第二报文。
13.根据权利要求12所述的防护系统,其特征在于,所述处理单元,用于在所述第一报文的外层添加IPv6基本头从而得到所述第二报文,所述IPv6基本头的目的地址字段携带第一回注链路上所述第一路由器的下游节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
14.根据权利要求13所述的防护系统,其特征在于,所述下游节点为所述第二路由器;或者,
所述下游节点为所述防护系统与所述第二路由器之间的一个中间节点。
15.根据权利要求12所述的防护系统,其特征在于,若所述第一报文为IPv6报文,所述处理单元,用于将所述第一报文的IPv6基本头的目的地址字段的内容更新为所述第二路由器的SRv6 SID从而得到所述第二报文。
16.根据权利要求15所述的防护系统,其特征在于,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述防护系统写入的、所述第一报文的IPv6基本头的目的地址字段更新前的内容,所述IPv6扩展头为段路由头SRH或者目的选项头。
17.根据权利要求13至16中任一项所述的防护系统,其特征在于,所述处理单元,还用于向所述第一报文添加SRH从而得到所述第二报文,所述SRH包括第一段列表segmentlist,所述第一segment list包括所述第二路由器的SRv6 SID以及第一回注链路经过的至少一个中间节点的SRv6 SID,所述第一回注链路的头节点为所述防护系统,所述第一回注链路的尾节点为所述第二路由器。
18.根据权利要求17所述的防护系统,其特征在于,所述处理单元,用于在所述第一报文的外层添加所述SRH;或者,在所述第一报文的IPv6基本头的内层插入SRH。
19.根据权利要求17或18所述的防护系统,其特征在于,所述防护系统与所述第二路由器之间存在第一回注链路和第二回注链路,所述处理单元,还用于根据所述第一回注链路的质量和第二回注链路的质量,从所述第一segment list和第二segment list中选择所述第一segment list,其中,所述第一segment list表示所述第一回注链路,所述第二segment list表示所述第二回注链路,所述第一回注链路的质量高于所述第二回注链路的质量,所述第一回注链路或第二回注链路的质量根据拥塞情况、时延、丢包率、带宽或者开销中至少一项确定。
20.根据权利要求17至19中任一项所述的防护系统,其特征在于,所述发送单元,还用于向控制器发送所述IPv6网络的拓扑信息;
所述接收单元,还用于接收来自控制器的所述第一segment list,所述第一segmentlist是所述控制器基于所述IPv6网络的拓扑信息确定的。
21.根据权利要求12至20中任一项所述的防护系统,其特征在于,所述第二路由器的SRv6SID包括定位信息和功能信息,所述定位信息指示所述第二路由器的位置,所述功能信息指示所述第二路由器进行SRv6解封装。
22.根据权利要求12至21中任一项所述的防护系统,其特征在于,所述接收单元,还用于接收来自所述第二路由器的通告报文,所述通告报文用于通告所述第二路由器的SRv6SID。
23.一种防护系统,其特征在于,所述防护系统包括:处理器和网络接口,所述处理器与存储器耦合,所述网络接口用于接收或发送报文,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述防护系统实现权利要求1-11中任一项所述的方法。
24.一种网络系统,其特征在于,所述网络系统包括路由器以及如权利要求12至23中任一项所述的防护系统;
所述路由器用于接收来自所述防护系统的第二报文;基于所述第二报文获得所述第一报文;向所述受保护网络发送所述第一报文。
25.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-11中任一项所述的方法。
26.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行权利要求1-11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210314660.1A CN116866243A (zh) | 2022-03-28 | 2022-03-28 | 流量回注方法及防护系统 |
PCT/CN2023/082072 WO2023185502A1 (zh) | 2022-03-28 | 2023-03-17 | 流量回注方法及防护系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210314660.1A CN116866243A (zh) | 2022-03-28 | 2022-03-28 | 流量回注方法及防护系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116866243A true CN116866243A (zh) | 2023-10-10 |
Family
ID=88199082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210314660.1A Pending CN116866243A (zh) | 2022-03-28 | 2022-03-28 | 流量回注方法及防护系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116866243A (zh) |
WO (1) | WO2023185502A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924764B (zh) * | 2010-08-09 | 2013-04-10 | 中国电信股份有限公司 | 基于二级联动机制的大规模DDoS攻击防御系统及方法 |
CN111355649A (zh) * | 2018-12-20 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 流量回注方法、装置和系统 |
CN112272194B (zh) * | 2020-12-23 | 2021-03-30 | 广东省新一代通信与网络创新研究院 | 一种可扩展的DDoS防御方法及系统 |
-
2022
- 2022-03-28 CN CN202210314660.1A patent/CN116866243A/zh active Pending
-
2023
- 2023-03-17 WO PCT/CN2023/082072 patent/WO2023185502A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023185502A1 (zh) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1859586B1 (en) | Loop prevention technique for mpls using service labels | |
US7477593B2 (en) | Loop prevention techniques using encapsulation manipulation of IP/MPLS field | |
US7693047B2 (en) | System and method for PE-node protection | |
EP3698520B1 (en) | A communication routing system | |
US7633859B2 (en) | Loop prevention technique for MPLS using two labels | |
CN101044728B (zh) | Rfc 2574网络边缘处的快速重路由(frr)保护 | |
CN113347091B (zh) | 灵活算法感知边界网关协议前缀分段路由标识符 | |
CN113315697A (zh) | 报文处理方法、装置、网络设备及存储介质 | |
US20030142669A1 (en) | MPLS network system | |
CN112868214B (zh) | 分组内的协调负载转移oam记录 | |
US20220224629A1 (en) | BGP route aggregation exception systems and methods | |
US20090041019A1 (en) | Multi-protocol label switching | |
US20130077630A1 (en) | Energy efficient connectionless routing with simple lookup | |
EP3874687A1 (en) | Operations processing of multiple-protocol packets | |
JP2024520119A (ja) | パケット処理方法、装置、及びシステム | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
US20130336321A1 (en) | Relay forward system, path control device, and edge apparatus | |
CN112291234B (zh) | 流量回注方法、装置、设备及计算机可读存储介质 | |
CN116866243A (zh) | 流量回注方法及防护系统 | |
US11082540B2 (en) | Network operations including protocol processing of a packet updating an operations data field of a different protocol | |
CN115883446A (zh) | 一种环路的检测方法和装置 | |
JP2007150641A (ja) | パケット通信装置及びネットワークシステム | |
EP4418634A1 (en) | Packet processing method, apparatus and device | |
US20230336458A1 (en) | Route Transmission Method and Apparatus | |
Tarasiuk et al. | A proposal of the IPv6 QoS system implementation in virtual infrastructure |
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 |