ACL原理及配置

ACL(AccessControlList)是一种网络过滤工具,由规则组成,用于匹配和过滤报文。规则包括源地址、目的地址等匹配条件,以及permit或deny的动作。ACL编号用于唯一标识,规则编号按顺序匹配。通配符用于定义匹配的精度。华为设备支持自动和配置顺序匹配,且ACL的匹配遵循一旦命中即停止的原则。配置示例展示了如何创建和应用ACL来控制网络流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ACL原理

访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。

ACL本质上是一种过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过

ACL组成

      ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。原本华为和思科的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)
一个ACL中的每一条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。

步长(Step):

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

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

Rule ID分配规则:

系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

 

通配符(Wildcard)


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

通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

当进行IP地址匹配的时候,后面会跟着32位掩码位,这32位称为通配符。

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

 

 通配符计算

ACL匹配机制

ACL的匹配机制概括来说就是:

配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。

一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。

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

系统按照ACL规则编号从小到大的顺序进行报文匹配。规则编号越小越容易被匹配。

一条ACL可以由多条deny或permit语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。

华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。

自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。
配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。——这个就是我们前面提到的匹配顺序。
如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会按照从小到大的顺序进行匹配
 

基本配置

ACL协议
[huawei] acl number 2000        ##创建acl 2000
[huawei-acl-basic-2000] rule 5 deny source 192.168.1.1  0      ##拒绝源地址为192.168.1.1的流量  0代表仅此一台

[huawei-GigabitEthernet0/0/2]traffic-filter outbound acl 2000   ##调用出口方向ACL条目
outbound代表出方向, inbound代表进入方向

[Huawei] acl nmuber 3000 ###tcp为高级控制,所以3000起创建条目
[Huawei-acl-adv-3000] rule deny icmp source 192.168.1.0 0.0.0.255 destination 192.168.3.1 0 ###拒绝Ping


[Huawei-acl-adv-3000] rule permit tcp source 192.168.1.3 0 destination 192.168.3.1 0 destination-port eq 80
 ###destination代表目的地地址, destination-port代表目的端口号, 80可用www代替

[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 3000      ###在接口入方向应用acl

[Huawei-GigabitEthernet0/0/1] undo traffic-filter inbound        ###在接口上取消acl的应用

[Huawei-acl-adv-3000]dis this ###查看规则序号
[Huawei-acl-adv-3000] undo rule 5 ###删除一条acl语句
[Huawei] undo acl number 3000 ###删除整个ACL

[Huawei-GigabitEthernet0/0/1] undo traffic-filter inbound
###在接口上取消acl的应用
 

实验

这是一个直连网络  直接在路由器上设置acl控制访问协议 就可以完成实验

步骤1:设置终端设备的ip地址,子网掩码,网关

 

 步骤2:

(1)允许pc1访问pc3设置

<Huawei>undo t m                   //关闭华为通知
Info: Current terminal monitor is off.
<Huawei>sys                      //进入系统视图
Enter system view, return user view with Ctrl+Z.
[Huawei]acl 2000                 //创建acl 2000 条目
[Huawei-acl-basic-2000]rule 5 permit source 192.168.1.10 0   //创建允许PC1访问的条目
[Huawei-acl-basic-2000]rule 10 deny                                          //其余禁止访问
[Huawei-acl-basic-2000]int g0/0/2               //进入0/0/2接口
[Huawei-GigabitEthernet0/0/2]traffic-filter outbound acl 2000   //设置接口outbound条目2000
[Huawei-GigabitEthernet0/0/2]

(2)禁止192.168.1.0/24网段Ping WEB服务器

[Huawei]acl 3000                 //创建acl 3000高级 条目
[Huawei-acl-adv-3000]rule deny icmp source 192.168.1.0 0.0.0.255 destination 192
.168.3.30 0         //创建禁止192.168.1.0/24网段的设备ping wbe 服务 
[Huawei-acl-adv-3000]int g0/0/0    进入g0/0/0接口
[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 3000    //在路由器入口调取acl 3000条目

(3)允许clint1 访问WEB服务

这里直接在路由器的inbound修改acl 3000的rule匹配规则
[Huawei-acl-adv-3000]undo rule 5
[Huawei-acl-adv-3000]rule 5 permit tcp source 192.168.1.30 0 destination 192.168
.3.30 0 destination-port eq 80       //创建新的规则,允许CLINT1访问web服务

设置server1   选择HTTPserver ,加载一个文件根目录  端口号80  点启动

 设置客户端clint1 HTTpclient 的地址改成web服务器的192.168.3.30  选择获取

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值