ACL规则无法匹配、包过滤不生效

2026-03-30发表
  • 0收藏

描述

ACL规则无法匹配、包过滤不生效

 

 

一、开始

高端交换机S12500/9500E)包过滤策略的排查思路如下

1. 检查包过滤下发的方向是否正确,如果不正确,更改到正确的方向。

2. 检查ACL规则是否匹配了流量,如果没有匹配,需要调整ACL规则

3. 检查ACL资源是否超规格,如果超规格,可以优化ACL或更换规格单板

4. 检查是否了其他配置视图配置了更的包过滤,如果不同视图下配置的包过滤有匹配报文重叠的情况需要调整ACL规则

5. 确定配置二层规则时的rule长度是否支持,如果不支持,开启ACL IPV6模式

二、流程图相关操作说明:

1、 检查包过滤下发的方向是否正确

首先通过命令:display packet-filter检查包过滤配置的方向是否正确。如下图需要在设备A的G0/1配置包过滤,使PCB 不能PCA下载FTP报文,但其他报文能正常通信。配置后发现PCB依旧能从PCA进行FTP下载。

通过display packet-filter 查看G0/1配置方向是方向,配置错误了,应该配置方向,因为ACL写的目的地址是30.0.0.2,那么需要配置入方向。

[H3C]dis packet-filter interface  

Interface: GigabitEthernet0/1

 Out-bound policy:

  ACL 3000

 

[H3C]dis acl 3000

Advanced ACL  3000, named -none-, 1 rule,

ACL"s step is 5

 rule 5 deny udp destination 30.0.0.2 0 destination-port eq 20



2、 包过滤下发到正确方向

QOS策略下发到正确方向。例如这个例子中,需要包过滤下发到接口IN方向。

[H3C-GigabitEthernet0/1]undo packet-filter 3000 outbound

[H3C-GigabitEthernet0/1]packet-filter 3000 inbound

[H3C]dis packet-filter interface  

Interface: GigabitEthernet0/1

 In-bound policy:

  ACL 3000



3、 查看ACL规则是否匹配到流量

如果ACL规则写错了,没有匹配到报文,那么不会生效的。需要查看ACL规则的配置,确认ACL规则是否写的正确

命令: display acl XXXX

例如:通过命令确认ACL规则是否匹配了需要做包过滤的流量。这个例子中因为需求是限制FTP的流量,这里UDP端口号,而FTP是TCP报文。


  [H3C]dis acl 3000

Advanced ACL  3000, named -none-, 1 rule,

ACL"s step is 5

 rule 5 deny udp destination 30.0.0.2 0 destination-port eq 20


4、 修改/增加ACL规则

若通过display acl命令,查看规则中所写的rule规格错误,则需要重新下发rule命令,修改rule规则,确保rule规则匹配到流量。如果ACL中rule规则没有匹配所需做包过滤的流量,则需新增rule规则匹配该流量。

命令:rule

例如:ACL规则中将需要做包过滤策略为匹配TCP报文

 [H3C]dis acl 3000

[H3C-acl-adv-3000]rule 10 deny tcp destination 30.0.0.2 0 destination-port eq ftp

[H3C-acl-adv-3000]undo rule 5

[H3C-acl-adv-3000]display this

#

acl number 3000

 rule 10 deny tcp destination 30.0.0.2 0 destination-port eq ftp



5、 检查ACL资源是否超规格

查看单板ACL资源利用情况,判断ACL资源是否已被耗尽,导致下发的ACL规则实际没有生效。

V5平台命令

 display acl resource

V7平台命令:

dis qos-acl resource

例如:通过下发命令查看各个槽位单板ACL资源利用情况。

V5:

<H3C>display acl resource

Interface:

   GE2/0/1 to GE2/0/24

---------------------------------------------------------------------

 Type          Total       Reserved    Configured  Remaining   Usage

---------------------------------------------------------------------

 ACL rule      2048        0           1978        70          96%

 Inbound ACL   2048        0           1978        70          96%

 Outbound ACL  2048        0           0           70          0%

 

Interface:

   XGE3/0/1 to XGE3/0/2

---------------------------------------------------------------------

 Type          Total       Reserved    Configured  Remaining   Usage

---------------------------------------------------------------------

 ACL rule      8192        96          3           8093        1%

 Inbound ACL   8192        96          3           8093        1%

 Outbound ACL  8192        0           0           8093        0%

 

 Interface:

   XGE3/0/3 to XGE3/0/4

---------------------------------------------------------------------

 Type          Total       Reserved    Configured  Remaining   Usage

---------------------------------------------------------------------

 ACL rule      8192        96          3           8093        1%

 Inbound ACL   8192        96          3           8093        1%

 Outbound ACL  8192        0           0           8093        0%


V7

[H3C]dis qos-acl resource  slot  2

Interfaces: GE2/0/1 to GE2/0/24

---------------------------------------------------------------------

 Type              Total      Reserved   Configured  Remaining  Usage

---------------------------------------------------------------------

 ACL rule           8192        96         6          8090       1%

 Inbound ACL        8192        96         5          8090       1%

 Outbound ACL       8192        0          1          8090       0%

 IN-MQC-CAR         8192        0          0          8192       0%

 IN-COMM-CAR        7168        0          0          7168       0%

 IN-COUNT           8192        0          64         8128       0%

 OUT-MQC-CAR        8192        0          64         8128       0%

 OUT-COUNT          8192        0          64         8128       0%



ACL资源是按芯片划分的,多个接口共有一个芯片资源。通过display acl resource命令可以看到所有槽位芯片ACL资源的利用情况,如上V5所示,2槽位单板的GE2/0/1至GE2/0/24属于同一个芯片,2048的ACL资源由这24个接口共用。从示例中看到2槽位单板2048的ACL资源已利用了96%,已接近ACL资源耗尽,会导致涉及ACL下发的功能出现异常,包括包过滤的使用。而3槽位的XG3/0/1和XG3/0/2属于同一个芯片,共用8192的ACL资源,当前ACL资源利用率为1%,ACL资源充足。XG3/0/3和XG3/0/4类似。V7平台的情况一样。

 

6、 优化ACL规则或更换规格单板

如果确定ACL超资源,那么可以根据现场情况优化ACL资源,如果不能优化,只能更换高规格单板。例如对于高端交换机,如果相同的包过滤策略下发到多个接口,占用的acl资源几个接口占用ACL的资源之和。这情况下,如果这几个接口vlan相同,可以基于vlan下发,不基于接口下发。如果V5设备不能基于vlan下发,可以改为MQC方式,然后基于VLAN下发这样芯片占用一ACL资源了。

 

7、 确定其他视图是否有更优的包过滤规则

对于V7系列高端交换机,包过滤可以下发在全局,下发在接口也可以下发在VLAN,当设备同时这几种情况都下发时,那么需要检查这包过滤的ACL中是否有rule冲突的情况对于高端交换机,包过滤策略下发到不视图下的优先级关系为:全局视图>接口视图>VLAN视图。因此如果全局包过滤匹配的ACL中的报文与接口包过滤ACL的报文有重叠的时候,出现报文匹配全局包过滤后,不能再匹配接口包过滤的情况,因此出现接口包过滤不生效。需要结合所需做包过滤的ACL规则,对配置进行排查。

命令: display packet-filter

例如:在G3/2/0/1下发packet-filter 3000过滤目的地址30.0.0.2ftp报文发现没有生效,display packet-flter global查看到下发了全局的包过滤3001,允许了到目的网段30.0.0.0报文,这个网段包括了30.0.0.2这个主机,因此下发到接口的packet-filter 3000没有生效。虽然vlan也下发了一个包过滤,允许所有报文,但是vlan内的优先级最低,不影响接口的包过滤。

H3C]dis packet-filter global    //查看全局视图下发的包过滤

Global:

 Out-bound policy:

  ACL 3001

 

[H3C]dis acl 3001

Advanced ACL  3001, named -none-, 1 rule,

ACL"s step is 5

 rule 0 permit ip destination 30.0.0.0 0.0.0.255

 

[H3C]dis packet-filter interface  //查看接口视图下发的包过滤

Interface: GigabitEthernet3/2/0/1

 Out-bound policy:

  ACL 3000

 

[H3C]dis acl 3000

Advanced ACL  3000, named -none-, 1 rule,

ACL"s step is 5

 rule 5 deny tcp destination 30.0.0.2 0 destination-port eq ftp

 

[H3C]dis packet-filter vlan    //查看在vlan下发的包过滤

VLAN: 10

 Out-bound policy:

  ACL 3002

 

[H3C]dis acl 3002

Advanced ACL  3002, named -none-, 1 rule,

ACL"s step is 5

 rule 0 permit ip


对于V5V7系列高端交换机,包过滤可以下发在物理接口和vlan虚接口如果它们的ACLrule匹配的报文有重叠,那么下发在物理接口的优先匹配,那么vlan接口的就不会生效。例如:我需要在int vlan 10里面下发packet-filter, 过滤目的地址30.0.0.2ftp报文发现没有生效,display packet-flter interface查看vlan10所在的物理接口也下发了packet-filter,允许了到目的网段30.0.0.0报文,这个网段包括了30.0.0.2这个主机,因此下发vlan虚接口的packet-filter 3000没有生效。


 interface GigabitEthernet3/2/0/1

 port link-mode bridge

 port link-type access

port access vlan 10

 packet-filter 3000 inbound

#

return

[H3C]dis packet-filter  interface  

Interface: GigabitEthernet3/2/0/1

 In-bound policy:

  ACL 3001

Interface: Vlan-interface10

 In-bound policy:

  ACL 3000

 

[H3C]dis acl 3000

Advanced ACL  3000, named -none-, 1 rule,

ACL"s step is 5

 rule 5 deny tcp destination 30.0.0.2 0 destination-port eq ftp

 

[H3C]dis acl 3001

Advanced ACL  3001, named -none-, 1 rule,

ACL"s step is 5

 rule 0 permit ip destination 30.0.0.0 0.0.0.255

8、 修改冲突ACL配置

通过上一步的排查发现:不同视图匹配的报文有重叠,导致低优先级视图下发的包过滤不生效,需修改配置。

例如:上面vlan虚接口物理接口同时下发的情况,可以直接在物理接口下包过滤的ACL中条件需要过滤的rule规则,不需要继续在vlan虚接口下发了。

[H3C]dis acl 3001

Advanced ACL  3001, named -none-, 1 rule,

ACL"s step is 5

 rule 0 permit ip destination 30.0.0.0 0.0.0.255

 

[H3C]acl number 3001

[H3C-acl-adv-3001]rule 10 deny  tcp destination 30.0.0.2 0 destination-port eq ftp

[H3C-acl-adv-3001]undo rule 0

[H3C-acl-adv-3001]rule 15  permit ip destination 30.0.0.0 0.0.0.255

[H3C-acl-adv-3001]dis this

#

acl number 3001

 rule 10 deny tcp destination 30.0.0.2 0 destination-port eq ftp

 rule 15 permit ip destination 30.0.0.0 0.0.0.255



9、 确定配置二层规则时的rule规则长度是否支持

高端交换机支持的rule规则的长度40B/48B/80B,这表示ACL规则中各个字段的长度(单位字节),如MAC占用6个字节。

在标准板(EB单板)中只支持48B的表项。

在增强板(除了EB外的其他单板,包括ECEF,FD,FG等)默认工作为标准模式(48B),支持40B/80B的转换。可以通过全局命令acl ipv6 enable 修改支持acl字段的长度为80B,需要整框重启后才能生效。

方向的支持情况如下:

字段

48B

40B

80B

MAC DA

支持 (IPv6报文不支持)

支持

支持

MAC SA

支持(IPv6报文不支持)

支持

支持

 

方向的支持情况:

字段

48B

40B

80B

MAC DA

支持(IPv6报文不支持)

支持(IPv4报文不支持)

支持(IPv6报文不支持)

MAC SA

支持(IPv6报文不支持)

支持

支持(IPv6报文不支持)

默认情况下,高端交换机出方向不支持匹配目的MAC的二层ipv4报文因为默认情况下只能支持40B的字段。

例如 S125 配合多插卡遇到的最多的情况,插入OAA板卡(IPS,FW)。报文二层到交换机,然后二层到IPS插卡处理后回到S12508,网关在S12508上面.配置完成后,发现下联服务器与网关不通,为了实现需求,配置如下,配置为了防止环路,只允许访问网关地址的报文通过。

acl number 4000                      

rule 0 permit type 0800 ffff dest-mac 000f-e22e-94b3 ffff-ffff-ffff

rule 1 permit type 88a7 ffff

rule 5 deny

interface Ten-GigabitEthernet3/0/1

packet-filter 4000 outbound



查看设备中的配置,配置中默认有如下配置:

acl ipv6 disable    

该命令作用为将EC、EF类等增强单板,acl规则长度改为40字节(缺省支持40B),但是当acl规则长度为40字节时,该acl在出方向下发则不支持匹配ipv4的目的mac地址,现场的IPS插卡和FW插卡都是EC单板。packet filter和MQC都是下发在这些OAA插卡的内联口的, acl num 4000中rule 0为匹配目的mac,所以无法生效,进而匹配了rule5的deny规则,因此出现网关不通的问题.

 

10、 开启ACL IPV6模式

对于这样的情况,需要将acl ipv6 disable改为acl ipv6 enable,然后重启整框生效更改模式后,可以支持80B长度的字段。

 


 

 

 

 

 


提出建议

    +

亲~登录后才可以操作哦!

确定

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作