01-ACL配置
本章节下载: 01-ACL配置 (261.20 KB)
ACL(Access Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。网络设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。
当ACL被其他功能引用时,根据设备在实现该功能时的处理方式(硬件处理或者软件处理),ACL可以被分为基于硬件的应用和基于软件的应用。
典型的基于硬件的应用包括:报文过滤、QoS策略;基于软件的应用包括:路由、对登录用户(Telnet、SNMP)进行控制等。
在某些应用方式下(例如QoS策略),ACL仅用于匹配报文,ACL规则中的动作(deny或permit)被忽略,不作为对报文进行丢弃或转发的依据,类似情况请参见相应功能中的说明。
· 当ACL被QoS策略引用进行流分类时,如果报文没有与ACL中的规则匹配,此时交换机不会使用流行为中定义的动作对此类报文进行处理。
· 当ACL被用于对Telnet和SNMP登录用户进行控制时,如果报文没有与ACL中的规则匹配,此时交换机对此类报文采取的动作为deny,即拒绝报文通过。
· 关于应用ACL对报文进行过滤的介绍和配置,请参见1.4.5 应用ACL进行报文过滤。
用户在创建ACL时必须为其指定编号,不同的编号对应不同类型的ACL,如表1-1所示;同时,为了便于记忆和识别,用户在创建ACL时还可选择是否为其设置名称。ACL一旦创建,便不允许用户再为其设置名称、修改或删除其原有名称。
当ACL创建完成后,用户就可以通过指定编号或名称的方式来指定该ACL,以便对其进行操作。
基本ACL、高级ACL的编号和名称各在其适用的IP版本(IPv4和IPv6)中唯一。
根据规则制订依据的不同,可以将ACL分为如表1-1所示的几种类型。
表1-1 ACL的分类
ACL类型 |
适用的IP版本 |
||
2000~2999 |
报文的源IPv4地址 |
||
报文的源IPv6地址 |
|||
3000~3999 |
报文的源IPv4地址、目的IPv4地址、报文优先级、IPv4承载的协议类型及特性等三、四层信息 |
||
报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性等三、四层信息 |
|||
4000~4999 |
IPv4和IPv6 |
报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息 |
当一个ACL中包含多条规则时,报文会按照一定的顺序与这些规则进行匹配,一旦匹配上某条规则便结束匹配过程。ACL的规则匹配顺序有以下两种:
· 自动排序:按照“深度优先”原则由深到浅进行匹配,各类型ACL的“深度优先”排序法则如表1-2所示。
表1-2 各类型ACL的“深度优先”排序法则
ACL类型 |
|
IPv4基本ACL |
(1) 先比较源IPv4地址范围,较小者优先 (2) 如果源IPv4地址范围也相同,再比较配置的先后次序,先配置者优先 |
IPv4高级ACL |
(1) 先比较协议范围,指定有IPv4承载的协议类型者优先 (2) 如果协议范围也相同,再比较源IPv4地址范围,较小者优先 (3) 如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先 (4) 如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先 |
IPv6基本ACL |
(1) 先比较源IPv6地址范围,较小者优先 (2) 如果源IPv6地址范围也相同,再比较配置的先后次序,先配置者优先 |
IPv6高级ACL |
(1) 先比较协议范围,指定有IPv6承载的协议类型者优先 (2) 如果协议范围相同,再比较源IPv6地址范围,较小者优先 (3) 如果源IPv6地址范围也相同,再比较目的IPv6地址范围,较小者优先 (4) 如果目的IPv6地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先 |
(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配置报文过滤、QoS策略等功能。例如,IPv4高级ACL中配置了匹配TCP端口号的规则,如果报文过滤在出方向引用了该ACL,则报文过滤功能不会生效。
表1-3 ACL配置任务简介
应用ACL进行报文过滤 |
IPv4基本ACL根据报文的源IP地址来制订规则,对IPv4报文进行匹配。
表1-4 配置IPv4基本ACL
创建IPv4基本ACL,并进入IPv4基本ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
IPv4基本ACL的编号范围为2000~2999 如果在创建IPv4基本ACL时为其设置了名称,则也可使用acl name acl-name命令进入其视图 |
(可选)配置ACL的描述信息 |
缺省情况下,ACL没有任何描述信息 |
|
缺省情况下,IPv4基本ACL内不存在任何规则 logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
||
IPv6基本ACL根据报文的源IPv6地址来制订规则,对IPv6报文进行匹配。
表1-5 配置IPv6基本ACL
创建IPv6基本ACL,并进入IPv6基本ACL视图 |
acl ipv6 number acl-number [ name acl-name ] [ match-order { auto | config } ] |
IPv6基本ACL的编号范围为2000~2999 如果在创建IPv6基本ACL时为其设置了名称,则也可使用acl ipv6 name acl-name命令进入其视图 |
(可选)配置ACL的描述信息 |
缺省情况下,ACL没有任何描述信息 |
|
缺省情况下,IPv6基本ACL内不存在任何规则 logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
||
IPv4高级ACL可根据报文的源IP地址、目的IP地址、报文优先级、IP承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMP协议的消息类型和消息码等)等信息来制定规则,对IPv4报文进行匹配。用户可利用IPv4高级ACL制订比IPv4基本ACL更准确、丰富、灵活的规则。
表1-6 配置IPv4高级ACL
创建IPv4高级ACL,并进入IPv4高级ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
IPv4高级ACL的编号范围为3000~3999 如果在创建IPv4高级ACL时为其设置了名称,则也可使用acl name acl-name命令进入其视图 |
(可选)配置ACL的描述信息 |
缺省情况下,ACL没有任何描述信息 |
|
缺省情况下,IPv4高级ACL内不存在任何规则 logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤 配置IPv4高级ACL规则时,需要注意的是: · 当前设备不支持配置操作符operator取值为neq · ACL规则使用lt、gt或者range操作符限定端口号时,引用该规则的报文过滤或QoS策略等不能应用在出方向,否则报文过滤或QoS策略等不会生效 |
||
IPv6高级ACL可根据报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMPv6协议的消息类型和消息码等)等信息来制定规则,对IPv6报文进行匹配。用户可利用IPv6高级ACL制订比IPv6基本ACL更准确、丰富、灵活的规则。
表1-7 配置IPv6高级ACL
创建IPv6高级ACL,并进入IPv6高级ACL视图 |
acl ipv6 number acl-number [ name acl-name ] [ match-order { auto | config } ] |
IPv6高级ACL的编号范围3000~3999 如果在创建IPv6高级ACL时为其设置了名称,则也可使用acl ipv6 name acl-name命令进入其视图 |
(可选)配置ACL的描述信息 |
缺省情况下,ACL没有任何描述信息 |
|
缺省情况下,IPv6高级ACL内不存在任何规则 logging参数需要使用该ACL的模块支持日志记录功能,例如报文过滤 配置IPv4高级ACL规则时,需要注意的是: · 当前设备不支持配置操作符operator取值为neq · ACL规则使用lt、gt或者range操作符限定端口号时,引用该规则的报文过滤或QoS策略等不能应用在出方向,否则报文过滤或QoS策略等不会生效 · 当ACL用于QoS策略的流分类或报文过滤功能时,规则中不支持配置fragment参数 |
||
如果IPv6高级ACL匹配的是IPv6扩展报文头内层的报文内容,则只支持匹配一层扩展报文头后的内容,对两层或两层以上扩展报文头后的内容以及包含Encapsulating Security Payload Header报文头的报文,ACL将无法进行匹配。
二层ACL可根据报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息来制订规则,对报文进行匹配。
创建二层ACL,并进入二层ACL视图 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
二层ACL的编号范围为4000~4999 如果在创建二层ACL时为其设置了名称,则也可使用acl name acl-name命令进入其视图 |
(可选)配置ACL的描述信息 |
缺省情况下,ACL没有任何描述信息 |
|
缺省情况下,二层ACL内不存在任何规则 当二层ACL用于QoS策略的流分类或用于报文过滤功能时,如果使用lsap参数,则lsap-type必须为AAAA,lsap-type-mask必须为FFFF,否则ACL将无法正常应用 |
||
用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,目的ACL与源ACL完全相同。
目的ACL要与源ACL的类型相同,且目的ACL必须不存在,否则将导致复制失败。
ACL最基本的应用就是进行报文过滤,即通过将ACL规则应用到指定接口的入方向上,从而对该接口收到的报文进行过滤。
本节中所指的“接口”包括以太网接口和VLAN接口。
表1-10 在接口入方向上应用ACL进行报文过滤
在接口入方向上应用ACL进行报文过滤 |
packet-filter [ ipv6 ] { acl-number | name acl-name } inbound [ hardware-count ] |
一个接口在一个方向上最多可应用一个ACL进行报文过滤。
在VLAN接口下应用ACL进行报文过滤时,可以通过本功能指定报文过滤的生效范围:
· 仅对三层转发的报文生效。
· 对所有报文生效,即通过VLAN接口进行三层转发的报文和通过VLAN接口对应的物理接口进行二层转发的报文均生效。
表1-11 配置报文过滤在VLAN接口的生效范围
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN接口并进入VLAN接口视图 |
interface vlan-interface vlan-interface-id |
如果该VLAN接口已经存在,则直接进入该VLAN接口视图 缺省情况下,未创建VLAN接口 |
配置报文过滤的生效范围 |
packet-filter filter [ route | all ] |
缺省情况下,报文过滤仅对通过VLAN接口进行三层转发的报文生效 |
在配置了报文过滤日志的生成与发送周期之后,设备将周期性地生成报文过滤日志信息并发送到信息中心,包括该周期内被匹配的报文数量以及所使用的ACL规则。关于信息中心的详细介绍请参见“网络管理和监控配置指导”中的“信息中心”。
缺省情况下,报文过滤日志的生成与发送周期为0分钟,即不记录报文过滤的日志 |
系统缺省的报文过滤动作为Permit,即允许未匹配上ACL规则的报文通过。通过本配置可更改报文过滤的缺省动作为Deny,即禁止未匹配上ACL规则的报文通过。
缺省情况下,报文过滤的缺省动作为Permit,即允许未匹配上ACL规则的报文通过 |
在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ACL的统计信息。
表1-14 ACL显示和维护
显示ACL的配置和运行情况 |
|
显示ACL在报文过滤中的应用情况 |
|
显示入方向ACL在报文过滤中应用的统计信息 |
|
显示入方向ACL在报文过滤中应用的累加统计信息 |
display packet-filter statistics sum inbound [ ipv6 ] { acl-number | name acl-name } [ brief ] |
显示入方向ACL在报文过滤中的详细应用情况 |
|
显示QoS和ACL资源的使用情况 |
|
清除ACL的统计信息 |
reset acl [ ipv6 ] counter { acl-number | all | name acl-name } |
清除入方向ACL在报文过滤中应用的统计信息(包括累加统计信息) |
· 某公司内的各部门之间通过Device A实现互连,该公司的工作时间为每周工作日的8点到18点。
· 通过配置,允许财务部在工作时间访问财务数据库服务器,禁止市场部在任何时间访问该服务器。
图1-1 ACL典型配置组网图
# 创建名为work的时间段,其时间范围为每周工作日的8点到18点。
[DeviceA] time-range work 08:0 to 18:00 working-day
# 创建IPv4高级ACL 3001,并制订允许财务部仅在工作时间访问财务数据库服务器的规则。
[DeviceA] acl number 3001
[DeviceA-acl-adv-3001] rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.0.100 0 time-range work
[DeviceA-acl-adv-3001] quit
# 创建IPv4高级ACL 3002,并制订禁止市场部在任何时间访问财务数据库服务器的规则。
[DeviceA] acl number 3002
[DeviceA-acl-adv-3002] rule deny ip source 192.168.3.0 0.0.0.255 destination 192.168.0.100 0
[DeviceA-acl-adv-3002] quit
# 应用IPv4高级ACL 3001对接口GigabitEthernet1/0/3入方向上的报文进行过滤。
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet1/0/3] packet-filter 3001 inbound
[DeviceA-GigabitEthernet1/0/3] quit
# 应用IPv4高级ACL 3002对接口GigabitEthernet1/0/4入方向上的报文进行过滤。
[DeviceA] interface gigabitethernet 1/0/4
[DeviceA-GigabitEthernet1/0/4] packet-filter 3002 inbound
[DeviceA-GigabitEthernet1/0/4] quit
配置完成后,在各部门的PC(假设均为Windows XP操作系统)上可以使用ping命令检验配置效果,在Device A上可以使用display acl命令查看ACL的配置和运行情况。例如在工作时间:
# 在财务部的PC上检查到财务数据库服务器是否可达。
Pinging 192.168.0.100 with 32 bytes of data:
Reply from 192.168.0.100: bytes=32 time=1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Ping statistics for 192.168.0.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
由此可见,财务部的PC能够在工作时间访问财务数据库服务器。
# 在市场部的PC上检查财务数据库服务器是否可达。
Pinging 192.168.0.100 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 192.168.0.100:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
由此可见,市场部的PC不能在工作时间访问财务数据库服务器。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!