使用BGP-blackhole解决IDC频繁遭受DDOS攻击困扰
个人博客地址
项目背景
该项目位于某市级BGP IDC机房,机房客户多为web业务,遭受小流量攻击(10G量级)较为频繁,针对这一现象在机房core旁路部署ADS系统,牵引异常流量清洗后进行回源,该清洗方案在此不再展开,有兴趣的同学可搜索另一篇博客
随着业务规模扩大,该机房近期频繁遭受大流量DDOS攻击(10-50G量级),机房总带宽被打满,导致机房业务受到影响,受攻击用户无相似特征,怀疑同行恶意竞争导致。
项目需求
在遭受到大于机房总带宽攻击时可以牺牲受攻击用户的连通性来避免机房其他用户受到影响
项目所使用技术
BGP blackhole
简要拓扑如下:
拓扑描述:
拓扑为简要逻辑拓扑,该IDC机房位于市级接入,接入总带宽20G,市级到IDC使用ECMP做负载,自有IP通过与省骨干网建立BGP neighbor发布,该市级与省级骨干互联带宽充足
设备均为华为NE系列
方案构思
通过与市级骨干建立私有BGP邻居关系,当ADS系统检测到攻击时通过bgp发布32位掩码路由,市级设备受到该路由后把该路由指向null0
方案配置(为避免主要ip泄露,以下配置均为重新编址)
IDC | 市级骨干 | |
ASN | 65001 | 65002 |
local-address | 1.1.1.1 | 2.2.2.2 |
network | 10.0.0.0/24 | |
community | 65001:65002 | 65001:65002 |
blackhole tag | 333 | |
blackhole community | 333:333 | 333:333 |
IDC core
bgp 65001
peer 2.2.2.2 as-number 65002
peer 2.2.2.2 ebgp-max-hop 3
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 10.0.0.0 255.255.255.0
import-route static
peer 2.2.2.2 enable
peer 2.2.2.2 route-policy blackhole export
peer 2.2.2.2 advertise-community
route-policy blackhole permit node 10
if-match tag 333
apply community 333:333
route-policy backbone permit node 20
apply community 65001:65002
市级骨干配置
bgp 65002
peer 1.1.1.1 as-number 65001
peer 1.1.1.1 ebgp-max-hop 3
peer 1.1.1.1 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 1.1.1.1 route-policy blackhole import
route-policy blackhole permit node 10
if-match community-filter 1
apply ip-address next-hop 5.5.5.5
route-policy blackhole permit node 20
if-match community-filter 2
ip community-filter 1 permit 333:333
ip community-filter 2 permit 65001:65002
ip route-static 5.5.5.5 255.255.255.255 NULL0
查看正常情况下市级设备路由
IDC CORE发布32位路由
ip route-static 10.0.0.3 255.255.255.255 NULL0 tag 333
查看市级设备路由
查看市级设备FIB表
由上输出可知,当IDC ADS设备检测到攻击流量超过一定阈值后只需要向CORE设备下发一条tag333的黑洞路由就可以实现在市级设备进行ip封堵,避免异常流量进入IDC对整体业务造成影响