项目背景

  该项目位于某市级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对整体业务造成影响

  

使用BGP-blackhole解决IDC频繁遭受DDOS攻击困扰的更多相关文章

  1. 解决(防止)DDOS攻击的另一种思想

    本方案适合作最后的处理方案. 在服务器遭到DDOS攻击后,防火墙.高防盾或者其他的方案都已经失去了效力,这时运维人员无任何方案可以处理,并且只能任由DDOS攻击或关闭服务器时,该方案可以有限的抵挡大部 ...

  2. 阿里云ecs遭到频繁的ddos攻击始末

    苦逼熬夜近俩月的时间搞出来个小东东,还指望它能给自己捞点~  结果刚上线没多久就遭到竞争对手疯狂的ddos攻击. 可怜的阿里云默认只能抗住5G的攻击,超出的直接黑洞,也是很无奈,然而能免费抗5G这在国 ...

  3. 游戏行业DDoS攻击解决方案

    行业综述 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游戏市场收入超过美国和日本,成为全球榜首. 游戏行业的快速发展.高额的攻击利润.日 ...

  4. 阿里云:游戏行业DDoS攻击解决方案

    转自:http://www.gamelook.com.cn/2018/01/319420 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游 ...

  5. 小型网站如何防范DDoS攻击

    ddos(Distributed Denial of Service,分布式拒绝服务攻击),俗称洪水攻击.是在传统的DoS攻击基础之上产生的新的破坏力更强的攻击方式.分布式拒绝服务攻击是指借助于客户/ ...

  6. 敌情篇 ——DDoS攻击原理

    敌情篇 ——DDoS攻击原理 DDoS攻击基础 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是 ...

  7. 【Network】DDoS攻击防御

    DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大,最难防御的攻击之一. 按照发起的方式 ...

  8. 防DDOS攻击SHELL脚本

    最近一段时间服务器频繁遭到DDOS攻击,目前只能通过封IP来源来暂时解决.IP不源变化多端,光靠手工来添加简直是恶梦,想了个方法,用SHELL来做. 比较简单,但很实用:) 以下内容根据作者原文进行适 ...

  9. DDOS攻击原理及防护方法论

      从 07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟. DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形 ...

随机推荐

  1. 8.5_线性控制器设计_轨迹跟踪(Follow a Desired Path)

    平衡点时所有的导数都为0 simulink中建立状态方程模型

  2. HTML5存储方式

    由于之前在参加面试或者笔试的过程中经常会被问到HTML5存储的内容,包括它们之间的区别.特征和应用范围,所以看到一篇介绍不错的文章,把里面的个人觉得适合我的内容按照自己的理解总结如下.方便以后忘记了进 ...

  3. Python窗口学习之给按钮美化

    tkinter的按钮很丑也很难改 怎么办呢? 最好的方法就是不用按钮! 给Label添加点击事件,和按钮的作用是一样的! 代码: #!/usr/bin/env python # -*- coding: ...

  4. js判断是否为电话号码

    /* 用途:检查输入字符串是否符合国内固话或者传真格式 输入: s:字符串  格式例如:030-4557777返回: 如果通过验证返回true,否则返回false */ function isTel( ...

  5. HttpRequest.Path与HttpRequest.PathBase区别

    源自stackoverflow

  6. 前端框架小实验-在umi框架中以worker线程方式使用SQL.js的wasm

    总述:在Win7环境下配置umijs框架,在框架中用worker线程方式使用SQL.js的wasm,在浏览器端实现数据的增删改查以及数据库导出导入. 一.安装node.js 1.Win7系统只支持no ...

  7. 设置IDEA启动时不打开上次项目

    步骤 1.启动IDEA,点击File 2.点击setting,在Appearance&Behavior中找到System Setting 3.取消勾选Reopen projects on st ...

  8. IDEA-2020版本 Gradle项目控制台输出乱码

    点击Help->Edit custom vm options 加入下面这一行 -Dfile.encoding=utf-8 最后当然要重启idea了

  9. Struts2-获取值栈对象与结构

    1.获取值栈对象有多种方式 (1)使用ActionContext类里面的方法获取值栈对象 @Override public String execute(){ //1.获取ActionContext类 ...

  10. 1903021116-吉琛-Java第四周作业-程序编写

    项目 内容 课程班级博客链接 19级信计班 这个作业要求链接 Java分支语句学习 https://edu.cnblogs.com/campus/pexy/19xj/homework/12563 我的 ...