10-ACL配置指导

01-ACL配置

本章节下载  (218.46 KB)

docurl=/cn/Service/Document_Software/Document_Center/Home/Security/00-Public/Configure/Operation_Manual/H3C_SecPath_CG(V7)-6W204/10/201905/1175929_30005_0.htm

01-ACL配置


1 ACL

1.1  ACL简介

ACL(Access Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。网络设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。

ACL可以应用在诸多领域,其中最基本的就是应用ACL进行报文过滤。此外,ACL还可应用于诸如路由、安全、QoS等业务中,有关ACL在这些业务中的具体应用方式,请参见相关的配置指导。

提示

ACL本身只能识别报文,而无法对识别出的报文进行处理,对这些报文的具体处理方式由应用ACL的业务模块来决定。

 

1.1.1  ACL的编号和名称

用户在创建ACL时必须为其指定编号或名称,不同的编号对应不同类型的ACL,如表1-1所示;当ACL创建完成后,用户就可以通过指定编号或名称的方式来应用和编辑该ACL。

对于编号相同的基本ACL或高级ACL,必须通过ipv6关键字进行区分。对于名称相同的ACL,必须通过ipv6mac关键字进行区分。

1.1.2  ACL的分类

根据规则制订依据的不同,可以将ACL分为如表1-1所示的几种类型

表1-1 ACL的分类

ACL类型

编号范围

适用的IP版本

规则制订依据

基本ACL

2000~2999

IPv4

报文的源IPv4地址

IPv6

报文的源IPv6地址

高级ACL

3000~3999

IPv4

报文的源IPv4地址、目的IPv4地址、报文优先级、IPv4承载的协议类型及特性等三、四层信息

IPv6

报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性等三、四层信息

二层ACL

4000~4999

IPv4和IPv6

报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息

 

1.1.3  ACL的规则匹配顺序

当一个ACL中包含多条规则时,报文会按照一定的顺序与这些规则进行匹配,一旦匹配上某条规则便结束匹配过程。ACL的规则匹配顺序有以下两种:

·     配置顺序:按照规则编号由小到大进行匹配。

·     自动排序:按照“深度优先”原则由深到浅进行匹配,各类型ACL的“深度优先”排序法则如表1-2所示。

表1-2 各类型ACL的“深度优先”排序法则

ACL类型

“深度优先”排序法则

IPv4基本ACL

1.     先判断规则的匹配条件中是否包含VPN实例,包含者优先

2.     如果VPN实例的包含情况相同,再比较源IPv4地址范围,较小者优先

3.     如果源IPv4地址范围也相同,再比较配置的先后次序,先配置者优先

IPv4高级ACL

1.     先判断规则的匹配条件中是否包含VPN实例,包含者优先

2.     如果VPN实例的包含情况相同,再比较协议范围,指定有IPv4承载的协议类型者优先

3.     如果协议范围也相同,再比较源IPv4地址范围,较小者优先

4.     如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先

5.     如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先

6.     如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先

IPv6基本ACL

1.     先判断规则的匹配条件中是否包含VPN实例,包含者优先

2.     如果VPN实例的包含情况相同,再比较源IPv6地址范围,较小者优先

3.     如果源IPv6地址范围也相同,再比较配置的先后次序,先配置者优先

IPv6高级ACL

1.     先判断规则的匹配条件中是否包含VPN实例,包含者优先

2.     如果VPN实例的包含情况相同,再比较协议范围,指定有IPv6承载的协议类型者优先

3.     如果协议范围相同,再比较源IPv6地址范围,较小者优先

4.     如果源IPv6地址范围也相同,再比较目的IPv6地址范围,较小者优先

5.     如果目的IPv6地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先

6.     如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先

二层ACL

1.     先比较源MAC地址范围,较小者优先

2.     如果源MAC地址范围相同,再比较目的MAC地址范围,较小者优先

3.     如果目的MAC地址范围也相同,再比较配置的先后次序,先配置者优先

 

说明

·     比较IPv4地址范围的大小,就是比较IPv4地址通配符掩码中“0”位的多少:“0”位越多,范围越小。通配符掩码(又称反向掩码)以点分十进制表示,并以二进制的“0”表示“匹配”,“1”表示“不关心”,这与子网掩码恰好相反,譬如子网掩码255.255.255.0对应的通配符掩码就是0.0.0.255。此外,通配符掩码中的“0”或“1”可以是不连续的,这样可以更加灵活地进行匹配,譬如0.255.0.255就是一个合法的通配符掩码。

·     比较IPv6地址范围的大小,就是比较IPv6地址前缀的长短:前缀越长,范围越小。

·     比较MAC地址范围的大小,就是比较MAC地址掩码中“1”位的多少:“1”位越多,范围越小。

 

1.1.4  ACL的步长

ACL中的每条规则都有自己的编号,这个编号在该ACL中是唯一的。在创建规则时,可以手工为其指定一个编号,如未手工指定编号,则由系统为其自动分配一个编号。由于规则的编号可能影响规则匹配的顺序,因此当由系统自动分配编号时,为了方便后续在已有规则之前插入新的规则,系统通常会在相邻编号之间留下一定的空间,这个空间的大小(即相邻编号之间的差值)就称为ACL的步长。譬如,当步长为5时,系统会将编号0、5、10、15……依次分配给新创建的规则。

系统为规则自动分配编号的方式如下:系统从0开始,按照步长自动分配一个大于现有最大编号的最小编号。譬如原有编号为0、5、9、10和12的五条规则,步长为5,此时如果创建一条规则且不指定编号,那么系统将自动为其分配编号15。

如果步长发生了改变,ACL内原有全部规则的编号都将自动从0开始按新步长重新排列。譬如,某ACL内原有编号为0、5、9、10和15的五条规则,当修改步长为2之后,这些规则的编号将依次变为0、2、4、6和8。

1.1.5  ACL对分片报文的处理

传统报文过滤只对分片报文的首个分片进行匹配过滤,对后续分片一律放行,因此网络攻击者通常会构造后续分片进行流量攻击。为提高网络安全性,ACL规则缺省会匹配所有非分片报文和分片报文的全部分片,但这样又带来效率低下的问题。为了兼顾网络安全和匹配效率,可将过滤规则配置为仅对后续分片有效。

1.2  ACL配置任务简介

表1-3 ACL配置任务简介

配置任务

说明

详细配置

配置基本ACL

请根据需要匹配的报文特征选择ACL类型

1.3.1 

配置高级ACL

1.3.2 

配置二层ACL

1.3.3 

复制ACL

可选

1.3.4 

使能ACL加速功能

可选

1.3.5 

 

1.3  配置ACL

说明

如果ACL规则的匹配项中包含了除IP五元组(源IP地址、源端口号、目的IP地址、目的端口号、传输层协议)、ICMP报文的消息类型和消息码信息、VPN实例、日志操作和时间段之外的其它匹配项,则设备转发ACL匹配的这类报文时会启用慢转发流程。慢转发时设备会将报文上送控制平面,计算报文相应的表项信息。执行慢转发流程时,设备的转发能力将会有所降低。

 

1.3.1  配置基本ACL

1. 配置IPv4基本ACL

IPv4基本ACL根据报文的源IP地址来制订规则,对IPv4报文进行匹配。

表1-4 配置IPv4基本ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv4基本ACL,并进入IPv4基本ACL视图

acl basic { acl-number | name acl-name } [ match-order { auto | config } ]

缺省情况下,不存在ACL

IPv4基本ACL的编号范围为2000~2999

如果以名称创建IPv4基本ACL,只能使用acl basic name acl-name命令进入其视图

如果以编号创建IPv4基本ACL,只能使用 acl basic acl-number命令进入其视图

两个视图独立,只能通过各自的命令访问各自的视图

(可选)配置ACL的描述信息

description text

缺省情况下,ACL没有描述信息

(可选)配置规则编号的步长

step step-value

缺省情况下,规则编号的步长为5,起始值为0

创建规则

rule [ rule-id ] { deny | permit } [ counting | fragment | logging | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

缺省情况下,IPv4基本ACL内不存在规则

logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤

(可选)为指定规则配置描述信息

rule rule-id comment text

缺省情况下,规则没有描述信息

 

2. 配置IPv6基本ACL

IPv6基本ACL根据报文的源IPv6地址来制订规则,对IPv6报文进行匹配。

表1-5 配置IPv6基本ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv6基本ACL,并进入IPv6基本ACL视图

acl ipv6 basic { acl-number | name acl-name } [ match-order { auto | config } ]

缺省情况下,不存在ACL

IPv6基本ACL的编号范围为2000~2999

如果以名称创建IPv6基本ACL,只能使用acl ipv6 basic name acl-name命令进入其视图

如果以编号创建IPv6基本ACL,只能使用 acl ipv6 basic acl-number命令进入其视图

两个视图独立,只能通过各自的命令访问各自的视图

(可选)配置ACL的描述信息

description text

缺省情况下,ACL没有描述信息

(可选)配置规则编号的步长

step step-value

缺省情况下,规则编号的步长为5,起始值为0

创建规则

rule [ rule-id ] { deny | permit } [ counting | fragment | logging | routing [ type routing-type ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

缺省情况下,IPv6基本ACL内不存在规则

logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤

(可选)为指定规则配置描述信息

rule rule-id comment text

缺省情况下,规则没有描述信息

 

1.3.2  配置高级ACL

1. 配置IPv4高级ACL

IPv4高级ACL可根据报文的源IP地址、目的IP地址、报文优先级、IP承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMP协议的消息类型和消息码等)等信息来制定规则,对IPv4报文进行匹配。用户可利用IPv4高级ACL制订比IPv4基本ACL更准确、丰富、灵活的规则。

表1-6 配置IPv4高级ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv4高级ACL,并进入IPv4高级ACL视图

acl advanced { acl-number | name acl-name } [ match-order { auto | config } ]

缺省情况下,不存在ACL

IPv4高级ACL的编号范围为3000~3999

如果以名称创建IPv4高级ACL,只能使用acl advanced name acl-name命令进入其视图

如果以编号创建IPv4高级ACL,只能使用acl advanced acl-number命令进入其视图

两个视图独立,只能通过各自的命令访问各自的视图

(可选)配置ACL的描述信息

description text

缺省情况下,ACL没有描述信息

(可选)配置规则编号的步长

step step-value

缺省情况下,规则编号的步长为5,起始值为0

创建规则

rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | logging | source { object-group address-group-name | source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *

缺省情况下,IPv4高级ACL内不存在规则

logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤

(可选)为指定规则配置描述信息

rule rule-id comment text

缺省情况下,规则没有描述信息

 

2. 配置IPv6高级ACL

IPv6高级ACL可根据报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMPv6协议的消息类型和消息码等)等信息来制定规则,对IPv6报文进行匹配。用户可利用IPv6高级ACL制订比IPv6基本ACL更准确、丰富、灵活的规则。

表1-7 配置IPv6高级ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv6高级ACL,并进入IPv6高级ACL视图

acl ipv6 advanced { acl-number | name acl-name }  [ match-order { auto | config } ]

缺省情况下,不存在ACL

IPv6高级ACL的编号范围3000~3999

如果以名称创建IPv6 高级ACL,只能使用acl ipv6 advanced name acl-name命令进入其视图

如果以编号创建IPv6高级ACL,只能使用 acl ipv6 advanced acl-number命令进入其视图

两个视图独立,只能通过各自的命令访问各自的视图

(可选)配置ACL的描述信息

description text

缺省情况下,ACL没有描述信息

(可选)配置规则编号的步长

step step-value

缺省情况下,规则编号的步长为5,起始值为0

创建规则

rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | logging | routing [ type routing-type ] | hop-by-hop [ type hop-type ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *

缺省情况下,IPv6高级ACL内不存在规则

logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤

(可选)为指定规则配置描述信息

rule rule-id comment text

缺省情况下,规则没有描述信息

 

1.3.3  配置二层ACL

二层ACL可根据报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息来制订规则,对报文进行匹配。

表1-8 配置二层ACL

操作

命令

说明

进入系统视图

system-view

-

创建二层ACL,并进入二层ACL视图

acl mac { acl-number | name acl-name } [ match-order { auto | config } ]

缺省情况下,不存在ACL

二层ACL的编号范围为4000~4999

如果以名称创建二层ACL,只能使用acl mac name acl-name命令进入其视图

如果以编号创建二层ACL,只能使用 acl mac acl-number命令进入其视图

两个视图独立,只能通过各自的命令访问各自的视图

(可选)配置ACL的描述信息

description text

缺省情况下,ACL没有描述信息

(可选)配置规则编号的步长

step step-value

缺省情况下,规则编号的步长为5,起始值为0

创建规则

rule [ rule-id ] { deny | permit } [ cos dot1p | counting | dest-mac dest-address dest-mask | { lsap lsap-type lsap-type-mask | type protocol-type protocol-type-mask } | source-mac source-address source-mask | time-range time-range-name ] *

缺省情况下,二层ACL内不存在规则

(可选)为指定规则配置描述信息

rule rule-id comment text

缺省情况下,规则没有描述信息

 

1.3.4  复制ACL

用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,目的ACL与源ACL完全相同。

提示

目的ACL要与源ACL的类型相同,且目的ACL必须不存在,否则将导致复制失败。

 

表1-9 复制ACL

操作

命令

说明

进入系统视图

system-view

-

复制并生成一个新的ACL

acl [ ipv6 | mac ] copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }

-

 

1.3.5  使能ACL加速功能

在对基于会话的业务报文(如NAT、ASPF等)进行规则匹配时,通常只对首个报文进行匹配以加快报文的处理速度,但这有时并不足以解决报文匹配的效率问题。譬如,当有大量用户同时与设备新建连接时,需要对每个新建连接都进行规则匹配,如果ACL内包含有大量规则,那么这个匹配过程将很长,这会导致用户建立连接时间超长,从而影响设备新建连接的性能。

ACL加速功能则可以解决上述问题,当对包含大量规则的ACL使能了加速功能之后,其规则匹配速度将大大提高,从而提高了设备的转发性能以及新建连接的性能。

表1-10 使能ACL加速功能

操作

命令

说明

进入系统视图

system-view

-

创建ACL,并进入ACL视图

acl [ ipv6 ] { advanced | basic } { acl-number | name acl-name } [ match-order { auto | config } ]

-

使能加速功能

accelerate

缺省情况下,所有ACL的加速功能均处于关闭状态

 

1.4  ACL显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除ACL的统计信息。

表1-11 ACL显示和维护

配置

命令

显示ACL的加速状态

display acl accelerate { summary [ ipv6 ] | verbose [ ipv6 ] { acl-number | name acl-name } slot slot-number }

显示ACL的配置和运行情况

display acl [ ipv6 | mac ] { acl-number | all | name acl-name }

显示ACL在报文过滤中的应用情况

display packet-filter { zone-pair security [ source source-zone-name destination destination-zone-name ] [ slot slot-number ] }

显示ACL在报文过滤中应用的统计信息

display packet-filter statistics { zone-pair security source source-zone-name destination destination-zone-name [ [ ipv6 ] { acl-number | name acl-name } ] } [ brief ]

显示ACL在报文过滤中的详细应用情况

display packet-filter verbose { zone-pair security source source-zone-name destination destination-zone-name [ [ ipv6 ] { acl-number | name acl-name } ] } [ slot slot-number ]

清除ACL的统计信息

reset acl [ ipv6 | mac ] counter { acl-number | all | name acl-name }

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

联系我们