华为 community-filter
华为 VRP 用 ip community-filter 匹配 BGP 团体属性,分两类:basic 按编号精确匹配一个或多个 aa:nn 值,advanced 支持正则,适合批量识别成组编号。它本身只负责匹配,真正生效要挂到 filter-policy 或 route-policy 里。团体属性常用来标记路由来源或意图,再在策略里按标记分别处理。
基本信息
| basic 写法 | ip community-filter basic <编号> permit <aa:nn> |
|---|---|
| advanced 写法 | ip community-filter advanced <编号> permit <正则> |
| 引用方式 | filter-policy community-filter import 或 route-policy 的 if-match |
| 编号空间 | basic 与 advanced 各自独立编号,引用时要分清类型 |
| 查看命令 | display ip community-filter 及指定编号 |
典型使用场景
- 按上游标记区分客户与对等来源的路由
- 批量匹配某一段团体编号(例如某运营商的编号段)
- 入方向按标记设置 LOCAL_PREF,实现来源区分处理
- 出方向按标记过滤,避免把内部标记泄露给对端
- 排查团体匹配未生效:确认引用的是 basic 还是 advanced 编号
定义、引用与查看
定义、引用与查看
ip community-filter basic 1 permit 65001:100 # 精确匹配单个团体值
ip community-filter advanced 2 permit ^65001:2[0-9]+$ # 匹配 65001:2xx 这一段
!
route-policy RP-IN permit node 10
if-match community-filter 2
apply local-preference 130 # 命中后按来源调整优先级
!
bgp 65001
ipv4-family unicast
peer 10.0.0.2 route-policy RP-IN import
!
display ip community-filter 2两类过滤器对比
| 类型 | 匹配方式 | 适用场景 |
|---|---|---|
| basic | 按编号精确匹配团体值 | 个别已知团体 |
| advanced | 用正则匹配团体编号 | 成组编号批量识别 |
| 引用 | route-policy 或 filter-policy | 只匹配不处理,需搭配动作 |
| 查看 | display ip community-filter | 核对编号与类型 |
basic 与 advanced 是两套独立编号空间:route-policy 引用编号时必须确认类型,引用错类型会匹配不到任何路由且不报错。
正则要加锚点:形如 ^65001:[0-9]+$ 的写法才能整体匹配;漏掉锚点会匹配到子串,把不该命中的团体一起放过。
团体是可选传递属性,对端可能改写或剥离:跨管理域依赖团体做策略之前,先与对端确认传递约定,否则策略会在域间静默失效。
出方向建议过滤内部标记:把内部团体属性发给对端既无实际意义,也容易暴露内部编号规划。