赞
踩
QoS(Quality of Service)技术就是在这种背景下发展起来的。QoS即服务质量,其目的是针对各种业务的不同需求,为其提供端到端的服务质量保证。QoS不会增加网络带宽,它是有效利用现有网络资源的工具,它允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务。QoS技术在当今的互联网中应用越来越多,其作用越来越重要。
目前存在多种QoS服务模型,其中应用最广的是差分服务模型(DiffServ,Differentiated Services)。
DiffServ模型的基本原理是将网络中的流量分成多个类,每个类得到不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理。而同一类的业务在网络中会被聚合起来统一发送,保证相同的时延、抖动、丢包率等QoS指标。
简单流分类就是指采用简单的规则,根据报文中的某个优先级字段,对报文进行粗略的分类。
外部优先级
又称为报文优先级、QoS优先级,即使用报文中某些特定字段比如VLAN报文的802.1p值、IP报文的DSCP值等记录QoS信息。需要注意的是,设备只可以根据设备内部优先级处理收到的报文,为不同的业务提供不同的QoS服务,所以上述外部优先级在进入设备后会映射为设备内部的优先级。
内部优先级
又称为服务等级(Class of Service)、PHB行为(Per Hop Behavior)、本地优先级,支持8种取值,优先级从高到低依次为CS7、CS6、EF、AF4、AF3、AF2、AF1、BE,与出端口的8个队列从高到低依次对应。因此内部优先级决定了报文在设备内部所属的队列。当针对某一个队列配置QoS业务时,即对所有通过该队列转发的报文都设置了相同的QoS服务。
丢弃优先级
又称为颜色(Color),是指报文在设备内部的丢弃优先级,用于决定当一个队列发生拥塞时报文的丢弃顺序,对内部优先级与队列的映射关系没有影响,丢弃优先级有3种取值,IEEE定义的优先级从低到高依次为Green、Yellow、Red。缺省情况下,丢弃优先级越高,则队列发生拥塞时,对应优先级的报文会被优先丢弃。
然而报文是否会被优先丢弃实际取决于参数的配置。例如,配置WRED丢弃模板中Green最大只能使用50%缓存,Red最大可以使用100%缓存,则队列发生拥塞时,标记为Green的报文将比标记为Red的报文优先丢弃。
复杂流分类即采用复杂的规则,如由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)对报文进行精细的分类,通过将某些具有相同特征的报文划分为一类,并为这一类报文提供相同的QoS服务。复杂流分类可以通过模块化QoS命令行MQC(Modular QoS Command-Line Interface)中的流分类实现。MQC包含三个要素,分别是流分类、流行为和流策略,三要素通过下面的方式配合使用完成对流量的处理:
通过复杂流分类也可以对特定的QoS优先级报文进行识别,只是需要以MQC流分类的方式去实现。总而言之,需要配置MQC流分类去实现的报文分类都属于复杂流分类;不需要配置MQC流分类,直接根据报文中的外部优先级映射的内部优先级和丢弃优先级去进行报文分类的就是简单流分类。
为了使有限的网络资源更有效的为用户服务,就需要对进入网络设备的业务流量加以限制。流量监管、流量整形和接口限速技术规定了允许通过网络设备的不同业务流量的基本带宽(限速),监督进入网络设备的业务流量速率(测速),当业务流量超过基本带宽(超速)时,将超速的流量进行丢弃或者缓存(惩罚),从而达到限制流量、提高资源使用效率的目的,进而保证更好的为用户提供服务。
流量监管:将流量限制在特定的带宽内。当业务流量超过额定带宽时,超过的流量将被丢弃。这样可以防止个别业务或用户无限制地占用带宽。
流量整形:是一种主动调整流的输出速率的流控措施,使流量比较平稳地传送给下游设备,避免不必要的报文丢弃和拥塞。与流量监管直接将超速的报文丢弃不同,流量整形可以对超速的报文进行缓存以达到均匀向外发送报文流量的目的。
接口限速:是对一个接口上发送或者接收全部报文的总速率进行限制,接口限速可以通过流量监管或流量整形的方式去实现。
拥塞避免是指通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞发生或有加剧趋势时主动丢弃报文,通过调整网络的流量来解除网络过载的一种拥塞控制机制。
拥塞管理是一项基于队列的技术。当网络发生拥塞时,报文会在队列中缓存,此时拥塞管理会提供某种调度算法安排报文的转发次序,保障一些需要更高质量的QoS服务的业务比如时延敏感业务可以优先调度。
模块化QoS命令行MQC(Modular QoS Command-Line Interface)是指通过将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。
MQC包含三个要素:流分类(traffic classifier)、流行为(traffic behavior)和流策略(traffic policy)。
流分类用来定义一组流量匹配规则,以对报文进行分类。
流分类中各规则之间的关系分为:and或or,缺省情况下的关系为or。
and:当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于该类。
or:报文只要匹配了流分类中的一个规则,设备就认为报文属于此类。
流行为用来定义针对某类报文所做的动作。
流策略用来将指定的流分类和流行为绑定,对分类后的报文执行对应流行为中定义的动作
配置应用流策略时采用资源节约模式
在系统视图下执行命令traffic-policy resource-saving-mode,开启应用流策略时采用资源节约模式的功能。缺省情况下,未开启应用流策略时采用资源节约模式的功能。
配置应用流策略时采用增强模式
执行命令traffic-policy ipv4-enhance-mode { loose | strict }或traffic-policy ipv6-enhance-mode { loose | strict },开启应用流策略时采用增强模式的功能。缺省情况下,未开启应用流策略时采用增强模式的功能。
检查MQC的配置结果
执行命令display traffic classifier [ classifier-name ],查看已配置的流分类信息。
执行命令display traffic behavior [ behavior-name ],查看已配置的流行为信息。
执行命令display traffic policy [ policy-name [ classifier classifier-name ] ],查看已配置的流策略信息。
执行命令display traffic-policy applied-record [ policy-name ] [ global [ slot slot-id ] | interface interface-type interface-number | vlan vlan-id | vsi vsi-name | vpn-instance vpn-instance-name | qos group group-id | bridge-domain bd-id ] [ inbound | outbound ],查看指定流策略的应用记录。
不同的报文使用不同的QoS优先级,例如VLAN报文使用802.1p,IP报文使用DSCP,MPLS报文使用EXP。当报文经过不同网络时,为了保持报文的优先级,需要在连接不同网络的网关处配置这些优先级字段的映射关系。
Precedence****字段
IP报文头ToS(Type of Service)域由8个比特组成,其中3个比特的Precedence字段标识了IP****报文的优先级
比特0~2表示Precedence字段,代表报文传输的8个优先级,按照优先级从高到低顺序取值为7、6、5、4、3、2、1和0。最高优先级是7或6,经常是为路由选择或更新网络控制通信保留的,用户级应用仅能使用0~5。
除了Precedence字段外,ToS域中还包括D、T、R三个比特:
DSCP字段
RFC1349重新定义了IP报文中的ToS域,增加了C比特,表示传输开销(Monetary Cost)。之后,IETF DiffServ工作组在RFC2474中将IPv4报文头ToS域中的比特0~5重新定义为DSCP,并将ToS域改名为DS(Differentiated Service)字节。
DS字段的前6位(0位~5位)用作区分服务代码点DSCP(DS Code Point),后2位(6位、7位)是保留位。DS字段的前3位(0位~2位)是类选择代码点CSCP(Class Selector Code Point),相同的CSCP值代表一类DSCP。DS节点根据DSCP的值选择相应的PHB(Per-Hop Behavior)。
VLAN帧头中的802.1p****优先级
通常二层设备之间交互VLAN帧。根据IEEE 802.1Q定义,VLAN帧头中的PRI****字段(即802.1p优先级),或称CoS(Class of Service)字段,标识了服务质量需求。
在802.1Q头部中包含3比特长的PRI字段和1比特长的CFI****字段。PRI字段定义了8种业务优先级CoS,按照优先级从高到低顺序取值为7****、6、5、4、3、2、1和****0。CFI****字段可以用来标识报文的丢弃优先级。
MPLS EXP字段
对于MPLS报文,通常将标签信息中的EXP域作为MPLS报文的CoS域,与IP网络的ToS域等效,用来区分数据流量的服务等级,以支持MPLS网络的DiffServ。EXP字段表示8个传输优先级,按照优先级从高到低顺序取值为7****、6、5、4、3、2、1和****0。
现在需要在整个网络中对三类业务区分优先级,保证语音优先级一直最高、视频其次、数据优先级最低,这样设备可以根据优先级的高低对三类业务提供不同的QoS服务。
流量监管TP(Traffic Policing)可以监督不同流量进入网络的速率,对超出部分的流量进行“惩罚”,使进入的流量被限制在一个合理的范围之内,从而保护网络资源和用户的利益。
Meter:通过令牌桶机制对网络流量进行度量,向Marker输出度量结果。
Marker:根据Meter的度量结果对报文进行染色,报文会被染成green、yellow、red三种颜色。缺省情况下,green**、yellow进行转发**,red****报文丢弃。
Action:根据Marker对报文的染色结果,对报文进行一些动作,动作包括:
pass:对测量结果为“符合”的报文继续转发。
remark + pass:对测量结果为“不符合”的报文修改其内部优先级后再转发。
discard:对测量结果为“不符合”的报文进行丢弃。
流量监管的应用
流量监管配置示例
基础配置
- vlan batch 10 20 30
-
- interface GigabitEthernet0/0/1
-
- port link-type access
-
- port default vlan 10
-
-
-
- interface GigabitEthernet0/0/2
-
- port link-type access
-
- port default vlan 20
-
-
-
- interface GigabitEthernet0/0/3
-
- port link-type access
-
- port default vlan 30
配置流分类
创建流分类c1~c3,对来自服务器的不同业务流按照其VLAN ID进行分类
- traffic classifier c1
-
- if-match vlan-id 10
-
- traffic classifier c2
-
- if-match vlan-id 20
-
- traffic classifier c3
-
- if-match vlan-id 30
配置流行为
创建流行为b1~b3,对不同业务流进行流量监管
- traffic behavior b1
-
- car cir 2000
-
- statistic enable
-
- traffic behavior b2
-
- car cir 4000
-
- statistic enable
-
- traffic behavior b3
-
- car cir 8000
配置流策略
- traffic policy p1
-
- classifier c1 behavior b1
-
- classifier c2 behavior b2
-
- classifier c3 behavior b3
应用流策略到端口
- interface g0/0/4
-
- traffic-policy p1 inbound
查看配置结果
查看流策略
查看流策略应用情况
查看流策略统计信息
流量整形TS(Traffic Shaping)是一种主动调整流量输出速率的措施。流量整形将上游不规整的流量进行削峰填谷,使流量输出比较平稳,从而解决下游设备的拥塞问题。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
具体处理流程如下:
如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。
如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。
缓存队列中有报文的时候,会与令牌桶中的令牌数作比较,如果令牌数足够发送报文则转发报文,直到缓存队列中的报文全部发送完毕为止。
当计算服务器进行大规模计算时,会向Web服务器发送大量结果数据,造成SwitchA入方向突发流量,有可能会在SwithcC与SwitchA连接接口的出方向造成拥塞。此时可以在该接口的出方向配置流量整形,将突发流量均匀的向Web服务器发送。
Switch通过接口10GE1/0/2与路由器互连,数据中心有三台服务器分别为用户提供语音、视频、数据服务,不同业务的报文使用802.1p优先级进行标识,语音、视频、数据报文的802.1p优先级分别为5、3、2,当报文从10GE1/0/2接口到达路由器时可能会发生抖动。为了减少带宽抖动,同时保证各类业务带宽要求,现要求如下:
接口保证带宽为12000kbit/s。
语音保证带宽为3000kbit/s,峰值带宽为5000kbit/s。
视频保证带宽为5000kbit/s,峰值带宽为8000kbit/s。
数据保证带宽为2000kbit/s,峰值带宽为3000kbit/s。
基础配置
- vlan batch 10 20 30
-
- interface GigabitEthernet0/0/1
-
- port link-type access
-
- port default vlan 10
-
-
-
- interface GigabitEthernet0/0/2
-
- port link-type access
-
- port default vlan 20
-
-
-
- interface GigabitEthernet0/0/3
-
- port link-type access
-
- port default vlan 30
配置出接口限速
qos lr outbound cir 12000
配置端口队列流量整形
- int g0/0/4
-
- qos queue 2 shaping cir 2000 pir 3000
-
- qos queue 3 shaping cir 5000 pir 8000
-
- qos queue 5 shaping cir 3000 pir 5000
查看配置结果
接口限速LR(Line Rate)可以对一个接口上发送或者接收全部报文的总速率进行限制。当不需要区分报文类型而要限制通过接口全部流量速率时,接口限速功能可以简化配置。
接口限速也是采用令牌桶进行流量控制。如果在设备的某个接口配置了接口限速,所有经由该接口发送的报文首先要经过接口限速的令牌桶进行处理。如果令牌桶中有足够的令牌,则报文可以发送;否则,报文将被丢弃或者被缓存。这样,就可以对通过该接口的报文流量进行控制。
在数据中心网络中,存在语音、视频和数据等多种不同的业务,当大量流量进入网络侧时,可能会因为带宽不足产生拥塞,因此需要对进入网络侧的流量进行限制。在SwitchB入接口上配置接口限速,使流量在进入Network之前就被限制在规定范围内,超出的部分将被丢弃。
拥塞避免是指通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞发生或有加剧趋势时主动丢弃报文,通过调整网络的流量来解除网络过载的一种流量控制机制。
设备支持以下拥塞避免功能:
尾部丢弃
传统的丢弃策略采用尾部丢弃的方法,同等对待所有报文,不对报文进行服务等级的区分。在拥塞发生时,队列尾部的数据报文将被丢弃,直到拥塞解除。
这种丢弃策略会引起TCP全局同步现象。所谓TCP全局同步现象,是指当多个队列同时丢弃多个TCP连接报文时,将造成一些TCP连接同时进入拥塞避免和慢启动状态,降低流量以解除拥塞;而后这些TCP连接又会在某个时刻同时出现流量高峰。如此反复,使网络流量忽大忽小,影响链路利用率。
缺省情况下,接口采用尾部丢弃的丢弃策略。
WRED
加权随机先期检测WRED(Weighted Random Early Detection)基于丢弃参数随机丢弃报文。考虑到高优先级报文的利益并使其被丢弃的概率相对较小,WRED可以为不同业务的报文指定不同的丢弃策略。此外,通过随机丢弃报文,让多个TCP连接不同时降低发送速度,避免了TCP全局同步现象。
WRED技术为每个队列的长度都设定了阈值上下限,并规定:
当队列的长度小于阈值下限时,不丢弃报文。
当队列的长度大于阈值上限时,丢弃所有新收到的报文。
当队列的长度在阈值下限和阈值上限之间时,开始随机丢弃新收到的报文。方法是为每个新收到的报文赋予一个随机数,并用该随机数与当前队列的丢弃概率比较,如果大于丢弃概率则报文被丢弃。队列越长,报文被丢弃的概率越高。
由于广域网带宽小于局域网的带宽,位于广域网和局域网之间的边缘设备将可能发生拥塞,此时可以通过配置拥塞避免,主动丢弃优先级较低的报文(比如数据报文等),减少网络的拥塞,保证高优先级业务正常运行
拥塞管理是指在网络间歇性出现拥塞,时延敏感业务要求得到比其他业务更高质量的QoS服务时,通过调整报文的调度次序来满足时延敏感业务高QoS服务的一种流量控制机制。
设备支持以下拥塞管理功能:
PQ调度
优先队列PQ(Priority Queuing)调度,就是严格按照队列优先级的高低顺序进行调度。只有高优先级队列中的报文全部调度完毕后,低优先级队列才有调度机会。
采用PQ调度方式,将时延敏感业务放入高优先级队列,将其他业务放入低优先级队列,从而确保时延敏感业务被优先调度。
PQ调度的缺点是:拥塞发生时,如果高优先级队列中长时间有报文存在,那么低优先级队列中的报文就会得不到调度机会。
WRR调度
WRR(Weighted Round Robin)调度即加权轮询调度。WRR在队列之间进行轮流调度,保证每个队列都得到一定的服务时间。
以接口有8个输出队列为例,WRR为每个队列配置一个加权值(依次为w7、w6、w5、w4、w3、w2、w1、w0),加权值表示获取资源的比重。举个更具体的例子,一个100M的接口,配置它的WRR算法的加权值为50、50、30、30、10、10、10、10(依次对应w7、w6、w5、w4、w3、w2、w1、w0),这样可以保证最低优先级队列至少获得5M带宽,避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点。
WRR还有一个优点:虽然多个队列的调度是轮流进行的,但对每个队列不是固定地分配服务时间片,也就是说如果某个队列为空,马上换到下一个队列进行调度,这样带宽资源可以得到充分的利用。
WRR调度有两个缺点:
WRR调度按照报文个数进行调度,而用户一般关心的是带宽。当每个队列的平均报文长度相等或已知时,通过配置WRR权重,用户能够获得想要的带宽;但是,当队列的平均报文长度变化时,用户就不能通过配置WRR权重获取想要的带宽。
时延敏感业务(如语音)得不到及时调度。
DRR调度
赤字轮询调度DRR(Deficit Round Robin)调度实现原理与WRR调度基本相同。
DRR调度与WRR调度的区别是:WRR调度是按照报文个数进行调度,而DRR是按照报文长度进行调度。如果报文长度超过了队列的调度能力,DRR调度允许出现负权重,以保证长报文也能够得到调度。但下次轮询调度时该队列将不会被调度,直到权重为正,该队列才会参与DRR调度。
PQ+WRR/PQ+DRR调度
PQ调度和WRR/DRR调度各有优缺点。单纯采用PQ调度时,低优先级队列中的报文长期得不到带宽,而单纯采用WRR/DRR调度时低延时需求业务得不到优先调度,PQ+WRR/PQ+DRR调度方式则将前两种调度方式结合起来,不仅能发挥两种调度的优势,而且能克服两种调度各自的缺点。
用户可以借助PQ+WRR/PQ+DRR调度方式,将重要的协议报文和时延敏感业务报文放入PQ队列中进行调度,并为该队列分配指定带宽;而将其他报文按各自的优先级放入采用WRR/DRR调度的各队列中,按照权值对各队列进行循环调度。
WFQ调度
公平队列FQ(Fair Queuing)的目的是尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优
PQ+WFQ调度
PQ调度和WFQ调度各有优缺点。单纯采用PQ调度时,低优先级队列中的报文可能长期得不到带宽,而单纯采用WFQ调度时低延时需求业务得不到优先调度,“PQ+WFQ”调度方式则将前两种调度方式结合起来,不仅能发挥两种调度的优势,而且能克服两种调度各自的缺点。
用户可以借助“PQ+WFQ”调度方式,将重要的协议报文和有低延时需求的业务报文放入PQ队列中进行调度,并为该队列分配指定带宽;而将其他报文按各自的优先级放入采用WFQ调度的各队列中,按照权值对各队列进行调度。
在设备出方向为不同的队列配置不同的调度方式,可以达到对不同业务进行差分服务的目的。
通过MQC实现报文过滤。
网络中存在大量不信任报文,所谓的不信任报文是指对用户来说存在安全隐患或者不愿意接收的报文,部署报文过滤可以将这类报文直接丢弃,以提高用户在网络中的安全性。
当用户认为某类报文不可信时,可以通过MQC将这类报文与其他报文区别出来并进行丢弃;同样的,当用户认为某类报文可信时,也可以通过MQC将这类报文与其他报文区别出来并允许通过。
与黑名单相比,通过MQC实现报文过滤可以对报文进行更精细的划分,在网络部署时更加灵活。
为了保证教学质量与纪律,校方规定多媒体教室只能访问FTP服务器,但是老师办公室既可以访问FTP服务器也可以访问Web服务器。
报文过滤实例
实现PC2不能访问****PC4
配置ACL
- acl number 3001
-
- rule 5 permit ip source 192.168.1.1 0 destination 192.168.1.4 0
配置流分类
- traffic classifier c1
-
- if-match acl 3001
配置流行为
- traffic behavior b1
-
- deny
-
- statistic enable
配置流策略
- traffic policy p1
-
- classifier c1 behavior b1
在端口上应用流策略
- interface GigabitEthernet0/0/24
-
- traffic-policy p1 outbound
结果验证
原文作者:yao
原文地址:Qos服务质量详解! - 掘金(版权归原文作者所有,侵权留言联系删除)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。