if-match community-filter命令用来设置一个基于团体属性过滤器的匹配规则。
undo if-match community-filter命令用来删除该匹配规则。
缺省情况下,没有配置基于团体属性过滤器的匹配规则。
if-match community-filter { basic-comm-filter-num [ whole-match ] | adv-comm-filter-num } &<1-16>
if-match community-filter comm-filter-name [ whole-match ]
undo if-match community-filter [ basic-comm-filter-num | adv-comm-filter-num ] &<1-16>
undo if-match community-filter [ comm-filter-name ]
| 参数 | 参数说明 | 取值 |
|---|---|---|
| basic-comm-filter-num | 基本团体属性过滤器号。 | 整数形式,取值范围是1~99。 |
| adv-comm-filter-num | 高级团体属性过滤器号。 | 整数形式,取值范围是100~199。 |
| whole-match | 完全匹配,即所有的团体都必须出现。仅对基本团体属性过滤器生效。 | - |
| comm-filter-name | 团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。 说明:
当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
应用场景
团体属性是BGP的私有属性,所以命令if-match community-filter仅对BGP路由有效。要使这个匹配条件生效需要配合使用命令ip community-filter定义团体属性过滤器。例如:
前置条件
在执行命令if-match community-filter命令之前,需要先通过ip community-filter命令配置团体属性过滤器。
先使用route-policy命令配置Route-Policy,才能配置if-match community-filter命令。
配置影响
根据路由的团体属性进行过滤,符合条件的路由被Permit,否则被Deny。
注意事项
在一个命令行中可以配置多个团体属性过滤器号,但最多不能超过16个。
whole-match只对其前面的一个团体过滤器号生效。当if-match community-filter中指定了多个过滤器,且要求每一个过滤器都必须完全匹配,则需要在每个过滤器后面增加whole-match,且仅对基本团体属性过滤器生效。
在引用community-filter之前,建议先创建对应的community-filter。缺省情况下,此命令不能引用不存在的community-filter。 如果在系统视图下配置了route-policy nonexistent-config-check disable命令,当此命令引用了不存在的community-filter时,则认为匹配成功。
# 设置一个基于团体属性过滤器1的匹配规则。
<sysname> system-view
[sysname] ip community-filter 1 permit 100:200
[sysname] route-policy test permit node 10
[sysname-route-policy] if-match community-filter 1
# 设置基于团体属性过滤器的完全匹配规则,完全匹配过滤器1、2。
<sysname> system-view
[sysname] route-policy test permit node 11
[sysname-route-policy] if-match community-filter 1 whole-match 2 whole-match
# 设置一个团体属性过滤器名称为aa的匹配规则。
<sysname> system-view
[sysname] route-policy test permit node 12
[sysname-route-policy] if-match community-filter aa