ACL的原理及配置

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

某公司为保证财务数据安全,进制研发部门访问财务服务器,但总裁办公室不受限制
在这里插入图片描述
ACL概述
访问控制值列表(ACL)

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

应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包需要拒绝。

ACL是一系列permit或deny语句组成的、有序规则的列表。
ACL是一个匹配工具,能够对报文进行匹配和区分。
• permit(允许):数据包过滤,允许那些流量通过
• deny (拒绝):数据包过滤,拒绝那些流量通过
在这里插入图片描述

二 ACL应用

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

三 ACL组成

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。原本华为和思科的ACL都是默认拒绝一切,但是,华为模拟器默认是允许一切。
在这里插入图片描述
ACL的组成:
• ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。
• 规则:一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。
• 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。
• 动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。
比如:ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL),permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
• 匹配项:ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。

四 规则编号(Rule ID):

规则编号(Rule ID):

一个ACL中的每一条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。

步长(Step):

步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,这个差值称为“步长”。缺省值/缺省步长为5。所以规则编号就是5/10/15…以此类推。

步长的作用是为了方便后续在旧规则之间,插入新的规则。

Rule ID分配规则:

系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。
在这里插入图片描述
那步长的作用是什么?直接rule 1/2/3/4…为什么不可以?

问:如果希望增加一条规则,该如何处理?

答:可以在rule 10和rule 15之间,手工加入一条rule 11。

因此,设置一定长度的步长的作用,是方便后续在旧规则之间插入新的规则。

六 通配符(Wildcard

通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。

通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
• 当进行IP地址匹配的时候,后面会跟着32位掩码位,这32位称为通配符。

• 通配符,也是点分十进制格式,换算成二进制后,0表示“匹配”,1表示“不关心”。

• 具体看下这2条规则:

rule 5: 拒绝源IP地址为10.1.1.1报文通过——因为通配符为全0,所以每一位都要严格匹配,因此匹配的是主机IP地址10.1.1.1;

rule 15:允许源IP地址为10.1.1.0/24网段地址的报文通过——因为通配符:0.0.0.11111111,后8位为1,表示不关心,因此10.1.1.xxxxxxxx 的后8位可以为任意值,所以匹配的是10.1.1.0/24网段。

• 例子:如果要精确匹配192.168.1.1/24这个IP地址对应的网段地址,通配符是多少?

可以得出:网络位需要严格匹配,主机位无所谓,因此通配符为0.0.0.255。
在这里插入图片描述
• 如果想匹配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匹配结果为:不匹配。
②如果ACL存在,则查找设备是否配置了ACL规则。

③如果规则不存在,则返回ACL匹配结果为:不匹配。
④如果规则存在,则系统会从ACL中编号最小的规则开始查找。

⑤如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
⑥如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。

如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。

从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。

匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。

不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。

PS:匹配原则:一旦命中即停止匹配。

八实验

8.1.配置客户机

在这里插入图片描述

8.2配置路由

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.2.254 24  
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]ip add 192.168.3.254 24
[Huawei]acl 2000                                              ## 建立规则 
[Huawei-acl-basic-2000]rule 5 deny source 192.168.1.1 0       ## 禁止该地址访问
return
[Huawei-acl-basic-2000]int g0/0/1
[Huawei-GigabitEthernet0/0/1]traffic-	
[Huawei-GigabitEthernet0/0/1]traffic-filter out	
[Huawei-GigabitEthernet0/0/1]traffic-filter outbound acl 2000  ##应用规则
[Huawei-GigabitEthernet0/0/1]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 192.168.2.254 255.255.255.0 
 traffic-filter outbound acl 2000
 

8.3 测试

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值