07-QACL操作
本章节下载 (567.35 KB)
目 录
为了过滤通过网络设备的数据包,需要配置一系列的匹配规则,以识别需要过滤的对象。在识别出特定的对象之后,网络设备才能根据预先设定的策略允许或禁止相应的数据包通过。访问控制列表(Access Control List,ACL)就是用来实现这些功能。
ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。ACL可应用在交换机全局或端口上,交换机根据ACL中指定的条件来检测数据包,从而决定是转发还是丢弃该数据包。
由ACL定义的数据包匹配规则,还可以在其它需要对流量进行区分的场合引用,如定义QoS中的流分类规则时。
一条访问控制规则可以由多条子规则组成。由于每一条子规则指定的数据包的范围大小有别,在匹配一个访问控制规则的时候就存在匹配顺序的问题。
交换机中ACL可以直接下发到交换机的硬件中,用于数据转发过程中的过滤和流分类。
ACL直接下发到硬件的情况包括:交换机实现QoS功能时引用ACL、通过ACL过滤转发数据等。
交换机也使用ACL来对由软件处理的报文进行过滤和流分类。这种情况下用户可以在定义ACL的时候指定一条ACL中多个子规则的匹配顺序。此时ACL子规则的匹配顺序有两种:config(指定匹配该规则时按用户的配置顺序)和auto(指定匹配该规则时系统自动排序,即按“深度优先”的顺序)。用户一旦指定某一条访问控制规则的匹配顺序,就不能再更改该顺序,除非把该规则的内容全部删除,再重新指定其匹配顺序。
ACL被上层模块引用的情况包括:路由策略引用ACL、对登录用户进行控制时引用ACL等。
& 说明:
“深度优先”的原则是指:把指定数据包范围最小的语句排在最前面。这一点可以通过比较IP地址的通配符来实现,通配符越小,则指定的主机的范围就越小。比如129.102.1.1 0.0.0.0指定了一台主机:129.102.1.1,而129.102.1.1 0.0.255.255则指定了一个网段:129.102.1.1~129.102.255.255。显然前者在访问控制规则中排在前面。具体标准为:对于基本访问控制规则的语句,直接比较源地址通配符,通配符相同的则按配置顺序;对于基于接口过滤的访问控制规则,配置了“any”的规则排在后面,其它按配置顺序;对于高级访问控制规则,首先比较源地址通配符,相同的再比较目的地址通配符,仍相同的则比较端口号的范围,范围小的排在前面,如果端口号范围也相同则按配置顺序。
& 说明:
用户定义的ACL匹配顺序只对同一个ACL的多个规则同时下发的情况有效。例如,同一条ACL的两个规则,如果不是同时下发,即使用户配置了“深度优先”的匹配顺序,交换机仍然会按照下发的先后顺序来匹配这两条规则。
当ACL的多个规则存在包含关系的时候,建议用户按照指定数据包范围的大小,首先下发指定数据包范围最小的规则,然后依次下发其他规则。
在以太网交换机中,访问控制列表分为以下几类:
l 基于数字标识的基本访问控制列表。
l 基于名字标识的基本访问控制列表。
l 基于数字标识的高级访问控制列表。
l 基于名字标识的高级访问控制列表。
l 基于数字标识的二层访问控制列表。
l 基于名字标识的二层访问控制列表。
交换机上对各种访问控制列表的数目限制如下表所示:
项目 |
数字取值范围 |
最多可以定义的数量 |
基于数字标识的基本访问控制列表 |
2000~2999 |
1000 |
基于数字标识的高级访问控制列表 |
3000~3999 |
1000 |
基于数字标识的二层访问控制列表 |
4000~4999 |
1000 |
基于名字标识的基本访问控制列表 |
- |
- |
基于名字标识的高级访问控制列表 |
- |
- |
基于名字标识的二层访问控制列表 |
- |
- |
一条访问控制列表可以定义的子规则 |
0~127 |
128 |
整系统可以定义的最大ACL子规则数 |
- |
12288 |
接口板后缀 |
是否支持MPLS |
每板/每端口支持下发的最大ACL规则数量 |
B |
不支持MPLS |
1024 |
DA |
||
DB |
||
DC |
||
C |
支持MPLS |
1023 |
CA |
||
CB |
业务处理板整板支持下发的最大ACL规则数量为12288。
& 说明:
单板后缀可以通过单板前面板右上角的丝印来辨别。如LSB1GP12B0单板的丝印为:GP12B,此单板后缀为B。
对普通接口板,ACL的配置过程如下:
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
配置时间段 |
time-range time-name { start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date } |
可选 |
定义流模板 |
flow-template user-defined slot slotid template-info |
可选 |
进入访问控制列表视图 |
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
必选 |
定义子规则 |
rule |
必选 |
退出访问控制列表视图 |
quit |
- |
进入以太网端口视图 |
interface interface-type interface-number |
interface-type只能是以太网端口类型 |
在端口下应用定义好的流模板 |
flow-template user-defined |
可选, 前面定义了流模板才有此步操作 |
激活访问控制列表 |
packet-filter inbound |
必选 |
对业务处理板,ACL的配置过程如下:
配置项 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置时间段 |
time-range time-name { start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date } |
可选 |
进入访问控制列表视图 |
acl { number acl-number | name acl-name [ advanced | basic | user ] } [ match-order { config | auto } ] |
必选,业务处理板不支持二层ACL |
定义子规则 |
rule |
必选 |
退出访问控制列表视图 |
quit |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
在端口下配置报文重定向,将指定VLAN下的报文定向到业务处理板 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { cpu | next-hop ip-addr1 [ip-addr2] } slot slotid |
必选,slotid为业务处理板所在槽位号 |
退出以太网端口视图 |
quit |
- |
进入VLAN视图 |
vlan vlan-id |
必须进入重定向指定的VLAN视图 |
在VLAN下激活访问控制列表 |
packet-filter inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] slot slotid |
必选 |
对时间段的配置有如下内容:配置周期时间段和绝对时间段。配置绝对时间段采用的是年、月、日、时、分的形式,配置周期时间段采用的是每周的周几的形式,每天的几点、几分的形式。
可以使用下面的命令来配置时间段。
请在系统视图下进行下列配置。
操作 |
命令 |
创建时间段 |
time-range time-name { start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date } |
删除时间段 |
undo time-range time-name [ start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date ] |
start-time和end-time days-of-the-week共同定义了周期时间段,start-time start-date和end-time end-date共同定义了绝对时间段。
如果一个时间段只定义了周期时间段,则只有在该周期时间段内,该时间段才进入激活状态。
如果一个时间段只定义了绝对时间段,则只有在该绝对时间段内,该时间段才进入激活状态。
如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日零点零分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
如果不配置起始时分和结束时分,时间段就是一天(00:00~24:00)。
如果不配置结束日期,时间段就是从配置生效之日起到系统可以表示的最大时间为止。目前系统所能表示的最大时间段范围是1970/01/01~2100/12/31。
流模板用于交换机对报文进行流分类的情况,它定义了流分类可以采用的信息。比如,流模板定义了源IP、目的IP、源TCP端口、目的TCP端口四元组,则只有具备了上述四元组的流规则可以正确下发到硬件中,用于包过滤、流量监管、优先级替换等QoS功能;否则此流规则将不能下发到硬件中,导致QoS功能不能引用此流规则。
可以使用下面的命令来配置流模板。
请在系统视图下进行下列配置。
操作 |
命令 |
定义流模板 |
flow-template user-defined slot slotid template-info |
删除流模板 |
undo flow-template user-defined slot slotid |
在定义流模板时,模板中所有的元素大小之和要不大于16个字节。各个元素所占的字节数请参考下表。
名称 |
描述 |
流模板中占用的字节数 |
bt-flag |
BT标志位 |
6字节 |
cos |
报文携带的最外层802.1QTag中的802.1p优先级 |
2字节 |
s-tag-vlan |
报文携带的最外层802.1QTag中的VLAN ID |
|
dip |
IP报文头部的目的IP地址域 |
4字节 |
dmac |
以太网报文头部的目的MAC地址域 |
6字节 |
dport |
目的端口域 |
2字节 |
dscp |
IP报文头部的DSCP域 |
1字节 |
ip-precedence |
IP报文头部的ip优先级域 |
|
tos |
IP报文头部的Tos域 |
|
exp |
MPLS报文的EXP字段 |
|
ethernet-protocol |
以太网报文头部的协议类型域 |
6字节 |
fragment-flags |
IP报文头部的分片标志字段 |
不占字节 |
icmp-code |
ICMP代码域 |
1字节 |
icmp-type |
ICMP类型域 |
1字节 |
c-tag-cos |
报文携带的内层802.1QTag中的802.1p优先级 |
2字节 |
c-tag-vlanid |
报文携带的内层802.1QTag中的VLAN ID |
|
ip-protocol |
IP报文头部的协议类型域 |
1字节 |
sip |
IP报文头部的源IP地址域 |
4字节 |
smac |
以太网报文头部的源MAC地址域 |
6字节 |
sport |
源端口域 |
2字节 |
tcp-flag |
TCP报文头部的标志域 |
1字节 |
vlanid |
交换机给报文分配的VLAN ID |
2字节 |
vpn |
为MPLS L2VPN预定义的流模板 |
2字节 |
& 说明:
l 以上表格中各个元素所占的字节数并不是IP报文中各个元素的大小,而是这些元素在流模板中所占用的字节大小。例如DSCP在IP报文中是6比特,在流模板中大小是1字节。用户需要根据这些数字来判断所定义的流模板的元素之和是否超过了16字节。
l dscp、exp、ip-precedence、tos四个元素占用同一个字节。无论定义这四个元素中任意一个、或者同时定义ip-precedence和tos,它们在流模板中都只占用一个字节。
l cos、s-tag-vlan两个元素共同占用2字节,即无论定义其中任何一个或两个都定义,它们在流模板中都占两个字节。同理,c-tag-cos和c-tag-vlanid也共同占用2字节。
l fragement-flags元素不占用流模板的字节,所以在判断流模板的元素之和是否超过16字节时不必考虑fragement-flags元素。
交换机每块单板支持两个流模板。一个是系统默认流模板,另一个是用户自定义流模板。
& 说明:
目前系统默认流模板为:
ip-protocol tcp-flag sport dport icmp-type icmp-code sip 0.0.0.0 dip 0.0.0.0 vlanid。
用户不能对系统默认的流模板进行修改、删除等操作,只能对用户自定义的流模板进行操作。
可以使用下面的命令来把用户自定义的流模板应用到指定的以太网端口上。
请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
应用流模板 |
flow-template user-defined |
取消流模板的应用 |
undo flow-template user-defined |
交换机支持多种访问控制列表,下面分别介绍如何定义这些访问控制列表。
定义访问控制列表的步骤为:
(1) 进入相应的访问控制列表视图
(2) 定义访问控制列表的子规则
& 说明:
l 如果定义ACL时不使用关键字参数time-range,则此访问控制列表激活后将在任何时刻都生效。
l 在定义ACL的子规则时,用户可以多次使用rule命令给同一个访问控制列表定义多条规则。
l 在端口下配置QoS/ACL动作时,如果不带子规则下发,则按照ACL规则定义的匹配顺序匹配;如果带具体子规则下发,则按照端口下下发的顺序匹配。
l 缺省情况下,访问控制列表中子规则的匹配顺序为按用户配置顺序(config)进行匹配。
l 如果用户需要替换一条已存在的子规则,建议先使用undo命令删除原有子规则,然后再重新配置。
基本访问控制列表只根据源IP地址制定规则,对数据包进行相应的分析处理。
可以使用下面的命令来定义基本访问控制列表。
请在相应视图下进行下列配置。
操作 |
命令 |
从系统视图进入基本访问控制列表视图 |
acl { number acl-number | name acl-name basic } [ match-order { config | auto } ] |
定义子规则(在基本访问控制列表视图下) |
rule [ rule-id ] { permit | deny } [ source { source-addr wildcard | any } | fragment | time-range name | vpn-instance instance-name ]* |
删除访问控制列表的一个子规则(在基本访问控制列表视图下) |
undo rule rule-id [ source | fragment | time-range | vpn-instance instance-name ]* |
删除访问控制列表,或者删除全部访问控制列表(在系统视图下) |
undo acl { number acl-number | name acl-name | all } |
高级访问控制列表根据源IP、目的IP、使用的TCP或UDP端口号、报文优先级等数据包的属性信息制定分类规则,对数据包进行相应的处理。高级访问控制列表支持三种报文优先级的分析处理:TOS(Type Of Service,服务类型)优先级、IP优先级和DSCP优先级。
可以使用下面的命令来定义高级访问控制列表。
请在相应视图下进行下列配置。
操作 |
命令 |
从系统视图进入高级访问控制列表视图 |
acl { number acl-number | name acl-name advanced } [ match-order { config | auto } ] |
定义子规则(在高级访问控制列表视图下) |
rule [ rule-id ] { permit | deny } protocol [ source { source-addr wildcard | any } ] [ destination { dest-addr wildcard | any } ] [ source-port operator port1 [ port2 ] ] [ destination-port operator port1 [ port2 ] ] [ icmp-type type code ] [ established ] [ [ precedence precedence | tos tos ]* | dscp dscp ] [ fragment ] [ bt-flag ] [ time-range name ] [ vpn-instance instance-name ] |
删除访问控制列表的一个子规则(在高级访问控制列表视图下) |
undo rule rule-id [ source | destination | source-port | destination-port | icmp-type | precedence | tos | dscp | fragment | bt-flag | time-range | vpn-instance ]* |
删除访问控制列表,或者删除全部访问控制列表(在系统视图下) |
undo acl { number acl-number | name acl-name | all } |
注意:
l 上面命令中的port1、port2参数指的是各种高层应用使用的TCP或者UDP的端口号,对于部分常见的端口号,可以用相应的助记符来代替其实际数字,如使用“bgp”来代替BGP协议使用的TCP端口号179。
l 如果某个高级访问控制列表已经被IDS占用,用户将不能通过命令对其进行修改或删除。
l 指定了bt-flag的子规则无法用于traffic-redirect命令。
二层访问控制列表根据源MAC地址、源VLAN ID、二层协议类型、目的MAC地址等二层信息制定规则,对数据进行相应处理。
可以使用下面的命令来定义二层访问控制列表。
请在相应视图下进行下列配置。
操作 |
命令 |
从系统视图进入二层访问控制列表视图 |
acl { number acl-number | name acl-name link } [ match-order { config | auto } ] |
定义子规则(在二层访问控制列表视图下) |
rule [ rule-id ] { permit | deny } [ cos cos-value | c-tag-cos c-cos-value | exp exp-value | protocol-type | ingress { { source-vlan-id [ to source-vlan-id-end ] | source-mac-addr source-mac-wildcard | c-tag-vlan c-tag-vlanid }* | any } | egress { dest-mac-addr dest-mac-wildcard | any } | s-tag-vlan s-tag-vlanid | time-range name ]* |
删除访问控制列表的一个子规则(在二层访问控制列表视图下) |
undo rule rule-id |
删除访问控制列表,或者删除全部访问控制列表(在系统视图下) |
undo acl { number acl-number | name acl-name | all } |
将访问控制列表定义好后,必须激活之后才能使之生效。本配置用来激活那些对交换机硬件转发的数据进行过滤或分类的访问控制列表。
可以使用下面的命令来激活定义好的访问控制列表。
对普通接口板,请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
激活三层访问控制列表 |
packet-filter inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] |
取消激活三层访问控制列表 |
undo packet-filter inbound ip-group { acl-number | acl-name } [ rule rule ] |
同时激活二层和三层访问控制列表 |
packet-filter inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] | link-group { acl-number | acl-name } rule rule } |
同时取消激活二层和三层访问控制列表 |
undo packet-filter inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule ] | link-group { acl-number | acl-name } rule rule } |
激活二层访问控制列表 |
packet-filter inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] |
取消激活二层访问控制列表 |
undo packet-filter inbound link-group { acl-number | acl-name } [ rule rule ] |
对业务处理板,请在VLAN视图下进行下列配置。
操作 |
命令 |
激活三层访问控制列表 |
packet-filter inbound ip-group { acl-number | acl-name } [ rule rule ] [ system-index index ] slot slotid |
取消激活三层访问控制列表 |
undo packet-filter inbound ip-group { acl-number | acl-name } [ rule rule ] slot slotid |
注意:
l 业务处理板(本文中主要指LSB1NATB0板)采用的QoS/ACL命令形式与普通接口板有所不同,请用户注意手册中相关说明。
l 在业务处理板上配置packet-filter命令前必须先在端口视图下配置报文重定向,将指定VLAN内的报文重定向到业务处理板。
l 业务处理板不支持二层访问控制列表。
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
& 说明:
系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
在完成上述配置后,在任意视图下执行display命令可以显示配置后访问控制列表的运行情况。用户可以通过查看显示信息验证配置的效果。在用户视图下执行reset命令可以将有关访问控制列表的统计信息清除。
操作 |
命令 |
显示当前时间段的配置和状态 |
display time-range { all | name } |
显示访问控制列表的详细配置信息 |
display acl config { all | acl-number | acl-name } |
显示指定单板上下发的ACL规则总数 |
display acl remaining entry slot slotid |
显示访问控制列表的下发应用信息 |
display acl running-packet-filter { all | interface interface-type interface-number | vlan vlan-id } |
显示流模板的详细配置信息 |
display flow-template [ default | interface interface-type interface-number | slot slotid | user-defined ] |
清除访问控制列表的统计信息 |
reset acl counter { all | acl-number | acl-name } |
display acl config命令显示的信息是由交换机CPU处理的匹配信息。
具体的参数说明请参见命令手册。
公司企业网通过Switch的百兆端口实现各部门之间的互连。研发部门由Ethernet2/1/1端口接入,财经部门的工资查询服务器地址为129.110.1.2。要求正确配置ACL,限制研发部门在上班时间8:00至18:00访问工资服务器。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
# 定义8:00至18:00的周期时间段。
[H3C] time-range H3C 8:00 to 18:00 working-day
# 进入基于名字的高级访问控制列表视图,命名为traffic-of-payserver。
[H3C] acl name traffic-of-payserver advanced
# 定义到工资服务器的访问规则。
[H3C-acl-adv-traffic-of-payserver] rule 1 deny ip source any destination 129.110.1.2 0.0.0.0 time-range H3C
# 将traffic-of-payserver的ACL在研发部门接入的端口上激活。
[H3C-Ethernet2/1/1] packet-filter inbound ip-group traffic-of-payserver
通过基本访问控制列表,实现在每天8:00~18:00时间段内对源IP为10.1.1.1主机发出报文的过滤(该主机从交换机的Ethernet2/1/1接入)。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00~18:00时间段。
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 定义源IP为10.1.1.1的ACL
# 进入基于名字的基本访问控制列表视图,命名为traffic-of-host。
[H3C] acl name traffic-of-host basic
# 定义源IP为10.1.1.1的访问规则。
[H3C-acl-basic-traffic-of-host] rule 1 deny ip source 10.1.1.1 0 time-range H3C
(3) 激活ACL
# 将traffic-of-host的ACL激活。
[H3C-Ethernet2/1/1] packet-filter inbound ip-group traffic-of-host
通过二层访问控制列表,实现在每天8:00~18:00时间段内对源MAC为00e0-fc01-0101、目的MAC为00e0-fc01-0303的报文的过滤。(在交换机的Ethernet2/1/1进行本项配置)
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00~18:00时间段。
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 创建用户自定义流模板
[H3C] flow-template user-defined slot 2 ethernet-protocol smac 0-0-0 dmac 0-0-0
(3) 定义源MAC为00e0-fc01-0101、目的MAC为00e0-fc01-0303的ACL
# 进入基于名字的二层访问控制列表视图,命名为traffic-of-link。
[H3C] acl name traffic-of-link link
# 定义源MAC为00e0-fc01-0101目的MAC为00e0-fc01-0303的流分类规则。
[H3C-acl-link-traffic-of-link] rule 1 deny ingress 00e0-fc01-0101 0-0-0 egress 00e0-fc01-0303 0-0-0 time-range H3C
[H3C-acl-link-traffic-of-link] quit
(4) 在端口下应用用户自定义流模板,并激活ACL
# 在端口Ethernet2/1/1下应用用户自定义流模板。
[H3C] interface Ethernet2/1/1
[H3C-Ethernet2/1/1] flow-template user-defined
# 将traffic-of-link的ACL在端口下激活。
[H3C-Ethernet2/1/1] packet-filter inbound link-group traffic-of-link
BitTorrent(比特洪流,简称BT)是一种用来进行文件下载的共享软件,其特点是:下载的人越多,速度越快。BT下载大大降低了下载服务器的负荷,但也造成网络下载的数据量剧增,使得网络带宽被大量的BT下载流量占据,严重影响其它网络业务,由此产生了对BT流量进行有效控制的需求。
本配置任务要求通过配置合适的ACL及其子规则,达到禁止BT数据流通过端口GE7/1/8的目的。
注意:
端口组和LSB1XP4系列单板不支持BT禁流配置。
后缀为DA/DB/DC的单板不支持BT禁流配置。
(1) 定义用户自定义流模板
[H3C] flow-template user-defined slot 7 ip-protocol bt-flag sip 0.0.0.0 dport
(2) 定义高级访问控制列表子规则
[H3C] acl number 3000
[H3C-acl-adv-3000] rule 0 deny tcp bt-flag
[H3C-acl-adv-3000] quit
(3) 进入端口GE7/1/8,在端口下配置BT禁流
[H3C] interface GigabitEthernet 7/1/8
[H3C-GigabitEthernet7/1/8] flow-template user-defined
[H3C-GigabitEthernet7/1/8] packet-filter inbound ip-group 3000 rule 0
传统的分组网络对所有报文都无区别的等同对待。每个交换机/路由器对所有的报文采用先入先出的策略(FIFO)处理,尽最大的努力(Best-Effort)将报文送到目的地,但对报文传送的延时、延时抖动等传输性能不提供任何承诺和保证。
随着计算机网络的高速发展,对带宽、延迟、抖动敏感的语音、图像、重要数据越来越多地在网上传输。这样一方面使得网上的业务资源极大地丰富,另一方面则对网络传输的服务质量QoS(Quality of Service)提出了更高的要求。
以太网技术是当今被广泛使用的网络技术。目前,以太网不仅成为各种独立的局域网中的主导技术,许多以太网形式的局域网也成为了Internet的组成部分。而且随着以太网技术的不断发展,以太网接入方式也将成为主要的普通Internet用户接入方式之一。因此要实现端到端的全网QoS解决方案,不可避免地要考虑以太网上的QoS业务保证的问题。这就需要以太网交换设备应用以太网QoS技术,对不同类型的业务流提供不同等级的QoS保证,尤其是能够支持那些对延时和抖动要求较高的业务流。
下面介绍QoS的一些术语和概念。
指所有通过交换机的报文。
流分类(traffic classification)是指采用一定的规则识别出符合某类特征的报文。分类规则(classification rule)指管理员根据管理需求配置的过滤规则。分类规则可以很简单,比如可根据IP报文头的ToS字段,识别出有不同优先级特征的流量;也可以很复杂,如综合链路层(Layer 2)、网络层(Layer 3)、传输层(Layer 4)信息诸如MAC地址、IP协议、源地址、目的地址、或应用程序的端口号等相关信息来对报文进行分类。一般的分类依据都局限在封装报文的头部信息,使用报文的内容作为分类的标准比较少见。
包过滤就是将业务流进行过滤操作。例如丢弃操作(deny),该操作将匹配流分类规则的业务流丢弃,而允许其他所有流量通过。以太网交换机采用了复杂的流分类规则,这样可以有针对性的对业务流进行过滤,丢弃那些无用的、不可靠、值得怀疑的业务流,从而增强网络的安全性。
实现包过滤,有两个关键的环节:
第一步:对进入端口的流量按既定的规则进行流分类;
第二步:对区分出来的流进行过滤操作(允许通过或丢弃)。permit为缺省的访问控制操作。
为了使有限的网络资源可以更好地为用户服务,QoS在输入端口上可以对特定用户的业务流进行监管,使之适应分配给它的那部分网络资源。
用户可以基于自身QoS策略的需要,重新指定报文的转发方向。
以太网交换机可为特定报文提供优先级标记的服务,标记内容包括TOS、DSCP、802.1p等,这些优先级标记分别适用于不同的QoS模型,在不同的模型中被定义。
下面介绍一下IP优先级、TOS优先级、DSCP优先级、EXP优先级和802.1p优先级。
(1) IP优先级、TOS优先级、DSCP优先级和EXP优先级
如图2-1所示,IP header的TOS字段有8个bit,其中前3个bit表示的就是IP优先级,取值范围为0~7;第3~6这4个bit表示的是TOS优先级,取值范围为0~15;在RFC2474中,重新定义了IP报文头部的TOS域,称之为DS域,其中DSCP优先级用该域的前6位(0~5位)表示,取值范围为0~63,后2位(6、7位)是保留位;EXP优先级为DSCP优先级的前3位(0~2位),取值范围为0~7。
(2) 802.1p优先级
802.1p优先级位于二层报文头部,适用于不需要分析三层报头,而需要在二层上保证QoS的场合。
如图2-2所示,每一个支持802.1Q协议的主机,在发送数据包时,都在原来的以太网帧头中的源地址后增加了一个4字节的802.1Q标签头。
这4个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID--Tag Protocol Identifier,它的值是8100),和2个字节的标签控制信息(TCI--Tag Control Information),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的报文,下图显示了802.1Q标签头的详细内容。
在上图中,TCI字节中Priority字段就是802.1p优先级,它由3个bit组成,取值范围为0~7。这3位指明帧的优先级。一共有8种优先级,主要用于决定当交换机阻塞时,优先发送哪个数据包。
之所以称此优先级为802.1p优先级,是因为有关这些优先级的应用是在802.1p规范中被详细定义。
当网络拥塞时,必须解决多个报文同时竞争使用资源的问题,通常采用队列调度加以解决。下面分别介绍几种队列调度算法:严格优先级SP(Strict-Priority)队列调度算法、加权轮循WRR(Weighted Round Robin)调度算法。
(1) SP调度算法
SP队列调度算法,是针对关键业务型应用设计的。关键业务有一重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。以端口有8个输出队列为例,优先队列将端口的8个输出队列分成8类,依次为7、6、5、4、3、2、1、0队列,它们的优先级依次降低。
在队列调度时,SP严格按照优先级从高到低的次序优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。这样,将关键业务的分组放入较高优先级的队列,将非关键业务(如E-Mail)的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。
SP的缺点是:拥塞发生时,如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文就会由于得不到服务而“饿死”。
(2) WRR调度算法
交换机的端口一般支持8个输出队列(XP4单板只支持4个输出队列),WRR队列调度算法在队列之间进行轮流调度,保证每个队列都得到一定的服务时间。
以端口有8个优先级队列为例。WRR可为每个队列配置一个加权值(依次为w7、w6、w5、w4、w3、w2、w1、w0),加权值表示获取资源的比重。如一个100M的端口,配置它的WRR队列调度算法的加权值为50、30、10、10、50、30、10、10(依次对应w7、w6、w5、w4、w3、w2、w1、w0),这样可以保证最低优先级队列至少获得5Mbit/s带宽,避免了采用SP调度时低优先级队列中的报文可能长时间得不到服务的缺点。
WRR队列还有一个优点是,虽然多个队列的调度是轮循进行的,但对每个队列不是固定地分配服务时间片——如果某个队列为空,那么马上换到下一个队列调度,这样带宽资源可以得到充分的利用。
流镜像,即将指定的数据包复制到CPU,以进行网络检测和故障排除。
端口镜像,即将指定端口的数据包复制到监控端口,以进行网络检测和故障排除。
基于流的流量统计,针对用户感兴趣的报文作统计分析。
QoS配置包括:
l 包过滤
l 服务参数分配规则配置
l 优先级标记
l 流量监管
l 流量整形
l 重定向配置
l 队列调度
l 流镜像
l 端口镜像
l 流量统计
& 说明:
l 用户在进行以上的QoS配置之前,必须首先定义相应的访问控制列表。
l 包过滤配置通过激活相应的访问控制列表就可以实现,参见1.2.4 激活访问控制列表,本章不再赘述。
l 用户进行QoS配置时(包括包过滤、流量监管、优先级标记、报文重定向、流镜像、流量统计六个动作),如果指定的高级ACL已被IDS使用,QoS动作将不能正常下发。
注意:
l 业务处理板(本文中主要指LSB1NATB0板)采用的QoS配置命令与普通接口板有所不同,请用户注意手册中的相关说明。
l 目前S9500支持的业务处理板无出接口,因此不支持以太网端口视图下的配置命令。
l 业务处理板不支持二层访问控制列表。
交换机的QoS功能比较复杂,在具体的描述中会用到许多特定的术语。这里对这些名词作一下简要的说明。
术语 |
说明 |
CoS |
802.1p优先级,二者含义相同,都是指以太网报文头部的优先级,取值为0~7。 |
服务参数 |
交换机接收到报文时为报文分配的一组参数,这组参数在交换机实现QoS功能时使用。报文的服务参数包含四项内容:802.1p优先级、DSCP优先级、本地优先级、丢弃级别。 |
Drop-precedence |
丢弃级别,也称丢弃优先级。交换机服务参数中的一个参数,取值为0、1、或2。交换机在接收报文的时候就会给报文分配丢弃级别。交换机在对报文进行处理时可以修改报文的丢弃级别。为报文分配丢弃级别也称为为报文着色,丢弃级别为2的报文为红色报文,1为黄色报文,0为绿色报文。丢弃级别主要在发生拥塞后交换机需要丢弃报文时使用。 |
Conform-Level |
遵守级别,是交换机进行流量监管操作时根据用户配置的承诺平均速率、承诺突发尺寸、最大突发尺寸、峰值速率和端口的实际流量计算得出的结果,取值为0、1、2。这个参数主要用在使用traffic-limit命令进行流量监管的同时选择重新标记服务参数选项,如remark-cos,remark-drop等,不同遵守级别的报文会查询不同的映射表:对流量小于cir的报文分配conform-level 0,流量大于cir小于pir的报文分配conform-level 1,流量大于pir的报文分配conform-level 2。在使用traffic-priority命令进行优先级标记操作时也用到“DSCP+Conform-Level—>服务参数”映射表为报文重新分配服务参数,这个映射表是Conform-Level取值为0时的映射表。 |
交换机的QoS是建立在服务参数的基础上的。服务参数是一套QoS相关的参数,包括802.1p优先级(CoS优先级)、DSCP优先级、EXP优先级、本地优先级(交换机为报文分配的一种具有本地意义的优先级)、丢弃级别。
交换机在接收到报文之后,会参考一定的规则自动给报文分配一套服务参数。首先交换机会根据报文的802.1p优先级查找下面的映射表来获取报文的丢弃级别和本地优先级:“CoS—>Drop-precedence”映射表和“CoS —>Local-precedence”映射表。交换机提供这些映射表的缺省取值。用户可以根据需要重新配置这些映射表。如果没有成功为报文分配到本地优先级,交换机就会使用报文接收端口的优先级作为报文的本地优先级。通过反查“CoS —>Local-precedence”映射表来获取CoS值,再利用“CoS->Drop-precedence”映射表来获取报文丢弃优先级。
& 说明:
端口下不配置priority 命令(即使用默认的priority 0)时,所有通过该端口的Tag报文不会根据Tag中的802.1p优先级映射本地优先级;
当端口下配置priority命令且参数不为0或使用traffic-priority命令对报文进行优先级标记时,所有通过该端口的Tag报文会根据Tag中的802.1p优先级映射本地优先级。
可以使用下面的命令配置这些映射表。
请在系统视图下进行下列操作。
操作 |
命令 |
配置“CoS —>Drop-precedence”映射表 |
qos cos-drop-precedence-map cos0-map-drop-prec cos1-map-drop-prec cos2-map-drop-prec cos3-map-drop-prec cos4-map-drop-prec cos5-map-drop-prec cos6-map-drop-prec cos7-map-drop-prec |
恢复“CoS —>Drop-precedence”映射表为缺省值 |
undo qos cos-drop-precedence-map |
配置“CoS —>Local-precedence”映射表 |
qos cos-local-precedence-map cos0-map-local-prec cos1-map-local-prec cos2-map-local-prec cos3-map-local-prec cos4-map-local-prec cos5-map-local-prec cos6-map-local-prec cos7-map-local-prec |
恢复“CoS —>Local-precedence”映射表为缺省值 |
undo qos cos-local-precedence-map |
缺省情况下,交换机使用缺省的映射关系为接收到的报文分配丢弃级别和本地优先级。
请在以太网端口视图下进行下列操作。
操作 |
命令 |
配置端口的本地优先级 |
priority priority-level |
恢复端口的本地优先级为缺省值 |
undo priority |
流量监管是基于流的速率限制。它监督某一流量的速率。如果流量超出指定的规格,交换机就采用相应的措施,如丢弃那些超出规格的报文或重新设置它们的服务参数。
在交换机的流量监管动作中包括了根据“DSCP+Conform-Level—>服务参数”映射表和“EXP+Conform-Level—>服务参数”映射表来重新分配流的服务参数、根据“Local-precedence +Conform-Level—>802.1p优先级”映射表来重新分配流的802.1p优先级等。所以用户需要根据实际情况来配置这三个映射表或者使用映射表的缺省值。
可以使用下面的命令来配置“DSCP+Conform-Level—>服务参数”映射表、“EXP+Conform-Level—>服务参数”映射表和“Local-precedence+Conform- Level—>802.1p优先级”映射表。
请在系统视图下开始下列配置。
操作 |
命令 |
在系统视图下进行配置:进入遵守级别视图 |
qos conform-level conform-level-value |
在遵守级别视图下进行配置:配置“DSCP+Conform-Level—>服务参数”映射表 |
dscp dscp-list : dscp-value exp-value cos-value local-precedence-value drop-precedence |
在遵守级别视图下进行配置:恢复当前的遵守级别的“DSCP + Conform-level—>服务参数”映射表为缺省值 |
undo dscp dscp-list |
在遵守级别视图下进行配置:配置“EXP+Conform-Level—>服务参数”映射表 |
exp exp-list : dscp-value exp-value cos-value local-precedence-value drop-precedence |
在遵守级别视图下进行配置:恢复当前的遵守级别的“EXP + Conform-level—>服务参数”映射表为缺省值 |
undo exp exp-list |
在遵守级别视图下进行配置:配置“Local-precedence +Conform-Level—>802.1p优先级”映射表 |
local-precedence cos-value0 cos-value1 cos-value2 cos-value3 cos-value4 cos-value5 cos-value6 cos-value7 |
在遵守级别视图下进行配置:恢复当前的遵守级别的“Local-precedence + Conform-level—>802.1p优先级”映射表为缺省值 |
undo local-precedence |
缺省情况下,系统提供缺省的映射表。
以下命令用来设定业务处理板上配置流量监管所需的流量参数。
注意:
在普通接口板上配置流量监管无需此步操作。
请在系统视图下进行下列配置。
操作 |
命令 |
配置流量参数 |
traffic-params traffic-index cir commited-info-rate cbs commited-base-size ebs exceed-base-size [ pir peak-info-rate ] |
可以使用下面的命令来配置流量监管。本配置任务的目的是对匹配访问控制列表的数据流实现流量监管:对在流量限制之内的数据流采取相应的动作,对超过设定流量的数据流采取另外的动作,如丢弃报文。
对普通接口板,请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
基于三层流的流量监管配置 |
traffic-limit inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] [ tc-index index ] cir cbs ebs [ pir ] [ conform { { remark-cos | remark-drop-priority }* | remark-policed-service } ] [ exceed { forward | drop } ] |
取消基于三层流的流量监管配置 |
undo traffic-limit inbound ip-group { acl-number | acl-name } [ rule rule ] |
同时基于二层和三层流的流量监管配置 |
traffic-limit inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] | link-group { acl-number | acl-name } rule rule } [ tc-index index ] cir cbs ebs [ pir ] [ conform { { remark-cos | remark-drop-priority }* | remark-policed-service } ] [ exceed { forward | drop } ] |
取消基于二层和三层流的流量监管配置 |
undo traffic-limit inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule ] | link-group { acl-number | acl-name } rule rule } |
基于二层流的流量监管配置 |
traffic-limit inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] [ tc-index index ] cir cbs ebs [ pir ] [ conform { { remark-cos | remark-drop-priority }* | remark-policed-service } ] [ exceed { forward | drop } ] |
取消基于二层流的流量监管配置 |
undo traffic-limit inbound link-group { acl-number | acl-name } [ rule rule ] |
& 说明:
l 在参数设定时,要求cir<=pir,cbs<=ebs。建议将cbs、ebs设成cir的100~150倍。
l 对端口组配置流量监管时组内所有端口占用同一带宽,即配置的流量参数是各端口共享的。
对业务处理板,请在VLAN视图下进行下列配置。
操作 |
命令 |
基于三层流的流量监管配置 |
traffic-limit inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] traffic-index index { conform { remark-cos | remark-policed-service } | exceed { forward | drop } } slot slotid |
取消基于三层流的流量监管配置 |
undo traffic-limit inbound ip-group { acl-number | acl-name } [ rule rule ] slot slotid |
注意:
l 在业务处理板上配置traffic-limit命令前必须先在端口视图下配置报文重定向,将指定VLAN内的报文重定向到业务处理板。
l 在配置流量监管之前一定要先定义相应的访问控制列表,同时根据需要配置好“DSCP+Conform-Level—>服务参数”映射表和“Local-precedence +Conform-Level—>802.1p优先级”映射表。
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
tc-index index是流量调节索引值。如果用户在配置流量监管的时候,将不同的流规则配置了相同的索引值,则这些流的流量之和将被所配置的流量监管参数限制。比如,匹配规则1的流的cir配置为10kbps,规则2的配置为10kbps,同时两个规则的流量调节索引值相同,则匹配规则1的流和匹配规则2的流的平均速率之和将被限制为10kbps。
& 说明:
l 系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
l 用户为不同的流指定相同的tc-index时,流量监管动作的参数设置必须完全一致,否则系统将提示错误。
关于命令的详细描述请参见本章相应的命令手册。
流量整形是对输出报文的速率进行控制,使报文以均匀的速率发送出去。流量整形通常是为了使报文速率与下游设备相匹配,以避免不必要的报文丢弃和拥塞。它和流量监管的主要区别在于:流量整形是缓存超过速率限制的报文,使报文以均匀的速率发送出去;而流量监管则是丢弃超过流量速率限制的报文。但是流量整形会增加延迟,而流量监管不会引入额外的延迟。
可以使用下面的命令进行流量整形配置。
请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
流量整形配置 |
traffic-shape [ queue queue-id ] max-rate burst-size |
取消流量整形配置 |
undo traffic-shape [ queue queue-id ] |
交换机支持针对端口进行流量整形,即对端口所有的流量进行流量整形,也支持针对端口上特定输出队列的流量整形。可以通过选取不同的参数实现这两种流量整形操作。
关于命令的详细描述请参见本章对应的命令手册。
优先级标记配置就是为匹配访问控制列表的报文重新分配一套服务参数。优先级标记配置包括如下动作:使用交换机自动分配的服务参数;根据报文的DSCP值查找映射表为报文重新分配服务参数;根据用户设定的DSCP值和EXP值查找映射表为报文重新分配服务参数;用户自己为报文指定一套服务参数。
对普通接口板,请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行优先级标记 |
traffic-priority inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { auto | remark-policed-service { trust-dscp | dscp dscp-value | untrusted dscp dscp-value cos cos-value local-precedence local-precedence drop-priority drop-level } } |
取消对匹配三层流规则的报文进行优先级标记 |
undo traffic-priority inbound ip-group { acl-number | acl-name } [ rule rule ] |
对同时匹配二层和三层流规则的报文进行优先级标记 |
traffic-priority inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] | link-group { acl-number | acl-name } rule rule } { auto | remark-policed-service { trust-dscp | dscp dscp-value | untrusted dscp dscp-value cos cos-value local-precedence local-precedence drop-priority drop-level } } |
取消对同时匹配二层和三层流规则的报文进行优先级标记 |
undo traffic-priority inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule ] | link-group { acl-number | acl-name } rule rule } |
对匹配二层流规则的报文进行优先级标记 |
traffic-priority inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { auto | remark-policed-service { trust-dscp | dscp dscp-value | untrusted dscp dscp-value cos cos-value local-precedence local-precedence drop-priority drop-level } } |
取消对匹配二层流规则的报文进行优先级标记 |
undo traffic-priority inbound link-group { acl-number | acl-name } [ rule rule ] |
对业务处理板,请在VLAN视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行优先级标记 |
traffic-priority inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { auto | remark-policed-service { trust-dscp | dscp dscp-value | untrusted dscp dscp-value cos cos-value local-precedence local-precedence drop-priority drop-level } } slot slotid |
取消对匹配三层流规则的报文进行优先级标记 |
undo traffic-priority inbound ip-group { acl-number | acl-name } [ rule rule ] slot slotid |
注意:
l 在业务处理板上配置traffic-priority命令前必须先在端口视图下配置报文重定向,将指定VLAN内的报文重定向到业务处理板。
l 在进行优先级标记配置之前,必须定义了相应的访问控制列表、“EXP+Conform-Level—>服务参数”映射表和“DSCP+Conform-Level—>服务参数”映射表。映射表的配置请参见流量监管配置中的描述。
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
& 说明:
l 系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
l 对MPLS报文,dscp-value不仅代表DSCP优先级,同时也可以映射到EXP上,因此用户在设置dscp-value的同时也设定了EXP值。需要注意的是,S9500交换机作为入PE设备的时候:对于IP报文,EXP根据“DSCP+Conform-Level—>服务参数”映射表来进行匹配;对TCP、UDP报文,EXP值取dscp-value的低3比特。S9500交换机作为入P设备的时候,EXP值取dscp-value的低3比特。
l 优先级标记操作使用的“DSCP+Conform-Level—>服务参数”映射表和“EXP+Conform-Level—>服务参数”映射表是Conform-Level为0的映射表。
关于命令的详细描述请参见本章对应的命令手册。
报文重定向就是用户改变转发的报文的输出方向,将其输出到CPU、其他端口、其他IP地址或其他单板。
对普通接口板,请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行重定向配置 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { cpu | interface interface-type interface-number destination-vlan { l2-vpn | l3-vpn } | next-hop ip-addr1 [ ip-addr2 ] | slot slotid vlanid [ join-vlan ] } |
取消对匹配三层流规则的报文进行重定向配置 |
undo traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule ] |
对同时匹配二层和三层流规则的报文进行重定向配置 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule ] link-group { acl-number | acl-name } [ rule rule ] { cpu | interface interface-type interface-number destination-vlan { l2-vpn | l3-vpn } | next-hop ip-addr1 [ ip-addr2 ] | slot slotid vlanid [ join-vlan ] } |
取消对同时匹配二层和三层流规则的报文进行重定向配置 |
undo traffic-redirect inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule ] | link-group { acl-number | acl-name } rule rule } 或undo traffic-redirect inbound link-group { acl-number | acl-name } { rule rule ip-group { acl-number | acl-name } | ip-group { acl-number | acl-name } rule rule } |
对匹配二层流规则的报文进行重定向配置 |
traffic-redirect inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { cpu | interface interface-type interface-number destination-vlan { l2-vpn | l3-vpn } | next-hop ip-addr1 [ ip-addr2 ] | slot slotid vlanid [ join-vlan ] } |
取消对匹配二层流规则的报文进行重定向配置 |
undo traffic-redirect inbound link-group { acl-number | acl-name } [ rule rule ] |
对业务处理板,请在VLAN视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行重定向配置 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { cpu | next-hop ip-addr1 [ip-addr2] } slot slotid |
取消对匹配三层流规则的报文进行重定向配置 |
undo traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule ] slot slotid |
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
& 说明:
l 系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
l 重定向配置仅对访问列表中动作为permit的规则有效。
l 当报文被重定向到CPU后,将不再正常转发。
l 用户可以使用重定向命令中的next-hop参数实现策略路由。
l 在业务处理板上配置traffic-redirect命令前必须先在端口视图下配置报文重定向,将三层报文定向到业务处理板和指定VLAN。
l 不允许将组播报文重定向到业务处理板。
关于命令的详细描述请参见本章对应的命令手册。traffic-redirect { nested-vlan | modified-vlan }命令的配置请参见本手册的“VLAN-QinQ”部分。
交换机的端口一般支持8个输出队列(XP4和GV48单板的端口只支持4个输出队列)。交换机依据报文的本地优先级将报文插入到出端口输出队列中。当网络拥塞时,必须解决多个报文同时竞争使用资源的问题,通常采用队列调度加以解决。交换机支持SP调度算法和WRR调度算法。
端口的8个输出队列中,不同的队列可以采用不同的队列调度算法。因此,交换机支持下面三种队列调度方式:
l 所有队列全部采用SP调度。
l 所有队列全部采用WRR调度:调度时从两个WRR组中各选出一个队列,这两个队列再进行优先级的比较,哪个队列的优先级高就调度哪个队列。调度完后,再从高优先级队列所在的WRR组内选择另一个队列,与之前优先级低的队列进行比较。
l 部分队列采用SP调度,部分队列采用WRR调度。这样在队列调度时,各调度组内自行调度,SP调度组执行严格调度方式,WRR调度组执行轮循调度。这样从SP调度组、WRR优先级组1、WRR优先级组2中各选出一个队列;然后,系统对选出的队列再按严格优先级进行调度。
可以使用下面的命令来进行队列调度配置。
请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
设置队列调度算法 |
queue-scheduler wrr { group1 { queue-id queue-weight } &<1-8> | group2 { queue-id queue-weight } &<1-8> }* |
恢复队列调度算法的缺省值 |
undo queue-scheduler [ queue-id ] &<1-8> |
缺省情况下交换机采用为严格优先调度模式。用户在配置队列调度时,没有配置采用WRR算法的队列采用缺省的严格优先调度模式。
关于命令的详细描述请参见本章对应的命令手册。
当拥塞发生时,交换机会尽快的丢包释放队列资源,同时尽量不将报文放入高延迟的队列中,以消除拥塞。
交换机在接收报文时为报文分配了丢弃级别(也可以称为对报文进行着色)。丢弃级别取值为0、1、2,2代表红色,1代表黄色,0代表绿色。在拥塞发生时,红色报文将首先被丢弃,绿色报文最后才会被丢弃。
拥塞避免的参数和丢弃阀值可以分队列、分丢弃级别进行配置。
交换机支持两种丢弃算法:
l 尾丢弃:当进行报文丢弃时,对于按丢弃级别划分的红、黄、绿报文分别使用红、黄、绿队列的丢弃阀值来决定是否丢弃。当红、黄、绿报文分别超过红、黄、绿队列的上限队列长度,系统就开始丢弃上限队列长度之后的报文。
l WRED丢弃算法:在按照队列对报文进行丢弃时综合考虑了丢弃级别。当红、黄、绿报文分别超过红、黄、绿队列的下限队列长度时,系统就开始以某一斜率丢弃下限队列长度与上限度列长度之间的报文。当红、黄、绿报文开始超过它们的上限队列长度时,系统就开始丢弃上限度列长度之后的所有报文。
在配置交换机的丢弃算法时,首先需要配置各个端口输出队列的WRED参数。
系统提供4套缺省的WRED参数,分别以索引号0、1、2、3表示。每套参数包括8个输出队列的10个参数,包括:绿、黄、红色报文的开始随机丢弃的队列长度,绿、黄、红色报文的完全丢弃的队列长度、绿、黄、红色报文的最大丢弃概率,进行队列平均长度计算时的权重。用户可以根据需要使用以下命令修改当前的WRED索引代表的WRED参数。
可以使用下面的命令来进行WRED参数配置。
请在系统视图下开始下列配置。
操作 |
命令 |
在系统视图下进行配置:进入WRED索引视图 |
wred wred-index |
在系统视图下进行配置:恢复WRED参数配置的缺省值 |
undo wred wred-index |
在WRED索引视图进行配置:设置WRED参数 |
queue queue-id green-min-threshold green-max-threshold green-max-prob yellow-min-threshold yellow-max-threshold yellow-max-prob red-min-threshold red-max-threshold red-max-prob exponent |
在WRED索引视图进行配置:恢复WRED参数的缺省值 |
undo queue queue-id |
在WRED索引视图进行配置:退出WRED索引视图 |
quit |
undo wred命令将相应的WRED索引下的一套WRED参数配置恢复为缺省值。undo queue将与该队列相关的WRED参数配置恢复为缺省值。
缺省情况下交换机提供缺省的4套WRED参数。
注意:
当组播报文通过某端口输出队列发送时,需要使用queue命令将该队列对应的完全丢弃队列长度参数适当调大,才能保证出端口的复制能力达到最佳效果。
关于命令的详细描述请参见本章对应的命令手册。
可以使用下面的命令来进行丢弃算法配置。
请在以太网端口视图/端口组视图下进行配置。
操作 |
命令 |
设置丢弃算法 |
drop-mode { tail-drop | wred } [ wred-index ] |
恢复丢弃算法的缺省值 |
undo drop-mode |
缺省情况下交换机采用尾丢弃模式。
关于命令的详细描述请参见本章对应的命令手册。
流镜像就是将匹配访问控制列表规则的业务流复制到CPU,用于报文的分析和监视。
可以使用下面的命令进行流镜像配置。
请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行流镜像配置 |
mirrored-to inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] cpu |
取消对匹配三层流规则的报文进行流镜像的配置 |
undo mirrored-to inbound ip-group { acl-number | acl-name } [ rule rule ] |
对同时匹配二层和三层流规则的报文进行流镜像配置 |
mirrored-to inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] | link-group { acl-number | acl-name } rule rule } cpu |
取消对同时匹配二层和三层流规则的报文进行流镜像的配置 |
undo mirrored-to inbound ip-group { acl-number | acl-name } { rule rule link-group { acl-number | acl-name } [ rule rule ] | link-group { acl-number | acl-name } rule rule } |
对匹配二层流规则的报文进行流镜像配置 |
mirrored-to inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] cpu |
取消对匹配二层流规则的报文进行流镜像的配置 |
undo mirrored-to inbound link-group { acl-number | acl-name } [ rule rule ] |
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
& 说明:
系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
关于命令的详细描述请参见本章对应的命令手册。
端口镜像就是将被监控端口上的数据复制到指定的监控端口,对数据进行分析和监视。以太网交换机支持多对一的镜像,即将多个端口的报文复制到一个监控端口上。
用户可以指定受监控的报文的方向,如下所示:
l 只监控指定端口接收的报文(入报文镜像)
l 只监控指定端口发送的报文(出报文镜像)
可以使用下面的命令进行端口镜像配置。
请在系统视图下进行下列配置。
操作 |
命令 |
配置端口镜像 |
mirroring-group groupid { inbound | outbound } mirroring-port-list mirrored-to mornitor-port |
取消端口镜像的配置 |
undo mirroring-group groupid |
S9500系列交换机采用端口镜像组的方式来配置端口镜像功能。每个端口镜像组包含一个监控端口,和一组被监控端口。
& 说明:
S9500支持跨板镜像,即监控端口和被监控端口可以位于不同的接口板上。
端口镜像的配置有如下的限制:
l 对于非跨板镜像,一个接口板上所有同方向的镜像组只能配置一个监控端口。
l 类似的,对于跨板镜像,一个接口板上所有同方向的镜像组也只能配置一个监控端口(该监控端口在另一块接口板上)。
l 对于监控发送报文方向的端口镜像组,所有镜像组的被监控端口个数之和不能超过8个。
l 同一个端口可以作为不同镜像组的监控端口和被监控端口。
对GV48单板有以下特殊限制:
l 被监控端口在同一块GV48单板上的镜像(包括入端口镜像和出端口镜像)只能有一个监控端口。
l 系统中配置的所有的端口镜像组,在同一块GV48单板上最多只能有一个监控端口。
关于命令的详细描述请参见本章对应的命令手册。
流量统计用于统计指定业务流的数据包,它统计的是交换机转发的数据包中匹配已定义的访问控制列表的数据信息。在进行了流量统计配置之后,用户可以使用命令display qos-interface traffic-statistic显示统计的信息。
请在以太网端口视图或端口组视图下进行下列配置。
操作 |
命令 |
对匹配三层流规则的报文进行流量统计配置 |
traffic-statistic inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] [ tc-index index ] |
取消对匹配三层流规则的报文进行流量统计配置 |
undo traffic-statistic inbound ip-group { acl-number | acl-name } [ rule rule ] |
对匹配二层流规则的报文进行流量统计配置 |
traffic-statistic inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] [ tc-index index ] |
取消对匹配二层流规则的报文进行流量统计配置 |
undo traffic-statistic inbound link-group { acl-number | acl-name } [ rule rule ] |
显示端口流量统计信息 |
display qos-interface [ interface-type interface-number ] traffic-statistic |
& 说明:
在端口组视图下执行traffic-statistic命令统计的是端口组内所有端口的流量统计信息。
system-index index参数是访问控制列表规则的系统索引值。系统下发一条规则后,会自动给该规则分配一个全局唯一的索引值,用于系统运行时对该规则进行检索。用户在使用本命令下发一条规则时,也可以为该规则指定一个系统索引值。一般情况下,建议用户不要手动指定该参数。
& 说明:
系统运行时如果拔出配置了QoS/ACL的单板,对应的系统索引值将自动释放,并用于新下发的流规则。一旦系统索引值被新规则占用,再插回被拔出的单板时原有配置无法再恢复。
关于命令的详细描述请参见本章对应的命令手册。
在完成上述配置后,在任意视图下执行display命令都可以显示配置后QoS的运行情况。用户可以通过查看显示信息验证配置的效果。在以太网端口视图或端口组视图下执行reset traffic-statistic命令可以将有关QoS的统计信息清除。
普通接口板支持的QoS显示和调试命令如下:
操作 |
命令 |
显示端口流镜像的参数设置 |
display qos-interface [ interface-type interface-number ] mirrored-to |
显示端口优先级标记的参数设置 |
display qos-interface [ interface-type interface-number ] traffic-priority |
显示端口重定向的参数设置 |
display qos-interface [ interface-type interface-number ] traffic-redirect |
显示端口流量统计信息 |
display qos-interface [ interface-type interface-number ] traffic-statistic |
显示端口镜像的参数设置 |
display mirroring-group [ groupid ] |
显示指定或者所有端口的QoS设置信息 |
display qos-interface [ interface-type interface-number ] all |
显示端口输出队列丢弃模式配置信息 |
display qos-interface [ interface-type interface-number ] drop-mode |
显示端口流量限制的参数设置 |
display qos-interface [ interface-type interface-number ] traffic-limit |
显示队列调度模式及参数 |
display qos-interface [ interface-type interface-number ] queue-scheduler |
显示端口流量整形的参数设置 |
display qos-interface [ interface-type interface-number ] traffic-shape |
显示流量监管的参数设置 |
display traffic-params [ traffic-index ] |
显示VLAN的所有QoS设置信息 |
display qos-vlan [ vlan-id ] all |
显示VLAN下流量限制的参数设置 |
display qos-vlan [ vlan-id ] traffic-limit |
显示VLAN下优先级标记的参数设置 |
display qos-vlan [ vlan-id ] traffic-priority |
显示VLAN下报文重定向的参数设置 |
display qos-vlan [ vlan-id ] traffic-redirect |
显示VLAN下流量统计的参数设置 |
display qos-vlan [ vlan-id ] traffic-statistic |
显示“DSCP + Conform-level—>服务参数”、“EXP + Conform-level—>服务参数”和“Local-precedence + Conform-level—>802.1p优先级”映射表 |
display qos conform-level [ conform-level-value ] { dscp-policed-service-map [ dscp-list ] | exp-policed-service-map | local-precedence-cos-map } |
显示“CoS—>Drop-precedence”映射表 |
display qos cos-drop-precedence-map |
显示“CoS—>Local-precedence”映射表 |
display qos cos-local-precedence-map |
统计信息清零 |
reset traffic-statistic inbound { { ip-group { acl-number | acl-name } rule rule | link-group { acl-number | acl-name } }* | { ip-group { acl-number | acl-name } | link-group { acl-number | acl-name } rule rule }* | ip-group { acl-number | acl-name } rule rule link-group { acl-number | acl-name } rule rule } |
相关命令显示信息及说明请参见命令手册。
对端口GE7/1/8的输出队列2进行流量整形。最大速率设为650Kbps,突发尺寸设置为12Kbytes。
# 进入端口GE7/1/8视图。
[H3C] interface GigabitEthernet 7/1/8
[H3C-GigabitEthernet7/1/8]
# 对当前端口的输出队列2进行流量整形。最大速率设为650kbps,突发尺寸设置为12kbytes。
[H3C-GigabitEthernet7/1/8] traffic-shape queue 2 650 12
通过一个Server对两个端口的报文进行监控。组网图如下所示。研发部门通过端口GE3/1/1接入,市场部门从端口GE3/1/2接入,Server接在交换机GE3/1/8。
# 定义端口镜像组,对PC之间的通信报文进行监控,监控端口设置为GigabitEthernet3/1/8。
[H3C] mirroring-group 1 inbound gigabitethernet3/1/1 gigabitethernet3/1/2 mirrored-to gigabitethernet3/1/8
[H3C] mirroring-group 2 outbound gigabitethernet3/1/1 gigabitethernet3/1/2 mirrored-to gigabitethernet3/1/8
对于PC1(IP:1.0.0.1)每天8:00~18:00发出的报文,根据用户设定的DSCP值63查找映射表为该PC发出的报文重新分配服务参数。
(1) 定义时间段
# 定义8:00~18:00时间段。
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 定义PC报文的流规则。
# 进入基于数字标识的基本访问控制列表视图,用2000标识。
[H3C] acl number 2000
# 定义PC1报文的流分类规则。
[H3C-acl-basic-2000] rule 0 permit source 1.0.0.1 0 time-range H3C
(3) 定义“CoS—>Conform-Level”映射表
# 定义“CoS—>Conform-Level”映射表,交换机接收到报文后,将根据报文的CoS值为报文选择丢弃级别(此处为方便理解,将接收到的报文的丢弃级别都定义为0)。
[H3C] qos cos-drop-precedence-map 0 0 0 0 0 0 0 0
则配置完毕后的“CoS—>Drop-precedence”映射表如下所示。
表2-20 “CoS—>Drop-precedence”映射表
CoS Value |
Drop-precedence |
0 |
0 |
1 |
0 |
2 |
0 |
3 |
0 |
4 |
0 |
5 |
0 |
6 |
0 |
7 |
0 |
(4) 定义“DSCP+Conform-Level—>服务参数”映射表
# 定义“DSCP+Conform-Level—>服务参数”映射表,指定DSCP值为63。
[H3C] qos conform-level 0
[H3C-conform-level-0] dscp 63 : 32 4 4 4 0
则配置完毕后的“DSCP + Conform-level—>服务参数”映射表如下所示。
表2-21 “DSCP + Conform-level—>服务参数”映射表
DSCP |
CL |
Policed-DSCP |
Policed-exp |
Policed-802.1p |
Policed-Localprec |
Policed-DropPrecedence |
63 |
0 |
32 |
4 |
4 |
4 |
0 |
(5) 为PC1发出的报文重新选择服务参数
# 根据用户配置的DSCP值为PC1发出的报文重新选择服务参数。
[H3C-GigabitEthernet7/1/1] traffic-priority inbound ip-group 2000 remark-policed-service dscp 63
将PC1(IP:1.0.0.1)每天8:00~18:00发出的报文的下一跳都定义为2.0.0.1。
(1) 定义时间段
# 定义8:00~18:00时间段。
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 定义PC报文的流规则
# 进入基于数字标识的基本访问控制列表视图,用2000标识。
[H3C] acl number 2000
# 定义PC1报文的流分类规则。
[H3C-acl-basic-2000] rule 0 permit source 1.0.0.1 0 time-range H3C
(3) 改变PC1发出的报文的下一跳
# 将PC1发出的报文下一跳都定义为2.0.0.1。
[H3C-GigabitEthernet7/1/1] traffic-redirect inbound ip-group 2000 rule 0 next-hop 2.0.0.1
改变交换机上802.1p优先级和本地优先级的对应关系,从而改变802.1p优先级和队列的映射关系,使得交换机在将报文入输出队列的时候按照新的映射关系入队列。在端口GE7/1/1上设置队列0~5的调度模式为加权轮循调度,队列0、1、2加入WRR优先级队列组1,权重分别为20、20、30,队列3、4、5加入WRR优先级队列组2,权重分别为20、20、40,队列6、7采用缺省的严格优先级调度。(缺省映射关系请参见“队列调度”章节的描述)
802.1p优先级 |
本地优先级 |
0 |
7 |
1 |
6 |
2 |
5 |
3 |
4 |
4 |
3 |
5 |
2 |
6 |
1 |
7 |
0 |
# 改变交换机上802.1p优先级和本地优先级的对应关系为用户指定的对应关系。
[H3C] qos cos-local-precedence-map 7 6 5 4 3 2 1 0
# 设置队列0~5的调度模式为加权轮循调度,队列0、1、2加入WRR优先级队列1,权重分别为20、20、30,队列3、4、5加入WRR优先级队列2,权重分别为20、20、40,队列6、7采用缺省的严格优先级调度,可以使用display命令查看配置信息。
[H3C-GigabitEthernet7/1/1] queue-scheduler wrr group1 0 20 1 20 2 30 group2 3 20 4 20 5 40
[H3C] display qos-interface GigabitEthernet7/1/1 queue-scheduler
GigabitEthernet7/1/1 Port scheduling:
QID: scheduling-group weight
-----------------------------------
0 : wrr , group1 20
1 : wrr , group1 20
2 : wrr , group1 30
3 : wrr , group2 20
4 : wrr , group2 20
5 : wrr , group2 40
6 : sp 0
7 : sp 0
对端口GE7/1/1发送的报文进行拥塞避免配置,参数设置如下:配置WRED索引为0的WRED参数,端口输出队列号取值7、绿色报文的开始随机丢弃的队列长度取值150、绿色报文的完全丢弃的队列长度取值500、绿色报文的最大丢弃概率取值5、黄色报文的开始随机丢弃的队列长度取值100、黄色报文的完全丢弃的队列长度取值150、黄色报文的最大丢弃概率取值10、红色报文的开始随机丢弃的队列长度取值50、红色报文的完全丢弃的队列长度取值100、红报文的最大丢弃概率取值15,进行队列平均长度计算时的权重取值为10;设置端口GigabitEthernet7/1/1的丢弃模式为WRED丢弃模式,阀值参数的设置取WRED索引为0时的设置。
(1) 定义WRED参数
# 定义WRED 0的参数。
[H3C] wred 0
[H3C-wred-0] queue 7 150 500 5 100 150 10 50 100 15 10
(2) 设置端口的丢弃模式和阀值参数。
# 定义端口GE7/1/1的丢弃模式为WRED丢弃模式,阀值参数的设置取WRED索引为0时的设置。
[H3C-GigabitEthernet7/1/1] drop-mode wred 0
组网图如下所示。假定一台PC的IP地址为1.0.0.1,另一台PC的IP地址为2.0.0.1,交换机的上行端口为GE7/1/8。要求在每天8:00~18:00时间段内,交换机对PC1发出的报文进行统计。
(1) 定义时间段
# 定义8:00~18:00时间段。
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 定义PC1报文的流规则。
# 定义PC1报文的流分类规则。
[H3C] acl number 2000
[H3C-acl-basic-2000] rule 0 permit source 1.0.0.1 0.0.0.0 time-range H3C
(3) 对PC1的报文进行统计,通过display命令可以查看统计结果
[H3C-GigabitEthernet7/1/1] traffic-statistic inbound ip-group 2000 rule 0
[H3C] display qos-interface GigabitEthernet7/1/1 traffic-statistic
GigabitEthernet7/1/1: traffic-statistic
Inbound:
Matches: Acl 2000 rule 0 running
12002688 bytes (green 1270244416 byte(s), yellow 1895874880 byte(s), red 704683968 byte(s) )
3333270 packets (green 0 byte(s), yellow 0 byte(s), red 0 byte(s) )
目前,S9500系列路由交换机提供了以下三种用户远程访问设备的方式:
l 通过Telnet访问
l 通过SSH(Security Shell,安全外壳)访问
l 通过SNMP(Simple Network Management Protocol,简单网络管理协议)访问
S9500系列路由交换机提供了安全控制特性,对这三种访问方式进行安全控制,防止非法用户登录、访问交换机。安全控制分为两级:
l 第一级:通过控制用户的连接实现。通过配置ACL(Access Control List,访问控制列表)对登录用户进行过滤,只有合法用户才能和交换机建立连接;
l 第二级:通过用户口令认证实现。连接到交换机的用户必须通过口令认证才能真正登录到交换机。
本节将介绍如何配置第一级安全控制,即怎样配置对登录交换机用户进行ACL控制。第二级安全的配置请参见本手册的入门部分。
通过配置对Telnet或SSH用户的ACL控制,可以在登录用户进行口令认证之前将一些恶意或者不合法的连接请求过滤掉,保证设备的安全。
用户对Telnet或SSH方式登录交换机进行了正确配置。
表3-1 对Telnet或SSH用户的ACL控制配置过程
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
定义访问控制列表,并进入访问控制列表视图 |
acl number acl-number [ match-order { config | auto } ] |
必选,此处只能定义基于数字标识的访问控制列表 |
|
定义子规则 |
基本访问控制列表视图下 |
rule [ rule-id ] { permit | deny } [ source { source-addr wildcard | any } | fragment | time-range name | vpn-instance instance-name ]* |
Telnet和SSH用户引用基本访问控制列表和高级访问控制列表时,子规则中的参数只有源IP及其掩码、目的IP及其掩码、time-range参数有效 |
高级访问控制列表视图下 |
rule [ rule-id ] { permit | deny } protocol [ source { source-addr wildcard | any } ] [ destination { dest-addr wildcard | any } ] [ source-port operator port1 [ port2 ] ] [ destination-port operator port1 [ port2 ] ] [ icmp-type type code ] [ established ] [ [ precedence precedence | tos tos ]* | dscp dscp ] [ fragment ] [ bt-flag ] [ time-range name ] [ vpn-instance instance-name ] |
||
二层访问控制列表视图下 |
rule [ rule-id ] { permit | deny } [ cos cos-value | c-tag-cos c-cos-value | exp exp-value | protocol-type | ingress { { source-vlan-id [ to source-vlan-id-end ] | source-mac-addr source-mac-wildcard | c-tag-vlan c-tag-vlanid }* | any } | egress { dest-mac-addr dest-mac-wildcard | any } | s-tag-vlan s-tag-vlanid | time-range name ]* |
Telnet和SSH用户引用二层访问控制列表时,子规则中的参数只有源MAC及其掩码、time-range参数有效 |
|
退出访问控制列表视图 |
quit |
- |
|
进入用户界面视图 |
user-interface [ type ] first-number |
- |
|
引用访问控制列表,对Telnet或SSH用户的呼入(inbound)/呼出(outbound)进行限制 |
引用基本或高级访问控制列表 |
acl acl-number1 { inbound | outbound } |
acl-number1为基本或高级访问控制列表号,取值范围是2000~3999 |
引用二层访问控制列表 |
acl acl-number2 inbound |
acl-number2为二层访问控制列表号,取值范围是4000~4999 |
缺省情况下,不对用户界面的呼入(inbound)/ 呼出(outbound)进行限制。
& 说明:
l Telnet或SSH用户的ACL控制功能只能引用基于数字标识的访问控制列表。
l Telnet或SSH用户引用基本访问控制列表或高级访问控制列表时,基于源IP或目的IP地址对呼入/呼出进行限制。因此引用基本访问控制列表和高级访问控制列表子规则时,只有源IP及其掩码、目的IP及其掩码、time-range参数有效。类似的,Telnet和SSH用户引用二层访问控制列表时,基于源MAC地址对呼入/呼出进行限制。因此引用二层访问控制列表子规则时,只有源MAC及其掩码、time-range参数有效。
l 基于二层访问控制列表对Telnet、SSH用户进行控制时,只能限制呼入。
l 对由于受ACL限制而被拒绝登录的用户,会记录一次访问失败日志信息。日志内容包括该用户的IP地址、登录方式、登入用户界面索引值和登录失败原因。
仅允许源MAC地址为00e0-fc01-0101和00e0-fc01-0303的Telnet用户访问交换机。
图3-1 对访问Switch的Telnet用户进行源MAC控制
# 定义二层访问控制列表。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 4000 match-order config
# 定义子规则。
[H3C-acl-link-4000] rule 1 permit ingress 00e0-fc01-0101 0000-0000-0000 [H3C-acl-link-4000] rule 2 permit ingress 00e0-fc01-0303 0000-0000-0000
[H3C-acl-link-4000] rule 3 deny ingress any
[H3C-acl-link-4000] quit
# 进入用户界面视图。
[H3C] user-interface vty 0 4
# 引用二层访问控制列表,对用户界面的呼入进行限制。
[H3C-user-interface-vty0-4] acl 4000 inbound
仅允许来自10.110.100.52和10.110.100.46的Telnet用户访问交换机。
# 定义基本访问控制列表。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 2000 match-order config
# 定义子规则。
[H3C-acl-basic-2000] rule 1 permit source 10.110.100.52 0
[H3C-acl-basic-2000] rule 2 permit source 10.110.100.46 0
[H3C-acl-basic-2000] rule 3 deny source any
[H3C-acl-basic-2000] quit
# 进入用户界面视图。
[H3C] user-interface vty 0 4
# 引用访问控制列表。
[H3C-user-interface-vty0-4] acl 2000 inbound
H3C S9500系列路由交换机支持通过网管软件进行远程管理。网管用户可以通过SNMP访问交换机,对这些用户的ACL控制功能可以过滤掉不合法的网管用户,使其不能登录本交换机。
用户对SNMP方式登录交换机进行了正确配置。
表3-2 对SNMP用户的ACL控制配置过程
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
定义访问控制列表,并进入访问控制列表视图 |
acl number acl-number [ match-order { config | auto } ] |
必选,此处只能定义基于数字标识的基本访问控制列表,acl-number取值范围2000~2999。 |
|
定义基本访问控制列表子规则 |
rule [ rule-id ] { permit | deny } [ source { source-addr wildcard | any } | fragment | time-range name | vpn-instance instance-name ]* |
必选 |
|
退出访问控制列表视图 |
quit |
- |
|
引用访问控制列表,对通过SNMP访问交换机的用户进行控制 |
在配置SNMP团体名的命令中引用访问控制列表 |
snmp-agent community { read | write } community-name [ mib-view view-name ] [ acl acl-number ] |
SNMP团体名属性是SNMP V1、SNMP V2版本的一个特性,所以在配置SNMP团体名的命令中引用访问控制列表对使用SNMP V1、SNMP V2的网管系统起到过滤作用。 |
在配置SNMP组名的命令中引用访问控制列表 |
snmp-agent group { v1 | v2c } group-name [ read-view read-view ] [ write-view write-view ] [ notify-view notify-view ] [ acl acl-number ] snmp-agent group v3 group-name [ authentication | privacy ] [ read-view read-view ] [ write-view write-view ] [ notify-view notify-view ] [ acl acl-number ] |
SNMP组名、用户名属性是SNMP V2及以上版本的一个特性,所以在配置SNMP组名、用户名的命令中引用访问控制列表对使用SNMP V2及以上版本的网管系统起到过滤作用。如果同时在这两个命令中配置了ACL控制功能,则交换机会对网管用户的这两个属性都进行过滤。 |
|
在配置SNMP用户名的命令中引用访问控制列表 |
snmp-agent usm-user { v1 | v2c } user-name group-name [ acl acl-number ] snmp-agent usm-user v3 user-name group-name [ authentication-mode { md5 | sha } auth-password ] [ privacy-mode des56 priv-password ] [ acl acl-number ] |
& 说明:
l snmp-agent community、snmp-agent group、snmp-agent usm-use三个命令中引用的访问控制列表可以是不同的访问控制列表。
l 网管用户的ACL控制功能只能引用基于数字标识的基本访问控制列表。
关于命令的详细描述请参见命令手册。
仅允许来自10.110.100.52和10.110.100.46的SNMP用户访问交换机。
# 定义基本访问控制列表和子规则。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 2000 match-order config
[H3C-acl-baisc-2000] rule 1 permit source 10.110.100.52 0
[H3C-acl-baisc-2000] rule 2 permit source 10.110.100.46 0
[H3C-acl-basic-2000] rule 3 deny source any
[H3C-acl-baisc-2000] quit
# 引用访问控制列表。
[H3C] snmp-agent community read H3C acl 2000
[H3C] snmp-agent group v3 H3Cgroup acl 2000
[H3C] snmp-agent usm-user v3 H3Cuser H3Cgroup acl 2000
VLAN-ACL即基于VLAN的ACL。用户通过对VLAN配置QACL动作,从而实现对VLAN内所有端口的访问控制。
VLAN-ACL使用户能够更加方便地管理网络。用户只需在VLAN下配置QACL,相应的QACL动作就能同步到所有成员端口,而无需在每个成员端口上单独配置。
在VLAN下配置QACL,VLAN必须满足以下要求:
l VLAN内已经有成员端口
l VLAN内的端口不能为POS口
l VLAN内没有MPLS混插端口
l VLAN内的端口采用系统默认流模板
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建ACL并进入对应视图 |
acl { number acl-number | name acl-name [ advanced | basic ] } [ match-order { config | auto } ] |
VLAN-ACL只能采用基本或高级访问控制列表及其子规则 |
定义子规则 |
rule |
必选 |
退出访问控制列表视图 |
quit |
- |
进入VLAN视图 |
vlan vlan-id |
含有POS口或混插端口的VLAN不允许下发VLAN-ACL |
配置包过滤(激活访问控制列表) |
packet-filter inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] |
可选 |
配置流量监管 |
traffic-limit inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] [ tc-index index ] cir cbs ebs [ pir ] [ conform { { remark-cos | remark-drop-priority }* | remark-policed-service } ] [ exceed { forward | drop } ] |
可选 |
标记报文优先级 |
traffic-priority inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { auto | remark-policed-service { trust-dscp | dscp dscp-value | untrusted dscp dscp-value cos cos-value local-precedence local-precedence drop-priority drop-level } } |
可选 |
配置报文重定向 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] { cpu | next-hop ip-addr1 [ ip-addr2 ] } |
可选 VLAN视图下的traffic-redirect命令只支持重定向到下一跳和CPU,不支持重定向到接口和业务处理板,不支持nested-vlan和modified-vlan |
配置流镜像 |
mirrored-to inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] cpu |
可选 |
配置流量统计 |
traffic-statistic inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] |
可选 |
退出VLAN视图 |
quit |
- |
进入以太网端口视图 |
interface interface-type interface-number |
端口类型只能为以太网端口 |
将VLAN的QACL配置手工同步到指定端口 |
port can-access vlan-acl vlan vlan-id |
可选 |
查看VLAN中哪些端口已经同步有该VLAN的ACL配置 |
display vlan-acl-member-ports vlan vlan-id |
display命令可以在任意视图执行 |
VLAN-ACL配置有以下限制:
(1) 流模板的限制
l VLAN-ACL只在采用默认流模板的端口下发,所下发的ACL规则字段只能是默认流模板规定的字段;
l 若VLAN内尚无端口下发ACL规则,当在VLAN视图下下发第一个规则时会检查VLAN内所有端口,只要有一个端口使用自定义流模板,则不允许下发;
l 若VLAN内已有部分端口下发VLAN-ACL,此时加入一个使用自定义流模板的端口,结果为:端口能加入VLAN,但不能下发VLAN-ACL;此时,再在VLAN视图下下发VLAN-ACL,原有的端口能够成功下发,但新加入的端口无法下发。当此端口删除自定义流模板时,系统会自动下发VLAN内的QACL规则到该端口;
l 当端口已下发有VLAN-ACL时,如果想在端口下发自定义流模板,系统会提示端口已下发有VLAN-ACL,不允许下发自定义流模板。
(2) 当端口所在的VLAN和端口都下发有QACL规则时,只有端口下的QACL起作用;VLAN-ACL只有在删除端口下的QACL规则、并且删除端口下的自定义流模板之后才起作用。
(3) 当VLAN内没有成员端口时,不允许下发VLAN-ACL(包括增加和删除规则)。
(4) 如果两个端口的VLAN-ACL同步情况不一致,则这两个端口无法动态聚合
(5) VLAN-ACL不能在与POS口绑定的VLAN下发,即VLAN-ACL不会下发到POS口。
(6) 混插端口所在的VLAN不允许下发VLAN-ACL;反之,下发有VLAN-ACL的VLAN不能再用于MPLS混插。
注意:
VLAN-ACL在XP4单板端口下实际不生效。
将端口GigabitEthernet7/1/1和GigabitEthernet7/1/2每天8:00~18:00转发的报文下一跳地址都定义为3.0.0.1。
(1) 定义时间段
# 定义8:00~18:00时间段。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] time-range H3C 8:00 to 18:00 daily
(2) 定义PC报文的流规则
# 进入基于数字标识的基本访问控制列表视图,用2000标识。
[H3C] acl number 2000
# 定义报文的流分类规则,允许指定时间段内的报文通过。
[H3C-acl-basic-2000] rule 0 permit source any time-range H3C
[H3C-acl-basic-2000] quit
(3) 对VLAN 2配置报文重定向
# 将VLAN 2内的端口转发的报文下一跳都定义为3.0.0.1。
[H3C] vlan 2
[H3C-vlan2] traffic-redirect inbound ip-group 2000 rule 0 next-hop 3.0.0.1
(4) 查看配置结果
# 查看VLAN 2内的端口(GigabitEthernet7/1/1和GigabitEthernet7/1/2)是否已同步了VLAN-ACL。
[H3C-vlan2] display vlan-acl-member-ports vlan 2
Vlan-acl member port(s):
GigabitEthernet7/1/1 GigabitEthernet7/1/2
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!