服务器被打进黑洞的那一秒,你的业务就死了。不是慢,是彻底断——BGP路由表里你的IP直接消失,全球任何地方ping你都是100% loss。客户投诉电话打爆,老板在群里@你,而你盯着监控面板上那条归零的流量曲线,脑子里只有一个问题:到底几小时能放出来?
直说吧。快则2小时。慢的话——你做好72小时的心理准备。这中间差距大得离谱,取决于你上游是谁、攻击量超了购买防御多少倍、以及你平时有没有跟运营商的NOC混个脸熟。
黑洞到底是怎么被踩出来的
很多人以为"高防"就是无限扛。不是。你买的比如100G防御,攻击打到130G,上游的RTBH(Remotely Triggered Black Hole,RFC 5635那套东西)就会自动把你的IP路由给withdraw掉。翻译成人话:运营商为了保护自己的骨干网不被你的攻击流量冲垮,直接把你的IP扔进黑洞,全球路由表里查无此人。
具体实现就是一条null route(也叫discard route),下一跳指向null0或者discard接口。你的包进去就没了,没有RST,没有ICMP unreachable,就是静默丢弃。(别问我怎么知道的,问就是凌晨三点被oncall电话炸醒过太多次,闭着眼都能敲出那条route命令。)
还有一种更细粒度的玩法叫BGP Flowspec(RFC 5575),不是把你整个IP干掉,而是针对特定五元组做丢弃。但说实话,港资运营商大部分情况下懒得搞这么细,直接RTBH一把梭,省事。
- 攻击量在防御封顶值1.2倍以内,大概率走自动RTBH,2-4小时自动解除
- 超了1.5到2倍,可能叠加人工确认流程,4-12小时
- 超了3倍以上,或者你这个月已经被拉进去过两三次——恭喜,惩罚性封禁,48小时起步
各家上游解封时间实测对比
下面这张表是我这几年实际经手和同行交流攒下来的数据,不是官方SLA(官方SLA写的都是"尽快",废话)。都是真实case的时间范围:
| 上游运营商 | 攻击超量倍数 | 黑洞类型 | 实测解封时间 | 能不能加急 |
|---|---|---|---|---|
| NTT (AS2914) | 1.2倍以内 | 自动RTBH | 2-4小时 | 有客户经理能压到1.5h |
| PCCW (AS3491) | 1.5倍左右 | 自动+工单确认 | 4-8小时 | 工单标urgent约3h |
| HGC (AS9304) | 2倍以上 | 手动封禁 | 12-24小时 | 基本没戏,等吧 |
| CT Global (AS4808) | 超3倍 | 手动+惩罚性 | 48-72小时 | 得走商务层面 |
| 任何上游 | 月内3次以上 | 惩罚性封禁 | 7天起 | 大概率让你换IP |
看到没?同样是"被黑洞",NTT和CT Global的解封速度差了几十倍。所以选香港高防黑洞多久解封这个问题,答案在你买服务器那天就已经决定了一半——看你上游接的是谁。
这些操作让你多蹲一整天
以下这些事,被封之后千万别干(我知道你急,但急没用):
- 反复重启服务器或者换IP绑定——上游NOC看到异常路由变动,直接给你加时长,本来4小时变12小时
- 让技术自己发BGP announce试图把路由"抢"回来——你没有上游的AS号授权,announce了也会被过滤,而且会被标记为"异常操作"
- 同时开5张工单催——NOC值班看到同一个人刷屏,优先级反而往后排(别笑,真事)
- 攻击还没停就急着要求解封——运营商不会给你解的,解了也是秒封回去,还多算一次封禁记录
正确姿势:先确认攻击是不是真停了(看上游给的流量报表,别自己猜),然后一张工单写清楚AS号、IP、攻击起止时间、当前业务影响,标urgent,等。
# 从外部机器确认你的IP是不是还在黑洞里
mtr -r -c 20 -n YOUR_SERVER_IP
# 看最后几跳是不是全 * * * (100% loss就是还在蹲着)
查BGP路由表里你的IP还有没有宣告
whois -h whois.radb.net -- "-i origin AS_YOUR_UPSTREAM" | grep "YOUR_IP/32"
如果grep出来是空的,说明路由已经被withdraw了,老实等着
攻击停没停,看netflow采样(需要上游配合给数据)
自己能做的:
tcpdump -i eth0 -c 100 -nn "host YOUR_SERVER_IP" 2>/dev/null | wc -l
如果从外部抓不到任何回包,别折腾了,还在黑洞里
什么情况别指望高防能救你
把丑话说前头。如果你的业务是实时竞价广告系统、高频交易、或者SLA写死了99.99%的金融类服务——别把命押在"等黑洞解封"这条路上。2小时对你来说可能已经是几百万的损失了。这种业务该上多线BGP anycast + 异地热备,一个IP被黑洞了另一个秒切,用户无感。高防黑洞这套东西,适合的是能容忍几小时中断、但需要扛住大流量冲击的业务,比如游戏服、下载站、API网关。
另外,如果你的攻击源是持续性的(比如竞争对手长期打你),光靠高防硬扛不是办法。得配合流量清洗策略调整,把BGP Flowspec规则跟上游协商好,做细粒度过滤而不是动不动就全IP黑洞。
关于选上游和加速解封
实操层面,如果你正在选或者准备换服务商,有几个事得问清楚:上游接的到底是NTT还是HGC?有没有专属NOC对接人(不是客服,是NOC)?黑洞自动解除的SOP是几小时?能不能提前签加急协议?
像StrataServer这种在香港本地跟多家上游都有peering的,好处是黑洞之后能走内部通道催解封,不用你自己在工单系统里排队。但即便如此,惩罚性封禁该等多久还是多久,谁也没办法。
作者简介
贺鸣川,前某港资tier-1运营商NOC值班组长,干了7年BGP路由运维和DDoS流量异常处置,经手过上百次黑洞操作和路由撤回。现在在深圳给几家中小IDC做技术顾问,偶尔还在V2EX和HostLoc上跟人吵路由策略。手上还留着当年凌晨三点被oncall叫醒的条件反射——手机一响心跳直接120。
现在该干什么
如果你的IP正在黑洞里:别折腾,先确认攻击停了没有,然后一张工单写清楚信息标urgent。如果还没被打但业务流量在涨:这周就把上游NOC的紧急联系方式存好,别等出事了再翻合同找电话。拖一天,真出事那天你就多亏一天。