ACL 访问控制实验:为什么匹配顺序比规则本身更重要?
从基础 ACL 和高级 ACL 入手,讲清楚流量匹配、规则顺序、接口方向和验证方法。
ACL 用来根据条件匹配流量,可以做访问控制、流量过滤,也常作为 NAT、策略路由等功能的匹配工具。
很多 ACL 实验失败,不是规则不会写,而是方向、顺序和匹配范围没有想清楚。
基础 ACL
基础 ACL 主要基于源 IP 匹配。
acl number 2000
rule 5 deny source 192.168.10.10 0
rule 10 permit source any
ACL 通常按规则编号从小到大匹配,命中后停止继续匹配。因此更具体的规则应该放在前面。
高级 ACL
高级 ACL 可以匹配源地址、目的地址、协议和端口。
acl number 3000
rule 5 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.20.10 0 destination-port eq 80
rule 10 permit ip
如果只想限制 Web 访问,就不要粗暴 deny 整个 IP,否则可能把 DNS、ICMP、业务端口一起拦掉。
接口方向
ACL 应用到接口时,要区分 inbound 和 outbound。方向判断建议站在设备接口视角:流量进入该接口就是 inbound,流量离开该接口就是 outbound。
interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000
方向选错时,规则看起来正确,但实际不会命中。
验证方法
display acl 3000
display traffic-filter applied-record
验证 ACL 不要只看配置,还要看命中次数。没有命中,说明流量没有走到这个规则,或者匹配条件写错。
排障建议
先画出流量方向,再写规则;先允许必要业务,再拒绝风险访问。生产环境修改 ACL 前,要准备回退命令,避免把自己远程管理链路切断。
实验目标
ACL 实验建议设计一个明确业务场景:办公网可以访问服务器的 SSH,但不能访问 Web;管理网可以访问所有服务;其他网段默认拒绝。
有了业务目标,ACL 规则才不会变成机械命令。每一条规则都应该回答“允许谁访问谁的什么服务”或“拒绝谁访问谁的什么服务”。
拓扑假设
Office VLAN 10 ---- Router ---- Server VLAN 20
Manage VLAN 30 ----/
服务器地址为 192.168.20.10。办公网为 192.168.10.0/24,管理网为 192.168.30.0/24。
可以用高级 ACL 控制办公网访问服务器的特定端口。
规则设计方法
写 ACL 前先列策略表:
- 办公网允许访问服务器 SSH。
- 办公网拒绝访问服务器 HTTP。
- 管理网允许访问服务器所有服务。
- 其他流量根据实验目标决定允许或拒绝。
策略表比直接敲命令更重要。生产环境中,很多 ACL 事故都来自没有先写清楚策略。
验收标准
验证 ACL 时要从多个方向测试:
- 办公网访问服务器 SSH 是否成功。
- 办公网访问服务器 HTTP 是否失败。
- 管理网访问服务器是否正常。
- ACL 命中次数是否增加。
- 未被明确允许或拒绝的流量是否符合预期。
如果业务结果和命中次数不一致,要检查 ACL 是否应用在正确接口和正确方向。
安全注意点
远程维护设备时,修改 ACL 前一定要确认不会阻断自己的管理流量。可以先开一个备用会话,或提前准备回滚命令。
对于生产网络,ACL 应该配合日志、变更审批和配置备份。实验阶段就养成这些习惯,会减少以后真实变更的风险。
参考资料
- 华为 HCIA-Datacom V1.0 实验手册
- Huawei ACL 配置指南
