H3C ACL访问控制列表怎么配

网络管理中经常遇到一个需求——控制哪些流量能通过,哪些得拦下来。比如只允许某个部门的网段访问服务器,比如禁止某台主机访问外网。这些事情靠ACL(访问控制列表)来实现。ACL本质上就是一组规则,按顺序匹配,命中就执行对应的动作(允许或拒绝),对H3C设备来说,ACL配置属于基础但非常实用的技能。

ACL的分类和编号

H3C的ACL按编号范围分几种类型。2000-2999是基本ACL,只能基于源IP地址做过滤,规则简单但适用面广。3000-3999是高级ACL,能基于源/目的IP、协议类型、端口号等五元组做精确匹配,实际用得更多。4000-4999是二层ACL,基于MAC地址过滤。还有用户自定义ACL编号5000-5999,这个用得少。

日常用得最多的是基本和高级ACL。基本ACL适合做粗粒度的网段级过滤,高级ACL适合做精细到端口层面的策略。

配置步骤和命令

先创建ACL,在系统视图下:

[Switch] acl basic 2001

然后写规则。比如允许192.168.1.0/24网段,拒绝其他:

[Switch-acl-basic-2001] rule permit source 192.168.1.0 0.0.0.255

[Switch-acl-basic-2001] rule deny

注意H3C的掩码写法是反掩码(通配符掩码),跟子网掩码是取反的关系。0.0.0.255对应的子网掩码就是255.255.255.0。

高级ACL的规则更丰富。比如允许192.168.1.0/24访问10.0.0.1的TCP 80端口(HTTP):

[Switch] acl advanced 3001

H3C ACL访问控制列表怎么配

[Switch-acl-adv-3001] rule permit tcp source 192.168.1.0 0.0.0.255 destination 10.0.0.1 0.0.0.0 destination-port eq 80

[Switch-acl-adv-3001] rule deny ip source 192.168.1.0 0.0.0.255 destination 10.0.0.1 0.0.0.0

规则写完了,ACL还不会自动生效。必须应用到接口上才行。两种方向:inbound是流量进入接口时检查,outbound是流量从接口出去时检查。一般做访问控制都是inbound方向,在入口就拦住:

[Switch-GigabitEthernet1/0/1] packet-filter 3001 inbound

ACL应用到接口上后,用display acl 3001可以查看规则配置和命中次数,方便排查哪条规则起了作用。

常见配置场景

实际工作中ACL用得多的场景有几个。一是服务器安全——只允许特定网段访问核心服务器,其他全拒绝。二是对外网控制——内网用户只能访问特定的外部服务,防止访问不该访问的资源。三是在VTY线路上做ACL,限制能Telnet/SSH到交换机的源地址:

[Switch] acl basic 2002

[Switch-acl-basic-2002] rule permit source 192.168.100.0 0.0.0.255

[Switch-acl-basic-2002] rule deny

[Switch-line-vty0-4] acl 2002 inbound

这样只有192.168.100网段的管理终端能登录设备,别的地址直接拒绝。

排障时有个常见问题——ACL规则顺序。ACL是从上往下按顺序匹配的,命中一条就不再往下查了。如果把permit规则放在deny规则后面,deny先命中了,后面的permit就永远不会生效。所以规则顺序要从精确到宽泛,permit的放前面,最后再写deny。

ACL是H3CNE认证的必考内容,考试代码GB0-192的考纲里就有ACL相关知识点。想在真机上练习ACL配置,润天教育的H3CNE课程就包含这类实验操作,五星级考试中心配套的实训环境能帮你把理论知识变成实际操作能力。