属性为什么发不出去
COMMUNITY 是 BGP 的可选传递性属性,本端用 set community 打了标记,不代表对端就收得到:多数平台默认不向邻居发送标准团体属性,需要显式开启 send-community。标准团体(32 位)与扩展团体(64 位)通常是两个独立开关,只开其一会造成「部分团体可见」的现象。Cisco 用 neighbor x send-community [standard|extended|both],华为 VRP 用 peer x advertise-community 与 advertise-ext-community。
基本信息
| 默认行为 | 标准团体默认不发送(各厂商略有差异,需实测确认) |
|---|---|
| 配置位置 | neighbor 或地址族下,按邻居生效 |
| 类型划分 | 标准团体与扩展团体通常是两个独立开关 |
| 华为 VRP | advertise-community 与 advertise-ext-community |
| 连带影响 | no-export、no-advertise 等知名团体同样受发送开关约束 |
| 核对方法 | 对端 show ip bgp <前缀> 看团体,或抓包看路径属性 |
典型使用场景
- 跨域策略协同:用团体在域间传递标记,如 no-export、客户或对等标记
- 排查「对端说收不到团体」:先查本端发送开关,再查对端是否过滤或删除
- 割接前验证:确认团体属性真的到了对端,而不是只在本地策略里生效
- 扩展团体场景:需要传 RT、流规则等扩展团体时,确认扩展开关同时开启
- 策略冒烟测试:按邻居逐个确认开关状态,避免只测了一条链路就上线
配置与核对
配置与核对
router bgp 65001
address-family ipv4 unicast
neighbor 10.0.0.2 send-community both # 标准+扩展一起发,也可只选 standard 或 extended
!
show ip bgp 10.1.0.0 # 本端路由上带哪些团体
show ip bgp neighbors 10.0.0.2 advertised-routes # 核对实际通告出去的内容开关状态与对端表现
| 场景 | 本端配置 | 对端表现 |
|---|---|---|
| 打了团体但没开开关 | set community 已配置 | 对端看不到任何团体,策略全部匹配不到 |
| 开了标准但需要扩展 | send-community standard | 扩展团体缺失,RT 与流规则类策略失效 |
| 需要传 no-export 等知名团体 | 未开开关 | 知名团体也传不出去,路由可能被错误地继续传播 |
| 只开标准却写了扩展策略 | send-community standard | 策略空匹配,选路结果与设计不符 |
「社区策略不生效」的第一检查点永远是传输开关:属性根本没发出去,对端再怎么写过滤器也没用。第二步才轮到检查对端是否用 community-list 做了过滤或删除。
发送开关是逐邻居的:同一条策略在 A 邻居生效、在 B 邻居不生效,最常见的原因就是 B 没开 send-community。做策略验收时按邻居逐个确认,不要只测一条链路。