首页/网络/BGP 与广域网速查/set community additive:追加而不是覆盖
路由过滤与重分发66 条

set community additive:追加而不是覆盖

route-map 中 set community 默认覆盖已有 community 值;加 additive 关键字追加,可保留上游标记(如 no-export)同时新增本域标记。

BGP 与广域网速查网络更新于 2026-10-13

覆盖还是追加

route-map 里的 set community 默认是覆盖语义:设置新值会把路由上已有的团体属性全部替换掉。加 additive 关键字之后变成追加,原有取值会被保留。这在入方向打标时很关键——上游的 no-export 之类标记一旦被覆盖,这条路由的可传播范围就跟着变了。

基本信息

命令set community <值> [additive]
默认行为覆盖路由上已有的团体值
additive在已有值之后追加,保留上游标记
典型用法入方向打标时保留上游标记
核对命令show ip bgp <前缀> 查看 Community 字段

典型使用场景

  • 入方向新增本域标记,同时保留上游的 no-export
  • 分级打标:按来源追加不同标记供下游策略使用
  • 排障「上游标记消失」:检查是否漏写 additive
  • 策略评审:明确每个 set community 是覆盖还是追加
  • 跨域对接:确认对端对团体属性的处理约定

示例与核对

示例与核对
route-map RM-IN permit 10
 set community 65001:100 65001:101 additive   # 追加标记,保留原有取值
!
show ip bgp 10.1.0.0/16 | include Community     # 核对最终团体集合
!
# 不加 additive 时:原有团体值会被整体替换

两种语义对照

写法效果风险
set community X覆盖已有值上游标记丢失
additive追加到已有值之后团体数量增长,需要控制规模
配合删除操作先删指定值再设置顺序不当会删错对象
漏写 additive 时上游的 no-export 等标记会被覆盖:路由的可传播范围随之改变,这类问题往往在对端出现异常路由时才被发现。
additive 的语义是追加标记,不是数值运算:把多个取值理解为相加,预期就会与实际结果不符。
团体值会随追加不断增长:建议在设计阶段就确定标记层级与数量上限,避免属性膨胀影响后续维护。
入方向打标建议放在策略靠前的位置:顺序不同会让后续判断建立在不同的标记集合上,结果差异很大。
定期清理无用团体值:长期追加会让属性列表越来越长,审计与排障都更费力。

易错点

  • 漏写 additive:上游标记被覆盖,路由属性与预期不符
  • 把 additive 当成数值运算:语义是追加标记,理解错误会导致策略失效
  • 无节制追加团体值:属性不断膨胀,后续策略难以维护
  • 删除与设置的顺序不当:先后次序不同结果完全不同,需按业务意图确认

数据来源与参考

  • Cisco: set community 命令参考
  • RFC 1997: BGP Communities Attribute
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌