访问控制列表(ACL)是网络设备中一种至关重要的安全工具,它通过一系列预定义的规则,对经过设备的数据包进行过滤,从而实现对网络访问的精细化控制,在华为S5700系列交换机上,合理配置ACL可以有效保障内部网络的安全,限制非法访问,优化网络流量,本文将系统性地介绍S5700交换机的ACL配置方法,涵盖其基本概念、配置步骤、实例解析以及最佳实践。

ACL基础概念
在深入配置之前,理解ACL的核心概念是必要的,ACL本质上是一张有序的规则表,交换机会按照从上到下的顺序逐条匹配数据包,一旦找到匹配的规则,便立即执行相应的动作(允许或拒绝),不再继续向下匹配。
ACL的主要分类
S5700交换机支持多种类型的ACL,以适应不同的网络场景需求,最常用的两种是基本ACL和高级ACL。
| ACL类型 | 编号范围 | 匹配依据 | 典型应用场景 |
|---|---|---|---|
| 基本ACL | 2000-2999 | 仅依据数据包的源IP地址 | 控制特定网段或主机的访问权限 |
| 高级ACL | 3000-3999 | 依据源IP、目的IP、协议类型、源端口、目的端口等 | 精细化控制特定服务(如HTTP、FTP)的访问 |
除了上述两种,还有基于MAC地址的二层ACL(4000-4999)和更灵活的用户自定义ACL(5000-5999),但基本ACL和高级ACL在日常网络管理中最为普遍。
ACL配置基本步骤
在S5700上配置ACL并将其生效,通常遵循以下三个核心步骤:
- 创建ACL并定义规则:首先进入系统视图,使用
acl number命令创建一个指定编号的ACL,然后进入ACL视图,使用rule命令添加具体的允许或拒绝规则。 - 配置流分类与流行为:为了将ACL规则应用到具体的流量上,需要创建流分类来匹配ACL,并创建流行为来定义对匹配流量的处理动作(如permit或deny)。
- 创建并应用流量策略:将流分类和流行为绑定到一个流量策略中,最后将此策略应用到具体的接口、VLAN或全局视图上,使其生效。
配置实例解析
通过具体的实例,可以更直观地理解ACL的配置过程。

使用基本ACL限制特定主机访问
场景:禁止IP地址为192.168.10.5的主机访问服务器网段(192.168.20.0/24),但允许其他所有流量。
配置步骤:
# 1. 进入系统视图 <HUAWEI> system-view [HUAWEI] sysname SwitchA # 2. 创建基本ACL 2000,并定义规则 [SwitchA] acl number 2000 # 规则5:拒绝源IP为192.168.10.5的流量 [SwitchA-acl-basic-2000] rule 5 deny source 192.168.10.5 0 # 规则10:允许其他所有流量(非常重要,否则ACL末尾的隐含拒绝会阻止所有流量) [SwitchA-acl-basic-2000] rule 10 permit source any [SwitchA-acl-basic-2000] quit # 3. 创建流分类,匹配ACL 2000 [SwitchA] traffic classifier c_acl_2000 operator or [SwitchA-classifier-c_acl_2000] if-match acl 2000 [SwitchA-classifier-c_acl_2000] quit # 4. 创建流行为,动作为拒绝 [SwitchA] traffic behavior b_deny [SwitchA-behavior-b_deny] deny [SwitchA-behavior-b_deny] quit # 5. 创建流量策略,将分类和行为绑定 [SwitchA] traffic policy p_deny_host [SwitchA-trafficpolicy-p_deny_host] classifier c_acl_2000 behavior b_deny [SwitchA-trafficpolicy-p_deny_host] quit # 6. 将流量策略应用在连接用户网段的接口的入方向上 [SwitchA] interface GigabitEthernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] traffic-policy p_deny_host inbound [SwitchA-GigabitEthernet0/0/1] quit
使用高级ACL控制特定服务访问
场景:只允许管理主机(192.168.10.100)Telnet(端口23)交换机,禁止其他所有主机Telnet,但允许其正常访问其他网络服务。
配置步骤:
# 1. 进入系统视图 <HUAWEI> system-view [HUAWEI] sysname SwitchB # 2. 创建高级ACL 3000,并定义规则 [SwitchB] acl number 3000 # 规则5:允许源IP为192.168.10.100访问任意目的IP的TCP 23端口 [SwitchB-acl-adv-3000] rule 5 permit tcp source 192.168.10.100 0 destination-port eq telnet # 规则10:禁止所有其他IP访问任意目的IP的TCP 23端口 [SwitchB-acl-adv-3000] rule 10 deny tcp destination-port eq telnet # 规则15:允许其他所有流量(确保正常通信不受影响) [SwitchB-acl-adv-3000] rule 15 permit ip [SwitchB-acl-adv-3000] quit # 3. 创建流分类、流行为和流量策略 [SwitchB] traffic classifier c_telnet [SwitchB-classifier-c_telnet] if-match acl 3000 [SwitchB-classifier-c_telnet] quit [SwitchB] traffic behavior b_permit [SwitchB-behavior-b_permit] permit [SwitchB-behavior-b_permit] quit [SwitchB] traffic policy p_telnet_control [SwitchB-trafficpolicy-p_telnet_control] classifier c_telnet behavior b_permit [SwitchB-trafficpolicy-p_telnet_control] quit # 4. 将策略应用在VLANIF接口的入方向,或连接内网的物理接口 [SwitchB] interface Vlanif 10 [SwitchB-Vlanif10] traffic-policy p_telnet_control inbound [SwitchB-Vlanif10] quit
重要注意事项与最佳实践
- 规则的匹配顺序:ACL规则是严格按照编号从小到大(或配置顺序)进行匹配的,一旦某条规则匹配成功,设备将立即执行相应动作并停止后续匹配,应将更精确、更特殊的规则放在前面。
- 隐含的拒绝规则:在每个ACL的末尾,都有一条看不见的
deny any(基本ACL)或deny ip any any(高级ACL)规则,这意味着如果数据包没有匹配到任何一条显式定义的permit规则,它最终将被丢弃,这就是为什么在示例中通常需要添加一条允许所有其他流量的permit规则作为“兜底”。 - ACL的应用位置:通常建议将ACL应用在尽可能靠近源地址的接口上(入方向inbound),这样可以尽早地丢弃不需要的流量,节省网络带宽和设备资源。
- 最小权限原则:配置ACL时,应遵循最小权限原则,只开放必要的访问权限,对于不确定的流量,默认应予以拒绝。
相关问答FAQs
问题1:我在配置完一个ACL并应用后,发现网络中部分正常的通信也中断了,可能是什么原因?
解答:最常见的原因是忘记了ACL末尾存在一条“隐含拒绝”规则,你的ACL规则可能只定义了需要拒绝的流量,但没有明确允许其他所有正常的流量通过,当那些正常通信的数据包到达交换机时,它们无法匹配到任何一条permit规则,最终被末尾的隐含deny规则所丢弃,解决方法是在ACL的最后添加一条permit规则,例如rule 100 permit ip(高级ACL)或rule 100 permit source any(基本ACL),确保所有未被明确拒绝的流量都能正常通行。

问题2:基本ACL和高级ACL的主要区别是什么?在什么情况下应该选择使用高级ACL?
解答:主要区别在于过滤的精细度,基本ACL(编号2000-2999)只能根据数据包的源IP地址来进行过滤,它无法区分数据包的目的地、所承载的应用或服务,而高级ACL(编号3000-3999)则提供了非常精细的控制能力,它可以同时依据源IP、目的IP、协议类型(如TCP、UDP、ICMP)、源端口号、目的端口号等多种信息进行匹配。
当你需要实现以下场景时,就应该选择使用高级ACL:
- 只允许特定用户访问服务器的Web服务(HTTP/80端口),但禁止其访问FTP服务。
- 禁止整个网段的主机接收来自外网的某些特定应用(如QQ)的流量。
- 需要精确控制双向通信,即不仅要控制谁发起访问,还要控制访问的具体目标和服务。
简而言之,如果只需要简单地限制某个IP或网段的全部访问权限,使用基本ACL即可;如果需要对流量进行精细化、基于服务的控制,则必须使用高级ACL。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/31066.html




