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不难,难的是想清楚你要什么。想明白了,配置就是几分钟的事。