在配置网络访问控制时,很多人都听说过 ACL(Access Control List,访问控制列表),但一到实战就迷糊了:
到底 ACL 能限制哪些流量?入方向、出方向怎么判断?
我到底是该配在 in 还是 out?一不小心就"误伤"业务,或者干脆不生效。
别急,这篇文章就带你彻底搞清楚。
1. ACL 到底能干嘛?
****本质上,ACL 是用来做"流量筛选"的。你可以理解成一套规则清单,告诉设备:什么样的流量允许通过,什么样的要拒绝。
常见用法包括:
-
限制某 IP 段访问某网段或某端口(如禁止办公网访问服务器区)
-
只允许特定用户访问某资源(如只允许某管理员远程登录设备)
-
配合 NAT、防火墙、策略路由使用,增强网络安全
-
限速、Qos中流量分类使用
-
防止恶意流量、控制广播风暴
简单来说,只要涉及"我想控制谁能走、谁不能走",都能用 ACL。
2. ACL 能控制哪些类型的流量?
ACL 的控制范围可以按层级划分,大致包括:
不同厂商(如华为、Cisco)命令格式略有差异,但思路一样:
通过"匹配源、目的、协议、端口"等条件,进行有条件的"允许"或"拒绝"。
3. 入方向、出方向,怎么判断?
这是最容易搞错的部分。
一句话:以"流量进入/离开接口"的角度判断,而不是"包从哪里来/要去哪里"。
举个例子:
假设你在一台路由器的 G0/0/1 接口上:
-
如果你配置的是 入方向(in)ACL ,表示流量从这一口进来时就要检查**。**
-
如果你配置的是 出方向(out)ACL ,表示流量从这一口出去时才检查**。**
这就像是门口放保安,in 是门口检查进来的人,out 是出门前再查一遍。
判断方法通用三步走:
-
明确你要控制的是哪一段流量(源、目的IP/端口)。
-
看这段流量是从哪个接口进/出设备的。
-
想在流量从接口进来时控制** ,就用 in;出去时控制,就用 out。**
实战判断举例
需求:阻止内网 192.168.1.0/24 访问服务器 10.10.10.10 的 80 端口
网络结构如下:
[PC1]192.168.1.x ---- G0/0/1[Router]G0/0/2 ---- 10.10.10.10[Server]
方法一:配置在入方向(G0/0/1 in)
acl number 3000
rule deny tcp source 192.168.1.0 0.0.0.255 destination 10.10.10.10 0.0.0.0 destination-port eq 80
rule permit ip
interface G0/0/1
packet-filter 3000 inbound
在流量刚进入设备时就拦截,效率高,常用。
方法二:配置在出方向(G0/0/2 out)
interface G0/0/2
packet-filter 3000 outbound
这时表示让路由器在转发出去时判断是否允许通过。
两种方式都可用,关键看你想在哪控制,是否有其他影响。
4. 配在 in 还是 out?选错有啥后果?
-
****配在 in,适合"第一时间拦截",减少资源消耗,效率更高。
-
****配在 out,适合"最后一口气拦截",但可能已经走了部分路径,浪费性能。
实际建议如下: