问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

HCIA-12.ACL原理与配置

创作时间:
作者:
@小白创作中心

HCIA-12.ACL原理与配置

引用
CSDN
1.
https://blog.csdn.net/chisato/article/details/146237176

访问控制列表(ACL)是网络工程中用于控制网络流量的重要工具,通过精确识别和区分网络报文,可以实现流量过滤、访问控制等功能。本文将详细介绍ACL的基本原理、分类、配置方法以及实际应用,帮助读者掌握这一核心技术。

背景

网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。
ACL可以通过对网络中报文流的精确识别(它本身只是识别),与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
ACL的典型应用比如黑、白名单。

目标

  • 描述ACL的基本原理和基本作用
  • 区分ACL的不同种类及特点
  • 描述ACL规则的基本组成结构和匹配顺序
  • 掌握ACL中通配符的使用方法
  • 完成ACL的基本组网配置。

ACL技术概述

技术背景:需要一个工具,实现流量过滤

某公司为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制。

ACL应用:

  • 在Traffic-filter中被调用
  • 在NAT(Network Address Translation)中被调用
  • 在路由策略中被调用
  • 在防火墙的策略部署中被调用
  • 在QoS中被调用
  • 其他……

ACL概述

ACL是什么:

  1. 由一系列permit或deny语句组成的、有序规则的列表。
  2. 一个匹配工具,能够对报文进行匹配和区分。

ACL的作用:
可以通过对网络中报文流的精确识别(它本身只是识别),与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的。

ACL的基本概念及其工作原理

ACL的分类

通过查看ACL指令,找到ACL的匹配内容。

[AR1]acl ?  
INTEGER<2000-2999> Basic access-list(add to current using rules)  
INTEGER<3000-3999> Advanced access-list(add to current using rules)  
INTEGER<4000-4999> Specify a L2 acl group  
ipv6 ACL IPv6  
name Specify a named ACL  
number Specify a numbered ACL  
INTEGER<2000-2999>  基本ACL,只能匹配  SIP、时间戳、分片、第一个报文  
INTEGER<3000-3999>  高级ACL,只能匹配  SIP、时间戳、分片、第一个报文、DIP、协议号、端口号等  
INTEGER<4000-4999>  二层ACL、可以匹配  SMAC、DMAC、时间戳、分片  
ipv6  默认是ipv4规则,ipv6则用于定义ipv6需要的规则  
name  定义ACL规则的名称便于识别ACL  
number    

通过指令了解ACL的工作原理

节点 动作 匹配项 参数 通配符掩码
rule 5 permit source 192.168.1.1 0.0.0.0

ACL的节点

一个ACL的每条规则都需要进行排列。
默认5的步长进行条目的排列(5、10、15…),最大值为4294967294。

[AR1-acl-basic-2000]rule ?  
INTEGER<0-4294967294> ID of ACL rule  

ACL的动作

[AR1-acl-basic-2000]rule 5 ?  
deny Specify matched packet deny  
description Specify rule description  
permit Specify matched packet permit  

Permit/deny 只是作为标记使用,具体是允许通过还是禁止通过是由其他技术决定的。
description 则是描述。

ACL的匹配项

ACL匹配的内容。

[AR1-acl-basic-2000]rule 5 permit ?  
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  

ACL的参数

需要匹配的具体信息。

ACL的通配符掩码

连续的1和连续的0组合
0表示
1表示
通配符掩码
不需要
精确匹配
正掩码
需要
广播位
反掩码
需要
网络位

指令解读

节点 动作 匹配项 参数 通配符掩码
rule 5 permit source 192.168.1.1 0.0.0.0

新增一条节点条目5,该条目允许源IP通过,其参数为192.168.1.1且必须完全匹配。

扩展

题目:假设有源IP 192.A.1.B,其中A为奇数,B为偶数,要如何设置ACL?

思路1:
一个十进制数,能被二整除是偶数,不能被整除则是奇数。
十进制数在计算中会转化为二进制。
在二进制数的2^n次方中,除了2^0次方,所有数都为偶数。
而2^0次方与所有2^n次方加减都为奇数。
128、64、32、16、8、4、2、1
所以,根据二进制数列的特点,判断是否奇偶数取决于最后一位是否存在置位:
0001 0100(偶数),0001 0101(奇数)。

思路2:
A1、在源IP192.A.1.B中,如果A为奇数,则其二进制最后一位应为1 ,即xxxx xxx1;同理,如果B为偶数,则其二进制最后一位应为0,即xxxx xxx0。所以,在填写A和B的时,我们只要填上十进制的A奇数和B偶数(比如1和0),其二进制结果一定是A=0000 0001,B=0000 0000。
A1.1、所以源IP我们可以填写192.1.1.0,其中A和B可为任意奇数和偶数,比如填192.65.1.64也是可以的,因为65的二进制最后一位为1:0100 0001,64的二进制最后一位为0:0100 0000。
A2、在填写通配符掩码时,我们考虑:
A2.1、通配符掩码为1表示忽略,为0表示匹配;
A2.2、源IP的取值范围是0~255,即八个二进制数位,即 XXXX XXXX;
A2.3、而从二进制的思路考虑,在确定奇数和偶数时,只需要审查最后一位即可。

结论:
B1、根据A2.2我们得出的数位长度为8;
B2、根据A2.3我们得出长度为8的数列中,我们忽略前7个,匹配最后1个;
B3、根据A2.1的规则:忽略匹配填1、需要匹配填0,得出长度为8的二进制数为:1111 1110,即1~7位忽略填入1,最后一位匹配填入0;
B4、将1111 1110转为10进制,为254,则通配符掩码填0.254.0.254。

在ACL规则的计算中,其数位匹配结果如下:
x.65.x.64 → x.0100 0001.x.0100 0000
0.254.0.254 → x.1111 1110.x.1111 1110

ACL的匹配机制

ACL可以配置多个条目

条目会按照节点的大小,从小到大依次排列;
ACL的匹配也是从小到大依次进行的;
且,如果流量被条目匹配到,则执行条目并停止继续匹配。

如下图中:
SIP 192.168.1.4按从小到大的规则,匹配到rule 20后就停止继续了,所以匹配不到rule25。

ACL的缺省规则

ACL根据匹配信息不同,最终隐含规则(缺省规则)也不同:
A1、如果ACL匹配的是流量,则默认是允许所有;
A2、如果ACL匹配的是路由,则默认是拒绝左右。

具体是流量还是路由,需要根据ACL的外部调用功能确定。

ACL的配置匹配建议

需要先配置精确的信息条目,再配置大范围的信息条目。
比如下面这条,仅允许192.168.1.0、192.168.2.0、192.168.3.0通过,如果将大范围的ACL配在前面,按照匹配的先后顺序则直接拒绝所有流量通过。

调整步长

[AR1-acl-basic-2000]step 6 #调整后默认步长发生改变

指令集

指令 功能
acl name
rule x permit source x.x.x.x y.y.y.y 节点
step 调整步长 < 1 - 20 >
rule xxxx permitrule xxxx permit source any 这两条都代表匹配任意条目

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号