查看: 2301|回复: 25

自建CDN应对大流量DDOS的解决方案

[复制链接]
发表于 2013-2-24 10:18:35 | 显示全部楼层 |阅读模式

DDoS主要攻击类型

延缓性的CC攻击

致命的流量攻击

延缓性的CC攻击

流量有个逐步增加的过程(通过脚本监控incoming异常流量,从监控图上也可以看出)

触发启动日志分析机制,尽量在第一时间和无人工参与找出异常IP,URL,特征码,从内核层(iptables/ip),应用层(nginx/444)拦截

攻击特点:成本低,现成软件多,对方比较”温柔谨慎”,目的是让网站变慢。

适用: 主机性能和带宽有盈余,硬件强劲,可用于文本抽取和正则匹配,攻击持续时间短,次数少

缺点: 治标不治本

致命的流量攻击

流量陡增(IDC机房也会察觉,直接拔线,或者IP入黑自杀)

系统根本来不及消化和响应过来,甚至连求救包都发不出

攻击特点:成本高,对方下手”快狠准”,目的是让网站死亡

适用: 硬防,高防节点,外围CDN分散目标

缺点: 防御成本高,没人真心帮你,花钱也只是苟延残喘

自建CDN的考量

硬件成本

双子星服务器(1U机身+支持双路CPU+《48G内存+双网口+H3C S1208八口千兆)= 1.5W

带宽成本

电信、联通单线资源,独享100M,8个IP,基本在1.6~2.5W之间

架构设计

为什么这里没有提LVS,因为LVS是个重量级,高效稳定的四层转发,但它不能作七层http协议的识别,但完全可以架设在七层之前,所以,LVS的使用并不会影响网络结构,后续想上就上。

反向代理(路由加速,隐藏主节点)   haproxy > nginx > varnish > ats > squid

缓存加速(静态加速,节省带宽,边缘推送) ats > varnish > squid > nginx > haproxy

防御功能(快速解析,过滤匹配) haproxy > nginx > ats > squid > varnish

支持读取文件匹配,支持热加载,可插拔式的缓存组件灵活应对业务

Haproxy+Varnish的组合:防御型反向代理缓存方案

设计要素

参数配置注意点

        option  forwardfor

        option  httplog

        option  dontlognull

        option  accept-invalid-http-request

        #option  nolinger # reduce FIN_WAIT1

        option  http-server-close

        timeout client 15s

        timeout connect 15s

        timeout server 15s

        timeout http-keep-alive 15s

        timeout http-request 15s

listen Web_FB 0.0.0.0:80

        acl invalid_referer hdr_sub(referer) -i -f /opt/etc/bad_ref.conf

        acl invalid_url url_reg -i -f /opt/etc/bad_url.conf

        acl invalid_methods method -i -f /opt/etc/bad_method.conf

        block if invalid_referer || invalid_url || invalid_methods

        acl dyn_host hdr(host) -i -f /opt/etc/notcache_host.conf

        acl static_req path_end -i -f /opt/etc/cache_file.conf

        use_backend img_srv if static_req !dyn_host

backend img_srv

        mode http

        option tcpka

        server img_srv 127.0.0.1:88 maxconn 30000 weight 8

降低磁盘IO

把Haproxy日志刷到内存中,间隔时间内清空,从而保证cpu的高效运行和内存控制。

智能脚本

PROXY_HOST="

[email protected]:81:3&127.0.0.1:82:1@w_53kf_com@www|chat|kf

"

架构改进

配置DNS就近匹配CDN

Bind view+脚本分析分拣中国大区

大规模日志分析

Haproxy+rsyslog+nosql+hadoop

后端管理不直观

OpenCDN前端控制


发表于 2013-2-24 20:55:42 | 显示全部楼层
拿把椅子看表演
发表于 2013-2-25 17:36:20 | 显示全部楼层
都是那么过来的  
发表于 2013-2-25 21:16:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-3-2 09:43:26 | 显示全部楼层
一个子 没看懂  
发表于 2013-3-2 13:47:31 | 显示全部楼层
在线等在线等  
发表于 2013-3-2 23:53:42 | 显示全部楼层
支持~~顶顶~~~  
发表于 2013-3-7 13:41:08 | 显示全部楼层
哈哈,顶你了哦.  
发表于 2015-1-26 04:56:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2015-2-28 05:21:02 | 显示全部楼层
呵呵,明白了  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则