01-ACL配置
本章节下载: 01-ACL配置 (274.62 KB)
目 录
本文将用于IPv4和IPv6的ACL分别简称为IPv4 ACL和IPv6 ACL。若非特别指明,本文所指的ACL均包括IPv4 ACL和IPv6 ACL。
ACL(Access Control List,访问控制列表)是用来实现流识别功能的。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,这些条件可以是报文的源地址、目的地址、端口号等。
当设备的端口接收到报文后,即根据当前端口上应用的ACL规则对报文的字段进行分析,在识别出特定的报文之后,根据预先设定的策略允许或禁止该报文通过。
由ACL定义的报文匹配规则,可以被其它需要对流量进行区分的场合引用,如包过滤、QoS中流分类规则的定义等。
根据功能以及规则制订依据的不同,可以将ACL分为五种类型,如表1-1所示。
表1-1 ACL的分类
ACL类型 |
编号范围 |
适用的IP版本 |
规则制订依据 |
WLAN ACL |
100~199 |
IPv4&IPv6 |
根据无线客户端的SSID制定匹配规则 |
WLAN-AP ACL |
200~299 |
IPv4和IPv6 |
WLAN AP(Access Point,接入点)的MAC地址和序列号 |
基本ACL |
2000~2999 |
IPv4 |
只根据报文的源IP地址信息制定匹配规则 |
IPv6 |
只根据报文的源IPv6地址信息制定匹配规则 |
||
高级ACL |
3000~3999 |
IPv4 |
根据报文的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议的特性等三、四层信息制定匹配规则 |
IPv6 |
根据报文的源IPv6地址信息、目的IPv6地址信息、IPv6承载的协议类型、协议的特性等三、四层信息制定匹配规则 |
||
二层ACL |
4000~4999 |
IPv4&IPv6 |
根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则 |
用户在创建ACL时必须为其指定编号,系统将根据用户所指定的编号来创建不同类型的ACL。
通常名称比编号更易于记忆和识别,因此用户在创建ACL时,还可以选择是否为其指定名称,而且只能在创建ACL时为其指定名称。ACL一旦创建,便不允许对其名称进行修改或删除。
当ACL创建完成后,用户可以通过指定编号或名称的方式来指定该ACL,以便对其进行操作。
· 不允许为WLAN ACL和WLAN-AP ACL 指定名称。
· WLAN ACL的编号、二层ACL的编号和名称全局唯一;IPv4基本和高级ACL的编号和名称只在IPv4中唯一;IPv6基本和高级ACL的编号和名称也只在IPv6中唯一。
一个ACL由一条或多条描述报文匹配选项的判断语句组成,这样的判断语句就称为“规则”。由于每条规则中的报文匹配选项不同,从而使这些规则之间可能存在重复甚至矛盾的地方,因此在将一个报文与ACL的各条规则进行匹配时,就需要有明确的匹配顺序来确定规则执行的优先级。ACL的规则匹配顺序有以下两种:
· 配置顺序:按照用户配置规则的先后顺序进行匹配,但由于本质上系统是按照规则编号由小到大进行匹配,因此后插入的规则如果编号较小也有可能先被匹配。
· 自动排序:按照“深度优先”原则由深到浅进行匹配,不同类型ACL的“深度优先”排序法则如表1-2所示。
· WLAN ACL的规则只能按照配置顺序进行匹配。
· 当报文与各条规则进行匹配时,一旦匹配上某条规则,就不会再继续匹配下去,系统将依据该规则对该报文执行相应的操作。
表1-2 各类型ACL的“深度优先”排序法则
ACL类型 |
“深度优先”排序法则 |
IPv4基本ACL |
(1) 先比较源IPv4地址范围,范围较小者优先 (2) 如果源IP地址范围也相同,再比较配置顺序,配置在前者优先 |
IPv4高级ACL |
(1) 先比较协议范围,指定有IPv4承载的协议类型者优先 (2) 如果协议范围也相同,再比较源IPv4地址范围,较小者优先 (3) 如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先 (4) 如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号范围,较小者优先 (5) 如果四层端口号范围也相同,再比较配置顺序,配置在前者优先 |
IPv6基本ACL |
(1) 先比较源IPv6地址范围,范围较小者优先 (2) 如果源IPv6地址范围相同,再比较配置顺序,配置在前者优先 |
IPv6高级ACL |
(1) 先比较协议范围,指定有IPv6承载的协议类型者优先 (2) 如果协议范围相同,再比较源IPv6地址范围,较小者优先 (3) 如果源IPv6地址范围也相同,再比较目的IPv6地址范围,较小者优先 (4) 如果目的IPv6地址范围也相同,再比较四层端口(即TCP/UDP端口)号范围,较小者优先 (5) 如果四层端口号范围也相同,再比较配置顺序,配置在前者优先 |
二层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”位越多,范围越小。
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。
时间段用于描述一个特定的时间范围。用户可能有这样的需求:一些ACL规则只需在某个或某些特定的时间段内生效(即进行报文过滤),这也称为基于时间段的ACL过滤。为此,用户可以先配置一个或多个时间段,然后在ACL规则下引用这些时间段,那么该规则将只在指定的时间段内生效。
此外,如果某ACL规则所引用的时间段尚未配置,系统将给出提示信息,并仍允许该规则成功创建,但该规则将不会在其引用的时间段完成配置前生效。
传统的报文过滤并不处理所有的IPv4报文分片,而只对首片分片报文进行匹配处理,而对后续分片一律放行。这样,网络攻击者可能构造后续的分片报文进行流量攻击,就带来了安全隐患。H3C的设备能够对IPv4分片报文进行如下处理:
· 对所有的分片报文进行三层(IP层)匹配过滤。
· 对于包含高级信息的IPv4 ACL规则项(譬如TCP/UDP端口号、ICMP类型等),提供标准匹配和精确匹配两种匹配方式,缺省的匹配方式为标准匹配方式。
ACL作为一种规则,可以应用于诸如路由、安全、QoS等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。
表1-3 ACL配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置ACL的生效时间段 |
可选 本配置任务适用于IPv4和IPv6 |
||
配置WLAN ACL |
至少选择一项 |
本配置任务适用于IPv4和IPv6 |
|
配置基本ACL |
本配置任务适用于IPv4和IPv6 |
||
配置高级ACL |
本配置任务适用于IPv4和IPv6 |
||
配置二层ACL |
本配置任务适用于IPv4和IPv6 |
||
复制ACL |
可选 本配置任务适用于IPv4和IPv6 |
时间段可分为以下两种:
· 周期时间段:该时间段以一周为周期循环生效。
· 绝对时间段:该时间段在指定时间范围内生效。
表1-4 配置ACL的生效时间段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建时间段 |
time-range time-range-name { start-time to end-time days [ from time1 date1 ] [ to time2 date2 ] | from time1 date1 [ to time2 date2 ] | to time2 date2 } |
必选 缺省情况下,不存在任何时间段 |
· 使用同一名称可以配置多条不同的时间段,以达到这样的效果:各周期时间段之间以及各绝对时间段之间分别取并集之后,再取二者的交集作为最终生效的时间范围。
· 最多可以创建256个不同名称的时间段,而同一名称下最多可以配置32条周期时间段和12条绝对时间段。
WLAN ACL会根据无线客户端的SSID制定匹配规则,对报文进行相应的分析处理。
表1-5 配置WLAN ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建WLAN ACL,并进入WLAN ACL视图 |
acl number acl-number |
必选 缺省情况下,不存在任何ACL WLAN ACL的编号范围为100~199 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
rule [ rule-id ] { permit | deny } [ ssid ssid-name ] |
必选 缺省情况下,WLAN ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
IPv4基本ACL只根据报文的源IP地址信息制定匹配规则,对IPv4报文进行相应的分析处理。
表1-6 配置IPv4基本ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IPv4基本ACL,并进入IPv4基本ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必选 缺省情况下,不存在任何ACL IPv4基本ACL的编号范围为2000~2999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
rule [ rule-id ] { deny | permit } [ counting | source { sour-addr sour-wildcard | any } | time-range time-range-name ] * |
必选 缺省情况下,IPv4基本ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
如果在创建IPv4基本ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
IPv6基本ACL只根据报文的源IPv6地址信息制定匹配规则,对IPv6报文进行相应的分析处理。
表1-7 配置IPv6基本ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IPv6基本ACL,并进入IPv6基本ACL视图 |
acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ] |
必选 缺省情况下,不存在任何ACL IPv6基本ACL的编号范围为2000~2999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
rule [ rule-id ] { deny | permit } [ counting | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-range-name ] * |
必选 缺省情况下,IPv6基本ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
如果在创建IPv6基本ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图。
IPv4高级ACL可以使用报文的源IPv4地址信息、目的IPv4地址信息、IPv4承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,TCP标记,ICMP协议的消息类型、消息码等)等信息来制定匹配规则。IPv4高级ACL支持对以下三种报文优先级进行分析处理:
· ToS(Type of Service,服务类型)优先级;
· IP优先级;
· DSCP(Differentiated Services Codepoint,差分服务编码点)优先级。
用户可以利用IPv4高级ACL定义比IPv4基本ACL更准确、丰富、灵活的匹配规则。
表1-8 配置IPv4高级ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IPv4高级ACL,并进入IPv4高级ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必选 缺省情况下,不存在任何ACL IPv4高级ACL的编号范围为3000~3999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
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 { dest-addr dest-wildcard | any } | destination-port operator port1 [ port2 ] | dscp dscp | icmp-type { icmp-type [ icmp-code ] | icmp-message } | precedence precedence | reflective | source { sour-addr sour-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name | tos tos ] * |
必选 缺省情况下,IPv4高级ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
如果在创建IPv4高级ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
IPv6高级ACL可以使用报文的源IPv6地址信息、目的IPv6地址信息、IPv6承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)等信息来制定匹配规则。
用户可以利用IPv6高级ACL定义比IPv6基本ACL更准确、丰富、灵活的规则。
表1-9 配置IPv6高级ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建IPv6高级ACL,并进入IPv6高级ACL视图 |
acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ] |
必选 缺省情况下,不存在任何ACL IPv6高级ACL的编号范围3000~3999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
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 { dest dest-prefix | dest/dest-prefix | any } | destination-port operator port1 [ port2 ] | dscp dscp | flow-label flow-label-value | icmp6-type { icmp6-type icmp6-code | icmp6-message } | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-range-name ] * |
必选 缺省情况下,IPv6高级ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建IPv6高级ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图。
二层ACL根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则,对报文进行相应的分析处理。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建二层ACL,并进入二层ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必选 缺省情况下,不存在任何ACL 二层ACL的编号范围为4000~4999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
配置规则编号的步长 |
step step-value |
可选 缺省情况下,规则编号的步长为5 |
创建规则 |
rule [ rule-id ] { deny | permit } [ cos vlan-pri | counting | dest-mac dest-addr dest-mask | { lsap lsap-type lsap-type-mask | type protocol-type protocol-type-mask } | source-mac sour-addr source-mask | time-range time-range-name ] * |
必选 缺省情况下,二层ACL内不存在任何规则 重复执行本命令可以创建多条规则 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
如果在创建二层ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
用户可以通过复制一个已存在的ACL,来生成一个新的同类型ACL。除了ACL的编号和名称不同外,新生成的ACL(即目的ACL)的匹配顺序、规则匹配统计功能的使能情况、规则编号的步长、所包含的规则、规则的描述信息以及ACL的描述信息等都与源ACL的相同。
表1-11 复制IPv4 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
复制生成一个新的同类型IPv4 ACL |
acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name } |
必选 |
· 目的IPv4 ACL的类型要与源IPv4 ACL的类型相同,且源IPv4 ACL必须存在,目的IPv4 ACL必须不存在。
· 当源或目的ACL为WLAN ACL时,都不允许为其指定名称。
表1-12 复制IPv6 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
复制生成一个新的同类型IPv6 ACL |
acl ipv6 copy { source-acl6-number | name source-acl6-name } to { dest-acl6-number | name dest-acl6-name } |
必选 |
目的IPv6 ACL的类型要与源IPv6 ACL的类型相同,且源IPv6 ACL必须存在,目的IPv6 ACL必须不存在。
在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ACL的统计信息。
表1-13 ACL显示和维护
配置 |
命令 |
显示IPv4 ACL的配置和运行情况 |
display acl { acl-number | all | name acl-name } [ | { begin | exclude | include } regular-expression ] |
显示IPv6 ACL的配置和运行情况 |
display acl ipv6 { acl6-number | all | name acl6-name } [ | { begin | exclude | include } regular-expression ] |
显示时间段的配置和状态信息 |
display time-range { time-range-name | all } [ | { begin | exclude | include } regular-expression ] |
清除IPv4 ACL统计信息 |
reset acl counter { acl-number | all | name acl-name } |
清除IPv6 ACL统计信息 |
reset acl ipv6 counter { acl6-number | all | name acl6-name } |
公司企业网通过AC实现无线用户同服务器之间的互连。工资查询服务器的地址为192.168.1.2/24。研发部门的无线用户在无线控制器上对应的无线接口为WLAN-ESS1,要求正确配置IPv4 ACL,禁止研发部门无线用户在工作日8:00至18:00访问工资查询服务器。
(1) 定义上班时间段
# 定义星期一至星期五的8:00至18:00的周期时间段。
<AC> system-view
[AC] time-range trname 8:00 to 18:00 working-day
(2) 定义到工资服务器的IPv4 ACL
# 进入高级IPv4 ACL视图,编号为3000。
[AC] acl number 3000
# 定义匹配从研发部门到工资服务器的报文的访问规则。
[AC-acl-adv-3000] rule 0 permit ip source any destination 192.168.1.2 0.0.0.0 time-range trname
[AC-acl-adv-3000] quit
(3) 应用IPv4 ACL
# 将IPv4 ACL 3000应用于WLAN-ESS1入方向的包过滤。
[AC] traffic classifier test
[AC-classifier-test] if-match acl 3000
[AC-classifier-test] quit
[AC] traffic behavior test
[AC-behavior-test] filter deny
[AC-behavior-test] quit
[AC] qos policy test
[AC-qospolicy-test] classifier test behavior test
[AC-qospolicy-test] quit
[AC] interface WLAN-ESS 1
[AC-WLAN-ESS1] qos apply policy test inbound
在无线控制器接口WLAN-ESS1配置IPv6报文过滤,禁止接收源IPv6地址为2000::0100到2000::ff00 的报文,允许接收其他报文。
# 配置IPv6 ACL(假定IPv6 ACL编号为2000),规则如下。
<AC> system-view
[AC] acl ipv6 number 2000
[AC-acl6-basic-2000] rule permit source 2000::0100 120
[AC-acl6-basic-2000] quit
# 配置流分类
[AC] traffic classifier ipv6-2000
[AC-classifier-ipv6-2000] if-match acl ipv6 2000
[AC-classifier-ipv6-2000] quit
# 配置流行为
[AC] traffic behavior deny
[AC-behavior-deny] filter deny
[AC] quit
# 配置QOS流策略
[AC] qos policy deny2000
[AC-qospolicy-deny2000] classifier ipv6-2000 behavior deny
[AC-qospolicy-deny2000] quit
# 配置接口WLAN-ESS1入方向的IPv6报文过滤。
[AC] interface WLAN-ESS1
[AC-WLAN-ESS1] qos apply policy deny2000 inbound
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!