ACL技术详解
2322 字
12 分钟
ACL技术详解
ACL 技术详解
一、ACL概述
| 项目 | 说明 |
|---|---|
| 全称 | Access Control List(访问控制列表) |
| 本质 | 一组按顺序匹配的规则集合 |
| 核心功能 | 报文过滤、流量分类、路由策略匹配、NAT地址转换匹配 |
| 匹配原则 | 从上到下依次匹配,匹配到第一条即停止,末尾隐含 deny any |
| 适用对象 | 匹配通过设备的流量(不影响本设备产生的流量) |
ACL本身只做匹配和分类,具体动作(permit/deny)由应用ACL的功能模块执行。同一ACL可被多个功能模块同时引用。
二、ACL分类 🏷️高频考点
| ACL类型 | 编号范围 | 匹配条件 | 典型应用场景 |
|---|---|---|---|
| 基本ACL | 2000-2999 | 仅源IP地址 | 简单源地址过滤、NAT地址转换匹配 |
| 高级ACL | 3000-3999 | 源/目的IP、协议类型、源/目的端口、TCP标志、ToS/DSCP | 精细化流量过滤、策略路由 |
| 二层ACL | 4000-4999 | 源/目的MAC、VLAN ID、802.1p优先级、二层协议类型 | 二层流量过滤、防ARP攻击 |
| 用户自定义ACL | 5000-5999 | 报文头指定偏移位置的自定义匹配 | 特殊/非标准报文过滤 |
| 命名ACL | — | 能力等同于基本/高级ACL | 便于通过名称管理,支持编辑单条规则 |
2.1 基本ACL vs 高级ACL 对比
| 对比项 | 基本ACL | 高级ACL |
|---|---|---|
| 编号 | 2000-2999 | 3000-3999 |
| 匹配粒度 | 仅源IP | 五元组+ToS/TCP Flag/分片 |
| 适用位置 | 离目的近 | 离源近(精确匹配) |
| 配置复杂度 | 低 | 高 |
| 典型应用 | 简单过滤、NAT匹配 | 精细流量控制、策略路由 |
三、ACL规则匹配顺序 🏷️高频考点
ACL的匹配顺序至关重要,同一ACL中规则顺序不同,匹配结果可能完全不同。
3.1 config模式(配置顺序)- 默认
按 rule-id 从小到大依次匹配,匹配到第一条符合条件的规则即停止。
rule-id由小到大 5 permit → 匹配则允许,停止 10 deny → 匹配则拒绝,停止 15 permit → 匹配则允许,停止 ... 未匹配 → 隐含 deny allstep 步长机制:默认 step=5,规则自动分配 rule-id 为 5, 10, 15…
# 配置顺序示例acl 2000 rule 5 permit source 10.1.1.0 0.0.0.255 rule 10 deny source 10.1.1.100 0 # 此规则永远不会被匹配!注意:rule 10 中 10.1.1.100 已被 rule 5 的 10.1.1.0/24 匹配并放行,永远不会被命中。这是 config 模式下典型的配置错误。
3.2 auto模式(自动排序/深度优先)
按”精度优先”原则自动排序,匹配条件越严格的规则越靠前。
| ACL类型 | 排序规则 |
|---|---|
| 高级ACL | ① 协议范围小优先 → ② 源IP通配符掩码小优先 → ③ 目的IP通配符掩码小优先 → ④ 源端口范围小优先 → ⑤ 目的端口范围小优先 |
| 基本ACL | 源IP通配符掩码越小越优先(掩码越精确越靠前) |
# auto模式示例acl 3000 match-order auto rule permit ip source 10.1.1.1 0 destination any # 自动排最前(host精度最高) rule permit ip source 10.1.1.0 0.0.0.255 destination any # 自动排中间 rule deny ip source any destination any # 自动排最后(精度最低)3.3 config vs auto 对比
| 对比项 | config(配置顺序) | auto(自动排序) |
|---|---|---|
| 排序方式 | 按 rule-id 从小到大 | 按精度从高到低 |
| 是否保证精确优先 | 否,取决于配置顺序 | 是,系统自动排序 |
| 是否可预测 | 是(按配置顺序) | 是(按精度算法) |
| 默认模式 | ✓ | — |
| 配置灵活性 | 高 | 低 |
四、ACL规则与通配符掩码 🏷️高频考点
4.1 通配符掩码(Wildcard Mask)
| 规则 | 说明 |
|---|---|
| 0 | 严格匹配该位(必须相同) |
| 1 | 忽略该位(不关心) |
通配符掩码 = 255.255.255.255 - 子网掩码(即反子网掩码)
4.2 常用通配符掩码速查
| 需求 | 写法 | 等效简写 |
|---|---|---|
| 匹配 192.168.1.0/24 | 192.168.1.0 0.0.0.255 | — |
| 匹配任意地址 | 0.0.0.0 255.255.255.255 | any |
| 匹配特定主机 192.168.1.1 | 192.168.1.1 0.0.0.0 | 192.168.1.1 0 |
| 匹配 10.1.0.0/16 | 10.1.0.0 0.0.255.255 | — |
| 匹配 172.16.0.0/12 | 172.16.0.0 0.15.255.255 | — |
| 匹配奇数网段 192.168.1.1/32 | 192.168.1.1 0.0.0.254 | — |
| 匹配偶数网段 192.168.1.0/32 | 192.168.1.0 0.0.0.254 | — |
4.3 通配符掩码计算关键
通配符掩码 0.0.0.255 → 前24位严格匹配(网络部分),后8位忽略(主机部分)通配符掩码 0.0.255.255 → 前16位严格匹配,后16位忽略重要:通配符掩码的0和1可以不连续!例如
0.0.0.254(00000000.00000000.00000000.11111110) 可匹配奇数IP。
五、ACL应用方向 🏷️高频考点
5.1 inbound与outbound
| 方向 | 匹配时机 | 说明 |
|---|---|---|
| inbound | 接口收到报文后,查路由表之前 | 在入口过滤,减少不必要的路由查找 |
| outbound | 查路由表确定出接口后,发送报文之前 | 在出口过滤,本设备转发的报文才匹配 |
5.2 方向选择原则
基本原则:尽量在靠近源的接口的inbound方向应用ACL → 减少不必要的路由查找和转发处理 → 节省设备资源
例外: - 基本ACL:只能匹配源IP,建议靠近目的端应用(outbound) - 高级ACL:可精确匹配,建议靠近源端应用(inbound)六、ACL时间段(Time Range)
6.1 时间段类型
| 类型 | 说明 | 配置示例 |
|---|---|---|
| 绝对时间段 | 指定起止日期时间 | from 08:00 2024-01-01 to 18:00 2024-12-31 |
| 周期时间段 | 指定每周重复时间段 | period 09:00 to 18:00 working-day |
| 组合时间段 | 绝对+周期组合 | 在周期基础上加绝对日期范围 |
6.2 配置示例
# 定义工作时间段time-range WORK-TIME 08:00 to 18:00 working-day
# ACL引用时间段acl 3000 rule permit ip source any destination any time-range WORK-TIME rule deny ip source any destination any七、华为设备配置命令示例
7.1 基本ACL配置与应用
# 创建基本ACLacl 2000 rule 5 permit source 192.168.1.0 0.0.0.255 rule 10 deny source 192.168.2.0 0.0.0.255 rule 15 permit source any
# 在接口上应用(traffic-filter)interface GigabitEthernet0/0/1 traffic-filter inbound acl 20007.2 高级ACL配置与应用
# TCP/UDP端口过滤acl 3000 rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 80 rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 443 rule 15 deny tcp source any destination any destination-port range 1 1024 rule 20 permit ip source any destination any
# ICMP过滤acl 3001 rule 5 permit icmp source 192.168.1.0 0.0.0.255 destination any icmp-type echo rule 10 deny icmp source any destination any
# 在接口应用interface GigabitEthernet0/0/1 traffic-filter inbound acl 30007.3 命名ACL配置
# 创建命名ACL(高级)acl name DENY-P2P advance rule 5 deny udp source any destination any destination-port range 6881 6889 rule 10 deny tcp source any destination any destination-port range 6881 6889 rule 15 permit ip source any destination any
# 可编辑已存在规则acl name DENY-P2P advance rule 5 deny tcp source 10.1.1.0 0.0.0.255 destination any destination-port eq 23
# 在接口应用interface GigabitEthernet0/0/1 traffic-filter inbound acl name DENY-P2P7.4 ACL匹配顺序配置
# config模式(默认)acl 3000 match-order config rule 5 permit ip source 10.1.1.1 0 destination any rule 10 deny ip source 10.1.1.0 0.0.0.255 destination any
# auto模式acl 3000 match-order auto rule permit ip source 10.1.1.1 0 destination any # 自动排第一 rule deny ip source 10.1.1.0 0.0.0.255 destination any # 自动排第二7.5 时间段ACL配置
# 定义时间段time-range OFF-HOURS 18:00 to 23:59 working-day
# 时间段ACLacl 3000 rule 5 deny ip source 192.168.1.0 0.0.0.255 destination any time-range OFF-HOURS rule 10 permit ip source any destination any7.6 ACL在VTY线路上应用(控制Telnet/SSH访问)
# 创建管理ACLacl 2001 rule 5 permit source 192.168.100.0 0.0.0.255 rule 10 deny source any
# 在VTY线路应用(仅允许特定网段远程管理)user-interface vty 0 4 acl 2001 inbound authentication-mode aaa protocol inbound ssh7.7 ACL在路由策略中的应用
# ACL用于匹配路由acl 2000 rule 5 permit source 10.1.1.0 0.0.0.255
# 路由策略引用ACLroute-policy FILTER permit node 10 if-match acl 2000 apply cost 1007.8 ACL在NAT中的应用
# ACL匹配需要NAT转换的内网地址acl 2000 rule 5 permit source 192.168.1.0 0.0.0.255 rule 10 permit source 192.168.2.0 0.0.0.255
# NAT引用ACLnat address-group 1 100.1.1.1 100.1.1.10interface GigabitEthernet0/0/1 nat outbound 2000 address-group 1八、常见故障排查
8.1 故障排查流程
8.2 常见问题
| 问题 | 可能原因 | 排查方法 |
|---|---|---|
| ACL规则不生效 | 未在接口应用 | display traffic-filter applied-record |
| 应用方向错误 | 确认inbound/outbound方向 | |
| 被前面的规则提前匹配 | 查看命中计数判断哪条规则生效 | |
| 通配符掩码写错 | 检查 0.0.0.255 是否写成了 255.255.255.0 | |
| 误过滤正常流量 | 规则配置精度不足 | 细化匹配条件,增加例外规则 |
| 匹配顺序错误 | config模式下检查rule-id顺序 | |
| 未加最终的permit ip any | 注意隐含 deny all | |
| ACL命中计数异常 | 流量未经过该接口 | 确认数据走向 |
| 路由导致走其他路径 | display ip routing-table 验证 |
8.3 常用排错命令
display acl all # 查看所有ACL配置display acl 3000 # 查看指定ACL详情(含命中计数)display traffic-filter applied-record # 查看接口ACL应用情况display traffic-filter statistics interface GigabitEthernet0/0/1 # 接口ACL统计reset acl counter all # 清空ACL命中计数器支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
NAT技术详解
网络2026-08-05
2
IPv6 技术详解
网络2026-08-05
3
VLAN 技术详解
网络2026-08-05
4
BFD技术详解
网络2026-08-05
5
VRRP技术详解
网络2026-08-05
随机文章随机推荐



