两种社区列表的差别
community-list 用于匹配路由携带的社区值。standard 类型逐条列出具体值,适合少量明确编号的场景;expanded 类型用正则表达式匹配一整类值,适合按运营商前缀或业务段批量匹配。两者都通过 route-map 的 match community 引用,也可以用于删除匹配到的社区。
基本信息
| standard | 精确列出社区值,一条列表可含多个值 |
|---|---|
| expanded | 正则匹配,一条表达式覆盖一类值 |
| 引用方式 | route-map 下 match community <列表名> [exact-match] |
| 删除用法 | set comm-list <列表名> delete 删除命中的社区 |
| 华为对应 | community-filter basic(基本)与 advanced(高级) |
典型使用场景
- 按上游编号整体匹配:用 expanded 一条表达式覆盖某运营商的所有标签
- 对客户专属标签做精确匹配:用 standard 列出具体值避免误伤
- 剥离上游标签:用 comm-list delete 在转发前清理不适用社区的属性
- 多条件放行:一个 route-map 中同时引用多个列表,命中任一即成立
- 审计可读性:命名与业务语义一致,便于评审时快速理解策略意图
定义与引用
定义与引用
# standard:精确值,多个值之间为或关系
ip community-list standard CL-CUST1 permit 65001:100
ip community-list standard CL-CUST1 permit 65001:200
#
# expanded:正则匹配一类值
ip community-list expanded CL-UPSTREAM permit ^65100:.*$
ip community-list expanded CL-UPSTREAM permit ^65200:.*$
#
route-map RM-MATCH permit 10
match community CL-CUST1
set local-preference 120
!
show ip community-list
show ip community-list CL-CUST1匹配语义速查
| 写法 | 匹配条件 | 说明 |
|---|---|---|
| standard 单值 | 路由社区中包含该值即命中 | 最常用,语义清晰 |
| standard 多值 | 包含其中任意一个即命中 | 需要全部包含时加 exact-match |
| expanded 正则 | 任一正则命中即通过 | 注意锚点与转义,避免过度匹配 |
| exact-match | 社区集合与列表完全一致 | 用于严格约束,误配时会导致全不命中 |
验证匹配效果
验证匹配效果
# 查看列表定义
show ip community-list CL-CUST1
# 查看实际命中的路由与属性
show ip bgp 10.100.0.0/16
# 关注 Community 与 LocPrf 两列是否按预期变化
# 结合 route-map 命中计数判断过滤是否生效
show route-map RM-MATCH列表名称要能表达业务含义并集中维护:同一份社区编号表被多条策略引用时,改名或删除会波及多处。建议把编号规划表与设备配置放在同一份变更记录里管理。