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

简介:

演示目标:

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完成上述配置后(将ACL应用到R2的e1/2接口的入方向),在R1上发起对路由器R2上6个环回接口的ping,您会发现ACL没有生效,无论是奇数还是偶数子网都能被R1所ping通,难道是ACL书写形式错了吗?

不是的,发生这个问题的根本原因:注意理解标准ACL的特性,它只能基于通信源地址进行过滤,而在路由器R1上发起对R2上各个奇偶子网的Ping时,通信的源地址为192.168.2.1/24,所以access-list 1 permit172.16.2.0 0.0.254.255根本对源地址不生效。正确的做法应当如下所示:


首先删除在路由器R2上的ACL

R2(config)#no access-list 1

R2(config)#interface e1/2

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

R2(config-if)#exit


然后在路由器R1上配置ACL并应用

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

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

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

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

R1(config)#interface e1/2

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

R1(config-if)#exit


为什么需要在R1的E1/2的进入方向上应用ACL

道理后简单,当你在R1上发起对R2上各个奇偶子网的ping时,ping的回程流量(从R2各个奇偶子网返回到R1的流量),通信的源地址正是172.16.X.0,此时不正好匹配access-list 1 deny 172.16.1.0 0.0.254.255和access-list1 permit 172.16.2.0 0.0.254.255所定义的规则吗。所以可以得到如下图10.11所示,可看出成功的拒绝了奇数位子网的通信;允许了偶数位子网的通信。


095235650.png



本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1321484,如需转载请自行联系原作者

相关文章
|
Java 关系型数据库 MySQL
maven项目中添加MySql依赖失败(以及maven的安装到maven项目的使用过程)
maven项目中添加MySql依赖失败(以及maven的安装到maven项目的使用过程)
4500 1
maven项目中添加MySql依赖失败(以及maven的安装到maven项目的使用过程)
|
8月前
|
并行计算 PyTorch 调度
大模型推理显存优化系列(4):eLLM-大模型推理中的弹性显存管理和优化
本文简要介绍eLLM相关技术挑战、总体设计和初步性能评估
|
关系型数据库 MySQL 数据库
MySQL基本操作入门指南
MySQL基本操作入门指南
711 0
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
1392 4
|
Java 关系型数据库 MySQL
java入门项目:学生管理系统(进阶版超详细搭建)
学生管理系统是一个典型的信息管理系统,熟悉并掌握其需求和设计思想对于理解和学习数据库操作和Java编程有非常大的帮助。 分为学生端和教师端 1. 学生端的功能分为登录、注册、查看个人信息、查看成绩、申请修改信息 2. 教师端的功能分为登录、注册、查看学生信息、修改学生信息、删除学生信息、添加学生信息、查看学生申请的修改信息
13387 3
|
算法
简单的KMP的next、nextval数组求解办法(存档自己用来复习)
简单的KMP的next、nextval数组求解办法(存档自己用来复习)
1503 2
uniapp实战 —— 可滚动区域 scroll-view (自适配高度,下拉刷新)
uniapp实战 —— 可滚动区域 scroll-view (自适配高度,下拉刷新)
3397 0
|
应用服务中间件 测试技术 nginx
Nginx系列教程(03) - 外网映射(NatApp)
Nginx系列教程(03) - 外网映射(NatApp)
602 0
|
网络协议 安全 机器人
VMware标准虚拟交换机和分布式交换机
VMware标准虚拟交换机和分布式交换机
885 0
An工具介绍之形状工具及渐变变形工具
An工具介绍之形状工具及渐变变形工具
3819 0
An工具介绍之形状工具及渐变变形工具