组网需求
公司企业网通过交换机Switch实现各部门之间的互连。
要求正确配置IPv4 ACL,禁止研发部门和市场部门在上班时间(8:00至18:00)访问工资查询服务器(IP地址为192.168.4.1),而总裁办公室不受限制,可以随时访问。
组网图
配置IPv4 ACL组网图
# 定义8:00至18:00的周期时间段。
system-view
[Switch] time-range trname 8:00 to 18:00 working-day
访问规则
# 定义研发部门到工资查询服务器的访问规则。
[Switch] acl number 3000
[Switch-acl-adv-3000] rule deny ip source 192.168.2.0 0.0.0.255 destination 192.168.4.1 0.0.0.0 time-range trname
[Switch-acl-adv-3000] quit
# 定义市场部门到工资查询服务器的访问规则。
[Switch] acl number 3001
[Switch-acl-adv-3001] rule deny ip source 192.168.3.0 0.0.0.255 destination 192.168.4.1 0.0.0.0 time-range trname
[Switch-acl-adv-3001] quit
QoS策略
# 定义类c_rd,对匹配IPv4 ACL 3000的报文进行分类。
[Switch] traffic classifier c_rd
[Switch-classifier-c_rd] if-match acl 3000
[Switch-classifier-c_rd] quit
# 定义流行为b_rd,动作为拒绝报文通过。
[Switch] traffic behavior b_rd
[Switch-behavior-b_rd] filter deny
[Switch-behavior-b_rd] quit
# 定义类c_market,对匹配IPv4 ACL 3001的报文进行分类。
[Switch] traffic classifier c_market
[Switch-classifier-c_market] if-match acl 3001
[Switch-classifier-c_market] quit
# 定义流行为b_market,动作为拒绝报文通过。
[Switch] traffic behavior b_market
[Switch-behavior-b_market] filter deny
[Switch-behavior-b_market] quit
# 定义QoS策略p_rd,为类c_rd指定流行为b_rd。
[Switch] qos policy p_rd
[Switch-qospolicy-p_rd] classifier c_rd behavior b_rd
[Switch-qospolicy-p_rd] quit
# 定义QoS策略p_market,为类c_market指定流行为b_market。
[Switch] qos policy p_market
[Switch-qospolicy-p_market] classifier c_market behavior b_market
[Switch-qospolicy-p_market] quit
# 将QoS策略p_rd应用到端口GigabitEthernet 1/0/2。
[Switch] interface GigabitEthernet 1/0/2
[Switch-GigabitEthernet1/0/2] qos apply policy p_rd inbound
[Switch-GigabitEthernet1/0/2] quit
# 将QoS策略p_market应用到端口GigabitEthernet 1/0/3。
[Switch] interface GigabitEthernet 1/0/3
[Switch-GigabitEthernet1/0/3] qos apply policy p_market inbound
基本
ACL 只根据源 IP 地址信息制定匹配规则,对报文进行相应的分析处理。其序号取值范围为 2000 ~ 2999 。
如果要配置带有时间段参数的规则,则需要定义相应的时间段。参见19.2.1节。
1.基本ACL的配置方法
配置基本ACL的步骤如表19-1所示。
表 19-1 配置基本 ACL 的步骤
|
命令
|
用途说明
|
Step 1
|
system-view
|
进入系统视图
|
Step 2
|
适用于 S5600 及以前系列: acl numberacl-number[nameacl-name][match-order{auto|config} ]
适用于 S7500 及以后系列: acl { numberacl-number |nameacl-name[ advanced | basic | link | user ] } [ match-order { config | auto } ]
|
创建基本 ACL 并进入基本 ACL 视图(二者选其一)。缺省情况下,匹配顺序为 config
如果用户在创建 ACL 时指定了名称,则之后可以通过 aclnameacl-name 命令进入指定名称的 ACL 视图
|
Stepo 3
|
rule[rule-id] {deny|permit} [fragment|logging|source{sour-addr sour-wildcard|any} |time-rangetime-name|***-instance***-instance-name]
|
定义规则。可以重复本步骤创建多条规则
需要注意的是,当基本 ACL 被 QoS 策略引用对报文进行流分类时,不支持配置 logging 和 ***-instance 参数。而且各个系列所支持的可选项和参数并不完全一样。如中低档的系列不支持 ***-instance 可选项和 参数
|
Step 4
|
stepstep-value
|
(可选)定义步长。缺省情况下,步长为 5
|
Step 5
|
descriptiontext
|
(可选)定义 ACL 的描述信息。缺省情况下, ACL 没有描述信息
|
Step 6
|
rulerule-idcommenttext
|
(可选)定义规则的描述信息。缺省情况下,规则没有描述信息
|
表中的两个acl命令用来定义一条数字或名字标识的ACL,并进入相应的ACL视图。可用“undo acl”命令用来删除一条数字或名字标识的ACL的所有规则,或者删除全部ACL。
缺省情况下,按用户的配置顺序匹配ACL。进入相应的ACL视图之后,可以用rule命令增加此命名ACL规则(用quit命令退出ACL视图)。这两个命令的可选项和参数解释如下:
n numberacl-number:ACL序号,取值范围为:
Ø 2000~2999:表示基本ACL。
Ø 3000~3999:表示高级ACL(ACL 3998与3999是系统为集群管理预留的编号,用户无法配置)。
Ø 4000~4999:表示二层ACL。
Ø 5000~5999:表示用户自定义ACL。
n nameacl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写,不允许使用关键字all。
n advanced:表示高级ACL。
n basic:表示基本ACL。
n link:表示二层ACL。
n user:表示用户自定义ACL。
n config:表示按用户的配置顺序匹配ACL规则。
n auto:表示按深度优先顺序匹配ACL规则。
n all:表示要删除所有的ACL(包括数字标识的和名字标识的)。
缺省情况下,ACL的匹配顺序为config。
用户也可以通过本命令修改一个已经存在的ACL的匹配顺序,但必须在该ACL中没有规则的时候修改,对已经有规则的ACL是无法修改其匹配顺序的。
【注意】用户只能在创建ACL时指定名称,ACL创建后不允许对名称进行修改或者删除。如果在创建时没有命名,则创建后也不能为其添加名称。
如果ACL序号所指定的ACL不存在,则创建ACL并进入ACL视图。若命令中同时指定了名称,则指定的ACL名称不能与已有ACL名称重复,但允许与IPv6 ACL使用相同的名称。
如果ACL序号所指定的ACL已经存在,则进入该ACL视图。若命令中同时指定了名称,则该名称必须与序号所确定的ACL名称保持一致。
下面是一个使用acl命令创建一个序号为2000的ACL,未命名的示例。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]
下面是一个使用acl命令创建一个序号为2002、名称为flow的ACL的示例。
system-view
[Sysname]acl number2002nameflow
[Sysname-acl-basic-2002-flow]
下面是一个使用acl命令使用ACL序号进入一个未命名的ACL视图的示例。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]
表中的rule命令用来定义一个基本ACL规则。可用“undorulerule-id[fragment|logging|source|time-range|***-instance]”命令删除一个基本ACL规则或者规则的某些属性信息。在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。如果undorule命令后不指定参数,将删除整个ACL规则,否则,将只删除ACL规则相应的属性信息。这两个命令的可选项和参数解释如下:
n rule-id:基本ACL规则编号,取值范围为0~65534。
n deny:表示丢弃符合条件的报文。
n permit:表示允许符合条件的报文通过。
n fragment:定义规则仅对分片报文有效。需要注意的是,在SA(例如 LSQ1FP48SA)和EA(例如 LSQ1GP12EA)单板上应用的fragment参数匹配非尾片分片报文,在SC(例如 LSQ1GP24SC)单板上应用的fragment参数匹配非首片分片报文。关于单板类型的详细介绍请参见安装手册。
n logging:对符合条件的报文可记录日志信息。
n source{sour-addr sour-wildcard|any}:指定规则的源地址信息。sour-addr表示报文的源IP地址,sour-wildcard表示反掩码(当反掩码为0时代表主机地址),例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。any表示任意源IP地址。
n time-rangetime-name:指定规则生效的时间段。time-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。
n ***-instance***-instance-name:指定***实例信息。***-instance-name表示***实例的名称,为1~31个字符的字符串,区分大小写。如果规则没有指定本参数,表示该规则仅对非***报文生效。
【注意】当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
当基本ACL被QoS策略引用对报文进行流分类时,不支持配置logging和***-instance参数。
下面是一个使用rule命令定义一条基本ACL规则,禁止源地址为1.1.1.1的报文通过的示例。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]rule deny source1.1.1.1 0
表19-1中的step命令用来为一个ACL规则组中的规则序号指定一个步长。step-value:参数用来指定ACL规则编号的步长值,取值范围为1~20。缺省情况下,步长为5。可用“undo step”命令把步长恢复为缺省值。
下面是一个使用step命令把基本ACL 2000的步长改为2的示例(该命令可同时用于高级ACL和二层ACL的步长设置)。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]step2
表19-1中的description命令用来定义ACL的描述信息,描述该ACL的具体用途。text:ACL的描述信息,为1~127个字符的字符串,区分大小写。缺省情况下,ACL没有描述信息。可用“undo description”命令用来删除ACL的描述信息。
下面是一个使用description命令定义基本ACL 2000的描述信息的示例(该命令可同时用于描述高级ACL和二层ACL)。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]descriptionThis acl is used in eth 2/0/1
表中的“rule comment”命令用来定义ACL规则的描述信息,描述该规则的用途、属性等提示信息。可用“undo rulerule-idcomment”命令删除ACL规则的描述信息。这两个命令的可选项和参数解释如下:
n rule-id:ACL规则编号,取值范围为0~65534。
n text:ACL规则的描述信息,为1~127个字符的字符串,区分大小写。
缺省情况下,规则没有描述信息。
【注意】在使用rule comment命令为规则定义描述信息时,该规则必须存在。如果指定规则没有描述信息,则为其添加描述信息;如果指定规则已经存在描述信息,则修改其描述信息。
下面是一个使用“rule comment”命令为基本ACL 2000定义一条规则,并为规则定义一个描述信息的示例(该命令可同时用于高级ACL和二层ACL规则定义描述信息)。
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]rule0deny source1.1.1.1 0
[Sysname-acl-basic-2000]rule0commentThis rule is used in eth 2/0/1
2 基本ACL配置示例
本示例是要配置一个基本ACL 2000,禁止源IP地址为1.1.1.1的报文通过。具体配置命令和显示信息如下:
system-view
[Sysname]acl number2000
[Sysname-acl-basic-2000]rule deny source1.1.1.1 0
[Sysname-acl-basic-2000]display acl2000
Basic ACL 2000, named -none-, 1 rule,
ACL's step is 5
rule 0 deny source1.1.1.1 0