网络层黑洞路由只应在攻击流量已经击穿清洗与限速、继续放行会危及核心业务时启用,并且必须同时满足“可牺牲IP明确、回滚路径清晰、上游联动确认”这三个前提。它不是第一反应,而是网络里的紧急制动:踩下去能保住整车,但被刹住的那个轮子一定会停转。
黑洞路由是最后手段,不是第一反应
你可以把黑洞路由理解成一条“把流量直接倒进垃圾桶”的路由,路由器收到目标是被攻击IP的包,不再转发,直接丢弃,它最大的价值是快,最大的代价是“这个IP上的所有服务一起消失”。
所以讨论启用条件,本质是在讨论一个问题:什么时候用局部不可用,换整体可用。 这个判断不能靠感觉,要靠阈值、边界和回滚预案。
据工信部公开的网络安全提示信息,近年来DDoS攻击的峰值和频次整体处于高位,流量型攻击仍然是机房和云上业务最常见的威胁之一,攻击来了先清洗、再限速、再封禁,这些是常规动作,黑洞路由排在它们后面。
什么情况下需要配置黑洞路由:五个硬条件
攻击流量已经击穿清洗和限速
清洗设备有处理上限,链路也有带宽上限,当攻击流量持续超过清洗能力,或者清洗设备本身出现资源耗尽,继续把流量放进来,后果往往不是“慢一点”,而是同机房其他业务一起被拖下水,业内专家指出,清洗设备被打满时继续硬扛,常常会让整条上联链路拥塞,影响面从单个IP扩大到整个机房。
这时黑洞路由的作用是“断臂”:把被攻击IP从前置链路里摘出去,先保住链路和邻居。
被攻击IP可以被牺牲,业务有兜底
启用前要回答一个很具体的问题:这个IP上跑的是什么?如果是官网静态页、活动页、非核心API,且有多活入口、备用域名或负载均衡可以切走,牺牲它风险可控,如果是核心支付域名、唯一登录入口、没有备用IP的数据库代理,黑洞路由一启用,业务直接归零。
可牺牲边界必须落到IP和端口级别,而不是“大概不影响”。
回滚路径和观察窗口已经就位
黑洞路由不是配完就结束,启用前要写好回滚命令、回滚责任人、观察窗口和恢复顺序,比较稳妥的做法是:
- 先记录被黑洞的精确前缀,优先用/32,避免聚合前缀误伤
- 设置固定观察窗口,比如每5到10分钟看一次攻击流量和业务监控
- 攻击回落后分批撤销,不要一次性全放回来
- 撤销后继续观察链路质量和业务错误率
没有回滚预案的黑洞路由,等于把临时止血变成长期断网。
上游运营商或云平台确认联动
很多场景下,黑洞路由不是你在自己路由器上配一条静态路由就完事,而是要让上游帮你丢弃流量,这时需要确认上游是否支持RTBH,社区值是多少,工单怎么提,生效时效多长,不同运营商、不同云平台的社区值和联动流程不一样,不能拿A家的配置直接套B家。
上游没确认之前,本地配Null0只能丢自己出口的流量,打进来的大流量仍然会占满链路。
合规与客户告知完成
如果是IDC或云服务商,黑洞某个客户IP前要有服务条款依据和通知机制,至少要让客户知道“哪个IP被黑洞、为什么、预计多久、怎么恢复”,这不是流程形式,而是避免二次纠纷。
黑洞路由和防火墙封堵哪个好:先分清层级再谈启用条件
网络层黑洞解决“流量打进来”
黑洞路由工作在路由层,它不关心你是HTTP还是DNS,只要目标IP匹配就丢,优点是生效快、对设备性能消耗小、能扛住大流量,缺点也明显:这个IP上的所有协议、所有端口、所有业务一起中断。
应用层封堵解决“请求打进来”
防火墙、WAF、限速策略更精细,可以封某个端口、某个URL、某个频率特征,不影响同IP的其他服务,但它们的处理能力有限,遇到大流量型攻击,设备本身可能先被打满。
| 对比维度 | 网络层黑洞路由 | 防火墙/应用层封堵 |
|---|---|---|
| 作用对象 | 整个IP或前缀 | 端口、协议、URL、访问频率 |
| 生效位置 | 本地路由器或上游 | 边界防火墙、WAF、负载均衡 |
| 优点 | 丢弃快,保护链路 | 精细,误伤小 |
| 缺点 | 该IP全部服务中断 | 大流量可能击穿设备 |
| 适用场景 | 流量型DDoS、链路拥塞 | 应用层攻击、精准封禁 |
行业共识认为,能用精细封堵解决的问题,不应该直接上升到黑洞,黑洞路由的启用条件,应该是精细手段已经不够用,或者来不及用。
北京机房黑洞路由怎么启用:从工单到验证的实操路径
启用前先画清牺牲边界
在北京机房这类多线接入环境,先确认被攻击IP属于哪个业务、哪个VLAN、哪个上联,把IP、前缀长度、影响域名、备用入口、回滚责任人写进变更单。优先按/32黑洞单个IP,不要图省事黑洞整个网段。
配置与宣告的通用命令示例
本地丢弃可以用静态路由指向Null0,以文档示例IP 203.0.113.10为例:
# Cisco风格 ip route 203.0.113.10 255.255.255.255 Null0 # Linux ip route add blackhole 203.0.113.10/32
如果需要上游联动RTBH,按上游工单给出的社区值宣告被攻击前缀,下面只是格式示例,社区值必须以运营商确认为准:
route-map RTBH permit 10 set community 65000:666 router bgp 65000 network 203.0.113.10 mask 255.255.255.255
验证与回滚
启用后不要只看“业务恢复了没有”,要看三层:
- 路由层:
show ip route 203.0.113.10或ip route get 203.0.113.10,确认指向Null0或上游已丢弃 - 转发层:从外部执行
mtr 203.0.113.10,看丢包是否发生在预期节点 - 业务层:看备用入口的健康检查、DNS解析、负载均衡后端状态
回滚命令要提前准备好:
no ip route 203.0.113.10 255.255.255.255 Null0 ip route del blackhole 203.0.113.10/32
黑洞路由清洗攻击流量价格受哪些因素影响
黑洞路由本身通常不单独标价,真正产生费用的是联动清洗能力,询价时别只问“黑洞路由多少钱”,要问清五件事:
- 清洗带宽按峰值还是按保底计费
- 是否支持RTBH自动触发,还是只能人工工单
- 回滚时效和SLA怎么约定
- 按次计费还是包年包月
- 北京机房这类地域节点是否有额外链路成本
多数情况下,云清洗和运营商清洗的价格差异来自清洗带宽、触发方式和响应时效,不是“黑洞”这两个字本身。
黑洞路由配置后业务访问异常怎么排查
按顺序排查,别一上来就删路由:
- 确认黑洞前缀是否误用了聚合网段,导致同网段其他IP被连带丢弃
- 检查DNS是否仍把域名解析到被黑洞IP
- 检查负载均衡健康检查是否把备用节点也摘除
- 从外部用
mtr和traceroute确认丢包节点 - 查看上游BGP状态和社区值是否按工单生效
- 确认回滚命令执行后路由表是否真正撤销
- 对比攻击前后的链路利用率和业务错误率
如果异常只出现在某个端口,而ping得通,优先怀疑应用层封堵或健康检查,而不是黑洞路由本身。
Q&A:网络层黑洞路由作为最后手段的启用条件
黑洞路由启用后多久能恢复?
取决于攻击持续时间和回滚策略,常见做法是设置观察窗口,攻击流量回落后分批撤销,先恢复非核心入口,再恢复主入口,没有固定时长,只有明确的回滚条件。
黑洞路由会不会影响同网段其他IP?
按/32配置只影响单个IP;如果误用聚合前缀,会影响整个网段,行业共识认为,黑洞路由的误伤大多不是技术问题,而是变更时前缀写得太粗。
什么情况下绝对不该启用黑洞路由?
核心业务唯一入口、没有备用IP、上游未确认联动、回滚命令未验证时,都不该启用,在没有备用入口和回滚预案时启用黑洞路由,等同于把可用性问题从攻击者手里接过来自己制造。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/785369.html


