网络acl概述-九游平台
网络acl
网络acl是一个子网级别的可选安全防护层,您可以在网络acl中设置入方向和出方向规则,并将网络acl绑定至子网,可以精准控制出入子网的流量。
网络acl与安全组的防护范围不同,安全组对云服务器、云容器、云数据库等实例进行防护,网络acl对整个子网进行防护。安全组是必选的安全防护层,当您还想增加额外的安全防护层时,就可以启用网络acl。两者结合起来,可以实现更精细、更复杂的安全访问控制。
- fw-a的规则说明:
入方向自定义规则,允许外部任意ip地址,通过tcp (http)协议访问subnet-x01内实例的80端口。如果流量未匹配上自定义规则,则匹配默认规则,无法流入子网。
网络acl是有状态的,允许入站请求的响应流量出站,不受规则限制,因此subnet-x01内实例的响应流量可流出子网。非响应流量的其他流量则匹配默认规则,无法流出子网。
- fw-b的规则说明:
入方向自定义规则,允许来自subnet-y01的流量,通过tcp (ssh)协议访问子网subnet-x02内实例的22端口。
出方向自定义规则,放通icmp协议全部端口,当在subnet-x02内实例ping测试网络连通性时,允许去往subnet-y01的流量流出子网。

图中提供的示例仅为您展示了网络acl对出入子网的流量控制。在实际业务中,除了网络acl,实例上绑定的安全组也会影响出入实例的流量。进一步了解网络acl与安全组的详细信息,请参见。
网络acl规则
- 网络acl中包括入方向规则和出方向规则,用来控制vpc子网入方向和出方向的网络流量。
- 入方向规则:控制外部请求访问子网内的实例,即流量流入子网。
- 出方向规则:控制子网内实例访问外部的请求,即流量流出子网。
- 网络acl规则由协议、源端口/目的端口、源地址/目的地址等组成,关键信息说明如下:
- 生效顺序:网络acl规则按照生效顺序依次排列,序号越小,排序越靠前,表示流量优先匹配该规则。
默认网络acl规则的序号为*,排在末尾,表示流量最后匹配该规则。
- 状态:网络acl规则有“启用”和“停用”状态。启用时,网络acl规则生效,停用时,网络acl规则不生效。
- 类型:支持设置ipv4和ipv6协议的规则。
- 策略:支持允许或拒绝。当流量的协议、源端口/目的端口、源地址/目的地址成功匹配某个网络acl规则后,会对流量执行规则对应的策略,允许或拒绝流量。
- 协议:匹配流量的网络协议类型,支持tcp、udp、icmp协议。
- 源地址/目的地址:匹配流量的源地址或者目的地址。
您可以使用ip地址和ip地址组作为源地址或者目的地址。
- ip地址:某个固定的ip地址或者网段,支持ipv4和ipv6地址。比如:192.168.10.10/32(ipv4地址)、192.168.1.0/24(ipv4网段)、2407:c080:802:469::/64(ipv6网段)
- ip地址组:是一个或者多个ip地址的集合,对于安全策略相同的ip网段和ip地址,建议您使用ip地址组简化管理。
- 源端口范围/目的端口范围:匹配流量的源端口或者目的端口,取值范围为1~65535。
- 生效顺序:网络acl规则按照生效顺序依次排列,序号越小,排序越靠前,表示流量优先匹配该规则。
网络acl及规则的工作原理
- 网络acl创建完成后,需要将网络acl关联至目标子网,网络acl规则才能控制出入该子网的流量。网络acl可以同时关联多个子网,但一个子网只能关联一个网络acl。
- 网络acl是有状态的。如果您从实例发送一个出站请求,且该网络acl的出方向规则是放通的话,那么无论其入方向规则如何,都将允许该出站请求的响应流量流入。同理,如果该网络acl的入方向规则是放通的,那无论出方向规则如何,都将允许该入站请求的响应流量可以流出。
- 网络acl使用连接跟踪来标识进出实例的流量信息,入方向和出方向网络acl规则配置变更,对原有流量不会立即生效。
当您在网络acl内增加、删除、更新规则,或者在网络acl内添加、移出子网时,由入方向/出方向流量建立的连接,已建立的长连接不会断开,依旧遵循原有网络acl规则。入方向/出方向流量新建立的连接,将会匹配新的网络acl出方向规则。

对于已建立的长连接,流量断开后,不会立即建立新的连接,需要超过连接跟踪的老化时间后,才会新建立连接并匹配新的规则。比如,对于已建立的icmp协议长连接,当流量中断后,需要超过老化时间30s后,将会新建立连接并匹配新的规则,详细说明如下:
- 不同协议的连接跟踪老化时间不同,比如已建立连接状态的tcp协议连接老化时间是600s,icmp协议老化时间是30s。对于除tcp和icmp的其他协议,如果两个方向都收到了报文,连接老化时间是180s,如果只是单方向收到了报文,另一个方向没有收到报文,则连接老化时间是30s。
- tcp协议处于不同状态下的连接老化时间也不相同,比如tcp连接处于established(连接已建立)状态时,老化时间是600s,处于fin-wait(连接即将关闭)状态时,老化时间是30s。
- 在网络acl中,存在如表1所示的默认规则。当网络acl中没有其他允许流量出入的自定义规则时,则匹配默认规则,拒绝任何流量流入或流出子网。在您将网络acl关联至目标子网时,请确保已添加自定义规则放通业务流量,或者子网内无实际业务,避免默认规则造成业务流量中断。
表1 网络acl默认规则说明 方向
生效顺序
策略
协议
源地址
源端口范围
目的地址
目的端口范围
入方向
*
拒绝
全部
0.0.0.0/0
全部
0.0.0.0/0
全部
出方向
*
拒绝
全部
0.0.0.0/0
全部
0.0.0.0/0
全部
- 网络acl规则不会匹配筛选表2中的流量,即对应的流量被允许流入或者流出子网,不受网络acl默认规则以及自定义规则限制。
表2 不受网络acl规则限制的流量 方向
规则说明
入方向
放通当前子网内的流量,即允许同一个子网内实例互通。
放通目的地址为255.255.255.255/32的广播流量。
放通目的地址为224.0.0.0/24的组播流量。
出方向
放通当前子网内的流量,即允许同一个子网内实例互通。
放通目的地址为255.255.255.255/32的广播流量。
放通目的地址为224.0.0.0/24的组播流量。
放通基于tcp协议,目的地址为169.254.169.254/32 ,目的端口为80的云服器元数据(metadata)流量。
放通目的地址为100.125.0.0/16的流量,该网段是云上公共服务预留地址,比如dns服务器地址、ntp服务器地址等。
流量匹配网络acl规则的顺序
一个子网只能绑定一个网络acl,当网络acl存在多条规则时,流量按照规则的生效顺序进行匹配。序号越小,排序越靠前,越先执行该规则。默认网络acl规则的序号为*,排在末尾,流量最后匹配该规则。
- 当流量匹配上自定义规则,则根据规则策略决定流量走向。
- 当策略为拒绝时,则拒绝该流量流入子网。
- 当策略为允许时,则允许该流量流入子网。
- 当流量未匹配上任何自定义规则,则执行默认规则,拒绝流量流入子网。

网络acl配置示例
网络acl可以控制流入/流出子网的流量,当网络acl和安全组同时存在时,流量先匹配网络acl规则,然后匹配安全组规则。您可以灵活调整安全组的规则,并使用网络acl作为子网的额外防护。以下为您提供了典型的网络acl应用示例。
- 网络acl规则:
- 入方向:自定义规则a01允许白名单实例,通过ssh远程登录子网subnet-a内的实例。默认规则拒绝其他网络流量流入子网。
- 出方向:网络acl是有状态的,允许入站请求的响应流量流出,因此不用额外添加规则放通白名单实例的响应流量。默认规则拒绝其他网络流量流出子网。
- 安全组规则:
- 入方向:规则a01允许白名单实例,通过ssh远程登录子网subnet-a内的实例。规则a02允许安全组内实例互通。其他流量无法流入安全组内实例。
- 出方向:规则a03允许所有流量从安全组内实例流出。

如果您设置了过于宽松的安全组规则,此时网络acl规则会作为额外防护。如表3所示,安全组规则允许任意ip地址远程登录安全组内实例。此时子网subnet-a关联的网络acl fw-a,其入方向规则仅允许指定ip地址(10.1.0.5/32)访问subnet-a内的实例,默认规则会拒绝其他流量流入子网,消除可能存在的安全风险。
方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
规则作用 |
---|---|---|---|---|---|---|
入方向 |
1 |
允许 |
ipv4 |
自定义tcp: 22 |
ip地址:0.0.0.0/0 |
允许任意ip地址通过ssh远程登录安全组内实例 |

更多网络acl规则配置示例,请参见。
- ecs-02和ecs-03网络互通
- ecs-01和ecs-03网络隔离
- 三台ecs属于同一个安全组sg-a,在sg-a中添加入方向和出方向规则,确保安全组内实例网络互通。
此时子网还未关联网络acl,安全组规则配置完成后,ecs-01、ecs-02均可以和ecs-03进行通信。
- 将两个子网均关联至网络acl fw-a。
当fw-a中只有默认规则时,同一个子网内实例网络互通,不同子网内实例网络隔离。此时ecs-01和ecs-02网络互通,ecs-01和ecs-03网络隔离、ecs-02和ecs-03网络隔离。
- 在网络acl fw-a中添加自定义规则,放通ecs-02和ecs-03之间的网络。
- 自定义规则a01:允许来自ecs-03的流量流入子网。
- 自定义规则a02:允许来自ecs-02的流量流入子网。
- 自定义规则a03:允许访问ecs-03的流量流出子网。
- 自定义规则a04:允许访问ecs-02的流量流出子网。


更多网络acl规则配置示例,请参见。
网络acl配置流程

序号 |
步骤 |
说明 |
操作指导 |
---|---|---|---|
1 |
创建网络acl |
网络acl创建完成后,自带入方向和出方向默认规则,拒绝出入子网的流量。 |
|
2 |
配置网络acl规则 |
网络acl默认规则不支持删除和修改,您需要根据业务需求添加自定义规则,用于控制流入或流出子网的流量,流量将会优先匹配自定义规则。 |
|
3 |
将子网关联至网络acl |
您需要将子网关联至网络acl,并且当网络acl状态为“已开启”时,网络acl规则会对出入子网的流量生效。 一个子网只能关联一个网络acl。 |
网络acl的使用限制
- 在一个区域内,单个用户默认最多可以创建200个网络acl。
- 建议一个网络acl单方向拥有的规则数量不要超过100条,否则会引起网络acl性能下降。
- 在一个网络acl的入方向中,最多可以有124条规则关联ip地址组,出方向同理。
- 在一个网络acl中,对于入方向规则来说,源地址是ip地址组的规则数量 目的地址是ip地址组的规则数量 源端口是不连续端口号的规则数量 目的端口是不连续端口号的规则数量 ≤ 120条,否则超过数量的网络acl规则将不生效。当同时存在ipv4和ipv6类型的网络acl规则时,两种类型的网络acl规则单独计算,即ipv4规则和ipv6规则可以各有120条。
对于网络acl出方向规则来说,源地址、目的地址、源端口和目的端口存在一样的限制。
以网络acl fw-a的入方向ipv4规则为例,表5中提供了部分符合限制条件的规则供您参考。其中,当一条网络acl规则同时符合多个限制时,比如规则a02即使用了不连续端口作为源端口,又使用了ip地址组作为源地址,此时只占用一条配额。
表5 入方向网络acl规则说明 规则编号
生效顺序
类型
策略
协议
源地址
源端口范围
目的地址
目的端口范围
规则a01
1
ipv4
拒绝
tcp
0.0.0.0/0
22,25,27
0.0.0.0/0
1-65535
规则a02
2
ipv4
允许
tcp
ip地址组:ipgroup-a
22-24,25
0.0.0.0/0
1-65535
规则a03
3
ipv4
允许
全部
0.0.0.0/0
全部
ip地址组:ipgroup-b
全部
规则a04
4
ipv4
允许
udp
0.0.0.0/0
1-65535
0.0.0.0/0
80-83,87
- 当您的组网中存在以下情况时,来自elb和vpcep的流量不受网络acl和安全组规则的限制。
- elb实例的监听器开启“获取客户端ip”功能时,不受限制。
比如规则已明确拒绝来自elb实例的流量进入后端云服务器,此时该规则无法拦截来自elb的流量,流量依然会抵达后端云服务器。
- vpcep实例类型为“专业型”时,不受限制。
- elb实例的监听器开启“获取客户端ip”功能时,不受限制。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨