定义
BGP Flow Specification功能是一种用于防止DoS(Denial of Service)/DDoS(Distributed Denial of Service)攻击的方法,可以提高网络安全性和可用性。
目的
DoS/DDoS攻击是对网络安全的一个重大威胁,DoS/DDoS攻击者通过多个控制端控制成千上万的攻击设备对同一个目的地址、网段或服务器同时发起流量攻击,导致网络拥塞或服务器CPU占用过高无法提供服务。
传统预防DoS/DDoS攻击的方法有两种,分别是流分类技术和对攻击流量重定向,但是这两种方法都存在缺陷,如表1所示。
表1 传统预防DoS/DDoS攻击方法的比较
预防方法 | 方法概述 | 缺陷 |
---|---|---|
流分类技术 | 在路由器上手工配置流量匹配规则和相应的QoS策略,用来缓解DoS/DDoS的攻击。 | 这种方法存在如下缺陷:
|
对攻击流量重定向 | 通过路由策略修改指向受攻击目标的路由的下一跳:
| 这种方法存在如下缺陷:
|
BGP Flow Specification可以解决上述缺陷:
-
可维护性好。使用标准协议定义的BGP网络层可达信息类型来传递流量过滤信息,因此路由信息和流量过滤信息独立存在。
-
提供丰富的过滤条件和处理动作,可以更有针对性地实现对流量的控制。
BGP Flow Specification支持公网BGP Flow Specification、私网BGP Flow Specification和BGP VPNv4 Flow Specification,它们之间的区别如表2所示:
BGP Flow Specification | 应用场景 | 部署的地址族 |
---|---|---|
公网BGP Flow Specification | 应用在公网场景中。 | BGP-Flow地址族、BGP-Flow IPv6地址族 |
私网BGP Flow Specification | 应用在私网场景中,且私网之间不能通过公网传输BGP Flow Specification路由。 | BGP-Flow VPN实例IPv4地址族、BGP-Flow VPN实例IPv6地址族 |
BGP VPNv4 Flow Specification | 应用在私网场景中,且私网之间通过公网传输BGP Flow Specification路由。 | BGP-Flow VPN实例IPv4地址族和BGP-Flow VPNv4地址族 |
受益
BGP Flow Specification功能可以更大的提高用户网络的安全性与可靠性,具体如下:
-
实时监控:BGP Flow Specification功能以定时采样的方式对攻击流量进行快速响应,实现对攻击流量的控制。
-
预先防护:根据常见的攻击流量的特点,手工部署防护策略,使常见的攻击流量没有机会对用户网络造成危害,防患于未然。
-
降低成本:不需要在每台设备上单独建立流量控制策略,提高可维护性。
-
限制攻击范围:BGP Flow Specification支持跨域传播功能,可以在尽可能靠近攻击源的设备上消除攻击流量对网络的危害,大大降低了攻击流量对网络的影响。
基本概念
BGP Flow Specification功能通过传递BGP Flow Specification路由将流量策略传递给BGP Flow Specification对等体,达到控制攻击流量的目的。BGP Flow Specification功能主要包括如下基本概念:
-
BGP Flow Specification路由:标准协议中定义了一种BGP Flow Specification路由,这种BGP Flow Specification路由包含了一类新的BGP网络层可达信息类型和扩展团体属性。通过这种新的网络层可达信息和扩展团体属性,BGP Flow Specification路由可以携带流量的匹配条件和流量匹配后执行的动作。
-
BGP Flow Specification对等体关系:建立在创建BGP Flow Specification路由的设备与网络入口设备之间,用于传递BGP Flow Specification路由。当BGP Flow Specification对等体收到BGP Flow Specification路由后将优选的路由转换为转发层面的流量控制策略,达到控制攻击流量的目的。
根据BGP Flow Specification路由的生成方式的不同,可以分为动态BGP Flow Specification功能和静态BGP Flow Specification功能,如表1所示。
方式 | 应用场景 |
---|---|
动态BGP Flow Specification功能 | 主要用于对无法预知的流量攻击进行控制。通过部署流量分析服务器实现对网络实时监控和对攻击流量的快速响应,保证网络的安全性。 |
静态BGP Flow Specification功能 | 主要用来对某类可以预知的或常见的攻击流量进行控制。根据常见的攻击流量的特点,手工创建BGP Flow Specification路由,实现对常见攻击流量的预先防护。 |
说明:
BGP Flow Specification支持跨域传播功能,即如果不同AS的网络入口设备之间建立了BGP Flow Specification对等体关系,BGP Flow Specification路由可以传播至其他AS对攻击流量进行控制,降低了攻击流量对网络影响的范围。
当使能了BGP Flow Specification功能的设备收到以目的地址为流量过滤条件的BGP Flow Specification路由时,必须通过BGP Flow Specification路由验证才能生效。
动态BGP Flow Specification功能
配置动态BGP Flow Specification功能,需要在网络中部署流量分析服务器,并在流量分析服务器和网络入口设备之间配置BGP Flow Specification对等体关系。如图1所示,动态BGP Flow Specification功能的具体工作流程共包含三个步骤:
- DeviceD和DeviceC把流量采样发送给流量分析服务器。
- 当出现流量攻击时,流量分析服务器按照预先定义的规则,对流量采样样本进行检测,识别异常流量。
- 流量分析服务器根据异常流量的特征自动创建BGP Flow Specification路由,然后通过发布这条BGP Flow Specification路由把流量过滤规则传递给网络入口设备DeviceB。
- DeviceB在收到BGP Flow Specification路由后,把路由转化成流量控制策略,对匹配规则的流量进行控制。
图1 动态BGP Flow Specification功能的运行方式
静态BGP Flow Specification功能
配置静态BGP Flow Specification功能,需要根据常见攻击流量的特点手工创建BGP Flow Specification路由,并在创建BGP Flow Specification路由的设备和网络入口设备之间配置BGP Flow Specification对等体关系。如图2所示,静态BGP Flow Specification功能的具体工作流程共包含三个步骤:
- 在DeviceC上手工创建BGP Flow Specification路由,根据需要预防的攻击流量的特点配置流量过滤条件及流量控制动作。
- BGP Flow Specification路由通过BGP协议被发布到网络入口设备DeviceB上。
- DeviceB在收到BGP Flow Specification路由后,把路由转化成流量控制策略,在网络入口设备上对匹配规则的流量进行控制。
图2 静态BGP Flow Specification功能的运行方式
BGP Flow Specification路由有以下两种验证方式:
- 第一种验证方式:当使能了BGP Flow Specification功能的设备收到以目的地址为流量过滤条件的BGP Flow Specification路由时,使用图3所示验证方式验证通过,才能认为该BGP Flow Specification路由是有效的。
- 第二种验证方式:当使能了BGP Flow Specification功能的设备收到以目的地址为流量过滤条件的BGP Flow Specification路由时,判断BGP Flow Specification路由的AS_PATH属性中是否含有AS_SET和AS_SEQUENCE字段,如果没有则验证通过,即认为该BGP Flow Specification路由是有效的。
第二种验证方式是通过命令行控制的,如果指定了第二种验证方式,则首先使用第二种方式验证BGP Flow Specification路由:
- 如果验证通过,认为BGP Flow Specification路由是有效的,无需使用第一种方式验证BGP Flow Specification路由;
- 如果验证不通过,则还需要使用第一种方式验证BGP Flow Specification路由。
如果没有指定第二种验证方式,则使用第一种方式验证BGP Flow Specification路由。
当使能了BGP Flow Specification功能的设备收到以目的地址为流量过滤条件的BGP Flow Specification路由时,必须通过如下验证规则才能认为该BGP Flow Specification路由是有效的,如图3所示。
图3 BGP Flow Specification路由验证的规则
如图4所示,DeviceA和DeviceB建立BGP Flow Specification对等体关系。DeviceB从DeviceA接收到一条BGP Flow Specification路由,这条BGP Flow Specification路由包含着流量目的地址类型的过滤条件,目的地址为172.16.1.0/24,即希望对发往172.16.1.0/24的流量进行控制。因此DeviceB会对这条路由进行验证,具体流程如下:
-
DeviceB在自己的IP路由表中进行查找,发现存在两条单播路由,分别是172.16.0.0/16和172.16.1.0/24,经比较发现172.16.1.0/24为最佳匹配单播路由。
-
对该单播路由进行检查,发现是通过BGP协议学习到的路由。
-
该单播路由的发起者是DeviceC,BGP Flow Specification路由的发起者是DeviceA,由于发起者并不相同,因此认定这条BGP Flow Specification路由无效。
动态BGP VPNv4 Flow Specification功能
配置动态BGP VPNv4 Flow Specification功能,需要在网络中部署流量分析服务器,并在流量分析服务器和网络入口设备PE1之间配置BGP VPNv4 Flow Specification IBGP对等体关系。如图1所示,动态BGP VPNv4 Flow Specification功能的具体工作流程共包含以下几个步骤:
- PE2和PE3把流量采样发送给流量分析服务器。
- 当出现流量攻击时,流量分析服务器按照预先定义的规则,对流量采样样本进行检测,识别异常流量。
- 流量分析服务器根据异常流量的特征自动创建BGP VPNv4 Flow Specification路由,然后通过BGP VPNv4 Flow Specification IBGP邻居发布这条BGP VPNv4 Flow Specification路由把流量过滤规则传递给PE1。
- PE1在收到BGP VPNv4 Flow Specification路由后,把BGP VPNv4 Flow Specification路由远端交叉到VPN实例VPNA中,并将路由转化成流量控制策略,对匹配规则的流量进行控制。
图1 动态BGP VPNv4 Flow Specification功能的运行方式
静态BGP VPNv4 Flow Specification功能
配置静态BGP VPNv4 Flow Specification功能,需要根据常见攻击流量的特点手工创建私网BGP Flow Specification路由,使能BGP-Flow VPNv4地址族后,自动生成BGP VPNv4 Flow Specification路由,然后在创建私网BGP Flow Specification路由的设备PE3和网络入口设备PE1之间建立BGP VPNv4 Flow Specification IBGP对等体关系,用于传递BGP VPNv4 Flow Specification路由。如图2所示,静态BGP VPNv4 Flow Specification功能的具体工作流程共包含以下几个步骤:
- 在PE3上手工创建BGP VPNv4 Flow Specification路由,根据需要预防的攻击流量的特点配置流量过滤条件及流量控制动作。
- BGP VPNv4 Flow Specification路由通过BGP VPNv4 Flow Specification IBGP邻居发布到PE1上。
- PE1在收到BGP VPNv4 Flow Specification路由后,把BGP VPNv4 Flow Specification路由远端交叉到VPN实例VPNA中,并将路由转化成流量控制策略,对匹配规则的流量进行控制。
图2 静态BGP VPNv4 Flow Specification功能的运行方式