技术笔记:ACL在企业网络中的实战配置与排错
1. 企业网络中ACL的实战价值第一次接触ACL访问控制列表是在五年前的一次网络故障排查中。当时公司访客Wi-Fi突然能访问财务系统所有人急得像热锅上的蚂蚁。直到在核心交换机上补了一条ACL规则问题才迎刃而解。这种网络守门员的威力让我印象深刻。ACL本质上就是一组条件判断语句用白话讲就是什么样的流量能过什么样的不能过。比如市场部的电脑可以访问打印机permit外来访客不能访问内部服务器deny视频会议流量优先保障priority在企业网里ACL最常见的三大战场安全隔离像把访客网络和办公网络隔开避免串门访问控制比如只允许运维组的IP登录服务器流量管理给重要业务如ERP系统分配更高带宽实际配置时新手容易犯两个典型错误一是把规则顺序排反了ACL是从上往下逐条匹配的二是把通配符掩码算错了。有次我配置禁止192.168.1.0/24访问某服务结果写成192.168.1.0 0.0.0.255相当于放行了整个192.168.0.0/16网段差点酿成事故。2. ACL配置的黄金四步法2.1 明确控制目标动手前先拿张纸画三个框谁源IP/网段去哪目的IP/端口干什么允许/拒绝/优先比如要限制访客网络192.168.10.0/24访问内网服务器群10.0.0.0/24但需要开放HTTP服务TCP 80端口。这个需求用ACL表达就是允许 192.168.10.0/24 → 10.0.0.0/24 且 目标端口80 拒绝 192.168.10.0/24 → 10.0.0.0/24 其他所有流量2.2 选择ACL类型主流设备都支持这两种ACL标准ACL只管源IP像小区门禁只看人脸access-list 10 deny 192.168.10.0 0.0.0.255扩展ACL能查源IP、目的IP、协议、端口像机场安检access-list 101 permit tcp 192.168.10.0 0.0.0.255 10.0.0.0 0.0.0.255 eq 80经验法则能用标准ACL解决的不用扩展ACL因为标准ACL对设备性能消耗更小。但90%的企业场景都需要扩展ACL。2.3 编写规则语句以Cisco设备为例一条完整的ACL规则包含动作permit/deny协议ip/tcp/udp等源地址反掩码目的地址反掩码端口可选access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.1 eq 3389这条规则的意思是允许192.168.1.0/24网段通过TCP协议访问10.0.0.1的3389端口远程桌面。2.4 应用ACL到接口ACL写好了不生效八成是忘记绑定到接口了。应用时要注意方向in方向处理进入接口的流量像进站安检out方向处理离开接口的流量像出站检查interface GigabitEthernet0/1 ip access-group 101 in3. 企业级ACL配置案例3.1 访客网络隔离某公司网络拓扑核心交换机Cisco Catalyst 9500访客Wi-Fi网段192.168.10.0/24内部办公网段172.16.0.0/16需求访客只能上网不能访问内网任何资源配置步骤! 创建扩展ACL access-list 100 deny ip 192.168.10.0 0.0.0.255 172.16.0.0 0.0.255.255 access-list 100 permit ip 192.168.10.0 0.0.0.255 any ! 应用到访客网络接口 interface Vlan10 ip access-group 100 in关键点先写拒绝规则再写允许规则ACL按顺序匹配反掩码0.0.0.255对应/240.0.255.255对应/16any表示所有IP0.0.0.0 255.255.255.2553.2 服务器访问控制保护Web服务器10.0.0.100的安全策略只开放80(HTTP)、443(HTTPS)端口仅允许运维组192.168.1.100-192.168.1.150SSH访问access-list 102 permit tcp 192.168.1.100 0.0.0.51 host 10.0.0.100 eq 22 access-list 102 permit tcp any host 10.0.0.100 eq 80 access-list 102 permit tcp any host 10.0.0.100 eq 443 access-list 102 deny ip any host 10.0.0.100 access-list 102 permit ip any any interface GigabitEthernet1/0/1 ip access-group 102 in这里用了0.0.0.51的反掩码来匹配192.168.1.100-192.168.1.150这个范围计算方法是51256-(150-1001)4. ACL排错实战指南4.1 规则不生效的排查流程上周才处理过一个案例新来的工程师配置的ACL死活不生效。后来发现是这五个问题检查ACL应用方向in和out搞反了是常见错误查看计数器用show access-list看匹配次数验证规则顺序第一条deny any会把后面规则全挡住检查通配符掩码0.0.0.255和0.0.255.255的区别确认接口绑定有些设备需要重启接口才能生效4.2 典型错误案例库案例1视频会议卡顿现象Zoom会议总卡在下午3点 原因ACL规则把UDP 8801-8810端口给禁了 解决在QoS策略中添加优先级access-list 110 permit udp any any range 8801 8810 class-map match-any VIDEO match access-group 110 policy-map QOS-POLICY class VIDEO priority percent 30案例2打印机无法共享现象财务部突然不能打印 原因新部署的ACL把NetBIOS端口137-139拦截了 解决在打印机ACL中添加例外access-list 120 permit tcp any host 192.168.2.100 eq 9100 access-list 120 permit udp any any eq 137 access-list 120 permit udp any any eq 1384.3 高级调试技巧当ACL规则超过20条时建议使用命名ACL便于管理ip access-list extended SERVER-POLICY permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.1 eq 22 remark Allow admin SSH access添加注释remark说明每条规则的用途用日志功能记录被拒绝的流量access-list 150 deny tcp any any eq 3389 log定期用show access-list查看命中计数优化规则顺序最后分享一个血泪教训有次我在核心交换机上改ACL直接就在现网设备上敲命令结果手抖把permit写成deny瞬间全公司断网。现在学乖了改ACL一定先在测试环境验证然后用reload in 10设置回滚定时器这样万一配置出错还能自动恢复。