更新时间:2023-12-08
1.QoS配置命令
1.1 QoS配置命令
QoS配置命令有:
- cos default
- cos map
- cos bandwidth
- dscp map
- scheduler weight bandwidth
- scheduler policy
- scheduler wred
- scheduler sred
- policy-map
- classify
- action
- qos policy
- show policy-map
1.1.1 cos default
命令描述
cos default cos
no cos default
配置缺省CoS值。
参数
参数
|
参数说明
|
cos
|
缺省coS值,范围0-7。
|
缺省
缺省CoS为0。
说明
工作于二层端口配置模式。
示例
将g3/1端口收到的无标签帧的CoS值设为4。
Switch_config#inter g3/1
Switch_config_g3/1# cos default 4
1.1.2 cos map
命令描述
cos map quid cos1..cosn
no cos map
设置CoS优先级队列。
参数
参数
|
参数说明
|
quid
|
CoS优先级队列的ID,1-8。
|
cos1..cosn
|
IEEE802.1p定义的CoS值,0-7。
|
缺省
CoS 值
|
S优先级队列
|
0
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
7
|
7
|
8
|
说明
工作于二层端口配置模式和全局配置模式。
在全局配置模式下使用该命令,将影响所有端口CoS优先级队列;而在二层端口下面配置该命令,将只影响该端口的CoS优先级队列。
示例
将CoS 0-2映射到CoS优先级队列1,将CoS 3映射到优先级队列2。
Switch_config # cos map 1 0 1 2
Switch_config # cos map 2 3
1.1.3 cos bandwidth
命令描述
cos bandwidth quid min-bandwidth max-bandwidth
no cos bandwidth quid
设置端口COS队列的最大最小带宽。
参数
参数
|
参数说明
|
quid
|
CoS优先级队列的ID,1-8。
|
min-bandwidth
|
最小带宽,0-16384,单位64Kbps-
|
max-bandwidth
|
最大带宽,min-bandwidth-16384,单位64Kbps。
|
缺省
每个队列最小带宽为0,最大带宽为物理端口最大速率。
说明
工作于2层端口配置模式。调度策略在最小和最大带宽之间有效。低于最小带宽的流全部通过;高于最大带宽的流全部丢弃。
示例
在g1/20口队列1配置最小带宽100,最大带宽1000。
Switch_config#int g1/20
Switch_config_g1/20#cos bandwidth 1 100 1000
1.1.4 dscp map
命令描述
dscp map word {dscp dscp-value | cos cos-value}
no dscp map
依据dscp设置CoS优先级队列。
参数
参数
|
参数说明
|
word
|
Dscp范围表,如(1,3,5,7),(1,3-5,7),(1-7)表示的DSCP范围表(0-63)。
|
dscp dscp-value
|
Dscp映射的dscp值,0-63.
|
cos cos-value
|
Dscp映射的优先级cos,0-7。
|
缺省
无
说明
工作于全局配置模式。
示例
将dscp 0-2映射到CoS优先级队列1,映射的dscp值5。
Switch_config#dscp map 0-2 cos 1 dscp 5
1.1.5 scheduler weight bandwidth
命令描述
scheduler weight bandwidth weight1...weightn
no scheduler weight bandwidth
设置CoS优先级队列带宽。
参数
参数
|
参数说明
|
weight1…weight8
|
WRR八个CoS优先级队列权值,1-15。
|
缺省
每个CoS优先级队列权值相同,八个CoS优先级队列权值都为15。
说明
工作于全局配置模式。
使用该命令,将影响所有端口优先级队列带宽。只有在配置了队列调度模式为wrr或wfq时该命令才有效,它确定使用wrr或wfq调度策略时CoS优先级队列带宽权值。
示例
配置wfq调度策略的八个CoS优先级队列权值为1,2,3,4,5,6,7,8。
Switch_config#scheduler policy wfq
Switch_config#scheduler weight bandwidth 1 2 3 4 5 6 7 8
1.1.6 scheduler policy
命令描述
scheduler policy { sp | wrr | wfq | fcfs }
no scheduler policy
设置CoS优先级队列调度策略。
参数
参数
|
参数说明
|
sp
|
使用sp调度策略。
|
wrr
|
使用wrr调度策略。
|
wfq
|
使用wfq调度策略。
|
fcfs
|
使用fcfs调度策略。
|
缺省
使用SP。
说明
全局配置模式。
在全局下配置该命令时,所有端口生效。
示例
配置全局队列调度模式为wrr。
Switch_config # scheduler policy wrr
1.1.7 scheduler wred
命令描述
scheduler wred [queue quid {drop-level drop-level | low-limit limit-percent | slope slope}]
no scheduler wred [queue quid]
设置加权随机早期检测。
参数
参数
|
参数说明
|
queue quid
|
配置队列,1-8.
|
drop-level drop-level
|
配置丢弃级别,0-2。绿色(0),黄色(1),红色(2),默认所有类型。
|
low-limit limit-percent
|
配置丢弃起始百分比,0-100.
|
slope slope
|
配置斜率,0-90。
|
缺省
无
说明
全局配置模式。
除非用户明确知道改变参数有何作用,不建议用户修改这些参数,因为默认参数是根据最合适的数据设置的。
示例
配置加权随机早期检测。
Switch_config # scheduler wred
1.1.8 scheduler sred
命令描述
scheduler sred [queue quid {drop-level drop-level | low-limit limit-percent | droprate drop-rate}]
no scheduler sred [queue quid]
设置简单早期随机检测。
参数
参数
|
参数说明
|
queue quid
|
配置队列,1-8.
|
drop-level drop-level
|
配置丢弃级别,0-1。绿色(0),黄色和红色(1),默认所有类型。
|
low-limit limit-percent
|
配置丢弃起始百分比,0-100.默认为10%。
|
droprate drop-rate
|
配置丢弃率,0-7。默认为7。
|
缺省
无
说明
全局配置模式。
除非用户明确知道改变参数有何作用,不建议用户修改这些参数,因为默认参数是根据最合适的数据设置的。
示例
配置简单早期随机检测。
Switch_config#scheduler sred
1.1.9 policy-map
命令描述
policy-map name
no policy-map name
设置QOS策略表。
参数
参数
|
参数说明
|
name
|
QoS策略映射名称,范围1至20个字符。
|
缺省
无
说明
全局配置模式
输入该命令后,系统进入QoS策略映射配置模式。在该模式下面,主要有下面几个命令:
- classify:用于设定QoS流。
- description:用于描述该QoS策略映射。
- exit:退出QoS策略映射配置模式。
- no:取消先前输入的命令。
- action:用于定义QoS动作。
示例
配置QoS策略表。
Switch_config # policy-map myqos
1.1.10 classify
命令描述
classify {seq seq-num | any | cos cos | icos icos | vlan vlanid | ivlan ivlanid | ethernet-type ethernet-type | precedence precedence-value | dscp dscp-value | tos tos-value | diffserv diffserv-value | ip ip-access-list | ipv6 ipv6-access-list | mac mac-access-list }
no classify {seq seq-num | cos | icos | vlan | ivlan | ethernet-type | precedence | dscp | tos | diffserv | ip | ipv6 | mac }
配置QoS策略表的匹配数据流。
参数
|
参数说明
|
seq seq-num
|
指定条目序号,默认1。
|
any
|
匹配任何数据包。
|
cos cos
|
配置匹配的COS值,0-7。
|
icos icos
|
配置匹配的内层COS值,0-7。
|
vlan vlanid
|
配置匹配的VLAN,1-4094。
|
ivlan ivlanid
|
配置匹配的内层VLAN,1-4094。
|
ethernet-type ethernet-type
|
配置匹配的报文类型,0x0600-0xFFFF
|
precedence precedence-value
|
ip报文中tos中优先级字段(tos的5-7位),0-7.
|
dscp dscp-value
|
ip报文中的tos中dscp字段(tos的2-7位),0~63。
|
tos tos-value
|
ip报文中的tos中代表延迟、吞吐量、可靠性和花费字段(tos的1-4位),0~15。
|
diffserv diffserv-value
|
Ip报文中整个tos字段8位,0-255.
|
ip ip-access-list
|
配置匹配的ip访问列表名称,1-20个字符。
|
ipv6 ipv6-access-list
|
配置匹配的ipv6访问列表名称,1-20个字符。
|
mac mac-access-list
|
配置匹配的MAC访问列表名称,1-20个字符。
|
缺省
匹配任何数据包(match any)。
说明
QoS策略表配置模式。
一个QoS策略表内的所有的数据流必须具有相同的mask值,ip access-list中的端口号必须是确定的,而不可以是一个范围。
用于匹配数据流的IP访问列表和MAC访问列表中permit规则有效,即permit规则被用来匹配数据流,deny规则不被用于配置数据流。
当开启了qinq模式后,即配置了dot1q-tunnel命令后,匹配源报文的vlan或cos值时,需要使用ivlan和icos配置。
示例
Switch-policy-map#classify vlan 4
1.1.11 action
命令描述
action{seq seq-num | bandwidth max-band | {cir commit-band {bc commit-burst-size {ebs excess-burst-size | eir excess-band ebs excess-burst-size} } | [conform {forward | dscp dscp-value} | exceed {forward | drop | dscp dscp-value | discardable {green | yellow | red}} | violate {forward | drop | dscp dscp-value | discardable {green | yellow | red}}]} | cos cos | drop | dscp dscp-value | precedence precedence-value | forward | icos icos | ivlan {add ivlanid | del ivlanid | ivlanid} | cpicos | mac mac-addr | monitor session-value | queue queue-value | redirect interface-id | stat-packet | stat-byte | vlanID { add vlanid | vlanid }|copy-to-cpu
no action {seq seq-num | bandwidth | cir | cos | drop | dscp | precedence | forward | icos | ivlan | cpicos | mac | monitor | queue | redirect | stat-packet | stat-byte | vlanID}
配置QoS策略表的匹配数据流策略。
参数
参数
|
参数说明
|
seq seq-num
|
指定条目序号,单个默认1。
|
bandwidth max-band
|
配置数据流所允许占用的最大带宽,1-163840单位64Kbps。
|
cir commit-band {bc commit-burst-size {ebs peak-burst-size | eir pir-band } } | [conform {forward | dscp dscp-value} | exceed {forward | drop | dscp dscp-value | discardable {green | yellow | red}} | violate {forward | drop | dscp dscp-value| discardable {green | yellow | red}}]
|
配置policing,
cir commit-band 保证带宽1-163840单位64Kbps;
bc commit-burst-size突发数据包大小 0-4096单位Kb;
ebs excess-burst-size峰值突发大小 4-4096单位Kb;
eir eir-band 峰值带宽1-163840单位64Kbps;
conform {forward | dscp dscp-value} 保证带宽动作,forward 不执行任何动作,dscp修改dscp值,0-63;
exceed {forward | drop | dscp dscp-value}带宽大于cir小于pir的动作,forward不执行任何动作,drop丢弃,dscp修改dscp值,0-63;
violate {forward | drop | dscp dscp-value}带宽大于pir的动作,forward不执行任何动作,drop丢弃,dscp修改dscp值,0-63;
|
cos cos
|
设置匹配流的cos字段为cos-value 0~7。
|
drop
|
丢弃匹配的报文
|
dscp dscp-value
|
设置匹配流的dscp字段为dscp-value ,0~63。
|
precedence precedence-value
|
设置匹配流ip报文中tos的优先级字段(tos的5~7位)。0-7.
|
forward
|
不对匹配报文进行任何操作。
|
icos icos
|
设置匹配流的内层cos字段为cos-value 0~7。
|
ivlan {add ivlanid | del ivlanid | ivlanid}
|
设置替换、添加或删除内层vlanid,1-4094.
|
cpicos
|
设置将外层cos替换成内层cos值。
|
mac mac-addr
|
设置目的mac地址。
|
monitor session-value
|
设置镜像,1-4。
|
queue queue-value
|
设置映射队列,1-8.
|
redirect interface-id
|
重新定向匹配流的出口。
|
stat-packet
|
统计数据包数。
|
stat-byte
|
统计字节数。
|
vlanID { add vlanid | vlanid }
|
设置替换或添加外层vlanid,1-4094。
|
缺省
无
说明
QoS策略表配置模式。
一个QoS策略映射只能配置一种策略,bandwidth和stat动作只能够对match的报文起作用,以上的动作可以同时起作用,动作为空表示转发,即允许该数据流通过。
开启dot1q功能后,下联口上操作vlan和cos时需配置ivlan和icos才有效。
Monitor动作应用到出端口时,需独立配置一个policymap,否则结果异常。
cir、precedence、cpicos、queue、vlan add 、ivlan add/del不支持应用出方向。
qos的action动作中的vlanID操作如果配置在ingress即入端口,可以实现对进入交换机的已带tag的报文进行添加和替换特定tag头的操作,这步的操作是按照报文未有添加默认的tag头的情况进行处理的,如果配置在egress端口即出口,则只能实现添加tag的操作,对于这步的操作是基于芯片给报文添加了默认的tag头而进行的,所以无法再实现替换的动作。同理,inner的操作是针对内层标签的操作,配置在入口和出口同样有区别,由于入口时芯片是按没有添加默认tag的情况进行处理,所以不存在所谓inner的情况,所以目前inner操作只能配置在egress端,而配置在egress端时,由于报文此时已作为添加了默认tag的情况来处理,所以目前inner add的命令依旧无效,只能实现对于内层标签进行替换的功能。
当然所有的操作都是基于芯片自身的特性完成的,所以不同的芯片有不同的操作流程和表现,具体的功能实现建议参考相关的配置范例。
示例
Switch-policy-map#action redirect g3/1
1.1.12 qos policy
命令描述
全局:
qos policy name slot slot-id { ingress|egress}
no qos policy name slot slot-id
端口:
qos policy name {ingress | egress}
no qos policy name
配置全局或端口的QoS策略。
参数
参数
|
参数说明
|
name
|
QoS策略映射名称。
|
slot-id
|
配置线卡上应用的策略。
|
ingress
|
对入口起作用。
|
egress
|
对出口起作用。
|
缺省
无
说明
二层端口配置模式或全局配置模式。
示例
在g3/1端口上应用名为pmap的QoS策略。
Switch_config#inter g3/1
Switch_config_g3/1# qos policy pmap ingress
在全局配置模式下应用名为pmap的QoS策略到线卡2上。
Switch_config#qos policy pmap slot 2 ingress
1.1.13 show policy-map
命令描述
show policy-map {policy-map-name | interface [interface-id] | slot slot-id}
显示所有或者指定的QoS策略映射表。
参数
参数
|
参数说明
|
policy-map-name
|
策略映射表名称。
|
interface [interface-id]
|
端口应用的策略。
|
slot slot-id
|
线卡上应用的策略。
|
缺省
无
说明
管理模式
示例
显示所有的QoS策略映射表。
Switch_config#show policy-map test
policy-map test
classify vlan 4
action redirect g3/1
Switch_config#
显示线卡1上应用的策略。
Switch_config#show policy-map slot 1
Policy on slot 1:
pmap Ingress
Classify:
any
Action:
drop
Switch_config#