ip as-path-filter命令用来增加一个AS路径过滤器(AS_Path Filter)表项。
undo ip as-path-filter命令用来删除指定的AS路径过滤器。
缺省情况下,系统中没有创建AS路径过滤器。
ip as-path-filter { as-path-filter-number | as-path-filter-name } { deny | permit } regular-expression
undo ip as-path-filter { as-path-filter-number | as-path-filter-name } [ { deny | permit } regular-expression ]
| 参数 | 参数说明 | 取值 |
|---|---|---|
| as-path-filter-number | 指定的AS路径过滤器号。 | 整数形式,取值范围是1~256。 |
| as-path-filter-name | 指定的AS路径过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。 说明:
当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
| deny | 指定AS路径过滤器的匹配模式为拒绝。 | - |
| permit | 指定AS路径过滤器的匹配模式为允许。 | - |
| regular-expression | AS路径正则表达式。 | 字符串形式,取值范围是1~255。 |
应用场景
AS路径过滤器使用正则表达式来定义匹配规则。配置了AS路径过滤器后,缺省情况下,RM会立即通知各个协议应用该过滤器进行过滤。
AS_Path属性是BGP的私有属性,所以该过滤器主要应用于BGP路由的过滤:
直接应用该过滤器,例如peer as-path-filter。
作为Route-Policy中的匹配条件,例如if-match as-path-filter filter-example。
配置影响
在同一个过滤器编号下,可以定义多条规则(Permit或Deny)。
在匹配过程中,这些规则之间是“或”的关系,即只要路由信息通过其中一项规则,就认为通过由该过滤器编号标识的这组AS_Path过滤器。
后续任务
如果需要延迟过滤器的生效时间,需使用命令route-policy-change notify-delay配置延迟生效时间。
使用display ip as-path-filter可查看该过滤器的详细配置信息。
注意事项
AS路径过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤。
如果该as-path-filter已经被其他命令引用,建议先取消引用该as-path-filter的配置,再通过undo ip as-path-filter命令删除as-path-filter配置。
# 创建序号为1的AS路径过滤器,允许AS_Path中以10开始的路由通过。
<sysname> system-view
[sysname] ip as-path-filter 1 permit ^10
# 创建序号为2的AS路径过滤器,允许AS_Path中包含20的路由通过。
<sysname> system-view
[sysname] ip as-path-filter 2 permit [ 20 ]
# 创建序号为3的AS路径过滤器,不允许AS_Path中包含30的路由通过。
<sysname> system-view
[sysname] ip as-path-filter 3 deny [ 30 ]
[sysname] ip as-path-filter 3 permit .*