01-ACL和QoS配置
本章节下载: 01-ACL和QoS配置 (290.02 KB)
目 录
ACL(Access Control List,访问控制列表)是一系列用于识别报文流的规则的集合。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。设备依据ACL规则识别出特定的报文,并根据预先设定的策略对其进行处理,最常见的应用就是使用ACL进行报文过滤。此外,ACL还可应用于诸如路由、安全、QoS等业务中识别报文,对这些报文的具体处理方式由应用ACL的业务模块来决定。
当一个ACL中包含多条规则时,报文会按照一定的顺序与这些规则进行匹配,一旦匹配上某条规则便结束匹配过程。ACL的规则匹配顺序有以下两种:
· 配置顺序:按照规则编号由小到大进行匹配。
· 自动排序:按照“深度优先”原则由深到浅进行匹配,各类型ACL的“深度优先”排序法则如表1-1所示。
表1-1 IPv4高级ACL的“深度优先”排序法则
|
ACL类型 |
“深度优先”排序法则 |
|
IPv4高级ACL |
a 先比较协议范围,指定有IPv4承载的协议类型者优先 b 如果协议范围也相同,再比较源IPv4地址范围,较小者优先 c 如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先 d 如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先 e 如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先 |
比较IPv4地址范围的大小,就是比较IPv4地址通配符掩码中“0”位的多少:“0”位越多,范围越小。通配符掩码(又称反向掩码)以点分十进制表示,并以二进制的“0”表示“匹配”,“1”表示“不关心”,这与子网掩码恰好相反,譬如子网掩码255.255.255.0对应的通配符掩码就是0.0.0.255。此外,通配符掩码中的“0”或“1”可以是不连续的,这样可以更加灵活地进行匹配,譬如0.255.0.255就是一个合法的通配符掩码。
在一个ACL中用户可以创建多条规则,为了方便标识这些规则的用途,用户可以为单条规则添加描述信息,也可以在各条规则之间插入注释信息来对前一段或后一段规则进行统一描述。
· 规则描述信息
规则描述信息主要用于对单条规则进行单独标识。当需要对各条规则进行不同的标识或对某条规则进行特别标识时,适用此方式。
· 规则注释信息
规则注释信息主要用于对一段规则进行统一标识。当需要对一段规则进行相同的标识时,如果采用对每条规则都添加相同描述信息的方式,需要进行大量配置,效率会非常低下。在这种情况下,可以在这段规则的前、后插入注释信息的方式来提高标识效率,即:在这段规则的首条规则之前以及末条规则之后分别插入一条注释信息,通过首、尾这两条注释信息就可以标识整段规则的用途。
ACL中的每条规则都有自己的编号,这个编号在该ACL中是唯一的。在创建规则时,可以手工为其指定一个编号;如未手工指定编号,则由系统为其自动分配一个编号。由于规则的编号可能影响规则匹配的顺序,因此当由系统自动分配编号时,为了方便后续在已有规则之前插入新的规则,系统通常会在相邻编号之间留下一定的空间,这个空间的大小(即相邻编号之间的差值)就称为ACL的步长。譬如,当步长为5时,系统会将编号0、5、10、15……依次分配给新创建的规则。
系统为规则自动分配编号的方式如下:系统从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数的编号。譬如原有编号为0、5、9、10和12的五条规则,步长为5,此时如果创建一条规则且不指定编号,那么系统将自动为其分配编号15。
如果步长或规则编号的起始值发生了改变,ACL内原有全部规则的编号都将自动从规则编号的起始值开始按步长重新排列。譬如,某ACL内原有编号为0、5、9、10和15的五条规则,当修改步长为2之后,这些规则的编号将依次变为0、2、4、6和8。
需要注意的是,ACL规则的匹配顺序为自动排序时,修改步长后新的编号是按照规则的匹配顺序(即“深度优先”原则)重新排序的,并非按照规则的原有编号顺序排序。譬如,步长为5时,规则的匹配顺序为0、10、5……修改步长为2后,各规则对应的新编号为0、2、4……
传统报文过滤只对分片报文的首个分片进行匹配过滤,对后续分片一律放行,因此网络攻击者通常会构造后续分片进行流量攻击。为提高网络安全性,ACL规则缺省会匹配所有非分片报文和分片报文的全部分片,但这样又带来效率低下的问题。为了兼顾网络安全和匹配效率,可将过滤规则配置为仅对后续分片有效。
本节命令适用于switch模式下配置。有关非switch模式下的相关配置,请参见“接口转发配置指导”中的“接口转发”。
设备在一个接口上最多可应用4条ACL并且需要应用在接口同一方向上。
同一组内的两个ACL资源仅支持在同一接口的入方向上使用,不能分别应用于不同接口。
ACL配置任务如下
· 配置高级ACL
· (可选)复制ACL
· (可选)配置QoS和ACL资源的硬件模式
高级ACL可根据报文的源地址、目的地址、承载的协议类型及特性(TCP/UDP的源端口和目的端口),对报文进行匹配。用户可利用高级ACL制订准确、丰富、灵活的规则。
system-view
(2) 创建IPv4高级ACL。请至少选择其中一项进行配置。
¡ 通过编号创建IPv4高级ACL。
acl number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通过关键字创建IPv4高级ACL。
acl advanced { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可选)配置ACL的描述信息。
description text
缺省情况下,未配置ACL的描述信息。
(4) (可选)配置规则编号的步长。
step step-value [ start start-value ]
缺省情况下,规则编号的步长为5,起始值为0。
(5) 创建规则。
rule [ rule-id ] { deny | permit } protocol [ destination { dest-address dest-wildcard | any } | destination-port operator port1 [ port2 ] | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] ] *
(6) (可选)为规则配置描述信息。
rule rule-id comment text
缺省情况下,未配置规则的描述信息。
(7) (可选)为规则配置注释信息。
rule [ rule-id ] remark text
缺省情况下,未配置规则的注释信息。
用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,目的ACL与源ACL完全相同。
目的ACL要与源ACL的类型相同,且目的ACL必须不存在,否则将导致复制ACL失败。
(1) 进入系统视图。
system-view
(2) 复制并生成一个新的ACL。
acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }
由于设备底层芯片差异,导致QoS和ACL资源匹配的报文结果有差异,硬件模式能够增强QoS和ACL资源的匹配能力。
配置本模式后,应用ACL时会占用更多资源。
(1) 进入系统视图。
system-view
(2) 配置QoS和ACL资源的硬件模式。
qos-acl resource hardware-mode hardware-mode-value
缺省情况下,QoS和ACL资源未配置任何硬件模式。
ACL最基本的应用就是进行报文过滤。例如,将ACL规则应用到指定接口的入方向上,从而对该接口收到的报文进行过滤。
(1) 进入系统视图。
system-view
(2) 全局应用ACL进行报文过滤。
packet-filter { acl-number | name acl-name } global inbound [ hardware-count ]
缺省情况下,未配置全局的报文过滤。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在接口上应用ACL进行报文过滤。
packet-filter { acl-number | name acl-name } inbound
缺省情况下,未配置接口的报文过滤。
在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ACL的统计信息。
表1-2 ACL显示和维护
|
配置 |
命令 |
|
显示ACL的配置和运行情况 |
display acl { acl-number | all | name acl-name } |
|
显示ACL在报文过滤中的应用情况 |
display packet-filter { global | interface [ interface-type interface-number ] } [ inbound ] [ slot slot-number ] |
|
显示ACL在报文过滤中的详细应用情况 |
display packet-filter verbose { global | interface interface-type interface-number } inbound [ acl-number | name acl-name ] [ slot slot-number ] |
|
清除ACL的统计信息 |
reset acl counter { acl-number | all | name acl-name } |
流量过滤是指对符合流分类的流进行过滤的动作。例如,可以根据网络的实际情况禁止某些流量通过或者允许某些流量通过。
本节命令适用于switch模式下配置。有关非switch模式下的相关配置,请参见“接口转发配置指导”中的“接口转发”。
当设备持续存在流量时,如出现以下操作,短时间内通过的报文behavior动作将匹配不正确:
· 先在全局应用QoS策略,后在端口下应用相同QoS策略;
· 先在端口下应用QoS策略,后在全局应用相同QoS策略。
每个接口最大支持4条ACL规则。
(1) 进入系统视图。
system-view
(2) 创建一个类,并进入类视图。
traffic classifier classifier-name [ operator { and | or } ]
(3) 定义匹配数据包的规则。
if-match match-criteria
缺省情况下,未定义匹配数据包的规则。
(4) 退回系统视图。
quit
(1) 进入系统视图。
system-view
(2) 创建一个流行为,并进入流行为视图。
traffic behavior behavior-name
(3) 配置流量过滤动作。
filter { deny | permit }
缺省情况下,未配置流量过滤动作。
如果配置了filter deny命令,对符合流分类的报文执行丢弃动作,该流行为视图下配置的其他流行为都不会生效。
如果配置了filter permit命令,那么受到本动作处理的报文,可以再受到本QoS策略中其他的流分类处理。
(4) 退回系统视图。
quit
(1) 进入系统视图。
system-view
(2) 创建策略并进入策略视图。
qos policy policy-name
(3) 在策略中为类指定采用的流行为。
classifier classifier-name behavior behavior-name
缺省情况下,未指定类对应的流行为。
(4) 退回系统视图。
quit
(1) 进入系统视图。
system-view
(2) 在接口应用或在全局应用QoS策略,请至少选择其中一项进行配置
¡ 进入接口视图,在接口上应用已创建的QoS策略。
interface interface-type interface-number
qos apply policy policy-name inbound
¡ 在全局应用已创建的QoS策略。
qos apply policy policy-name global inbound
缺省情况下,未在接口或全局应用QoS策略。
同时在全局和接口应用QoS策略时,接口的QoS配置优先生效,当接口下未配置时,将采用全局下的配置。
在任意视图下执行display命令可以显示QoS策略的运行情况,通过查看显示信息验证配置的效果。
表2-1 QoS策略显示和维护
|
操作 |
命令 |
|
显示QoS策略的配置信息 |
display qos policy user-defined [ policy-name [ classifier classifier-name ] ] [ slot slot-number ] |
|
显示基于全局应用QoS策略的信息 |
display qos policy global [ slot slot-number ] [ inbound ] |
|
显示接口上QoS策略的配置信息和运行情况 |
display qos policy interface [ interface-type interface-number ] [ inbound ] |
|
显示流行为的配置信息 |
display traffic behavior user-defined [ behavior-name ] [ slot slot-number ] |
|
显示类的配置信息 |
display traffic classifier user-defined [ classifier-name ] [ slot slot-number ] |
优先级映射可以将报文携带的优先级字段映射成指定优先级字段值,设备根据映射后的优先级字段,为报文提供有差别的QoS服务,从而为全面有效的控制报文的转发调度等级提供依据。
本节命令适用于switch模式下配置。有关非switch模式下的相关配置,请参见“接口转发配置指导”中的“接口转发”。
system-view
(2) 进入指定的优先级映射表视图。
qos map-table { dot1p-lp | dscp-lp }
(3) 配置指定优先级映射表的映射关系。
import import-value-list export export-value
缺省情况下,在未配置本命令的情况下,使用display qos map-table命令可以查看其缺省值。
多次执行本命令,最后一次执行的命令生效。
配置优先级信任模式后,设备将根据报文自身的优先级,查找优先级映射表,为报文分配优先级参数。
在配置接口上的优先级模式时,用户可以选择下列信任模式:
· dot1p:信任报文自带的802.1p优先级,以此优先级进行优先级映射。
· dscp:信任IP报文自带的DSCP优先级,以此优先级进行优先级映射。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置优先级信任模式。
qos trust { dot1p | dscp }
设备不信任报文携带的优先级,会使用端口优先级作为报文的802.1p优先级进行优先级映射。
在完成上述配置后,在任意视图下执行display命令可以显示配置后优先级映射的运行情况,通过查看显示信息验证配置的效果。
表3-1 优先级映射显示和维护
|
操作 |
命令 |
|
显示指定优先级映射表配置情况 |
display qos map-table [ dot1p-lp | dscp-lp ] |
|
显示端口优先级信任模式信息 |
display qos trust interface [ interface-type interface-number ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
