第三章节:标准ACL实战——配置命令、源IP过滤与放置位置原则
好,咱们进入标准ACL的实战环节。说实话,标准ACL是访问控制列表里最基础、也最容易上手的一种。但你别小看它,我见过不少老工程师,在标准ACL的放置位置上栽过跟头。今天咱们就把这块彻底讲透。
3.1 标准ACL的配置命令
标准ACL的配置,说白了就两句话:先创建规则,再应用到接口。咱们先看创建规则的命令。
# 进入全局配置模式
Switch> enable
Switch# configure terminal
# 创建标准ACL,编号范围1-99或1300-1999
Switch(config)# access-list 10 permit 192.168.1.0 0.0.0.255
# 或者用命名方式(我个人更推荐这种方式,可读性好)
Switch(config)# ip access-list standard BLOCK_HR
Switch(config-std-nacl)# permit 192.168.1.0 0.0.0.255
Switch(config-std-nacl)# deny any
这里有个关键点——通配符掩码。很多新手容易把它和子网掩码搞混。通配符掩码里,0表示必须匹配,1表示可以忽略。比如 0.0.0.255 的意思是前24位必须匹配,最后8位任意。说白了,就是匹配192.168.1.0/24这个网段。
重要提醒:标准ACL只能基于源IP地址做过滤。它不关心目标IP,不关心端口号,不关心协议类型。这就是它的局限性,也是它的简单之处。
3.2 基于源IP的流量过滤实战
咱们来看一个真实场景。我在一家制造企业做网络改造时,遇到过这样的需求:人力资源部的员工只能访问公司内网,不能上外网。其他部门正常上网。
这个需求用标准ACL就能搞定。配置思路是这样的:
- 先搞清楚HR部门的IP段——假设是192.168.10.0/24
- 创建ACL,拒绝这个网段访问外网
- 允许其他所有流量
- 把ACL应用到连接外网的接口上
Switch(config)# access-list 101 deny 192.168.10.0 0.0.0.255 any
Switch(config)# access-list 101 permit any any
# 应用到出接口(连接外网的接口)
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# ip access-group 101 out
嗯,这里要注意一个细节:ACL的规则顺序很重要。设备是从上往下逐条匹配的,一旦匹配就停止。所以要把更具体的规则放在前面。我曾经见过有人把 permit any any 写在前面,结果后面的 deny 规则永远不生效——因为所有流量都被第一条放行了。
我的小技巧:配置完ACL后,用 show access-lists 查看匹配计数。如果某个规则的计数一直为0,说明它可能被前面的规则覆盖了。这个习惯帮我抓出过不少配置错误。
3.3 标准ACL的放置位置原则
这是标准ACL最容易被忽视的地方。很多教材会说「标准ACL要放在靠近目标的位置」,但为什么?我来给你讲明白。
标准ACL只检查源IP。假设你要阻止192.168.1.0/24访问服务器10.10.10.10。如果你把ACL放在靠近源的位置——比如在接入交换机上——那么所有来自192.168.1.0/24的流量都会被拒绝,包括它访问其他合法目标的流量。这会造成误杀。
正确的做法是:把标准ACL放在离目标最近的位置。这样只有真正流向目标服务器的流量才会被过滤,其他方向的流量不受影响。
| 放置位置 | 优点 | 缺点 |
|---|---|---|
| 靠近源(接入层) | 早期过滤,节省带宽 | 容易误杀,管理复杂 |
| 靠近目标(核心/汇聚层) | 精确过滤,不影响其他流量 | 无效流量可能占用部分带宽 |
避坑指南:我曾经在一个项目中,把标准ACL放在了核心交换机的入方向,结果整个办公区的员工都上不了ERP系统。排查了半天才发现——ACL把源IP段整个拒绝了,而ERP服务器恰好也在那个网段里。嗯,从那以后我每次配置ACL都会先画个拓扑图,标清楚流量走向。
3.4 实战中的几个坑
最后分享几个我踩过的坑,你遇到了能少走弯路:
- 隐含的deny any:每个ACL末尾都有一条隐式的
deny any。如果你只写了permit规则,别忘了最后加一条permit any any,否则所有未匹配的流量都会被丢弃。 - 接口方向搞反:in方向是流量进入接口时检查,out方向是流量离开接口时检查。我见过有人把out方向的ACL配成了in,结果该拦的没拦住,不该拦的全拦了。
- ACL编号冲突:标准ACL只能用1-99和1300-1999。如果你用了100-199,那是扩展ACL的编号范围,命令格式都不一样。
标准ACL虽然简单,但它是理解访问控制的基础。你想想看,如果连源IP过滤都搞不明白,后面更复杂的扩展ACL、命名ACL就更难上手了。下一章咱们聊扩展ACL,那才是真正能精细控制流量的利器。