思科/锐捷ACL核心笔记

2026-06-24 04:26:41

思科/锐捷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)上网,禁止其他所有流量。

12345! 创建标准编号ACL 10access-list 10 permit 192.168.1.0 0.0.0.255! 应用ACL:通常应用在离“目的地”近的接口入方向(INBOUND)interface GigabitEthernet0/1 ip access-group 10 in

注意事项:因其控制粗,放在离源太近的地方可能会误伤其他合法流量。

2. 扩展ACL:盘问一切(五元组)功能:检查源IP、目的IP、协议、源端口、目的端口。控制细粒度,保安会详细盘问“你是谁?去哪?干什么?”。配置示例:允许内网访问外部Web和DNS,但禁止访问外部MySQL数据库,并允许Ping。

12345678910! 创建扩展编号ACL 110access-list 110 permit tcp 192.168.1.0 0.0.0.255 any eq 80access-list 110 permit tcp 192.168.1.0 0.0.0.255 any eq 443access-list 110 permit udp any any eq 53access-list 110 deny tcp any any eq 3306access-list 110 permit icmp any anyaccess-list 110 deny ip any any ! 显式拒绝所有,便于查看计数器! 应用ACL:通常应用在离“源”近的接口出方向(OUTBOUND)interface GigabitEthernet0/0 ip access-group 110 out

注意事项:规则顺序至关重要!精确的规则要放在上面,宽泛的规则(如permit ip any any)放在下面。

3. 命名ACL(企业级首选):可编辑的智能清单功能:标准/扩展ACL的增强版,用名称而非编号标识。核心优势:可以自由插入、删除单条规则。创建时必须声明类型:standard 或 extended。

A. 标准命名ACL (ip access-list standard )配置示例:创建一个名为 RESTRICT-ACCESS 的ACL,阻止特定网段 192.168.5.0/24,允许其他所有。

12345ip access-list standard RESTRICT-ACCESS deny 192.168.5.0 0.0.0.255 permit anyinterface GigabitEthernet0/1 ip access-group RESTRICT-ACCESS in

B. 扩展命名ACL (ip access-list extended )配置示例:创建一个名为 WEB-SERVER-POLICY 的ACL。

12345678910ip access-list extended WEB-SERVER-POLICY remark --- 允许公众访问Web服务 --- 10 permit tcp any host 203.0.113.10 eq 80 20 permit tcp any host 203.0.113.10 eq 443 remark --- 允许IT部门进行SSH管理 --- 30 permit tcp 172.16.1.0 0.0.0.255 host 203.0.113.10 eq 22 remark --- 显式拒绝并记录其他所有访问 --- 40 deny ip any host 203.0.113.10 loginterface GigabitEthernet0/0 ip access-group WEB-SERVER-POLICY in

编辑操作演示:

123ip access-list extended WEB-SERVER-POLICY 25 permit tcp any host 203.0.113.10 eq 25 ! 插入规则 no 30 ! 删除规则

注意事项: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)

通用命令语法格式1access-list <100-199> permit/deny <协议> <源IP> <源通配符> [运算符 源端口] <目的IP> <目通配符> [运算符 目的端口]

语法元素拆解与示例

语法元素

说明与可选值

配置示例

<协议>

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)

12access-list 110 permit tcp 192.168.1.0 0.0.0.255 any eq 80access-list 110 permit tcp 192.168.1.0 0.0.0.255 any eq 443

场景2:允许来自任何地方的DNS查询请求(UDP 53)

1access-list 111 permit udp any host 192.168.1.53 eq 53

场景3:在命名ACL中,允许管理员IP远程管理所有服务器的SSH和RDP服务

123ip access-list extended ADMIN-ACCESS permit tcp host 172.16.1.100 10.0.0.0 0.0.0.255 eq 22 permit tcp host 172.16.1.100 10.0.0.0 0.0.0.255 eq 3389

场景4:使用 established 关键字允许外部Web服务器返回的流量

1access-list 112 permit tcp any 192.168.1.0 0.0.0.255 established

五、总结与最佳实践

特性

标准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被删除。