定義
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中,並將路由轉化成流量控制策略,對匹配規則的流量進行控制。