ACL 不检查掩码,只检查网络部分

我有两个路由: 172.16.1.0/24 和 172.16.1.0/28。 当我在 EIGRP 中允许 172.16.1.0/24 时,如何才能拒绝 172.16.1.0/28?


A. 为了实现此目的,您需要使用如下所示的前缀列表:

router eigrp 100
       network 172.16.0.0
       distribute-list prefix test in   auto-summary
       no eigrp log-neighbor-changes
       !
       ip prefix-list test seq 5 permit 172.16.1.0/24

该列表只允许 172.16.1.0/24 前缀,因此拒绝 172.16.1.0/28。

注意: 在这种情况下,在 EIGRP 下使用 ACL 和分配列表不起作用。 这是因为 ACL 不检查掩码,只检查网络部分。 由于网络部分是相同的,当您允许 172.16.1.0/24 时,也就允许了 172.16.1.0/28。


实验证明:

基本配置如图所示,切记关闭自动汇总即可!现在来看R1的路由表

可以看到172.16.1.0/24和28的都学到了!
现在配置访问列表:

access-list 1 permit 172.16.1.0 0.0.0.255

access-list 1 permit 12.1.1.0 0.0.0.3

access-list 1 permit 23.1.1.0 0.0.0.3

fa0/0:ip access-group 1 in

再查看路由表发现/28的依然存在!!!


Gateway of last resort is not set


    23.0.0.0/30 is subnetted, 1 subnets

D       23.1.1.0 [90/30720] via 12.1.1.2, 00:03:29, FastEthernet0/0

    172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks

D       172.16.1.0/28 [90/158720] via 12.1.1.2, 00:03:29, FastEthernet0/0

D       172.16.1.0/24 [90/156160] via 12.1.1.2, 00:03:29, FastEthernet0/0

    12.0.0.0/30 is subnetted, 1 subnets

C       12.1.1.0 is directly connected, FastEthernet0/0

综上: ACL过滤的时候不检查掩码,只检查网络部分


扩展:

access-list 1 permit 192.168.1.0 这是匹配路由,此刻路由表中必须有192.168.1.0这条路由才行

access-list 1 permit 192.168.1.0 0.0.0.255这是匹配数据,匹配数据一定要加上反掩码,否则就是要匹配192.168.1.0这个源地址,而这个192.168.1.0又不是一个合法的IP地址


你可能感兴趣的:(acl,EIGRP常见问题)