AS_Path Filter的应用
华为:
在同一个过滤器编号下,可以定义多条过滤规则(permit或deny模式)。在匹配过程中,这些规则之间是“或”的关系,即只要路由信息通过其中一项规则,就认为通过由该过滤器编号标识的这组AS_Path过滤器。在下文中,将分不同的场景来对AS_Path过滤器的作用进行举例说明。
元字符 |
含义 |
示例 |
---|---|---|
. |
匹配除“\n”之外任何单个字符,包括空格。 |
.*表示匹配任意字符串,即AS_Path为任意,可以用来匹配所有路由。 说明:
通常定义了多个deny模式的ip as-path-filter子句之后,会定义一个ip as-path-filter as-path-filter-name permit .*子句,用于允许其他路由通过。 |
* |
之前的字符在目标对象中出现0次或连续多次。 |
参考上例。 |
+ |
之前的字符在目标对象中出现1次或连续多次。 |
65+表示6在AS_Path的首位,而5在AS_Path中出现一次或多次,那么:
|
| |
竖线左边和右边的字符为“或”的关系。 |
100|65002|65003表示匹配100、65002或65003。 |
^ |
之后的字符串必须出现在目标对象的开始。 |
^65表示匹配以65开头的字符串,那么:
|
$ |
之前的字符串必须出现在目标对象的结束。 |
65$表示匹配以65结尾的字符串,那么:
说明:
^$表示匹配空字符串,即AS_Path为空,通常用来匹配本地始发路由。 |
(xyz) |
一对圆括号内的正则表达式作为一个子正则表达式,匹配子表达式并获取这一匹配。圆括号内也可以为空。 |
100(200)+可以匹配100200、100200200、…… |
[xyz] |
匹配方括号内列出的任意字符。 |
[896]表示匹配含有8、9或6中任意一个字符。 |
[^xyz] |
匹配除了方括号内列出的字符外的任意字符(^号在字符前)。 |
[^896]表示匹配含有8、9或6这几个字符之外的任意一个字符。 |
[a-z] |
匹配指定范围内的任意字符。 |
[2-4]表示匹配2,3,4;[0-9]表示匹配数字0~9。
说明:
方括号内“[]”只能填写数字0到9。例如,如果需要匹配735~907,则需要写成(73[5-9]|7[4-9][0-9]|8[0-9][0-9]|90[0-7])。 |
[^a-z] |
匹配不在指定范围内的任意字符。 |
[^2-4]表示匹配除2,3,4外的其他字符;[^0-9]表示匹配除数字0~9外的其他字符。 |
_ |
匹配一个符号,包括逗号、左大括号、右大括号、左括号、右括号和空格,在表达式的开头或结尾时还可作起始符、结束符(同^ ,$)。 |
|
\ |
转义字符。 |
AS_Confed_Sequence是用“(” 、“)”表示的,“(” 、“)”在正则表达式中是特殊字符,有特殊用处,所以对于这种特殊字符,可以使用“\”来去除其特殊意义进行匹配。例如:
同理,AS_Confed_Set使用的“[”、“]”,AS_Set使用的“{”、“}”也都可以使用“\”符号来去除这些特殊符号的特殊意义。 |
在同一个过滤器编号下,可以定义多条过滤规则(permit或deny模式)。在匹配过程中,这些规则之间是“或”的关系,即只要路由信息通过其中一项规则,就认为通过由该过滤器编号标识的这组AS_Path过滤器。在下文中,将分不同的场景来对AS_Path过滤器的作用进行举例说明。
AS路径过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤。
如果该as-path-filter已经被其他命令引用,建议先取消引用该as-path-filter的配置,再通过undo ip as-path-filter命令删除as-path-filter配置。
本文来自博客园,作者:开源侠,转载请注明原文链接:https://www.cnblogs.com/cyj22/p/17454013.html
微信公众号:青衫换酒吃