1. ACL基础入门:什么是ACL、ACL的作用、ACL的分类、ACL的处理原则
1.1 什么是ACL?先讲个故事
ACL,全称是Access Control List,访问控制列表。
说白了,它就是一张规则表。这张表告诉交换机:什么样的数据包能过,什么样的得拦下。
我刚开始接触网络那会儿,觉得ACL挺玄乎的。后来带我的老工程师说了句话,我到现在还记得——「ACL就是门卫,你给它一张名单,它就知道谁该进、谁该滚蛋」。
嗯,话糙理不糙。
ACL本质上是一组允许(permit)和拒绝(deny)语句的集合。交换机收到数据包后,会从上到下逐条匹配这些语句。一旦匹配上,就执行对应的动作,不再往下看了。
核心要点:ACL = 规则列表 + 匹配动作(permit/deny)
1.2 ACL的作用:不只是安全
很多人以为ACL只用来做安全防护。其实它的用途比你想的广得多。
我在项目中遇到过好几次,客户说网络卡,查了半天发现是广播风暴。后来用ACL限制了某些端口的流量,问题就解决了。
ACL的主要作用有这几个:
- 流量过滤——阻止非法访问,只允许特定IP或端口通过
- 安全防护——防止外部攻击,比如拒绝来自某个网段的SSH连接
- 流量控制——限制某些应用的带宽,或者禁止P2P下载
- 策略路由——结合路由策略,让特定流量走特定路径
- NAT配合——在NAT转换时,用ACL指定哪些地址需要转换
你想想看,一个没有ACL的网络,就像一栋没有门禁的大楼。谁都能进,谁都能出。出了事你都不知道是谁干的。
我的建议:刚入行的朋友,别急着搞复杂的ACL。先把简单的IP过滤玩明白,再慢慢深入。一口吃不成胖子。
1.3 ACL的分类:标准ACL vs 扩展ACL
ACL分两大类:标准ACL和扩展ACL。这两者的区别,我打个比方你就懂了。
标准ACL就像小区门口的保安,只看你是不是这个小区的业主(只看源IP)。
扩展ACL就像机场安检,不光看你是谁,还要看你带了什么、要去哪、坐什么交通工具(看源IP、目的IP、端口、协议)。
具体区别看下表:
| 对比项 | 标准ACL | 扩展ACL |
|---|---|---|
| 检查范围 | 仅源IP地址 | 源IP、目的IP、端口、协议 |
| 编号范围 | 1-99,1300-1999 | 100-199,2000-2699 |
| 配置位置 | 尽量靠近目的端 | 尽量靠近源端 |
| 精确度 | 低(只能粗粒度控制) | 高(可以精细控制) |
| 典型场景 | 简单允许/拒绝某个网段 | 限制特定应用(如HTTP、SSH) |
举个例子:
标准ACL:只允许192.168.1.0/24这个网段通过。
access-list 10 permit 192.168.1.0 0.0.0.255
扩展ACL:只允许192.168.1.0/24网段访问10.0.0.1的Web服务(TCP 80端口)。
access-list 100 permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.1 eq 80
看到了吧?扩展ACL能做的事情,标准ACL根本做不到。
注意:标准ACL虽然简单,但容易误伤。我曾经在一个项目里,用标准ACL拦了一个网段,结果把正常的DNS查询也给拦了。后来换成扩展ACL,指定了UDP 53端口,问题才解决。
1.4 ACL的处理原则:顺序决定一切
ACL的处理原则,我总结成一句话:顺序匹配,一旦命中,立即执行,不再继续。
为什么会这样?
因为ACL是顺序执行的。交换机从上到下逐条检查,找到第一条匹配的规则就执行对应的动作。后面的规则,哪怕匹配了也不管了。
这里有个坑,我踩过好几次——
我曾经在配置ACL时,把拒绝规则写在了允许规则后面。结果呢?允许规则先匹配了,拒绝规则根本没生效。查了半天才发现是顺序搞反了。
记住这几点:
- 顺序重要——精确的规则放前面,宽泛的规则放后面
- 隐含拒绝——ACL末尾有一条看不见的deny any,所有没匹配到的流量都会被拒绝
- 先建后配——先创建ACL,再应用到接口上。顺序别搞反了
- 方向要分清——inbound(入方向)和outbound(出方向),别搞混了
避坑指南:配置ACL时,一定要先想清楚「我要允许什么,拒绝什么」。然后按「先精确后宽泛」的原则排列规则。最后别忘了,ACL末尾有个隐含的deny any,如果你只想拒绝某些流量,记得加一条permit any收尾。
1.5 实战小贴士
最后分享几个我自己的习惯:
- 命名ACL比编号ACL好——命名ACL可以增删改,编号ACL只能整体替换。我建议用命名ACL,方便后期维护。
- 先测试再上线——在测试环境验证ACL规则,确认没问题了再部署到生产环境。别问我为什么强调这个,说多了都是泪。
- 做好注释——ACL规则多了,自己都看不懂。加个remark注释,写清楚这条规则是干嘛的。半年后你会感谢自己的。
- 记得保存配置——ACL配好了,别忘了write memory或者copy running-config startup-config。不然一重启,全没了。
好了,ACL的基础入门就讲到这里。下一章我们聊聊标准ACL的配置实战,到时候我会拿真实设备演示,手把手教你配。
记住一句话:ACL不难,难的是想清楚你要什么。想明白了,配置就是几分钟的事。