更新时间: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#