HCIA项目实践---ACL访问控制列表相关知识和配置过程
十 ACL访问控制列表
1 策略的概念
在网络连通之后, 把所有为了追求控制而实现的技术都叫策略
2 访问控制
在路由器流量流入或者流出的接口上,匹配流量,执行相应的动作。(流量流入或者流出的接口并不是一个固定的概念而是一个相对的概念)
用permit允许,deny表示拒绝。
3 匹配感兴趣流
ACL可以和其他的技术或协议结合使用,ACL只负责匹配流量,而其他技术来完成执行的动作。
4 ACL的匹配规则
自上而下,逐一匹配,如果没有匹配上,则继续向下匹配;如果匹配上了,就执行对应的动作,不再向下匹配。
5 不同厂商的匹配规则不同
思科设备:在ACL列表末尾隐含一条拒绝所有的规则。(写允许命令方便)
华为设备:在ACL列表末尾没有隐含规则。(写拒绝命令方便)
6 ACL的分类

基础ACL:仅关注数据包的源IP地址
基础ACL的位置原则:因为它只关心源IP,所以,应该放在越靠近目标的位置,避免对其他网段造成误伤。
高级ACL:不仅关注数据包中的源IP地址,还关注目标IP地址、协议以及端口号。
高级ACL列表的位置原则:因为高级ACL是精准匹配,所以不会出现“误伤”的情况,越靠近源越好,因为可以节约链路资源。
7 ACL的配置
(1)实验环境如下图所示:

用于实现需求一和需求二的拓扑图
A:配置路由器的IP地址
# 配置R1接口的IP地址<Huawei>sys[Huawei]sysname r1[r1]int g 0/0/0[r1-GigabitEthernet0/0/0]ip add 192.168.1.1 24[r1-GigabitEthernet0/0/0]int g 0/0/1[r1-GigabitEthernet0/0/1]ip add 192.168.2.1 24[r1-GigabitEthernet0/0/1]#配置R2接口的IP地址<Huawei>sys [Huawei]sysname r2[r2]int g 0/0/0[r2-GigabitEthernet0/0/0]ip add 192.168.2.2 24[r2-GigabitEthernet0/0/0][r2-GigabitEthernet0/0/0]int g 0/0/1[r2-GigabitEthernet0/0/1]ip add 192.168.3.1 24 [r2-GigabitEthernet0/0/1]
B:配置电脑的IP地址
PC1: 192.168.1.2 掩码:255.255.255.0 网关:192.168.1.1PC2: 192.168.1.3 掩码:255.255.255.0 网关:192.168.1.1PC3: 192.168.3.2 掩码:255.255.255.0 网关:192.168.3.1PC4: 192.168.3.3 掩码:255.255.255.0 网关:192.168.3.1
C:现在需要网络能通(可以写静态,RIP或者OSPF)
# 用静态路由让网络可达[r1]ip route-static 192.168.3.0 24 192.168.2.2[r2]ip route-static 192.168.1.0 24 192.168.2.1
检测网络是否可达:
PC>ping 192.168.3.3Ping 192.168.3.3: 32 data bytes, Press Ctrl_C to breakFrom 192.168.3.3: bytes=32 seq=1 ttl=126 time=63 msFrom 192.168.3.3: bytes=32 seq=2 ttl=126 time=78 msFrom 192.168.3.3: bytes=32 seq=3 ttl=126 time=78 msFrom 192.168.3.3: bytes=32 seq=4 ttl=126 time=78 msFrom 192.168.3.3: bytes=32 seq=5 ttl=126 time=78 ms
D:在网络可达的基础上,做一些控制
需求一: PC1可以访问192.168.3.0/24网段,但是PC2不行
经过分析可知: (1)我们用基础ACL就可以搞定,因为基础ACL只关心“你”是谁,也就是只关心源IP,PC1发送的让通过,PC2发送的不让通过,不需要刚关注PC1或PC2访问的是谁。
(2)如果在R1的0/0/1接口做,需求一虽然能实现,但是如果拓扑图连的后面的更多路由器的话,会造成PC2不能访问后面的所有网段,这就是所谓的”误伤“。
(3)所以,做基础ACL的话,越靠近目标网段越好。
# 完成需求一的配置命令:#一:创建ACL列表[r2]acl 2000[r2-acl-basic-2000]#二:创建规则[r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0(0.0.0.0是通配符,由0和1组成,0对应的位置不可变,1对应的位置可变)(0.0.0.255的意思:只要是192.168.1.几来的信息都会被抓)(通配符不是由连续的1,0组成)#补充:#查看acl列表里规则的命令:[r2-acl-basic-2000]rule permit source any ---允许所有[r2]disp [r2]display acl 2000Basic ACL 2000, 2 rulesAcl's step is 5rule 5 deny source 192.168.1.3 0 rule 10 permit #为什么ACL列表里面是5,10而不是连续数字?注意:华为设备的ACL规则默认以5为步调自动添加序号,目的是为了方便插入或者删除规则[r2]acl 2000[r2-acl-basic-2000]rule 7 deny source 192.168.1.2 0.0.0.0[r2-acl-basic-2000]disp [r2-acl-basic-2000]display acl 2000Basic ACL 2000, 3 rulesAcl's step is 5rule 5 deny source 192.168.1.3 0 rule 7 deny source 192.168.1.2 0 rule 10 permit 如果想删除那个规则,可以用:[r2-acl-basic-2000]undo rule 7[r2-acl-basic-2000]display acl 2000Basic ACL 2000, 2 rulesAcl's step is 5rule 5 deny source 192.168.1.3 0 rule 10 permit # 三:调用 [r2]int g 0/0/1[r2-GigabitEthernet0/0/1]traffic-fil [r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
四:测试
PC1可以通:

PC2不可以通:

需求二:PC1可以正常访问PC3,但是不能访问PC4
经过分析可知:这个实验需要用高级ACL做,因为不仅关心你是“谁”(源IP),而且关心目标IP(你要去哪)、协议以及端口号。
高级ACL不会产生“误伤”的情况下,越靠近源IP越好,可节省链路资源。
# 配置需求二的命令#一、创建高级ACL列表[r1]acl name xuqiuer 3000[r1-acl-adv-xuqiuer]#二:创建规则选协议的时候:目的是想让PC1和PC4彻底断开联系,因为很多协议都是基于IP之上的,所以控制IP就可以。[r1-acl-adv-xuqiuer]rule deny ip source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0.0.0.0[r1-acl-adv-xuqiuer]#三、调用[r1]int g 0/0/0[r1-GigabitEthernet0/0/0]traffic-filter inbound acl name xuqiuer[r1-GigabitEthernet0/0/0]
四、测试

需求三 :PC1可以ping通R2,但是不能telnetR2
此时用一台路由器代替PC

# 实现需求三的配置# 一、开启PC2的Telnet服务功能[r2]aaa[r2-aaa]local-user zhenzhen privilege level 15 password cipher 202419 ---创建用户名和密码Info: Add a new user.[r2-aaa]local-user zhenzhen service-type telnet ---添加telnet服务类型[r2-aaa][r2-aaa]q[r2]user-interface vty 0 4 ---开启0到4五个vty虚拟登录端口[r2-ui-vty0-4]authentication-mode aaa ---按照aaa的方式进行认证[r2-ui-vty0-4]# 二、为了显示效果,用路由器模拟一台电脑[zhenzhen]int g 0/0/0[zhenzhen-GigabitEthernet0/0/0]ip add 192.168.1.10 24 ---配置IP地址[zhenzhen-GigabitEthernet0/0/0]# 三、由于没有路由,所以需要写一条缺省路由,不限制目标,把数据包给R1,让它帮忙转发。(跨网段通信)[zhenzhen]ip route-static 0.0.0.0 0 192.168.1.1(做完缺省,此时就可以通了)# 四、开始远程登录操作<zhenzhen>telnet 192.168.2.2Press CTRL_] to quit telnet modeTrying 192.168.2.2 ...Connected to 192.168.2.2 ...Login authenticationUsername:zhenzhenPassword:# 五、拒绝PC1的telnet服务注意:telnet协议是基于tcp的,实现需求三不能telnet服务,策略上也是利用高级ACLr1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2.2 0.0.0.0 destination-port eq 23不是1.10给2.2发送的所有tcp流量都取消,而是取消tcp里面的telnet流量,所以后面的目标端口号要写,并且eq表示等于目标端口号。# 六、调用(一个接口的一个方向只能调用一张ACL列表,为了做这个实验先牺牲一下上面的ACL列表)[r1]int g 0/0/0[r1-GigabitEthernet0/0/0]undo traffic-filter inbound[r1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001# 七、不能进行telnet服务,但是能ping通<zhenzhen>telnet 192.168.2.2Press CTRL_] to quit telnet modeTrying 192.168.2.2 ...Error: Can't connect to the remote host<zhenzhen>ping 192.168.2.2PING 192.168.2.2: 56 data bytes, press CTRL_C to breakReply from 192.168.2.2: bytes=56 Sequence=1 ttl=254 time=70 msReply from 192.168.2.2: bytes=56 Sequence=2 ttl=254 time=50 msReply from 192.168.2.2: bytes=56 Sequence=3 ttl=254 time=50 msReply from 192.168.2.2: bytes=56 Sequence=4 ttl=254 time=70 msReply from 192.168.2.2: bytes=56 Sequence=5 ttl=254 time=50 ms
相关文章:
HCIA项目实践---ACL访问控制列表相关知识和配置过程
十 ACL访问控制列表 1 策略的概念 在网络连通之后, 把所有为了追求控制而实现的技术都叫策略 2 访问控制 在路由器流量流入或者流出的接口上,匹配流量,执行相应的动作。(流量流入或者流出的接口并不是一个固定的概念而是一个相对的…...
细说STM32F407单片机RTC入侵检测和时间戳的原理及使用方法
目录 一、入侵检测的功能 二、示例功能 三、项目设置 1、晶振、DEBUG、CodeGenerator、USART6、KEYLED 2、RTC (1)设置RTC的模式。 (2)General、Time、Date\Wake Up分组 (3)Tamper分组 1ÿ…...
STM32 CAN过滤器配置和应用方法介绍
目录 概述 一、CAN过滤器核心概念 二、过滤器配置步骤(以标准ID为例) 三、不同模式的配置示例 四、高级配置技巧 五、调试与问题排查 六、关键计算公式 总结 概述 在STM32微控制器中,CAN过滤器可以配置为标识符屏蔽模式和标识符列表模…...
搜狗浏览器卸载教程
需求背景 今天发现geek居然无法卸载搜狗浏览器,作为一个老司机,这是不允许的。如果你使用geek或者windows的卸载,或者直接在它的安装包的Uninstall.exe中卸载,他走到100%就一直不动了。那玩意是假的。 卸载教程 结束 -----华丽的…...
Go 模块管理工具 `go mod tidy` 和 `go.sum` 文件详解
Go 模块管理工具 go mod tidy 和 go.sum 文件详解 引言 Go 语言自引入模块(module)系统以来,极大地简化了依赖管理和版本控制。go mod tidy 和 go.sum 文件是 Go 模块系统中的两个重要组成部分,它们共同确保项目的依赖项是最新的…...
音视频入门基础:RTP专题(9)——FFmpeg接收RTP流的原理和内部实现
一、引言 由《音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流》可以知道,推流端通过下面FFmpeg命令可以将一个媒体文件转推RTP,生成RTP流: ffmpeg -re -stream_loop -1 -i input.mp4 -vcodec cop…...
STM32 串口转 虚拟串口---实现USB转串口功能
一,USART与UART 区别 USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器 相较于UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)多了…...
【进程与线程】Linux 线程、同步以及互斥
每个用户进程有自己的地址空间。 线程是操作系统与多线程编程的基础知识。 系统为每个用户进程创建一个 task_struct 来描述该进程:该结构体中包含了一个指针指向该进程的虚拟地址空间映射表: 实际上 task_struct 和地址空间映射表一起用来表示一个进程…...
胶囊网络动态路由算法:突破CNN空间局限性的数学原理与工程实践
一、CNN的空间局限性痛点解析 传统CNN的瓶颈: 池化操作导致空间信息丢失(最大池化丢弃85%激活值)无法建模层次空间关系(旋转/平移等变换不敏感)局部感受野限制全局特征整合 示例对比: # CNN最大池化示例…...
当pcie设备变化时centos是否会修改网络设备的名称(AI回答)
当pcie设备变化时centos是否会修改网络设备的名称 在CentOS(以及其他基于Linux的操作系统)中,网络接口的命名通常遵循特定的规则,尤其是在使用PCIe设备(如网络适配器)时。网络接口的命名通常基于设备的物理…...
【人工智能】释放数据潜能:使用Featuretools进行自动化特征工程
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 特征工程是机器学习流程中至关重要的一步,它直接影响模型的性能。然而,手动特征工程既耗时又需要领域专业知识。Featuretools是一个强大的…...
docker批量pull/save/load/tag/push镜像shell脚本
目录 注意: 脚本内容 执行效果 注意: 以下脚本为shell脚本通过docker/nerdctl进行镜像独立打包镜像的相关操作脚本内仓库信息和镜像存取路径需自行更改需自行创建images.txt并填写值,并且与脚本位于同级目录下 [rootmaster01 sulibao]# l…...
对正则表达式说不!!!
可能大家都会和我一样,时常会遇到正则表达式,有时候会忘记某些字符而苦恼。今天就帮助大家克服它,虽然不多,但我认为掌握这些足够了,万变不离其宗,以不变应万变。 一、正则表达式内容分类 1. 字符类 [abc…...
Redis日志分析
主从同步尝试: 日志中多次出现“Master is currently unable to PSYNC but should be in the future: -NOMASTERLINK Can’t SYNC while not connected with my master”。这表明从服务器尝试与主服务器进行部分重同步(PSYNC),但由…...
【做一个微信小程序】校园地图页面实现
前言 上一个教程我们实现了小程序的一些的功能,有背景渐变色,发布功能有的呢,已支持图片上传功能,表情和投票功能开发中(请期待)。下面是一个更高级的微信小程序实现,包含以下功能:…...
Web后端 - Maven管理工具
一 Maven简单介绍 Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 Maven的作用 二 Maven 安装配置 依赖配置 依赖传递 依赖范围 生命周期 注意事项:在同一套生命周期中,当运行后面的阶段时,前面的阶段都…...
20250217-POMO笔记
文章目录 前言一、伪代码一:POMO Training二、伪代码二:POMO Inference三、POMO注意力模型3.1、自注意力机制3.2、AM模型 前言 以下主要讲解两个算法的伪代码以及注意力模型。 一、伪代码一:POMO Training POMO Training是POMO模型训练的伪…...
JavaEE-SpringBoot快速入门
文章目录 本节目标Maven什么是Maven创建一个Maven项目maven项目功能maven的依赖管理全球仓库, 私服, 本地服务器, 配置国内镜像 第一个SpringBoot项目创建项目运行SpringBoot程序 SpringBoot原理初步Web服务器 总结 本节目标 了解什么是maven, 配置国内源使用Springboot创建项…...
游戏引擎学习第107天
仓库:https://gitee.com/mrxiao_com/2d_game_2 回顾我们之前停留的位置 在这段内容中,讨论了如何处理游戏中的三维效果,特别是如何处理额外的“Z层”。由于游戏中的艺术资源是位图而不是3D模型,因此实现三维效果变得非常具有挑战性。虽然可…...
Sprinig源码解析
前言 Spring 框架是 Java 企业级开发的基石,其源码设计体现了模块化、扩展性和灵活性。以下从 IoC 容器、AOP 实现、核心模块和关键设计模式四个角度对 Spring 源码进行深度解析,帮助理解其底层机制。即使Spring会使用的人见得就能使用。 一、IoC 容器源…...
ComfyUI流程图生图原理详解
一、引言 ComfyUI 是一款功能强大的工具,在图像生成等领域有着广泛应用。本文补充一点ComfyUI 的安装与配置过程遇到的问题,并深入剖析图生图过程及相关参数,帮助读者快速入门并深入理解其原理。 二、ComfyUI 的安装与配置中遇到的问题 &a…...
使用右侧值现象来处理一个word导入登记表的需求
需求也简单,导word文件用户登记表,有各部门的十几个版本(为什么这么多?不知道)。这里说下谈下我的一些代码做法: 需求分析: 如果能解决java字段和各项填的值怎么配对的问题,那么就…...
《open3d pyqt》Alpha重建
《open3d pyqt》Alpha重建 一、效果展示二、qt设置2.1 主界面添加动作2.2 dialog 界面、布局如下:三、核心代码一、效果展示 二、qt设置 2.1 主界面添加动作 2.2 dialog 界面、布局如下: 并生成py文件,参考前述章节 三、核心代码 main.py文件增加 from Su...
深度解析HTTP/HTTPS协议:从原理到实践
深入浅出HTTP/HTTPS协议:从原理到实践 前言 在当今互联网世界中,HTTP和HTTPS协议如同空气般存在于每个网页请求的背后。作为开发者或技术爱好者,理解这些基础协议至关重要。本文将用六大板块,配合原理示意图和实操案例࿰…...
数据结构:顺序表(Sequence List)及其实现
什么是顺序表? 顺序表是一种最简单的数据结构,它就像一排连续的小房子,每个房子里都住着一个数据元素。这些房子是按顺序排列的,每个房子都有一个门牌号(下标),我们可以通过门牌号快速找到对应…...
小程序canvas2d实现横版全屏和竖版逐字的签名组件(字帖式米字格签名组件)
文章标题 01 功能说明02 效果预览2.1 横版2.2 竖版 03 使用方式04 横向签名组件源码4.1 html 代码4.2 业务 Js4.3 样式 Css 05 竖向签名组件源码5.1 布局 Html5.2 业务 Js5.3 样式 Css 01 功能说明 技术栈:uniapp、vue、canvas 2d 需求: 实现横版的全…...
MoE演变过程
MoE演变过程 1 MoE1.1 BasicMoE1.2 SparseMoE1.2.1 实现 1.3 Shared Expert SparseMoE 1 MoE 参考:https://huggingface.co/blog/zh/moe 1.1 BasicMoE 用router给出各专家的权重,然后让输入过每一个专家,然后做加权求和。 1.2 SparseMoE …...
【Leetcode 热题 100】1287. 有序数组中出现次数超过25%的元素
问题背景 给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25 % 25\% 25%。 请你找到并返回这个整数。 数据约束 1 ≤ a r r . l e n g t h ≤ 1 0 4 1 \le arr.length \le 10 ^ 4 1≤arr.length≤104 0…...
ruby 的安装
在51cto搜索的资料 ruby on rails的安装 http://developer.51cto.com/art/200906/129669.htm http://developer.51cto.com/art/200912/169391.htm http://developer.51cto.com/art/200908/147276.htm 史上最完整的ruby,rails环境架设配置(Apachefast…...
【java】List<String> fruits = new ArrayList<>(); 这一句是什么
1. 代码分解 java Copy List<String> fruits new ArrayList<>(); List<String>: List 是 Java 中的一个接口,表示一个有序的集合(可以重复元素)。 <String> 是泛型,表示这个列表中的元素…...
