公认 Community 是什么
公认 community 是 RFC 定义的一组固定语义标签:贴上之后,设备按约定自动限制发布范围或触发特定行为。它们不需要接收方额外配置语义,因为行为是标准化的,但在多厂商环境中各实现的支持程度与默认处理可能不同,跨域使用前应与对端确认。
基本信息
| 属性类型 | 标准 community(可选传递) |
|---|---|
| 书写方式 | 可直接写名称,如 no-export,也可写等值十六进制 |
| 生效位置 | 通常配合 route-map 设置,在接收方按语义生效 |
| 发布前提 | 邻居需开启 send-community |
| 常见用法 | 限制发布范围、请求黑洞丢弃、标记不向对等体发布 |
| 核对命令 | show ip bgp <前缀> 的 Community 列 |
公认值与行为
| 名称 | 值 | 行为 |
|---|---|---|
| NO_EXPORT | 0xFFFFFF01 | 不向联邦外 eBGP 对等体发布 |
| NO_ADVERTISE | 0xFFFFFF02 | 不向任何对等体(含 iBGP)发布 |
| NO_EXPORT_SUBCONFED / LOCAL_AS | 0xFFFFFF03 | 不向联邦内其他子 AS 发布 |
| NOPEER | 0xFFFFFF04 | 不向对等体(非客户或非传输)发布 |
| BLACKHOLE | 65535:666 | 触发 RTBH 丢弃(RFC 7999) |
| INTERNET | 0 | 语义上可向任何对等体发布,属默认标注 |
典型使用场景
- 临时限制某个前缀不外发:打上 no-export 观察影响面
- 应急压制攻击流量:对接上游约定用 BLACKHOLE 社区触发丢弃
- 区分客户与对等体:用 NOPEER 控制发布对象集合
- 内部传递时避免外泄:用 no-advertise 让路由止步于本机
- 巡检核对:查看关键前缀是否携带了预期标签
设置与核对
设置与核对
route-map RM-NOEXP permit 10
set community no-export additive # 追加公认社区,保留既有标签
route-map RM-NOEXP permit 999
!
router bgp 65001
neighbor 10.0.0.2 send-community
neighbor 10.0.0.2 route-map RM-NOEXP out
!
show ip bgp 10.1.1.0/24 | include Community # 核对标签
show ip bgp community no-export # 筛选携带该标签的路由公认 community 的行为由各厂商按 RFC 实现,跨域使用前与对端确认其处理方式,尤其是黑洞与 NOPEER 这类会对转发产生直接影响的标签。
no-export 限制的是出 AS 发布,不影响本 AS 内的 iBGP 传播;若希望完全不外传只能用 no-advertise。
使用前的核对清单
- 确认对端是否支持该社区,尤其是黑洞与 NOPEER 这类会影响转发的标签
- 确认本机是否开启了 send-community,否则标签无法传出
- 确认标签是追加还是覆盖,避免把既有标签清掉
- 记录变更前的社区列表,便于快速回退
- 变更后核对状态与实际发布范围,而不是只看配置