思科/锐捷ACL核心笔记
本文最后更新于 2025年9月10日 上午
思科/锐捷ACL核心笔记
一、ACL核心思想:网络的“门卫”
想象ACL是公司大门的保安,他手持一份“规则清单”,对每一个数据包进行盘问:“你是谁?(源IP)”、“你要去哪?(目的IP)”、“你去干什么?(协议/端口)”。根据清单上的规则,决定是放行(permit
)还是阻拦(deny
)。
- 工作原理:自上而下,逐条匹配,一旦匹配成功就立刻执行动作,并停止后续匹配。
- 默认规则:所有ACL末尾都有一条看不见的
deny ip any any
,即“默认禁止所有”。
二、通配符掩码:保安的“模糊匹配”技巧
通配符掩码(Wildcard Mask)决定IP地址的哪些位必须精确匹配(0
),哪些位可以忽略不管(1
)。
例子 | 通配符掩码 | 解释 | 等效写法 |
---|---|---|---|
192.168.1.1 0.0.0.0 |
0.0.0.0 |
匹配唯一的主机 192.168.1.1 |
host 192.168.1.1 |
192.168.1.0 0.0.0.255 |
0.0.0.255 |
匹配 192.168.1.0 网段的所有主机(192.168.1.0 - 192.168.1.255 ) |
|
0.0.0.0 255.255.255.255 |
255.255.255.255 |
匹配任何IP地址 | any |
三、ACL类型详解与实战配置
1. 标准ACL:只看出身(源IP)
功能:只检查数据包的源IP地址。控制粗粒度,相当于保安只问你“是哪个公司的?”。
配置示例:允许内网(192.168.1.0/24
)上网,禁止其他所有流量。
1 |
|
注意事项:因其控制粗,放在离源太近的地方可能会误伤其他合法流量。
2. 扩展ACL:盘问一切(五元组)
功能:检查源IP、目的IP、协议、源端口、目的端口。控制细粒度,保安会详细盘问“你是谁?去哪?干什么?”。
配置示例:允许内网访问外部Web和DNS,但禁止访问外部MySQL数据库,并允许Ping。
1 |
|
注意事项:规则顺序至关重要!精确的规则要放在上面,宽泛的规则(如permit ip any any
)放在下面。
3. 命名ACL(企业级首选):可编辑的智能清单
功能:标准/扩展ACL的增强版,用名称而非编号标识。核心优势:可以自由插入、删除单条规则。创建时必须声明类型:standard
或 extended
。
A. 标准命名ACL (ip access-list standard <NAME>
)
配置示例:创建一个名为 RESTRICT-ACCESS
的ACL,阻止特定网段 192.168.5.0/24
,允许其他所有。
1 |
|
B. 扩展命名ACL (ip access-list extended <NAME>
)
配置示例:创建一个名为 WEB-SERVER-POLICY
的ACL。
1 |
|
编辑操作演示:
1 |
|
注意事项:ip access-list extended 2001
中的 2001
是名称,不是编号!
四、扩展ACL(Extended ACL)的核心:五元组语法详解
“五元组”是扩展ACL进行精细流量控制的基石,它定义了匹配一个数据包所需的五个关键元素。
五元组 (5-tuple) 指的是:
- 源IP地址 (Source IP Address)
- 目的IP地址 (Destination IP Address)
- 协议 (Protocol)
- 源端口 (Source Port)
- 目的端口 (Destination Port)
通用命令语法格式
1 |
|
语法元素拆解与示例
语法元素 | 说明与可选值 | 配置示例 |
---|---|---|
<协议> |
ip , tcp , udp , icmp , gre |
permit tcp ... |
<源IP> <源通配符> |
定义源IP地址范围 | any , host 192.168.1.1 |
[运算符 源端口] |
可选。eq , gt , lt , range |
eq 80 , range 5000 5010 |
<目的IP> <目通配符> |
定义目的IP地址范围 | any , host 10.0.0.10 |
[运算符 目的端口] |
可选。定义目的端口。运算符同上。 | eq 443 , eq www |
综合配置示例与场景解读
场景1:允许内网用户访问外部所有Web服务(HTTP/HTTPS)
1 |
|
场景2:允许来自任何地方的DNS查询请求(UDP 53)
1 |
|
场景3:在命名ACL中,允许管理员IP远程管理所有服务器的SSH和RDP服务
1 |
|
场景4:使用 established
关键字允许外部Web服务器返回的流量
1 |
|
五、总结与最佳实践
特性 | 标准ACL | 扩展ACL | 标准命名ACL | 扩展命名ACL |
---|---|---|---|---|
匹配依据 | 仅源IP | 五元组 | 仅源IP | 五元组 |
控制粒度 | 粗 | 细 | 粗 | 细 |
可编辑性 | 差 | 差 | 优 | 优 |
可读性 | 差 | 差 | 优 | 优 |
企业应用 | 少 | 较少 | 一般 | 强烈推荐 |
黄金法则:
- 最小权限:只放行必要的流量。
- 精确优先:将最具体的规则放在顶部。
- 靠近源/目的:标准ACL近目的,扩展ACL近源。
- 命名ACL:生产环境一律使用命名ACL,其中扩展命名ACL是绝对主力。
- 先规划后配置:在文本编辑器里写好规则,再粘贴到设备。
六、配置Checklist & 常见错误
配置前 Checklist:
- 需求是否明确?(允许什么?拒绝什么?)
- 是否选择了正确的ACL类型?(标准还是扩展?)
- 规则顺序是否最优?(精确规则在上)
- 是否显式添加了
deny ip any any
并记录了日志? - 通配符掩码计算是否正确?
- ACL应用的方向(in/out)和接口是否正确?
常见错误:
- 错误1:为
icmp
或ip
协议配置了端口。 - 错误2:将标准ACL放置在离源太近的位置,误伤其他流量。
- 错误3:忘记了ACL末尾的隐式拒绝所有,导致预期外的流量被拒绝。
- 错误4:错误理解了通配符掩码,匹配了错误的IP范围。
- 错误5:在编号ACL中尝试使用
no
命令删除单条规则,导致整个ACL被删除。