ACL(Access Control List,访问控制列表)是网络设备的"门禁规则"——按规则顺序匹配流量,决定允许或拒绝。它用于流量过滤、NAT 匹配、路由策略等场景。本文讲清 ACL 两种类型和配置方法。
一、ACL 分类
| 类型 | 编号范围 | 匹配条件 | 粒度 |
|---|---|---|---|
| 标准 ACL | 2000-2999 | 仅源 IP | 粗(只能按源IP过滤) |
| 扩展 ACL | 3000-3999 | 源IP+目的IP+协议+端口 | 细(可按五元组过滤) |
选择原则:只需按源IP过滤用标准ACL;需指定协议/端口用扩展ACL。扩展ACL更精确,实际工程中更常用。
二、匹配规则
ACL 按规则顺序匹配,从上往下逐条比对,命中即执行(permit/deny),后续不再匹配。未命中任何规则,默认拒绝。
rule 5 permit source 192.168.10.10 0.0.0.0 # 精确匹配某IP
rule 10 deny source 192.168.10.0 0.0.0.255 # 拒绝整个网段
rule 15 permit # 允许其余所有
↑ 命中即停,不再往下匹配
三、实验拓扑
技术部PC(10.10) ──┐
财务部PC(20.10) ──┼── R1 ── Server(30.10)
管理PC(10.100) ──┘
需求: 在R1上配ACL,使
① 技术部可访问Server
② 财务部禁止访问Server
③ 管理PC可访问Server
四、配置标准 ACL
[R1] acl 2000
[R1-acl-basic-2000] rule permit source 192.168.10.10 0.0.0.0 # 技术部PC
[R1-acl-basic-2000] rule deny source 192.168.20.0 0.0.0.255 # 财务部全网
[R1-acl-basic-2000] rule permit source 192.168.10.100 0.0.0.0 # 管理PC
[R1-acl-basic-2000] rule deny # 拒绝其余
# 应用到接口(靠近目的端,避免浪费转发)
[R1] interface GigabitEthernet 0/0/1 # 连Server的接口
[R1-GE0/0/1] traffic-filter outbound acl 2000
ACL 应用位置:标准ACL只能按源IP过滤,应放在靠近目的端的接口,避免源端被过滤后其他流量也受影响。扩展ACL建议放在靠近源端,尽早丢弃不必要流量。
五、配置扩展 ACL(更精确)
[R1] acl 3000
# 允许技术部访问Server的HTTP(80)和SSH(22)
[R1-acl-adv-3000] rule permit tcp source 192.168.10.10 0.0.0.0 destination 192.168.30.10 0.0.0.0 destination-port eq 80
[R1-acl-adv-3000] rule permit tcp source 192.168.10.10 0.0.0.0 destination 192.168.30.10 0.0.0.0 destination-port eq 22
# 拒绝财务部访问Server所有流量
[R1-acl-adv-3000] rule deny ip source 192.168.20.0 0.0.0.255 destination 192.168.30.10 0.0.0.0
# 允许管理PC全访问
[R1-acl-adv-3000] rule permit ip source 192.168.10.100 0.0.0.0 destination 192.168.30.10 0.0.0.0
[R1] interface GE0/0/1
[R1-GE0/0/1] traffic-filter outbound acl 3000
六、验证
# 技术部PC访问Server HTTP
技术部PC> curl http://192.168.30.10 ✅ 通(命中rule permit)
# 财务部PC访问Server
财务部PC> ping 192.168.30.10
Request timeout! ❌ 不通(命中rule deny)
# 查看ACL命中计数
[R1] display acl 3000
Advanced ACL 3000, 3 rules
rule 5 permit tcp ... (5 matches) ← 技术部命中5次
rule 10 deny ip ... (3 matches) ← 财务部命中3次
rule 15 permit ip ... (2 matches) ← 管理PC命中2次
七、排错思路
- 该通的没通? 检查 permit 规则是否在 deny 之前,ACL 按顺序匹配,deny 在前会拦截后续 permit。
- ACL 没生效? 确认 ACL 已应用到接口(traffic-filter),且方向(inbound/outbound)正确。
- 反掩码写错? 0.0.0.0 表示精确匹配单个IP,0.0.0.255 表示匹配整个/24网段。
- 默认隐式拒绝? ACL 末尾隐含一条 deny all,若未显式 permit,所有未匹配流量都会被拒绝。
八、小结
- ACL 按规则顺序匹配,命中即执行,标准ACL按源IP、扩展ACL按五元组
- 标准ACL放靠近目的端,扩展ACL放靠近源端
- 注意规则顺序:permit 在前 deny 在后,末尾隐含 deny all
- 用 display acl 查看命中计数,辅助排错