一、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 的匹配原则就三条:

  1. 顺序匹配,自上而下——规则写在前面的先匹配。
  2. 匹配即停止——一旦命中某条规则,立即执行动作,不再检查后续规则。
  3. 隐含拒绝所有——如果所有规则都没匹配上,最后一条隐含的 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 基础入门知识体系 ACL 基础入门知识体系 ACL 访问控制列表 作用与价值 流量过滤 策略控制 安全隔离 ACL 分类 标准 ACL(仅源 IP) 扩展 ACL(多条件) 匹配原则 顺序匹配 匹配即停止 隐含拒绝 核心要点 ACL 不修改数据包,只做放行或丢弃 规则顺序决定匹配结果,隐含拒绝是最后防线

嗯,这张图把 ACL 的三大块——作用、分类、匹配原则——都串起来了。你保存下来,后面学配置的时候随时回来看。

1.6 小结

这一章我们聊了 ACL 是什么、能干什么、分几类、怎么匹配。说白了,ACL 就是一张规则表,设备按顺序查表做决策。标准 ACL 只看源 IP,扩展 ACL 看得更细。匹配原则记住三条:顺序匹配、匹配即停、隐含拒绝。