关于路由策略与ACL匹配时的注意事项
相关理论注意点:
1、如果定义了一个以上的Route-policy节点,Route-policy的各个节点中至少应该有一个节点的匹配模式是permit。当一个Route-policy用于路由信息过滤时,如果某路由信息没有通过任一节点,则认为该路由信息没有通过该Route-policy。当Route-policy的所有节点都是deny模式时,所有路由信息都不会通过该Route-policy。
2、如不指定if-match子句,则所有路由信息都会通过该节点的过滤。
规则详解
在实际工程中经常用到route-policy的情况,下面对route-policy和ACL的详细匹配规则做以说明:
一、 标准访问列表:
#
acl number 2000
rule 0 permit source 192.168.1.0 0.0.0.255
此类ACL用于route-policy时做前缀匹配,即路由条目和规则条目做 AND 运算,结果落在反掩码的包含范围之内的则匹配成功。
对于上述配置:192.168.1.0/24 192.168.1.0 /25 192.168.1.0/30 等均可匹配,但是192.168.1.0/16 等则匹配不成功。
二、 扩展访问列表:
#
acl number 3000
rule 0 permit ip source 192.168.1.0 0 destination 255.255.255.0 0
acl number 3001
rule 0 deny ip source 192.168.1.0 0 destination 255.255.255.0 0
此类ACL比较特殊,源和目的的掩码均要为0 。用于route-policy 是要做严格的匹配,即前缀要和source 匹配,前缀的掩码部分要和destination匹配。
对于上述配置3000来说,则只有192.168.1.0/24可与之匹配。此类列表和Route-policy配合可用于严格的匹配一条路由条目。
三、 permit+permit的route-policy
#
route-policy t1 permit node 10
if-match acl 3000
apply local-preference 1300
route-policy t1 permit node 20
对于route-policy的permit规则来说,凡是能够匹配ACL permit规则的条目就执行node 10</