限速:

概念:
限速是对流经设备接口的报文速度做限制,使流量超出指定阀值的那部分直接被丢弃,而低于阀值的部分则进入或离开设备。限速正如名字所示,对流量起到速率限制的目的,限速机制更多地应用到网络边界,如在接入层交换机端口上或企业网络的边缘网关上。

实现方式:
接口限速也是采用令牌桶进行流量控制,采用的是单速单桶模型。限速功能在华为交换机上可以作用于入接口和出接口方向,路由器则一般仅支持出接口方向。

华为路由器通过qos lr命令用来配置物理接口发送报文的速率占接口带宽的百分比,qos lr命令之后跟随的cbs关键词用来定义令牌桶模型中的C桶大小,也用来定义流量的突发大小。pct是以百分比形式定义的限速阀值:

interface interface-type interface-number
qos lr pct pct-va1ue [ cbs cbs-value ]

华为交换机同理可以配置,但是由于可以作用于两个方向,所以需要配置具体的inbound和outbound参数:

interface interface-type interface-number
qos lr inbound cir cir-value [ cbs cbs-value ] #配置入方向的接口限速
qos lr outbound cir cir-value [ cbs cbs-value ] #配置出方向的接口限速
#缺省情况下,接口限速速率为接口的最大带宽。出方向当令牌不够时,缓存报文。入方向令牌不够,则丢包。

使用注意:
如果不限制用户发送的流量,大量用户不断突发的数据会使网络更拥挤。通过配置入方向的接口限速,可以将通过某个接口进入网络的流量限制在一个合理的范围内。

若需要对接口出方向所有流量进行控制时,可以配置出方向的接口限速。当报文的发送速率超过限制速率时,超出的那部分报文先进入缓存队列;当令牌桶有足够的令牌时,再均匀向外发送这些被缓存的报文;当缓存队列已满时,新到达的报文将被丢弃。

流量整形:

概念:

流量整形TS(Traffic Shaping)是一种主动调整流量输出速率的措施。流量整形将上游不规整的流量进行削峰填谷,使流量输出比较平稳,从而解决下游设备的拥塞问题。

实现原理:

qos apply policy 1 inbound qos apply policy 1 inbound什么意思_限速

  1. 当报文到来的时候,首先对报文进行分类,使报文进入不同的队列。
  2. 若报文进入的队列没有配置队列整形功能,则直接发送该队列的报文;否则,进入下一步处理。
  3. 按用户设定的队列整形速率向令牌桶中放置令牌,使用的是单速单桶模型:
    • 如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。
    • 如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。
    • 缓存队列中有报文的时候,系统按一定的周期从缓存队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。
  4. 流量整形只能使用在接口的出方向。

1.基于接口的流量整形
若需要对接口出方向所有流量进行控制时,可在接口下直接配置流量整形。当报文的发送速率超过限制速率时,超出的那部分报文先进入缓存队列;当令牌桶有足够的令牌时,再均匀地向外发送这些被缓存的报文;当缓存队列已满时,报文将被丟弃。配置如下:

#配置基于接口的流量整形
#在RouterA上配置基于接口的流量整形,将接口G1/0/0速率限制在8000kbit/s
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet3/0/0] qos gts cir 8000

cir是整形所需限制到的速率。cbs是整形模型中使用的令牌桶的大小,cbs不是越大越好,越大则流量波动就越大:反之,流量波动就较小,但cbs一定要大于1500。

2.基于队列的流量整形
在队列模板(qos queue-profile)中,对各队列的流量做整形。接口收到的报文根据设备内部优先级映射进入不同的队列,不同的队列可分别设置不同的流量整形参数,实现对不同业务的差分服务。

举例:

qos apply policy 1 inbound qos apply policy 1 inbound什么意思_限速_02


企业边缘路由器A对接口E2/0/0 进来的报文根据802.1p选择出队列,出队列0-5使用wfq调度,6-7 使用pq调度;图中语音流量使用队列6,视频流量使用队列5,数据流量使用队列2,流量分别限制到256kbit/s、 4000kbit/s 及2000kbit/s。

配置:

[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet3/0/0] trust 8021p
#经2/0/0接口进来的报文基于802.1p生成内部优先级,选择出队列
[RouterA] qos queue profile qp1
[RouterA-qos-queue profile-qp1 ]schedule wfq 0 to 5 pq 6 to 7
[RouterA-qos-queue profile-qp1]queue 6 gts cir 256 cbs 6400
[RouterA-qos-queue-profile-qp1 ]queue 5 gts cir 4000 cbs 00000
[RouterA-qos-queue-profile-qpl ]queue 2 gts cir 2000 cbs 50000
#配置队列6的承诺信息速率为256kbits,承诺突发尺寸为6400Byte
#配置队列5的承诺信息速率为4000kbit/s,承诺突发尺寸为100000Byte
#配置队列2的承诺信息速率为2000kbit/s,承诺突发尺寸为50000Byte
[RouterA] interface gigabitethernet 3/0/0
[RouterA-GigabitEthernet3/0/0] qos queue-profile qpl
#队列2/5/6超出承诺带宽的流量会缓存起来

3.基于MQC的流量整形
使用MQC工具来实现流量整形,它的实现方式是在接口下的流策略中,针对流分类中的流量定义整形,限制匹配该分类规则报文的发送速率超出限制时,超出的那部分报文进入缓存队列。用MQC实现流量整形,可实现更细化的针对不同业务的更精细的差分服务。

举例:
实验拓扑基于队列的流量整形一样,企业中有多种业务,在边界路由器上,要做到限制语音流量不超出256kbit/s,视频流量不超出4000kbit/s, 数据流量不超出2000kbit/s, 超过的流量能缓存起来,不丢包,但最多能缓存100个包。具体配置如下:

#c1是voip, c2 是视频流量,c3 是数据流量,此处分类定义的配置省略
[RouterA] traffic behavior b1
[RouterA-behavior-b1] qos cir 256 cbs 48128 queue-length 100
[RouterA-behavior-b1] statistic enable
[RouterA-behavior-b1] quit
 #
[RouterA] traffic behavior b2
[RouterA-behavior-b2] qos cir 4000 cbs 752000 queue-length 100
[RouterA-behavior-b2] statistic enable
[RouterA-behavior-b2] quit
 #
[RouterA] traffie behavior b3
[RouterA-behavior-b2] qos cir 2000 cbs 376000 queue-length 100
[RouterA-behavior-b2] statistic enable
[RouterA behavior-b2] quit
#
[RouterA] traffic policy p1
[Router-tafcpolicy-p1] classifer c1 behavior b1
[RouterA-trafficpolicy-p1] classifier c2 behavior b2
[RouterA-trafficpolicy-p1] classifier c3 behavior b3
[RouterA-trafficpolicy-p1] quit
#
[RouterA] interface ethernet 2/0/0
[RouterA-Ethernet2/0/0] traffic-policy p1 outbound
#整形仅能应用在流量外出的方向上

流量监管:

概念:

监管使用双桶模型的令牌桶来评估网络流量,监督进入网络的流量速率,对超出部分的流量进行“惩罚”。而惩罚行为可以自定义为丢包或重新标记该报文,若动作为丢包则监管实现限速的功能;若重新标记,则监管可实现Remark的功能。

监管机制保证进入网络的流量都是承诺可信的,不可信的流量会惩罚而丢弃或给予低级别标记以区分对待。监管可定义在网络的任何位置的进或者出的方向上,但更多的是应用到网络的边界设备.上,对进入网络的流量标记为绿色、黄色或红色。

一般而言,在华为路由器上,流量监管可以应用在出方向上,也可以在入方向上;而华为交换机上仅能够在入方向应用流量监管。

流量监管组件:

qos apply policy 1 inbound qos apply policy 1 inbound什么意思_流量整形_03


三部分组成:

  1. Meter:通过令牌桶机制对网络流量进行度量,向Marker输出度量结果。
  2. Marker:根据Meter的度量结果对报文进行染色,报文会被染成green、yellow、red三种颜色。
  3. Action:根据Marker对报文的染色结果(默认情况下,green、yellow进行转发,red报文丢弃。)对报文进行一些动作,动作包括:
    • pass:对测量结果为“符合”的报文继续转发。
    • remark + pass:修改报文内部优先级后再转发。
    • discard:对测量结果为“不符合”的报文进行丢弃。

核心技术:令牌桶。使用的是两种双桶模型,也就是单速双桶和双速双桶模型。

1.基于接口的监管

qos apply policy 1 inbound qos apply policy 1 inbound什么意思_Qos_04


环境描述:

企业业务数据有语音、视频及数据,分别有各自的业务要求。要求在路由器A上通过监管实现流量控制,其中语音限制在256kbit/s,视频限制在4000kbit/s,数据限制在2000kbit/s。其中,对视频流要求做到对其每个流都实现监管控制,并且对数据速率在1000kbit/s范围内的流量打上AF21标记,而高于1000kbit/s部分则标记为AF23。语音流源自192.168.10.1-192.168.10.100地址范围。数据流源自192.168.20.1-192.168.20.100,视频流源自192.168.30.1-192.168.30.100地址范围。

配置:

[RouterA] interface ethernet 2/0/0
[RouterA-Ethernet2/0/0] qos car inbound source-ip-address range 192.168.10.1 to 192. 168.10.100 cir 256
[RouterA-Ethernet2/0/0] qos car inbound source -ip-address range 192.168.20.1 to 192. 168.20.100 per-address cir 4000
[RouterA-Ethernet2/0/0] qos car inbound source-ip-address range 192.168.30.1 to 192.168.30.100 cir 1000 pir 2000 green pass remark-dscp af21 yellow pass remark dscp af23 red discard
[RouterA-Ethernet2/0/0] quit

2.基于类的监管(MQC方式)

环境与基于接口的监管相同,具体配置如下:

#在RouterA 上定义用户类c1、c2及c3,分别对应图中的vlan10、 vlan20及vlan30
[RouterA] traffic classifier c1
[RouterA-classifer-c1] if-match vlan-id 10
[RouterA-classifier-c1] quit
[RouterA] traffic classifer c2
[RouterA-classifier-c2] if-match vlan-id 20
[RouterA-classifier-c2] quit
[RouterA] traffic classifer c3
[RouterA-classifier-c3] if-match vlan-id 30
[RouterA-classifier-c3] quit
#在RouterA上创建流行为b1~b3,对进入企业的不同业务流进行流量监管
[RouterA] traffic behavior b1
[RouterA-behavior-b1] car cir 256 cbs 48128 pbs 80128
[RouterA-behavior-b1] statistic enable
[RouterA-behavior-b1] quit
#没有定义car的颜色行为,则缺省情况下,绿色、黄色报文被允许通过,红色报文被丢弃
[RouterA] traffiec behavior b2
[RouterA-behavior-b2] car cir 1000 pir 4000 green pass yellow pass remark-dscp af21 red pass remark-dscp af23
[RouterA-behavior-b2] statistic enable
[RouterA-behavior-b2] quit
[RouterA] trffic behavior b3
[RouterA-behavior-b3] car cir 2000 cbs 376000 pbs 626000
[RouterA-behavior-b3] statistic enable
[RouterA-behavior-b3] quit
#
[RouterA] traffic policy p1
[RouterA-trafficpolicy-p1] classifier c1 behavior b1
[RouterA-trafficpolicy-p1] classifier c2 behavior b2
[RouterA-trafficpolicy-p1] classifier c3 behavior b3
[RouterA-tafficpolicy-p1] quit
#
[RouterA] interface ethernet 2/0/0
[RouterA-Ethernet2/0/0] traffic-policy p1 inbound
#流量监管的动作包括通过、丢弃和改变优先级转发

说明:
基于接口和基于类的监管的区别是MQC结构性强、易于扩展,而基于接口的CAR则实现容易,配置简单。如果仅为了实现监管机制,则在接口上调用CAR更容易实现。若同时在设备上配置其他QoS机制,如队列等,则MQC较易。

三种方式对比:

限速

整形

监管

使用令牌桶模型

单速单桶双色(绿和红)

单速单桶双色(绿和红)

单速双桶或双速双桶模型三色(绿,黄,红)

默认动作或行为

绿色标记的报文转发,而红色标记的报文被丢弃

绿色标记的报文转发,红色标记的报文被缓存

绿色、黄色和红色标记的报文都可以在三者:pass、remark、discard中选择一种动作来配置

实现机制

1.实现简单 2.路由器上上仅用在物理接口外出方向 3.交换机上,接口的入或出方向都可以(但出方向可以缓存报文)

1.多种整形,可基于接口或queue或用MQC来实现2.仅应用在接口外出方向上

可应用在接口的入或出方向上,可对流量基于速率来分类

应用场景

企业或运营商设备上流量流入的接口

企业上联运营商的设备的出口

需要基于速率来打标记或需要限速的场景下

整理资料来源:《HCIE路由交换学习指南》