徐宝辰,余思阳,李长连,李发财,赵 通(.中讯邮电咨询设计院有限公司,北京 00048;.中国联通智网创新中心,北京 00046)
高防广义上被定义为集成了防御4 层(DDoS)+7层(渗透)攻击的高级防御系统,一般以服务器、安全资源池甚至数据中心的形态出现并提供安全服务。对于7 层攻击的防护,高防中心内部通常以WAF 作为主要防御手段,对扫描、SQL 注入、XSS 跨站、爬虫等攻击进行拦截,所以高防资源池或者高防数据中心通常以DNS 引流为手段,需要防护用户手动修改被防护Web URL 的DNS地址指向,将DNS指向为高防系统IP地址,从而将流量引入到高防资源池中来。
本文首先介绍了SRv6 的一种应用场景——SRv6 TE Policy+业务链,并结合SRv6 TE Policy+业务链场景深入介绍通过SRv6 技术作为流量牵引手段与高防相结合,从而简化了用户接入高防系统的方式,并提出笔者研究的最佳实践。
SRv6(Segment Routing)定义为基于IPv6的分段路由,是一种基于Native IP 的“隧道”技术。SRv6 会将路径上的关键节点或链路定义为每个Segment,Segment字段被封装到SRH(Segment Routing Header)中并插入到原始的IP报文前变成新的IP报文头,数据报文会从头节点开始,按照生成的每个Segment 组成的路径进行转发。当转发到尾节点的时候,报文中的SRH 会弹出,从而暴露出原始的IP 头,并按照原始IP 报文根据路由进行转发。
例如,我们计划从A 地出发去B公园游玩,打开导航软件,上面显示共有2 条路可从A 地到达B 公园,其中1 号路径路程短但比较拥堵,用时较多,2 号路径路程长但车流压力不大,用时反而较少。如果从路程角度来计算会选择1 号路径,如果从时间长短来考虑会选择2 号路径。那么在出发时(A 节点)就需要确定选择哪种策略(Policy),这种基于流量工程(案例中为车流量)角度来指定转发策略的方式就是SRv6 TE Policy。
SRv6 TE Policy 有3 个重要的要素,分别是头端(Headend)、颜色(Color)、尾端(Endpoint)。头端和尾端分别为A、B 两地,用来确定SRv6 TE Policy 的首尾两端地址,颜色是出行路径的策略,不同的路径会被进行不同的染色动作(在Color字段配置不同的值),需要根据自己的需求选择一条被染色的路径进行报文转发(比如需要利用更短的时间到达B公园的话,就需要选择路径2)。
通过SRv6 的封装和Policy 的选路,就可以让数据包流向其目标位置。类比图1 中的各个地点,假设A地为攻击源、B 公园为攻击目标(防护源站),那么高防系统所在的位置就会被置为广场或交叉路口。但是Policy 技术只能让数据包经过高防系统所在地点,如何能让数据包真正进入到高防系统进行监测及防护,则需要SRv6 TE Policy+业务链的模型来解决这个问题。
图1 Policy路径选择
SRv6 业务链(SRv6 Service Function Chain,SRv6 SFC)为在SRv6 中某些关键节点下挂其他设备(如WAF、防火墙等)提供解决方案。业务链分为控制平面和转发平面2部分,其中控制平面由控制器组成,控制器与下方所管理的路由器建立网络连接,并负责管理路由器状态、下发路由器指令等功能;转发平面即所有SRv6路由经过的网络节点,对于业务链来说分为以下几种设备类型:SC(Service Classifier)、SFF(Service Function Forwarder)、SF(Service Function)、SFC Proxy(业务代理设备)。SFF 和SFC Proxy 作为SRv6 TE Policy 中重要的节点,必然有自己的SID(Segment ID)。重要节点的SID 称为Endpoint SID,简称end SID。在业务链中,SFF 及SFC Proxy 的end SID 的类型为end.AS,其作用为暂时剥离SRH 暴露Payload 转发至指定出接口并缓存Segment List,当流量转发回SFF节点时重新将缓存的Segment List 添加至刚才的数据包重新成为SRH。SFC Proxy节点cache SRH过程如图2所示。
图2 SFC Proxy节点cache SRH过程
业务链可以解决SRv6 TE Policy 链路中下挂其他服务的问题,SFC流量走向如图3所示。
图3 SFC流量走向图
流量从R1 发起,在R2(Policy 头节点)进入业务链,由于下一跳为SFF 节点,所以流量并没有按照Segment List 向下转发,而是先从SFF 转发到其下挂的服务节点SF1 和SF2,回到SFF 节点后继续转发至R3 回到尾节点并弹出SRH 头部终结业务链。而当SFF 节点下挂的安全服务并不支持SRv6 功能时,SFF 节点应变为SFC Proxy 节点,具有代理SRv6 并缓存(cache)SRH头部的功能。
针对SRv6 TE Policy SFC 的特点,可以知道SFF 节点下可以下挂任何安全能力,包括具有SRv6功能的安全服务和不具备SRv6 功能的普通安全服务,这使得SRv6 TE Policy SFC 技术的普适性大大增加。由于现在市面上的安全能力普遍不具备SRv6功能,所以本文以SRv6 TE Policy SFC unaware 架构为基础,设计了基于SRv6 TE Policy+流量负载设备的新型高防资源池架构。
新型高防架构分为2 个部分:安全资源池外的流量牵引部分以及安全资源池内的流量调度部分。安全资源池外的流量牵引部分以SRv6 TE Policy SFC 技术为主,策略路由(PBR 或BGP Flowspec)为辅来完成,首先需要将下挂高防服务的路由器SR(Service Router)以及多台高防业务需求区域路由器AR(Area Router)建立SRv6 TE Policy,在建立Policy 后,SR 承担了SFC Proxy的角色,负责与高防资源池内部对接并将SRv6 中携带的Payload 转发至高防资源池内。AR 利用PBR 将所需要防护的业务流量转发至Policy 中从而使得被防护流量进入业务链。根据业务链中Segment List流量将会被转发至SFC Proxy 节点,SFC Proxy 会根据end.AS 将Source Address、Segment List 缓存并将Payload 转发至高防资源池内部,而后将经高防系统清洗后的流量重新加载缓存起来的SRH 继续根据Segment List 转发至Endpoint。新型高防安全资源池外流量走向如图4所示。
图4 新型高防安全资源池外流量走向
安全资源池内流量主要依靠流量负载设备进行调度。数据报文经过SFF 节点后剥离SRH 将Payload以及原始报文IP 暴露给高防安全资源池内部设备。如果在新型高防资源池出口处部署一台流量负载设备就可以与SFF 设备对接,也可以在高防中的WAF 接收到流量前通过DNAT将目的地址修改为高防系统的IP,因为WAF 只能接收目的地址是自己的数据报文,这样高防中的WAF 才能够与流量发起者建立TCP 连接。当WAF 收到流量后通过自身的代理模式以及WAF 的7 层防护原理,会将数据包的源地址修改为自身IP地址,而目的地址修改为防护网站所对应的IP地址,随后数据包会根据目的地址查找路由转发至流量负载设备,并继续转发至SFF 设备入接口。SFF 设备会将报文通过cache list 重新封装为SRv6 报文并继续根据Segment List 转发(SRv6 部分详细转发流程已在上文提及,不做赘述)。新型高防安全资源池内上行流量走向如图5所示。
图5 新型高防安全资源池内上行流量走向
当下行数据报文从源站通过路由寻址再次返回高防资源池内时,数据报文通过流量负载设备直接进入高防资源池内WAF 中,由于此时目的地址为WAF IP地址,故流量可直接进入WAF中并完成下行流量防护,至此高防系统与目标源站的TCP 连接建立完成。数据包经过高防系统WAF后返回流量负载设备,负载设备将此数据包通过SNAT 将源地址由WAF 地址转换为防护网站地址,并根据路由转发至访问者终端,完成一次完整通信。新型高防安全资源池内下行流量走向如图6所示。
图6 新型高防安全资源池内下行流量走向
正如前文所述,高防是集成了防御4 层(DDoS)+7层(渗透)攻击的高级防御系统,那么4 层攻击的防御如何与新型高防的网络架构相结合呢?借鉴于抗DDoS的防御原则,防御手段越靠近攻击源,DDoS攻击的危害就越小,可以将抗DDoS 的防御手段尽可能地向流量发起者方向部署。在新型高防系统中,最靠近流量发起者(攻击者)的地点为AR1,所以需要想办法在AR1 集成抗DDoS 的手段,经过流量清洗后再进入SRv6隧道。传统的抗DDoS 流量牵引手段为明细路由转发,即在原主干链路中将要进行清洗的流量通过明细路由的方式将下一跳指向抗DDoS 流量清洗设备。流量清洗完成后数据流回注至另一台回注路由器或回注VRF。如果回注VRF 配置在AR1 上,那么则需要将本地的策略路由删除,并在回注VRF 中再次配置策略路由将流量重定向到SRv6 Policy+业务链中。抗D+高防系统完整防护结构如图7所示。
图7 抗D+高防系统完整防护结构
新型高防系统与传统高防系统相比,具有以下几方面的优势。
a)被防护网站无需修改DNS 域名指向,对于SaaS化安全服务厂商来说可以为用户提供“即插即用”式的高防服务。
b)可根据链路状态为用户提供不同等级的安全服务,由于链路采用了SRv6 TE Policy 技术,所有Segment List 包含的节点都可以以不同的Color 进行染色操作,不同Color的链路可以根据用户需要进行不同的选择,为用户的SLA提供了更高级别的保障。
c)资源池内部的调度方式更加丰富,对于支持SRv6 的安全设备,可以通过SFF 节点直接进行流量调度,对于不支持SRv6 的设备,也可以通过下挂其他流量调度设备进行流量负载以及流量编排功能。
对于云安全服务商来说,由于资源限制,高防中心或高防IDC 不会在每个地区都进行部署建设,新型高防系统架构可以让流量调度手段更加丰富,使用SRv6进行流量牵引无疑是更好的选择,新型高防对于客户的接入性也更加友好。云安全服务商可以在运营商设备下挂载自己的网络设备及高防。当有用户需要接入高防系统的时候,可以先通过BGP 将明细路由发送至运营商设备,将目的地址为防护用户的流量牵引至云安全服务商自有网络设备,然后通过策略路由或Flowspec 的方式将流量重定向至SRv6 Policy 中,从而通过新型高防系统网络架构完成用户的安全防护。
近年来,随着IPv6 技术的发展以及国家对于IPv6技术的推进,越来越多基于IPv6 的技术应运而生,SRv6 就是其中之一。本文利用SRv6 技术原理,结合现有技术及安全能力,将分布式部署的各种安全能力通过SRv6 TE Policy业务链技术整合到一起,更好地做到了资源整合、云网安一体等功能。同样,随着网络技术的发展,安全话题会越来越成为人们关注的焦点。利用优势技术,使网络安全能力越来越方便地接入普通用户的环境也是需要探索的重点之一,这样才会有更多的人使用安全防护能力,才能保证人们的资产越来越安全,越来越不会被侵犯。