上个月一个做手游的福建团队找我,说他们在内湖租了台高防机器,销售拍胸脯说500G防御,结果上线第三天被人用UDP反射锤了80G,业务直接断了47分钟。47分钟,一个日活20万的游戏,你算算流水损失多少。
问题出在哪?清洗池是共享的,攻击来了排队等调度,BGP收敛花了38秒,Flowspec规则压根没下发到上游路由器。500G,听着挺唬人对吧?但你拆开看——那500G是整个清洗集群的总容量,分到你头上可能也就20G的窗口。
内湖机房高防到底怎么跑的
内湖这个位置,说白了就是台北的网络心脏。中华电信HiNet骨干的POP就在瑞光路,远传和台湾大哥大的接入点也在方圆两公里内[[9]]。你买的台湾内湖机房高防服务器,物理上就是插在这些骨干路由器的下挂端口上。
清洗的跑法分三层,搞混一层就白搭:
- L3/L4网络层——靠的是硬件清洗设备(一般是Radware或者Arbor),攻击流量通过BGP牵引到清洗中心,BGP Flowspec(RFC 5575)负责在上游路由器直接把恶意流丢掉,不用等流量跑到清洗设备再处理
- L7应用层——SYN Proxy代替源站跟客户端握手,SYN Cookie验证通过了才把连接往后转,CC攻击在这层被拦
- 行为分析层——NetFlow/sFlow采样上报,跑统计模型判断是不是慢速攻击或者低频CC,这层响应最慢但能抓住前两层漏掉的
这里有个坑你得知道:如果清洗中心不在内湖本地,而是牵引到林口或者桃园去洗,回源延迟直接多15-25ms。对游戏业务来说,这15ms就是用户骂街和正常体验的分水岭。
(别问我怎么知道的,问就是凌晨三点被oncall电话炸醒,发现客户延迟飙到180ms,一查是清洗中心在桃园,牵引路径绕了半个台湾岛)
三种清洗方案硬参数对比
| 防护层级 | 清洗位置 | 响应时间 | 误杀率 | 适合谁 |
|---|---|---|---|---|
| 共享清洗池(50-100G) | 可能不在本地 | 30-90秒 | 中高(3-8%) | 日活5万以下小站 |
| 独享清洗通道(200-500G) | 内湖本地硬件 | 5-15秒 | 低(0.5-2%) | 中型游戏/电商 |
| Anycast+本地清洗(500G+) | 多POP同时宣告 | <5秒 | 极低(<0.3%) | 金融/大型游戏/直播 |
看到没,共享池那个30-90秒的响应时间,够攻击者把你源站打穿两回了。独享通道贵是贵,但那5秒和90秒的差距,就是业务活着和死了的差距。
顺带说一句,StrataServer在内湖做的独享清洗方案,清洗设备就架在机房本地,BGP收敛走的是HiNet直连peer,不用绕第三方AS。这个对延迟敏感的业务来说差别很大。
这些雷区踩一个就够喝一壶
说几个真踩过的:
- SYN Cookie和SYN Proxy搞混——Cookie是内核级的,性能开销小但防不住伪造源IP的洪水;Proxy是代理模式,能验证但吃CPU。内湖这边大部分机房默认开的是Cookie,你要是做金融接口,得手动切Proxy
- NetFlow采样率设成1:1000——攻击量小的时候根本采不到异常流量,行为分析层等于瞎了。建议1:100起步,带宽够就1:10
- RTBH(远程黑洞)当高防用——有些便宜方案,攻击一来直接把你的IP黑洞掉,是,攻击没了,你的业务也没了。这不叫防护,这叫自杀
什么情况下别碰台湾高防?说句得罪人的话:如果你的用户全在华北、东北,物理延迟从内湖到北京走海底光缆加陆地传输,少说60ms起步。这个延迟做游戏交互是灾难。老老实实选华北机房的高防,别为了"台湾IP"这个噱头硬上。
还有,攻击量级长期低于10G的,iptables+rate limit+Cloudflare免费套餐就够你用了。花大几千美金一个月买独享清洗通道,属于杀鸡用牛刀。
验证清洗是否真的生效,跑这个:
# 检查Flowspec规则有没有下发到本地路由表
ip route show table local | grep -i "blackhole\|flowspec"
抓100个SYN包看看源IP是不是真的被清洗过了
tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' -c 100 -w /tmp/syn_check.pcap
确认SYN Cookie状态(1=开启)
sysctl net.ipv4.tcp_syncookies
这行要是没输出,说明你的Flowspec根本没下发,别怪设备
ip route show table flowspec 2>/dev/null || echo "flowspec table不存在,找你的上游要"
关于写这些的人
老周,前中华电信内湖NOC轮班工程师,HiNet骨干网DDoS清洗设备盯了11年。现在给几家做两岸跨境业务的团队当网络顾问,偶尔在PTT和V2EX上骂人。手上过的最大一次清洗是1.2T的UDP反射,那次之后把oncall手机铃声换成了防空警报。
攻击不等人,你的BGP收敛时间每多10秒,源站就多挨10秒的锤子。现在就去看你的清洗合同里写的是"共享池"还是"独享通道",确认Flowspec有没有写进SLA。没写进去的,等于没有。