为什么ACL不能匹配指定的路由条目
它所匹配的对象是 IP 地址前缀,也就是路由条目。一个路由条目由目的网络地址〈也被称为 IP 前缀〉及掩码长度(也被称为前缀长度〉共同标识。使用 ACL 从一批路由中筛选出感兴趣的路由时,是无法指定被匹配对象的目的网络掩码长度的,但是 IP 前缀列表却可以做到,它除了能够指定被匹配对象的目的网络地址,还能指定目的网络掩码长度,从而实现对路由的精确匹配。
例如 :过滤掉 172.16.0.0/16 这条路由,您可能己经想到,使用 Route-Policy 可以解决这个问题。
acl 2000
rule deny source 172.16.0.0 0.0.0.0
rule permit
quit
route-policy hcnp permit node 10
if-match acl 2000
quit
ospf 1
import-route isis route-policy hcnp
ACL 只能用于匹配路由的目的网络地址,而对于目的网络掩码的匹配是无能为力的,因此目的网络地址为 172.16.0.0 的路由,无论目的网络掩码如何,都会被 ACL 规则 rule deny source 172.16.0.0 0.0 0.0 所匹配(例:172.16.1.0/24)
IP前缀列表
ip ip-prefix abcd index 10 permit 172.16.0.0 16
这条 IP 前缀列表的语句中指定了 IP 地址(1 72.1 6.0.0 )以及掩码长度(16)如此一来,该语句就精确地匹配了路由 172 .16.0.0/16 . IP 前缀列表除了能够精确匹配一条路由,还能够匹配 一组有规律的路由。
ip ip-prefix abcd index 10 greate-equal 24 less-equal 32
IP前缀列表匹配顺序
当一个 IP 前缀列表开始进行路由匹配时,将从序号最小的语句开始依序匹配,如果
路由不满足该语句中的条件,则继续匹配下一个语句。只要满足当前语旬,便不再继续
匹配后续的语句,被当前语句匹配住的路由,将根据该语句所定义的匹配模式 (Permit或
Deny) 判断是否被允许通过, Permit 为允许, Deny 为拒绝。另外,在 IP 前缀列表的
末尾隐含着一条拒绝所有的语句,因此一个对象若不满足任何一个语旬,则该对象被视
为不被该前缀列表允许通过。
举例
(1) ip ip-prefix aa index 10 permit 172.16.0.0 24
(2) ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24
(3) ip ip-prefix cc index 10 permit 172.16.0.0 16 greater-equal 24
(4) ip ip-prefix dd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30
(5) ip ip-prefix ee index 10 deny 172.16.0.0 30
ip ip-prefix ee index 20 permit 172.16.0.0 24
(6)ip ip-prefix ff index 10 permit 0.0.0.0 0 less-equal 32
(7) ip ip-prefix gg index 10 deny 172.16.0.0 30
应用场合
1、在路由策略中的应用
route-policy hcnp permit node 10
if-match ip-prefix abcd
2、在过滤策略中的应用
ospf 1
import-route rip
filter-policy ip-prefix abcd export rip