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

【网络工程师笔记】——ACL

ACL

  访问控制列表(Access Control List,ACL)是目前使用最多的访问控制实现技术。

  访问控制列表是路由器接口的指令列表,用来控制端口进出的数据包。

  ACL适用于所有的被路由协议,如IP、IPX、AppleTalk等。访问控制列表可以分为基本访问控制列表高级访问控制列表

  ACL的默认执行顺序是自上而下,在配置时要遵循最小特权原则、最靠近受控对象原则及默认丢弃原则。

  华为设备ACL分类如表所示。

分类编号范围支持的过滤选项
基本ACL2000~2999匹配条件较少,只能通过源IP地址和时间段来进行流量匹配,在一些只需要进行简单匹配的功能中可以使用
高级 ACL3000~3999匹配条件较为全面,通过源IP地址、目的IP地址、ToS、时间段、协议类型、优先级、ICMP报文类型和ICMP报文码等多个维度对流量进行匹配,在大部分功能中都可使用高级ACL进行精确流量匹配
基于MAC地址的ACL4000~4999由于数据链路层使用MAC地址来进行寻址,所以在控制数据链路层帧时需要通过MAC地址来对流量进行分类 。基于MAC地址的ACL 就可以通过源MAC地址、目的MAC地址、CoS、协议码等维度来进行流量匹配

  ACL规则匹配方式有以下两种:

  (1)配置顺序。配置顺序根据ACL规则的I进行排序,ID小的规则排在前面,优先进行匹配。当找到第一条匹配条件的规则时,查找结束。系统按照该规则对应的动作处理。

  (2)自动顺序。自动顺序也叫深度优先匹配。此时ACL规则的ID由系统自动分配,规则中指定数据包范围小的排在前面,优先进行匹配。当找到第一条匹配条件的规则时,查找结束。系统按照该规则对应的动作处理。

  1)对于基本访问控制规则的语句,直接比较源地址通配符,通配符相同的则按配置顺序。

  2)对于高级访问控制规则,首先比较协议范围,再比较源地址通配符,都相同时比较目的地址通配符,仍相同时则比较端口号的范围,范围小的排在前面,如果端口号范围也相同则按配置顺序。

  ACL配置步骤如下:

  (1)执行命令system-view,进入系统视图。

  (2)执行命令acl [number ] acl-number [match-order {config| auto } ],创建基本ACL并进入相应视图。

  1)acl-number的取值决定了ACL的类型,ACL的取值范围基本在2000~2999之间。

  2)match-order指定了ACL各个规则之间的匹配顺序:选择参数config,ACL的匹配顺序按照规则ID来排序,ID小的规则排在前面,优先匹配;选择参数auto,将使用深度优先的匹配顺序。默认值是config,按照规则ID来排序。

  (3)执行命令,创建基本ACL规则。

rule [rule-id]{deny|permit} [logging|source{source-ip-address {0|sourcewildcard}| address-setaddress-set-name|any} |time-rangetime-name]*[descriptiondescription]

  如配置时没有指定编号rule-id,表示增加一条新的规则,此时系统会根据步长,自动为规则分配一个大于现有规则最大编号且是步长整数倍的最小编号。如配置时指定了编号rule-id,如果相应的规则已经存在,表示对已有规则进行编辑,规则中没有编辑的部分不受影响;如果相应的规则不存在,表示增加一条新的规则,并且按照指定的编号将其插入到相应的位置。

  配置好ACL,还需要将ACL应用到相应的接口才会生效。应用ACL时,为了尽可能提高效率和降低对网络的影响,通常基本ACL尽量部署在靠近目标主机的区域接口上,而高级ACL尽量部署在靠近源主机所在区域的接口上。

  在AR系列路由器中,也可以使用以下方式应用ACL:

interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000
//在接口上应用ACL进行报文过滤

相关文章:

  • java计算机毕业设计学生生活管理源码+系统+数据库+lw文档
  • python环境搭建
  • 基于simulink的超级电容,电池及DC motor充放电系统仿真
  • JS(DOM)第十五课
  • Java多线程(2)
  • 深入浅出Spring注解(22)
  • [C++基础]-初识模板
  • 【黄啊码】MySQL入门—13、悲观锁、乐观锁怎么用?什么是行锁、页锁和表锁?死锁了咋办?
  • 小小博客项目(servlet实战演练)
  • C++学习(6)——模板
  • C++重载运算符
  • 1027推免分享材料 备份
  • JavaScript---常用JS方法(utils.js)额外篇
  • 《CTF特训营》学习笔记——APK逆向基础
  • 一文带你了解怎样快速上手微信小程序开发
  • 自己简单写的 事件订阅机制
  • 【5+】跨webview多页面 触发事件(二)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • extjs4学习之配置
  • Java 23种设计模式 之单例模式 7种实现方式
  • js数组之filter
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Markdown 语法简单说明
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python学习笔记 - ThreadLocal
  • React组件设计模式(一)
  • Web设计流程优化:网页效果图设计新思路
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • # 达梦数据库知识点
  • #if 1...#endif
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (8)STL算法之替换
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (搬运以学习)flask 上下文的实现
  • (二)JAVA使用POI操作excel
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (五)MySQL的备份及恢复
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *1 计算机基础和操作系统基础及几大协议
  • ./configure,make,make install的作用(转)
  • ./和../以及/和~之间的区别
  • .CSS-hover 的解释
  • .net core使用ef 6
  • .NET 解决重复提交问题
  • .NET实现之(自动更新)
  • :中兴通讯为何成功
  • @Autowired和@Resource的区别
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [CCIE历程]CCIE # 20604
  • [codeforces]Levko and Permutation
  • [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape