黑洞社区怎么用
遭受流量攻击时,最快的手段之一是让上游把攻击目标前缀丢弃。RFC 7999 为此定义了黑洞标记:标准社区 65535:666。本地把受攻击前缀打上该标记并通告出去,上游或对端匹配到这个标记后,将其下一跳指向一条丢弃路由,流量在骨干边缘就被丢掉。整套动作的前提是上下游提前约定好标记语义与执行方式。
基本信息
| 标记值 | 65535:666(RFC 7999 定义的黑洞社区) |
|---|---|
| 本地动作 | route-map 匹配目标前缀后 set community 65535:666 additive |
| 远端动作 | 匹配该标记后把下一跳指向丢弃路由(实现方式因平台不同) |
| 传播要求 | 标记需能到达执行丢弃的设备,且其策略允许该前缀 |
| 前置条件 | 上下游提前约定标记语义、前缀过滤与生效范围 |
典型使用场景
- 遭受分布式攻击:快速让上游丢弃攻击目标前缀,保护链路与设备
- 服务下线期:临时把某前缀黑洞,避免流量涌入停用设备
- 演练与验证:与上游联合演练,确认标记下发后丢弃真的生效
- 应急手册:把打标命令与联系人写进预案,缩短响应时间
- 范围控制:仅对确需丢弃的前缀打标,避免误伤同网段其他业务
本地打标示例
本地打标示例
ip community-list standard BH permit 65535:666
!
route-map RM-BH permit 10
match ip address prefix-list PL-ATTACK
set community 65535:666 additive
!
router bgp 65001
network 203.0.113.0 mask 255.255.255.0 route-map RM-BH
!
show ip bgp 203.0.113.0/24 | include Community落地环节核对
| 环节 | 核对内容 | 异常表现 |
|---|---|---|
| 打标 | 受攻击前缀是否带上 65535:666 | Community 行无该值,上游什么都不会做 |
| 传播 | 标记是否随前缀到达执行侧 | 出向策略剥离社区导致标记丢失 |
| 执行 | 对端是否按约定执行丢弃 | 仅打标不执行时,流量照旧到达目标 |
| 回收 | 攻击结束后是否撤销标记 | 忘记回收会让正常流量持续被丢弃 |
打标只是「请求信号」:真正的丢弃动作由接收侧设备执行。单侧配置不会自动生效,且一旦打错前缀,影响是业务直接不可达,因此必须限定范围并准备好回收步骤。