BGP社区属性发布与接收规则的核心是“先定义社区语义,再在出方向打标、入方向过滤”,两端社区编号和匹配逻辑必须对齐,否则标签传得过去、策略落不下来。
你完全可以把社区属性理解成路由的“便利贴”,贴纸本身不决定选路,真正决定选路的是接收端看到贴纸后执行的策略,很多配置问题不是BGP不通,而是贴纸贴了没发出去,或者发出去后接收端没认出来。
BGP社区属性发布与接收规则怎么配置:从语义表到策略链
社区属性到底解决什么问题
BGP本身只传可达性,社区属性给路由增加可携带的标记,标准社区是16位AS号加16位自定义值,格式常见为AS:NN,扩展社区容量更大,适合大AS号或更细分类,运营商常给客户路由打社区,用来标识来源、线路类型、优化等级,企业侧接收后,可以按社区调整Local Preference、MED或做过滤。
实操上先做一张社区语义表,不要边配边想,表里至少写清楚:社区值、含义、发布端、接收端动作、是否允许透传,行业共识认为,社区编号规划应先于策略编写,否则后期变更很容易冲突。
发布规则:出方向打标的三条实操路径
发布规则的关键动作是“匹配路由、设置社区、允许发送”,以Cisco IOS为例,常见路径如下:
ip prefix-list PL-CUST seq 10 permit 203.0.113.0/24 route-map EXPORT permit 10 match ip address prefix-list PL-CUST set community 65001:100 additive router bgp 65001 neighbor 198.51.100.1 send-community both neighbor 198.51.100.1 route-map EXPORT out
华为VRP对应思路:
ip ip-prefix PL-CUST index 10 permit 203.0.113.0 24 route-policy EXPORT permit node 10 if-match ip-prefix PL-CUST apply community 65001:100 additive bgp 65001 peer 198.51.100.1 route-policy EXPORT export peer 198.51.100.1 advertise-community
要点列表:
additive很关键,表示追加社区而不是覆盖原社区。- 发送端必须显式允许社区传递,Cisco常用
send-community both,华为常用advertise-community。 - 匹配顺序按前缀列表或策略节点走,先精确后宽泛,避免把不该打标的路由带上社区。
- 发布前用
show ip bgp ... community或华为display bgp routing-table community验证。
接收规则:入方向过滤与动作绑定
接收端不要“看到社区就信任”,先建社区过滤器,再绑定策略动作,最后应用到邻居入方向,Cisco示例:
ip community-list standard CUST-100 permit 65001:100 route-map IMPORT permit 10 match community CUST-100 set local-preference 200 route-map IMPORT deny 20 router bgp 65001 neighbor 198.51.100.1 route-map IMPORT in
华为示例:
ip community-filter basic CUST-100 index 10 permit 65001:100 route-policy IMPORT permit node 10 if-match community-filter CUST-100 apply local-preference 200 route-policy IMPORT deny node 20 bgp 65001 peer 198.51.100.1 route-policy IMPORT import
接收规则要关注三点:
- 默认动作要显式,未匹配社区的路由是拒绝还是降低优先级,必须在策略末尾写清楚。
- 精确匹配与包含匹配要区分,Cisco的
match community ... exact和华为的匹配模式不同,写错会把多条社区一起放行。 - Local Preference默认值100,设置高于100通常用于优选,低于100通常用于降级,改之前先确认全网选路习惯。
| 规则环节 | 发布端重点 | 接收端重点 | 常见验证命令 |
|---|---|---|---|
| 社区定义 | 标准社区或扩展社区选型 | 社区过滤器编号与语义表一致 | show ip community-list |
| 策略匹配 | 前缀列表精确匹配 | 社区匹配精确或包含 | show route-map |
| 属性动作 | set community additive |
set local-preference或过滤 |
show ip bgp community |
| 传递控制 | send-community both |
入方向策略应用 | display bgp peer |
华为与思科BGP社区属性配置区别在哪里
两者思路一致,命令和默认行为有差异,对比表如下:
| 对比项 | 思科IOS | 华为VRP | 实操提醒 |
|---|---|---|---|
| 发送社区 | neighbor x send-community both |
peer x advertise-community |
不配就可能只传标准或不传 |
| 社区过滤器 | ip community-list standard |
ip community-filter basic |
名称和索引写法不同 |
| 策略绑定 | route-map ... in/out |
route-policy ... import/export |
方向别写反 |
| 追加社区 | set community ... additive |
apply community ... additive |
覆盖原社区会丢标签 |
业内专家指出,跨厂商对接时最容易出问题的不是社区值,而是“发送端认为已经发了,接收端过滤器却按扩展社区匹配”,所以对接前要交换社区清单和匹配示例,别只交换AS号。
跨地域多线机房BGP社区属性怎么规划
跨地域多线机房常见华东电信、华南联通、华北移动等多出口,社区规划建议按“区域+线路+用途”分层,标准社区只有16位自定义值,空间有限,可用多个AS号段或扩展社区,示例语义:
65001:100华东电信出口65001:200华南联通出口65001:900备份线路65001:1000不允许透传到其他区域
发布规则按出口线路打标,接收规则按社区调整Local Preference,跨地域场景要防社区泄漏:在区域边界路由上过滤未定义社区,避免A地域标签传到B地域后误优选,近年来多线机房变更频繁,社区表最好用文档版本管理,至少记录“谁在哪个邻居上打了什么标”。
中小企业出口BGP社区属性接收规则场景怎么落地
中小企业常见单出口或双出口,上游会提供社区列表,落地步骤:
- 向上游索取社区语义和示例路由,确认标准社区还是扩展社区。
- 建社区过滤器,只放行已定义社区。
- 入方向策略按社区设置Local Preference,例如主线路
200、备线路150。 - 未匹配社区的路由统一降级或拒绝,避免上游私加标签影响选路。
- 变更后抓取
show ip bgp neighbor x advertised-routes和接收路由表核对。
BGP社区属性配置服务价格与自建成本怎么权衡
BGP社区属性配置服务价格没有统一标准,通常按线路数量、策略复杂度、变更次数和人天计费,跨地域多线、跨厂商对接、扩展社区场景报价更高,自建成本主要是人力、验证和变更风险,判断逻辑很简单:
- 策略条目少、变更不频繁,自建更可控。
- 多出口、多地域、频繁调整,买配置服务或运维支持更省事。
- 无论自建还是外包,社区语义表和回滚脚本必须留在自己手里。
BGP社区属性发布与接收规则Q&A
BGP社区属性接收端看不到是什么原因?
先查发送端是否允许发送社区,再查中间策略是否删除社区,Cisco看show ip bgp neighbors x advertised-routes,华为看display bgp peer x advertised-routes,如果发送端有社区、接收端没有,重点查入方向策略和社区过滤器匹配模式。
标准社区和扩展社区怎么选?
标准社区适合AS:NN且AS号在16位范围内的场景,大AS号、需要更细分类或运营商要求时用扩展社区,配置时发送端要允许扩展社区传递,例如Cisco用send-community both,华为用advertise-community,接收端过滤器也要按扩展社区语法匹配。
发布规则里additive为什么不能省?
additive决定追加还是覆盖,省略后可能把路由原有社区冲掉,接收端基于原社区的策略全部失效,接收端用精确匹配时,追加后的社区集合也要和过滤器预期一致。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/792429.html


