Skip to main content

 路由器设置 > 新闻资讯 >

演示:标准ACL的配置、及使用技巧、和相关局限

2013-11-08 00:59 浏览:

演示目标:

n使用标准ACL来过滤网络的访问流量。

n理解标准ACL在应用中的限制。

n使用标准ACL过滤“奇数”位子网。

演示环境:如下图10.6所示的演示环境

094220199.png

 

演示背景:在演示环境中,请设计使用标准ACL拒绝通信源子网192.168.1.0对服务器A所在子网的任何访问,但是允许访问服务B和C所在的子网;然后思考将标准ACL应用于该演示环境中哪台路由器的具体接口上。

演示步骤:

第一步:完成路由器R1与R2的所有基本配置,包括为各个接口配置IP地址及启动路由协议,要求网络中的各个子网络都能相互Ping通。

 

第二步:使用标准ACL的配置,具体配置如下所示,首先尝试将配置的ACL应用

 

 

在路由器R1的ACL配置:

R1(config)#access-list 1 deny 192.168.1.0 0.0.0.255

* access-list 1指示ACL的列表号为1,它的取值范围是1-99(表示基于IP的标准访问控制列表),deny 192.168.1.0 0.0.0.255指示拒绝源子网是192.168.1.0;0.0.0.255是该子网对应的反掩,关于反掩的作用在第六章理解并实施路由技术中的OSPF部分有详细描述,这里不再重复描述。

R1(config)#access-list 1 permit any

该条配置指令是允许所有的其它源地址的通信,如果没有该指令,在ACL列表1中就存在一条默认的拒绝一切的语句(access-list 1 deny any)。

R1(config)#interface ethernet 1/0

R1(config-if)#ip access-group 1 in

该访问控制列表1被应用到路由器R1的E1/0接口的进入方向上。

 

完成上述配置后,在主机A(192.168.1.2)上测试与服务器A、B、C的通信,如下图10.7所示ping不通任何一台服务器子网,这明显不满足背景需求,因为背景需求是设计使用标准ACL拒绝通信源子网192.168.1.0对服务器A所在子网的任何访问,但是允许访问服务B和C所在的子网;那么是什么原因导致这个现象的发生?

因为使用的是标准访问控制列表,标准访问控制列表只能匹配源地址,所以应该将标准的访问控制列表应用于距离目标最近的位置,如果将ACL 1 应用于距离控制源最近的位置,这将导致192.168.1.0子网无法访问其它的任何网络,再次强调标准的ACL只能匹配源地址。

 

094625134.png

第三步所以现在将ACL 1 从路由器R1上删除,并将ACL 1 配置在距离目标最近的接口上(路由器R2的E1/0),关于删除ACL 1的配置如下:

 

在路由器R1上删除ACL1的配置:

R1(config)#no access-list 1

R1(config)#interface e1/0

R1(config-if)#no ip access-group 1 in

R1(config-if)#exit

 

在距离控制目标最近的位置(路由器R2的E1/0)配置并应用ACL

R2(config)#access-list 1 deny 192.168.1.0 0.0.0.255

R2(config)#access-list 1 permit any

R2(config)#interface e1/0

R2(config-if)#ip access-group 1 out *在路由器R2的E1/0接口的出方向上应用ACL 1。

R2(config-if)#exit

 

完成上述配置后,再次在主机A(192.168.1.2)上完成对服务器A、B、C的连通性测试,这次的测试如下图10.8所示,达到了背景需要的要求,此时,主机A无法与服务器A通信,这是要求的目标,但是它可以与服务器B和C正常通信。

094734799.png

第四步现在再次删除路由器R2上的ACL配置与接口应用,并在路由器R2上配置6个环回接口IP地址,分别是172.16.1.1/24......172.16.6.1/24;用于模拟6个不同的子网,并将这6个子网公告到RIP路由进程中,确保路由器R1能学习并ping通这6个子网,具体的配置如下:

 

删除路由器R2上的ACL配置与接口应用:

R2(config)#no access-list 1

R2(config)#interface e1/0

R2(config-if)#no ip access-group 1 out

 

在路由器R2上配置6个环回子网:

R2(config)#interface loopback 1

R2(config-if)#ip address 172.16.1.1 255.255.255.0

R2(config)#interface loopback 2

R2(config-if)#ip address 172.16.2.1 255.255.255.0

R2(config)#interface loopback 3

R2(config-if)#ip address 172.16.3.1 255.255.255.0

R2(config)#interface loopback 4

R2(config-if)#ip address 172.16.4.1 255.255.255.0

R2(config)#interface loopback 5

R2(config-if)#ip address 172.16.5.1 255.255.255.0

R2(config)#interface loopback 6

R2(config-if)#ip address 172.16.6.1 255.255.255.0

 

将上述6个子网公告到RIP路由进程中:

R2(config)#router rip

R2(config-router)#network 172.16.0.0

R2(config-router)#exit

 

第五步:关于路由器R1成功ping通路由器R26个环回接口的状态如下图10.9所示在没有任何ACL控制策略情况下路由器R1应该能成功的ping通路由器R2上的6个环回接口。

 

094840497.png

第六步:现在要求在路由器R2上使用标准ACL来拒绝172.16.X.0/24(X表示奇数位子网)的通信;但是允许172.16.Y.0/24(Y表示偶数位子网)的通信,要求匹配奇数位子网只使用一条ACL语句;要求匹配偶数位子网只使用一条ACL语句,这样做的目标是为了提高ACL的效率,那么现在的问题是怎么一条ACL语句来匹配奇数位或者是偶数位子网,如下图10.10所示,可看出奇数位子网的十进制转换成二进制时,二进制的最后一位是1;偶数位二进制的最后一位是0;注意:此时使用反码11111110(254)去匹配1就能匹配上奇数位子网;匹配2就能匹配偶数位子网;为什么反码是11111110?因为反码的1表示不关心的位;0表示关心的位;而识别奇偶子网,只需要关心8个二进制位的最后一位,所以,只需要反码的最后一位为0,就能成功的完成匹配。

094954764.png

 

在路由器R2拒绝奇数位子网;允许偶数位子网的ACL配置:

R2(config)#access-list 1 deny 172.16.1.0 0.0.254.255

使用一条ACL语句拒绝奇数位子网的ACL配置

R2(config)#access-list 1 permit 172.16.2.0 0.0.254.255

使用一条ACL语句允许偶数位子网的ACL配置

R2(config)#interface e1/2

R2(config-if)#ip access-group 1 in * 在路由器R2上的E1/2接口的入方向上应用ACL。

R2(config-if)#exit

 

当在路由器R2完成上述配置后,可以在R1上发起对路由器R2上6个环回接口的ping,如下图10.11所示,可看出成功的拒绝了奇数位子网的通信;允许了偶数位子网的通信。

095235650.png