演示:标准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,如需转载请自行联系原作者

相关文章
|
11月前
|
缓存 负载均衡 应用服务中间件
nginx的配置文件详解
本文详细解释了nginx配置文件中的关键指令和区块,如http、server、location、upstream、events等,并通过一个示例配置文件展示了如何设置HTTP服务器、gzip压缩、反向代理、URL重写、错误页面和负载均衡等,强调了配置的灵活性和实际应用。
651 4
|
9月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
908 9
|
SQL 分布式计算 大数据
一张图,详解大数据技术架构
一张图,详解大数据技术架构
|
NoSQL 安全 Java
nicelock--一个注解即可使用Redis分布式锁!
Nicelock的引入为分布式系统中的资源同步访问提供了一个简单高效和可靠的解决方案。通过注解的方式,简化了锁的实现和使用,使开发人员可以将更多精力专注于业务逻辑的实现,而不是锁的管理。此外,Nicelock在保持简单易用的同时,也提供了足够的灵活性和可靠性,满足了不同应用场景下对分布式锁的需求。
166 1
|
数据采集 大数据 数据挖掘
为什么说爬虫很适合做大数据业务
**摘要:** 在数据驱动的时代,爬虫技术成为大数据业务的关键,因其高效收集结构化与非结构化数据、实时更新信息、多样化数据源、定制化抓取、降低成本及辅助深度决策的优势。爬虫的自动化与灵活性满足了大数据分析对时效性、多样性和精准性的要求,助力企业在市场竞争中占据优势。随着技术进步,其在大数据领域的角色将更加重要。
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
805 3
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的二手物品交易平台的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的二手物品交易平台的详细设计和实现
156 0
|
存储 人工智能 运维
2024年IDC行业的深度挖掘:机遇、挑战与未来展望
国际连锁超市借助云计算应对节日促销的海量数据挑战,展示了IDC行业的重要性。作为数字经济基石,IDC负责数据存储、处理和传输,受益于云计算、大数据和AI的发展。政策支持和市场机遇驱动IDC行业迅速扩张,但同时也面临能源效率、数据安全和环保的考验。未来趋势包括AI自动化、量子计算、边缘计算和绿色数据中心,强调数据安全、智能运维和可持续发展。超大规模数据中心和绿色技术将是行业重点,确保数据处理能力与环境保护并行不悖。
690 0
2024年IDC行业的深度挖掘:机遇、挑战与未来展望
|
SQL 监控 Java
nacos常见问题之dubbo+nacos+springboot3的native打包成功后运行出现异常如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
886 2
|
JSON Kubernetes 网络架构
Kubernetes CNI 网络模型及常见开源组件
【4月更文挑战第13天】目前主流的容器网络模型是CoreOS 公司推出的 Container Network Interface(CNI)模型