QoS 基本原理与配置
QoS(Quality of Service,服务品质保证)是指一个网络能够利用各种各样的技术向选定 的网络通信提供更好的服务的能力。QoS是服务品质保证,提供稳定、可预测的数据传送服 务,来满足使用程序的要求,QoS不能产生新的带宽,而是根据应用的需求以及网络管理的 设置来有效的管理网络带宽。QoS并不能产生新的带宽,但是它可以将现有的带宽资源做一个最佳的调整和 配置,完整的应用QoS,可以对网络的数据传输做到完全的控管。
IP 协议的数据传送规范,只针对发送端和接收端的地址和服务等作出规定,并且利用 OSI 四层以上的,如TCP协议等来确认数据包的传送正确无误,但是,IP协议没有提供和保 护传输数据包的带宽,而是以尽力而为(Best Effort)的方式来提供带宽服务。
QoS 的基本模型分为四个部分:Classification(分类)、Policing(监管)、Mark(重写) 和Scheduling(排程),其中分类、监管和重写是顺序执行的 QoS 的入口行为,整形和排程 是QoS的出口行为。
- 分类:通过检查数据包的分类信息,来区别不同的流量,并且根据数据包的分类信息生成内 部优先级和丢弃优先级。
- 监管和重写:在入口的流量经过分类,并且每个数据包都被分配了一个内部优先 级和丢弃优先级值以后,就可以进行监管和重写。
- 整形和排程:出口的数据包会都具有内部优先级值和丢弃优先级。整形行为根据数据包的 内部优先级值将其分配到不同的优先级队列中,而排程行为根据配置的优先级队列权重和 丢弃优先级来进行数据包转发服务。
QoS 配置举例:
案例1:
启动QoS功能,将端口ethernet 1/0/1 出口队列的权重改为1:1:2:2:4:4:8:8,配置成信任cos 模式,但是不改变报文里的DSCP值,并且将此端口的默认cos值设为5。
Switch#config
Switch(config)#interface ethernet 1/0/1
Switch(Config-If-Ethernet1/0/1)# mls qos queue wrr weight 1 1 2 2 4 4 8 8
Switch(Config-If-Ethernet1/0/1)#mls qos cos 5
配置结果:
全局启动了 QoS 功能,端口 ethernet 1/0/1 出口带宽的比例依次为 1:1:2:2:4:4:8:8。当从 ethernet 1/0/1 进来的报文带 cos 值时,根据cos值到出口队列的映射关系,cos值0-7分别 对应出口队列 1,2,3,4,5,6,7,8,放到不同的优先队列,如果进来的报文不带 cos 值,则将其cos值设为5,根据对应关系,放入优先级队列6。所有经过的报文不改变其携 带的DSCP值。
案例2:
在端口ethernet1/0/2 上,将属于网段192.168.1.0 内的报文带宽限制为10M比特/秒,突发值 设为4M字节,超过带宽的该网段内的报文一律丢弃。
Switch#config
Switch(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Switch(config)#class-map c1
Switch(Config-ClassMap-c1)#match access-group 1
Switch(Config-ClassMap)# exit
Switch(config)#policy-map p1
Switch(Config-PolicyMap-p1)#class c1
Switch(Config-PolicyMap-p1-Class-c1)#policy 10000 4000 exceed-action drop
Switch(Config-PolicyMap-p1-Class-c1)#exit
Switch(Config-PolicyMap-p1)#exit
Switch(config)#interface ethernet 1/0/2
Switch(Config-If-Ethernet1/0/2)#service-policy input p1
配置结果:
先设置一个ACL:1,匹配网段192.168.1.0。全局启动QoS功能,创建一个class-map:c1, 在class-map 中匹配ACL1,再创建一个policy-map:p1,在 P1中引用c1,设置对应的policy 来限制带宽和峰值。然后在端口ethernet 1/0/2 应用此policy-map。设置后,网段192.168.1.0 内的报文带宽在端口ethernet 1/0/2上被限制为10M比特/秒,突发值为4M字节,超过带宽 的该网段内的报文一律丢弃。
案例3:
如图,虚线框内组成一个QoS域,SW1将不同的流量分类,分配不同的IP优先级,如在端 口ethernet 1/0/1 上将属于网段192.168.1.0 内的报文的IP优先级设为5,与 SW2 相连的端口 为trunk 口。在SW2 上,将与SW1相连的端口ethernet 1/0/1,设置信任cos。这样在QoS 域的内部,不同优先级的报文就走不同的队列,分配不同的带宽。
交换机1上的QoS配置:
Switch#config
Switch(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Switch(config)#class-map c1
Switch(Config-ClassMap-c1)#match access-group 1
Switch(Config-ClassMap-c1)# exit
Switch(config)#policy-map p1
Switch(Config-PolicyMap-p1)#class c1
Switch(Config-PolicyMap-p1-Class-c1)#set ip precedence 5
Switch(Config-PolicyMap-p1-Class-c1)#exit
Switch(Config-PolicyMap-p1)#exit
Switch(config)#interface ethernet 1/0/1
Switch(Config-If-Ethernet1/0/1)#service-policy input p1
交换机2上的QoS配置:
Switch#config
Switch(config)#interface ethernet 1/0/1
注意:
如果配置了动态vlan(mac vlan/voice vlan/ip subnet vlan/protocol vlan),报文的 COS 值等于动态vlan的COS值。
目前策略表只支持绑定到入口,对出口不支持。
目前建议不要在vlan和属于该vlan的端口上同时使用policy map。