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地址