一、ACL 基础入门:到底什么是 ACL?
各位好,我是老张。搞网络这么多年,ACL 这东西几乎天天见。说白了,ACL 就是一张「访问控制清单」——你告诉路由器或交换机:哪些流量能过,哪些必须拦下。
我记得刚入行那会儿,带我的师傅丢给我一句话:「ACL 就是网络的保安,你给它什么规则,它就怎么站岗。」这么多年下来,我觉得这个比喻特别贴切。
1.1 什么是 ACL?
ACL,全称 Access Control List,访问控制列表。它是一组顺序排列的规则,每条规则定义了一种流量匹配条件,以及对应的处理动作——permit(允许)或 deny(拒绝)。
设备收到一个数据包后,会从上到下逐条匹配 ACL 规则。一旦命中,立即执行动作,不再往下看。这就是所谓的「匹配即停止」原则。
核心要点:ACL 不修改数据包内容,它只做「放行」或「丢弃」的决策。就像机场安检,只判断你能不能过,不帮你改机票。
1.2 ACL 的作用与价值
ACL 能干什么?我总结了三类最常见的场景:
- 流量过滤——阻止非法访问,比如只允许财务部网段访问服务器。
- 策略控制——限制特定协议或端口,比如封掉 Telnet,只开 SSH。
- 安全隔离——不同部门之间做访问限制,防止越权。
我在项目中遇到过一家公司,内网被人从外网直接 SSH 登录了核心交换机。查了半天,发现就是 ACL 没配——默认允许所有入站流量。你说这多危险?
我的建议:ACL 是网络安全的第一道防线。哪怕你只配一条 deny any,也比裸奔强。别等到出了事才想起来补规则。
1.3 ACL 的分类
ACL 主要分两大类:标准 ACL 和 扩展 ACL。它们有什么区别?我直接给你列个表:
| 对比项 | 标准 ACL | 扩展 ACL |
|---|---|---|
| 编号范围 | 1–99(标准) 1300–1999(扩展范围) |
100–199(扩展) 2000–2699(扩展范围) |
| 匹配条件 | 仅源 IP 地址 | 源 IP、目的 IP、协议、端口号 |
| 配置位置 | 尽量靠近目的端 | 尽量靠近源端 |
| 精确度 | 粗粒度 | 细粒度 |
| 典型用途 | 简单允许/拒绝某个网段 | 限制特定应用(如 HTTP、FTP) |
你想想看,标准 ACL 只看「你是谁」,扩展 ACL 还看「你要去哪、干什么」。所以实际项目中,扩展 ACL 用得更多。我个人习惯:能用扩展就别用标准,除非场景特别简单。
1.4 ACL 的匹配原则
这个必须讲清楚,因为很多人栽在这里。ACL 的匹配原则就三条:
- 顺序匹配,自上而下——规则写在前面的先匹配。
- 匹配即停止——一旦命中某条规则,立即执行动作,不再检查后续规则。
- 隐含拒绝所有——如果所有规则都没匹配上,最后一条隐含的
deny any会生效。
避坑指南:我曾经见过有人把 permit any 写在最前面,后面跟了一堆 deny 规则。结果所有流量都被放行了,后面的 deny 形同虚设。记住:顺序决定一切!
举个例子,假设你有三条规则:
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 100 deny tcp any any eq 80
access-list 100 permit ip any any
这个 ACL 的意思是:允许 192.168.1.0/24 网段访问任何主机的 80 端口,拒绝其他所有 HTTP 流量,最后放行所有其他流量。注意,第三条规则只对非 HTTP 流量生效——因为 HTTP 流量在第二条就被拦住了。
1.5 ACL 知识体系总览
下面这张图帮你把本章的核心内容串起来:
嗯,这张图把 ACL 的三大块——作用、分类、匹配原则——都串起来了。你保存下来,后面学配置的时候随时回来看。
1.6 小结
这一章我们聊了 ACL 是什么、能干什么、分几类、怎么匹配。说白了,ACL 就是一张规则表,设备按顺序查表做决策。标准 ACL 只看源 IP,扩展 ACL 看得更细。匹配原则记住三条:顺序匹配、匹配即停、隐含拒绝。