当前位置: 首页 > news >正文

ACL(访问控制列表)

ACL技术概述

随着网络的飞速发展,网络安全和网络服务质量 QoS Quality of Service )问题日益突出。
园区重要服务器资源被随意访问,园区机密信息容易泄露,造成安全隐患。
Internet 病毒肆意侵略园区内网,内网环境的安全性堪忧。
网络带宽被各类业务随意挤占,服务质量要求最高的语音、视频业务的带宽得不到保障,造成用户体验差。
以上种种问题,都对正常的网络通信造成了很大的影响。因此,提高网络安全性和服务质量迫在眉睫,我们需要对网络进行控制。比如,需要借助一个工具帮助实现一些流量的过滤

通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。

  • ACL是由permitdeny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。
  • ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等元素的基础性工具;ACL还能够用于匹配路由条目。

注意:ACL可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为。

ACL基本概念

ACL分类

基本 ACL
主要针对 IP 报文的源 IP 地址进行匹配,基本 ACL 的编号范围是 2000-2999
比如这个例子,创建的是 acl 2000 ,就意味着创建的是基本 ACL
高级 ACL
可以根据 IP 报文中的源 IP 地址、目的 IP 地址、协议类型, TCP UDP 的源目端口号等元素进行匹配,可以理解为:基本 ACL 是高级 ACL 的一个子集,高级 ACL 可以比基本 ACL 定义出更精确、更复杂、更灵活的规则。

此篇文章主要讲解基本ACL和高级ACL。

ACL组成

ACL由若干条permitdeny语句组成。每条语句就是该ACL的一条规则,每条语句中的permitdeny就是与这条规则相对应的处理动作。

例如:

rule 5   permit     source       192.168.1.1        0.0.0.0

节点     动作       匹配项       参数               通配符掩码

节点: 一个ACL的每条规则都需要进行排列

       默认5的步长进行条目的排列,取值范围是<0-4294967294>

       [AR1-acl-basic-2000]step <1-20> 设置步长,默认为5

动作:permit/deny 只是做为标记使用,具体是允许通过还是禁止通过是由其他技术决定的

匹配项ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。

参数:具体的信息。

通配符掩码:不需要连续的1和连续的0组合,0表示精确匹配,1表示任意匹配。

如果想匹配 192.168.1.0/24 网段中的奇数 IP 地址,通配符该怎么写呢?
我们先来看一看,奇数 IP 地址都有哪些: 192.168.1.1 192.168.1.5 192.168.1.11……
后八位写成二进制: 192.168.1.00000001 192.168.1.00000101 192.168.1.00001011……
可以看出共同点:最后 8 位的高 7 位是任意值,最低位固定为 1 ,因此答案是: 192.168.1.1 0.0.0.254 0.0.0.11111110
这就得出了通配符的一个特点:通配符中的 1或者0 是可以不连续的
还有两个特殊的通配符:
当通配符全为 0 来匹配 IP 地址时,表示精确匹配某个 IP 地址;
当通配符全为 1 来匹配 0.0.0.0 地址时,表示匹配了所有 IP 地址。

ACL匹配机制

ACL 的匹配机制概括来说就是:
配置 ACL 的设备接收报文后,会将该报文与 ACL 中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
匹配流程:首先系统会查找设备上是否配置了 ACL
如果 ACL 不存在,则返回 ACL 匹配结果为:不匹配。
如果 ACL 存在,则查找设备是否配置了 ACL 规则。
如果规则不存在,则返回 ACL 匹配结果为:不匹配。
如果规则存在,则系统会从 ACL 中编号最小的规则开始查找。
如果匹配上了 permit 规则,则停止查找规则,并返回 ACL 匹配结果为:匹配(允许)。
如果匹配上了 deny 规则,则停止查找规则,并返回 ACL 匹配结果为:匹配(拒绝)。
如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回 ACL 匹配结果为:不匹配。
从整个 ACL 匹配流程可以看出,报文与 ACL 规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。
匹配(命中规则):指存在 ACL ,且在 ACL 中查找到了符合匹配条件的规则。不论匹配的动作是“ permit” 还是“ deny” ,都称为“匹配”,而不是只是匹配上 permit 规则才算“匹配”。
不匹配(未命中规则):指不存在 ACL ,或 ACL 中无规则,再或者在 ACL 中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
匹配原则:一旦命中即停止匹配。

注意:

ACL根据匹配信息不同,最终隐含规则也不同

1.如果ACL匹配的是流量,则默认是允许所有

2.如果ACL匹配的是路由,则默认是拒绝所有

ACL的匹配位置

ACL应用案例

通过ACL实现流量过滤

如图,要使PC1能够和PC2通信,但是不能和PC3通信,应该如何配置ACL呢?

各个主机IP地址为:

法一:在交换机上配置基本ACL实现流量过滤

先在全局视图下创建基本ACL,匹配源地址为192.168.1.1(PC1)的流量,然后在交换机的GE 0/0/3的出方向过滤掉该流量。

结果:

可以看到,通过基本ACL实现了PC1能够访问PC2,不能够访问PC3。

法二:在交换机上配置高级ACL实现流量过滤

先在全局视图下创建高级ACL,匹配源地址为192.168.1.1(PC1)目的地址为192.168.1.3(PC3)的流量,然后在交换机的GE 0/0/1的入方向过滤掉该流量。

结果:

可以看到,通过高级ACL实现了PC1能够访问PC2,不能够访问PC3。

相关文章:

ACL(访问控制列表)

ACL技术概述 • 随着网络的飞速发展&#xff0c;网络安全和网络服务质量 QoS &#xff08; Quality of Service &#xff09;问题日益突出。 ▫ 园区重要服务器资源被随意访问&#xff0c;园区机密信息容易泄露&#xff0c;造成安全隐患。 ▫ Internet 病毒肆意侵略园区内网&am…...

json字符串转json

问题 Json格式化后&#xff0c;存在各种\n ,\r,以及空格&#xff0c;怎么办&#xff1f; 直接replaceAlll(“\s”,“”) 吗&#xff1f; 解决办法&#xff1a; //使用hutool的jsonutil工具&#xff0c;直接将其转换为json&#xff0c;再转string, //这样就不需要使用 各种re…...

GPT-Omni 与 Mini-Omni2:创新与性能的结合

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;各种模型和平台应运而生&#xff0c;以满足从个人用户到企业级应用的多样化需求。在这一领域&#xff0c;GPT-Omni 和 Mini-Omni2 是两款备受瞩目的技术产品&#xff0c;它们凭借独特的设计和强大的功能&#xff0c;在…...

探秘 JSON:数据交互的轻盈使者

文章目录 一、JSON是什么二、JSON的语法规则三、应用场景四、性能优化五、总结 一、JSON是什么 JSON&#xff08;JavaScript Object Notation&#xff09;即 JavaScript 对象表示法&#xff0c;是一种轻量级的数据交换格式。JSON 以键值对的形式组织数据&#xff0c;键是字符串…...

源码分析之Openlayers中的Attribution属性控件

概述 本文主要介绍 Openlayers 中Attribution属性控件的源码实现&#xff0c;该控件也是 Openlayers 中三个默认控件之一。默认情况下&#xff0c;控件会显示在地图的右下角&#xff0c;可以通过控件的类名设置CSS属性控制。实际应用中该控件主要显示与图层源source相关的所有…...

Shell自定义(二)

1.Shell自定义 1.初始化 定义全局变量environ&#xff0c;把g_env的内容用memset初始化为0&#xff0c;这里用malloc开辟的空间为对应环境变量的长度1&#xff0c;多1位置是最后结束符0&#xff0c;strcpy把此时的对应的环境变量拷贝到g_env里面&#xff0c;下面是新增一个环…...

自然语言处理:我的学习心得与笔记

Pytorch 1.Pytorch基本语法 1.1 认识Pytorch 1.2 Pytorch中的autograd 2.Pytorch初步应用 2.1 使用Pytorch构建一个神经网络 2.2 使用Pytorch构建一个分类器 小节总结 学习了什么是Pytorch. 。Pytorch是一个基于Numpy的科学计算包,作为Numpy的替代者,向用户提供使用GPU强大…...

Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率

为什么 EXISTS 更高效&#xff1f; EXISTS 提前终止&#xff1a; EXISTS 一旦在子查询中找到第一个匹配项&#xff0c;就会立即返回 TRUE&#xff0c;不再继续扫描子查询中的其他记录。IN 必须扫描整个子查询的结果集&#xff0c;将所有结果与主查询的每一行进行对比。大数据集…...

Spring基础分析08-集成JPA/Hibernate进行ORM操作

大家好&#xff0c;今天和大家一起分享一下Spring集成JPAHibernate进行ORM操作的流程~ JPA&#xff08;Java Persistence API&#xff09;作为Java EE标准的一部分&#xff0c;提供了统一的API来管理实体类和持久化上下文&#xff1b;Hibernate则是最流行的JPA实现之一&#x…...

MySQL知识汇总(一)

一些命令行操作注意加 分号 “ ; ” show databases 查看所有数据库 use 数据库名 切换数据库 show tables 查看数据库中所有表 describe 表名 显示表中所有信息 create database [if not exists] 新库名 创…...

PDFMathTranslate 一个基于AI优秀的PDF论文翻译工具

PDFMathTranslate 是一个设想中的工具&#xff0c;旨在翻译PDF文档中的数学内容。以下是这个工具的主要特点和使用方法&#xff1a; 链接&#xff1a;https://www.modelscope.cn/studios/AI-ModelScope/PDFMathTranslate 功能特点 数学公式识别&#xff1a;利用先进的OCR&…...

React+Vite从零搭建项目及配置详解

相信很多React初学者第一次搭建自己的项目&#xff0c;搭建时会无从下手&#xff0c;本篇适合快速实现功能&#xff0c;熟悉React项目搭建流程。 目录 一、创建项目react-item 二、调整项目目录结构 三、使用scss预处理器 四、组件库Ant Design 五、配置基础路由 六、配置…...

@pytest.fixture() 跟 @pytest.fixture有区别吗?

在iOS UI 自动化工程里面最早我用的是pytest.fixture()&#xff0c;因为在pycharm中联想出来的fixture是带&#xff08;&#xff09;的&#xff0c;后来偶然一次我没有带&#xff08;&#xff09;发现也没有问题&#xff0c;于是详细查了一下pytest.fixture() 和 pytest.fixtur…...

Google Cloud Architect 认证考试错题集5

Google Cloud Architect 认证考试错题集5 D. Store static content such as HTML and images in a Cloud Storage bucket. Use Cloud Functions to host the APIs and save the user data in Firestore. - Storing static content in a Cloud Storage bucket is a cost-effecti…...

【Maven】基础(一)

【Maven】基础一 1. 虽然工作有段时间了&#xff0c;但是深感maven了解的不深入&#xff0c;所以这次开始深入的学习。 课程地址: https://www.bilibili.com/video/BV1JN411G7gX?spm_id_from333.788.player.switch&vd_source240d9002f7c7e3da63cd9a975639409a&p2 1.…...

多模态抽取图片信息的 Prompt

多模态抽取图片信息的 Prompt 1. 中文版2. 日文版3. 英文原版 下面使用多模态从图片中抽取文章&#xff0c;表格&#xff0c;Flowcharts的Prompt。 1. 中文版 你是一位擅长提取图片、图表、文本并对其进行解释的专家&#xff0c;能够保持原始语言不变。## 指南- 针对输入内容…...

WPF 使用LibVLCSharp.WPF实现视频播放、停止、暂停功能

使用LibVLCSharp.WPF实现视频播放、停止、暂停功能 1, NuGet 添加 VideoLAN.LibVLC.Windows 2. NuGet 添加 LibVLCSharp.WPF 3. wpf 代码如下&#xff1a; <Grid ><Grid.RowDefinitions><RowDefinition Height"*" /><RowDefinition Height&q…...

Java全栈项目 - 校园招聘信息平台

项目介绍 校园招聘信息平台是一个面向高校学生和企业的双向服务平台。该系统帮助企业发布招聘信息,方便学生查询职位并投递简历,同时为学校就业部门提供就业数据分析功能。 技术栈 后端 Spring Boot 2.xSpring SecurityMyBatis PlusMySQL 8.0RedisRabbitMQ 前端 Vue.js 2…...

java导出

请求头获取responseimport com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet;PostMapping("excel/export") ApiOperation(value "党员档案导出", httpMethod "POST")…...

【嵌入式系统】期末试题库,ARM处理器,CortexM3内核,USART,EXTI,GPIO

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...