ACL介绍

news2025/1/15 22:41:43

ACL

中文:访问控制列表

介绍:

ACL 是网络当中策略的一种,策略:我们之前学的内容只够我们把网络连通,但网络不仅仅是能连通那么简单,在保证网络能连通的基础上,应该还有更高一层的追求,即对网络进行一些控制。比如说:对某些人的流量进行限制、对某些人的流量做一些保障、不允许某些人访问某些网站等的控制行为。这些都需要通过策略来完成。

ACL 就是众多策略中的一种,是最简单的一种工具,可以帮助我们实现一些基本的功能,比如说:实现 访问控制列表 的功能。

工作原理:

某些设备配置了ACL,ACL中声明了一些匹配规则,通过这个规则来匹配一些流量,对匹配到的流量再执行相应的动作,即,提前设定好了怎么处理这些流量,比如说,是让它访问还是不让访问,从而就实现了控制的功能。

ACL 在很多设备上都是可以应用的,后面主要讲在路由器上的应用,讲述在路由器上怎么配置 ACL

ACL 的作用:

  1. 访问控制:在路由器流量流入或留出的接口上,匹配流量,然后执行设定好的动作。

    • 配置位置:路由器的接口上:把接口分为流量流入、流出的接口

    • 现在如果用PC1访问PC3,那么对于左边的路由器来说:g 0/0/1 是流量流入的接口,g 0/0/0 是流量流出的接口。

      PC3回包的时候情况正好相反。

      所以:流入、流出是一个相对的概念,不是固定的。

    • 执行的动作

      只有两种:permit 允许 , deny 拒绝

  2. 抓取感兴趣流:ACL可以和其他服务结合使用。ACL只负责匹配流量,其他服务则对匹配的流量执行对应的动作

    • ACL的功能很单一 --- 只有两个动作,但ACL在某些场景下,有时候我们需要做策略并不是一刀切的,即,很干净利落就两种情况:允许、拒绝。就比如说做流控,不是说不让访问,可以访问,但要对流量、速度等做一些限制,遇到这样的情况,光靠这两种动作是无法实现这个功能的,所以,ACL在某些情况下只做第一件事 --- 只抓取流量,但不去做动作。动作交给其它的服务来做,即,和其它服务去打配合。ACL 和别的服务去结合 ,就可以实现更多更丰富的功能,而不仅仅是访问控制。

流控 --- 对流量进行控制和管理

QoS:服务质量技术

ACL 和 QoS 配合:ACL负责抓取流量,QoS负责对流量进行相应的操作

后面只讲述 ACL 的第一个作用:访问控制功能

ACL的匹配规则

自上而下,逐一匹配,如果匹配上,则按照对应的动作执行,不再向下匹配。

  • 思科体系的设备:在ACL列表末尾隐含一条拒绝所有的规则

  • 华为体系的设备:在ACL列表末尾隐含一条允许所有的规则 —— 不准确

    • 实际上的默认规则:对于没有匹配上的不做处理,相当于允许。

ACL列表的分类

思科 和 华为 不一样

  • 基本ACL:仅关注数据包中的源IP地址

  • 高级ACL:不仅关注数据包中的源IP地址,还会关注数据包中的目标IP地址,以及协议和目标端口号

  • 二层ACL

  • 用户自定义ACL

后面只讲述前两种ACL:基本ACL、高级ACL

如下给出一个场景:我们会给出一些需求,然后利用ACL来完成这些需求。

如下搭建的网络已经实现了全网可达:

需求一:通过 ACL 实现PC1可以访问PC3和PC4,但是PC2不行

基本ACL的位置原则:因为基本ACL只关注数据包中的源IP地址,故调用时尽可能的靠近目标,避免对其他地址访问造成误伤。

如图有4个接口可供选择,按照上面所说的原则,我们选择接口4。

下面就开始配置ACL:

  1. 创建一张ACL列表

    [r2]acl ?
      INTEGER<2000-2999>  Basic access-list(add to current using rules)  -- 基本ACL
      INTEGER<3000-3999>  Advanced access-list(add to current using rules)  -- 高级ACL
      INTEGER<4000-4999>  Specify a L2 acl group -- 二层ACL
      ipv6                ACL IPv6 
      name                Specify a named ACL
      number              Specify a numbered ACL
    [r2]acl 2000
    [r2-acl-basic-2000]

    这样就创建了一张ACL表,但只是个空表,没有规则。

  2. 在ACL列表中添加规则

    按照我们的需求:实现 PC2 无法访问到 PC3,PC4,那么就有以下两种方案:

    1. 拒绝PC2,允许所有

    2. 允许PC1,拒绝所有

    那么这两种选择哪一种比较好呢?

    其实要取决于体系,如果是华为体系的话,就选择第一种,因为华为体系的设备在ACL列表末尾隐含一条允许所有的规则。如果是思科体系的话,就选择第二种。

    下面我们开始添加规则:

    1. 拒绝PC2

      [r2-acl-basic-2000]rule ?
        INTEGER<0-4294967294>  ID of ACL rule
        deny                   Specify matched packet deny
        permit                 Specify matched packet permit
      [r2-acl-basic-2000]rule deny ?
        fragment             Check fragment packet
        none-first-fragment  Check the subsequence fragment packet  
        source               Specify source address
        time-range           Specify a special time
        vpn-instance         Specify a VPN-Instance
        <cr>                 Please press ENTER to execute command 
      [r2-acl-basic-2000]rule deny source ?
        IP_ADDR<X.X.X.X>  Address of source
        any               Any source
      [r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0 ---- 0.0.0.0——通配符:0代表不可变,1代表可变,统配符中0和1可以穿插使用
      [r2-acl-basic-2000]
    2. 允许所有

      [r2-acl-basic-2000]rule permit source any
      [r2-acl-basic-2000]

    另外还有其他有关命令:

    查看 acl 2000 列表的规则

    [r2]display acl 2000
    Basic ACL 2000, 2 rules
    Acl's step is 5
     rule 5 deny source 192.168.1.3 0 
     rule 10 permit 
    ​
    [r2]

    自定义序号添加规则

    华为默认以5为步调,自动添加ACL的规则的序号。其目的在于匹配规则是从上向下按顺序匹配,这样便于在其中插入规则。

    [r2-acl-basic-2000]rule 6 deny source 192.168.1.2 0.0.0.0
    [r2-acl-basic-2000]q
    [r2]display acl 2000
    Basic ACL 2000, 3 rules
    Acl's step is 5
     rule 5 deny source 192.168.1.3 0 
     rule 6 deny source 192.168.1.2 0 
     rule 10 permit 
    ​
    [r2]

    按照序号删除规则

    [r2-acl-basic-2000]undo rule 6
    [r2-acl-basic-2000]q
    [r2]display acl 2000
    Basic ACL 2000, 2 rules
    Acl's step is 5
     rule 5 deny source 192.168.1.3 0 
     rule 10 permit 
    ​
    [r2]

  3. 在接口上调用ACL列表

    [r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
    [r2-GigabitEthernet0/0/1]

    注意:在一个接口的一个方向上,只能调用一张ACL列表。

需求二:要求PC1可以访问PC3,但是不能访问PC4

高级ACL的位置原则:因为高级ACL是精准匹配,所以,在调用时应该尽可能靠近源目标,避免造成额外的链路资源浪费。

下面就开始配置ACL:

  1. 创建一张ACL列表

    [r1]acl name aa 3000  ---- 通过重命名的方式创建ACL列表
    [r1-acl-adv-aa]
  2. 在ACL列表中添加规则

    1. 拒绝PC4

      [r1-acl-adv-aa]rule deny ip source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0
      .0.0.0
      [r1-acl-adv-aa]
  3. 在接口上调用ACL列表

    [r1-GigabitEthernet0/0/1]traffic-filter inbound acl name aa ---- 通过重命名的方式调用ACL列表
    [r1-GigabitEthernet0/0/1]

需求三:要求PC1可以ping通R2,但是不能telnet R2

telnet ---- 远程登录协议

带外管理:不依靠网络,直接对设备进行管理 ---- 通过console接口连接console线对设备进行控制 ---- 通过miniUSB接口连接MINIUSB线对设备进行控制 带内管理:通过网络对设备进行管理

---- 通过telnet管理路由器 ---- 通过web界面管理路由器 ---- 通过SNMP协议进行设备管理

telnet进行管理的前提条件 1,登录设备和被登录设备之间网络必须是连通的 2,被登录设备必须开启telnet服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地统计插值学习心得(二)

简介 交叉验证是一种“留一”法,可用于确定插值模型与数据的拟合程度。交叉验证从数据集中移除一个点,并使用剩余的所有其他点来预测被移除点的位置。预测值随后与测量值进行比较,并生成大量统计数据 来确定预测的准确性。 交叉验证窗格可以用于展示并评价插值模型的执行效…

Redis持久化之RDB

Redis持久化之RDB1.RDB&#xff08;Redis DataBase&#xff09;1.1 RDB是什么1.2 dump.rdb文件1.3Redis启动方式1.4 配置文件中默认快照配置1.5 命令save VS bgsave1.6 RDB举例1.7 stop-writes-on-bgsave-error1.8 rdbchecksum 检查完整性2.持久化如何执行的2.1 流程优势劣势1.…

【小学信息技术教资面试】《生活在信息中》教案

题目&#xff1a;生活在信息中内容&#xff1a; 基本要求&#xff1a; &#xff08;1&#xff09;说出信息的不同表现形式及信息在生活中的应用。 &#xff08;2&#xff09;教学中注意师生间的交流互动。 &#xff08;3&#xff09;十分钟之内完成试讲。 《生活在信息中》教…

【学习笔记04】生命周期的钩子函数

目录一、生命周期的钩子函数二、创建阶段三、挂载阶段四、父子组件创建和挂载阶段钩子函数的执行次序五、更新阶段六、销毁阶段七、复习和补充1、MVVM2、v-for中的key值3、$nextTick一、生命周期的钩子函数 在组件的生命周期的过程中自动的调用的函数&#xff0c;叫做生命周期…

C++进阶 多态讲解

作者&#xff1a;小萌新 专栏&#xff1a;C进阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;简单介绍C中多态的概念 多态多态的概念多态的定义及实现多态的构成条件虚函数虚函数的重写虚函数重写的两个例外协变析构函数的重写C11…

【ML】numpy meshgrid函数使用说明(全网最简单版)

【ML】numpy meshgrid函数使用说明meshgrid的作用&#xff1f;怎么使用&#xff08;举例说明&#xff09;手工描点&#xff08;帮助理解&#xff09;怎么画三维&#xff1f;附画图代码meshgrid的作用&#xff1f; 首先要明白numpy.meshgrid()函数是为了画网格&#xff0c;&…

Systemverilog实现参数化的Round-Robin Arbiter Tree

本篇内容涉及的rtl代码为开源组织PLUP的common cell仓库中的源代码&#xff0c;本文只是对其进行些许解读。源码链接如下&#xff1a;[https://github.com/pulp-platform/common_cells/blob/dc555643226419b7a602f0aa39d449545ea4c1f2/src/rr_arb_tree.sv] “想要快速提升编程能…

基于springboot的公司人事管理系统

1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目&#xff0c;公司人事管理系统。 计算机毕业生设计,课程设计需要帮助的可以找我 源码获取------》 链接&#xff1a;https://pan.baidu.com/s/1CdxrlV7GeRRmsT9UWEMtJg 提取码&#xff1a;cygy 2 设计概要 21世纪…

测试人不得不知的 HTTP 状态码知识

HTTP协议是当前使用最广泛的一种通信协议&#xff0c;在性能测试中&#xff0c;也使用的非常广泛。但是&#xff0c;确有很多人在调试性能测试脚本的时候&#xff0c;弄不明白HTTP状态码&#xff0c;不能通过HTTP状态码做些基本判断&#xff0c;今天&#xff0c;就来给大家好好…

客户终身价值(CLTV)计算和回归预测模型(Python)

内容介绍 本文整理了客户终身价值&#xff08;CLV或者CLTV&#xff09;的相关概念&#xff0c;并对一家英国线上零售公司的一年交易数据进行分析&#xff0c;计算该公司所有客户的CLV并且建立回归预测模型。 一、客户生命周期价值 用户生命周期价值Customer Lifetime value(…

常见实用的锁策略详解

&#x1f388;专栏链接:多线程相关知识详解 目录 1.乐观锁VS悲观锁 2.读写锁VS普通互斥锁 3.轻量级锁VS重量级锁 4.自旋锁VS挂起等待锁 5. 公平锁VS非公平锁 6.可重入锁VS不可重入锁 7.关于synchronized的锁策略以及自适应 1.乐观锁VS悲观锁 乐观锁:预测锁…

Windows中安装配置RabbitMQ

本次安装环境win10&#xff0c;采用版本 OTP 25.0.3https://github.com/erlang/otp/releases/tag/OTP-25.0.3RabbitMQ 3.10.13 Release RabbitMQ 3.10.13 rabbitmq/rabbitmq-server GitHubOpen source RabbitMQ: core server and tier 1 (built-in) plugins - Release Rabbi…

[N1CTF 2018]eating_cms parse_url绕过

index.php <?php require_once "function.php"; if(isset($_SESSION[login] )){Header("Location: user.php?pageinfo"); } else{include "templates/index.html"; } ?> function.php <?php session_start(); require_once &q…

Kafka Producer 自定义 拦截器 序列化

Kafka Producer 拦截器 & 序列化 前言 文章中的版本信息、maven依赖如下 JDK17 kafka_2.13-3.3.1 pom文件 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>…

NR HARQ (四)Type-2 HARQ-ACK codebook

微信同步更新欢迎关注同名modem协议笔记 上篇提到type-1 HARQ-ACK codebook&#xff0c;即semi-static codebook&#xff0c;UE要为每个PDSCH候选位置生成反馈&#xff0c;也会包含实际没有下行传输的PDSCH&#xff0c;再加上配置CBG的场景&#xff0c;HARQ-ACK 码本中包含的无…

【Linux 内核 内存管理】物理内存组织结构

一、 UMA和NUMA两种模型 共享存储型多处理机有两种模型 一致内存访问&#xff08;Uniform-Memory-Access&#xff0c;简称UMA&#xff09;模型 非一致内存访问&#xff08;Nonuniform-Memory-Access&#xff0c;简称NUMA&#xff09;模型 UMA模型 物理存储器被所有处理器件均…

超标量处理器设计——第八章_发射

超标量处理器设计——第八章_发射 参考《超标量处理器》姚永斌著 文章目录超标量处理器设计——第八章_发射8.1 简述8.1.1 集中式 VS. 分布式8.1.2 数据捕捉 VS. 非数据捕捉8.1.3 压缩 VS. 非压缩8.2 发射过程的流水线8.2.1 非数据捕捉结构的流水线8.2.2 数据捕捉结构的流水线8…

随手写系列——写一个凯撒密码转换页面

文章目录先展示效果H5编写C3编写JS编写——方法一&#xff1a;过程版JS编写——方法二&#xff1a;对象版代码获取先展示效果 &#xff08;因为主要是实现功能&#xff0c;所以CSS写的很粗糙&#xff09; H5编写 基础结构如下&#xff1a; 先构成最外面的大盒子.box&#…

【Flutter】之便于提高开发效率的周边库和轮子

GetX 状态管理 GetX包含很多功能&#xff0c;各种弹出widget、路由管理、国际化、Utils、状态管理等。 基于路由管理 1. 添加到项目中 1.1. 将此添加到pubspec.yaml文件中。 get: 4.1.4 1.2. 在命令行中运行 flutter packages get 1.3. 在MaterialApp前面加上 “Get”&…

centos7 yum安装postgreSQL

安装环境centos7.6 安装步骤&#xff1a; 1、安装postgresql&#xff1a; yum install postgresql-server 2、安装postgresql 扩展包&#xff1a; yum install postgresql-contrib 3、初始化&#xff1a; postgresql-setup initdb 4、启动开机自启动&#xff1a; systemc…