网络工程师 · ACL · 规则顺序

ACL规则顺序和隐式拒绝怎么判断?

ACL 题很多同学会背“标准 ACL 靠近目的、扩展 ACL 靠近源”,但真正做错时,常常不是放置位置,而是规则顺序和隐式拒绝。ACL 通常按顺序匹配,先匹配先执行;如果最后没有允许规则,可能被默认拒绝。

网络工程师专题 软考题库编辑部 持续更新

先记住:ACL不是把所有规则都执行一遍

ACL 判断通常是从上到下匹配。数据包命中某一条规则后,就按这条规则允许或拒绝,后面的规则不会再继续影响这个数据包。这个机制叫先匹配先执行。

所以规则顺序很关键。过于宽泛的允许规则如果放在前面,后面的拒绝规则可能永远不会生效;过于宽泛的拒绝规则如果放在前面,也可能误伤本来允许的流量。

规则顺序可能结果考试提醒
先宽泛允许,再具体拒绝具体拒绝可能失效先匹配先执行
先宽泛拒绝,再具体允许具体允许可能被挡住拒绝范围要谨慎
先具体,后宽泛更容易表达意图常见推荐写法
没有允许规则可能被隐式拒绝不要忘记最后的默认行为
方向放错规则匹配不到预期流量入方向/出方向要按接口看

隐式拒绝:没有匹配到允许,不代表自动放行

很多 ACL 体系里,规则末尾可以理解为存在一条隐含的拒绝规则。也就是说,如果你只写了几条允许规则,其他未匹配流量可能会被拒绝。考试题如果问为什么某些访问突然不通,要注意是否遗漏了允许规则。

这类题的关键不是死背某个厂商命令,而是理解访问控制逻辑:你明确允许了什么,明确拒绝了什么,剩下没说的流量怎么处理。

一个容易错的场景

需求:允许研发网访问 Web 服务器,允许访问 DNS,其他访问拒绝。

如果只写允许 Web,忘了允许 DNS,用户可能打不开域名。

如果最后没有明确允许其他必要流量,可能被隐式拒绝。

复盘时不要只看 ACL 是否存在,要看规则是否覆盖业务路径。

标准 ACL、扩展 ACL、方向要一起看

标准 ACL 通常按源地址过滤,粒度比较粗;扩展 ACL 可以按源、目的、协议、端口过滤,粒度更细。规则顺序、ACL 类型、放置位置和接口方向要一起看,单独背其中一条不够。

做题时建议画出数据包路径:从源主机出来,经过哪个接口进入路由器,又从哪个接口出去。然后再判断 ACL 放在入方向还是出方向、规则能不能匹配到该流量。

判断点要问的问题常见错法
ACL 类型能匹配源、目的、端口吗用标准 ACL 控制目的端口
规则顺序哪一条会先命中把关键拒绝放在宽泛允许后面
接口方向流量是进接口还是出接口按拓扑左右判断方向
隐式拒绝未匹配流量怎么处理忘记补必要允许规则
业务路径DNS、回程、管理流量是否也需要只放行 Web 端口

和已有 ACL 题怎么配合练

ACL 题最适合画路径。每做一道题,都写四句话:谁访问谁,经过哪个接口,规则从上到下怎么匹配,没匹配到会怎样。这样比只背“标准靠近目的、扩展靠近源”稳定。

如果你已经学过 ACL 入方向/出方向,再补规则顺序和隐式拒绝,访问控制题会完整很多。