行业新闻

交换机中流量监管、流量整形和接口限速是如何实现的?

交换机中流量监管、流量整形和接口限速是如何实现的?

前言

本文介绍交换机的流量监管、流量整形和接口限速的原理,并且介绍相关参数和配置方法。

01

   相关名词解释


表1-1 简称及对应的全称


流量监管、流量整形和接口限速是通过对流量规格进行监督,以限制流量及其资源使用的流控策略。

尽管流量监管和流量整形都能实现流量限速,但二者存在一定的差别:

流量监管:如果流量超速,则直接丢弃超出部分的流量。一般用于入方向,就像高速路,只有在入口限制进入高速公路车辆的数量。

流量整形:如果流量超速,则暂时存入缓存队列,等到令牌数足够时,再均匀地发送这些被缓冲的报文。如果报文放入缓存队列时,缓存队列已满,则丢弃报文。这样使流量输出比较平稳,从而解决下游设备的拥塞问题,所以流量整形一般用于出方向。

接口限速即限制一个接口上发送或者接收全部报文的总速率。当不需要区分报文类型而要限制通过接口全部流量速率时,可以选择配置简单的接口限速。入方向的接口限速是流量监管的一种特殊情况,即不需要分类报文的流量监管是接口限速;出方向的接口限速是流量整形的一种特殊情况,即针对所有队列的流量整形是接口限速。

02

  限速的有关参数

交换机通过令牌桶判断流量是否超速。令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。每个需要被转发的报文,都要从令牌桶中领取一定数量的令牌(具体数量视报文大小而定),才可以被正常转发。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。

令牌桶有三种测速方法,对应单速单桶、单速双桶、双速双桶三种机制:

单速单桶:以CIR速率向C桶投放令牌。

报文来了之后,从C桶取令牌,如果令牌够了,则进行转发,如果令牌不够,则直接丢弃。一般用于优先级较低的业务(如企业外网HTTP流量)限速,对于超过额度的流量直接丢弃保证其他业务,不考虑突发流量。

单速双桶:以CIR速率向两个桶投放令牌。

先投放小桶C桶,小桶满了再投放大桶E桶。报文来了之后,先使用小桶中的令牌,小桶中令牌数量不够,则放回去,再使用大桶中的令牌。对于超过C桶,而又没有超过E桶的报文标记为黄色,采用BE方式或者等网络空闲后进行转发。和单桶相比,单速双桶允许突发流量,主要用于较为重要而又不太紧急的业务,比如企业邮件数据,可避免邮件发送失败。

双速双桶:以CIR速率向C桶投放令牌,以PIR速率向P桶投放令牌。

报文进来之后,会同时取两个桶的令牌,C桶令牌够用则标记为绿色直接转发,如果连P桶的令牌都不够用,则标记为红色直接丢弃,介于C桶和P桶之间,则标记为黄色。和单速双桶的区别就是向两个桶投放令牌的速率不同,我们一般设置PIR>CIR,P桶投放令牌的速率更快,所以更能长时间撑住突发流量。

使用令牌桶的总体原则:

如果不考虑突发流量,使用单速单桶;如果要考虑突发流量,使用单速双桶;如果考虑可能会有长时间的流量突发,使用双速双桶。在令牌桶算法中,CIR的值越大,即令牌产生的速率越大,报文可以获取的令牌就越多,流向网络的流量也就越大。因此,CIR的值是控制流入网络中流量多少的关键。CBS也是一个重要参数,CBS的值越大,C桶中可以积累令牌的数目也越多,允许通过的报文尺寸就越大。

由于设备进行的是逐包转发,CBS的值不应该小于当前网络上允许传输的报文的最大长度。

例如,在单速单桶模式下,假设要把流量限定在10Mbit/s,而CBS值太小(如设置成1000byte)。如果某个时间段内流量的报文,每个报文大小都大于1000byte,那么这些报文全都被丢弃。这段时间内,没有报文被转发,报文的转发速率为0,导致网络资源被浪费,业务也出现异常。

那是不是CBS的值越大就越好呢?显然不是。

CBS值太大,会失去限速的意义。例如,假设要把流量限定在10Mbit/s,CBS设置成7200Mbyte。某个时刻,令牌桶中的令牌已满,如果接下来1小时内流量的报文,其报文长度不一,但共计7200Mbyte,这些报文都能获得令牌并被转发,那么这段时间内的报文速率为16Mbit/s(7200M * 8 / 3600)而不是10Mbit/s,即没有实现限速。

同理,对于双速双桶模式,PIR和PBS的值也应设置在合理范围内。

03

配置基于MQC的流量监管

配置基于MQC的流量监管包括以下四个主要步骤:

  1. 配置流分类。通过定义流分类中的匹配规则,使需要限速的流量归入此类。
  2. 配置流行为。创建并进入流行为视图后,配置CAR动作。
  3. 配置流策略。创建并进入流策略视图后,将流分类与流行为绑定。
  4. 应用流策略。将流策略应用到相应的接口、VLAN或全局视图。

以下示例中,限制所有进入接口GE1/0/1流量的速率。在流行为b1中配置流量监管动作:承诺信息速率(保证能够通过的平均速率)为200000kbit/s,峰值信息速率(最大能够通过的速率)为2500000kbit/s,允许绿色报文正常发送,允许黄色报文通过,丢弃红色报文。

 system-view 
[HUAWEI] traffic classifier c1 operator and   //创建流分类c1,并进入流分类视图
[HUAWEI-classifier-c1] if-match any           //流分类c1匹配所有报文,目的是对所有报文进行流量监管
[HUAWEI-classifier-c1] quit
[HUAWEI] traffic behavior b1                 //创建流行为b1,并进入流行为视图
[HUAWEI-behavior-b1] car cir 200000 pir 2500000 green pass yellow pass red discard  //创建流量监管动作
[HUAWEI-behavior-b1] statistic enable     //使能流量统计功能,便于后续查看流量统计信息
[HUAWEI-behavior-b1] quit 
[HUAWEI] traffic policy p1                   //创建流策略p1,并进入流策略视图
[HUAWEI-trafficpolicy-p1] classifier c1 behavior b1  //将流分类c1和流行为b1绑定
[HUAWEI-trafficpolicy-p1] quit 
[HUAWEI] interface gigabitethernet 1/0/1       
[HUAWEI-GigabitEthernet1/0/1] traffic-policy p1 inbound //将流策略p1应用在接口GE1/0/1的入方向,限制进入接口的流量的速率


配置基于MQC的流量监管后,执行display traffic policy statistics命令,可以查看流量统计信息。

[HUAWEI] display traffic policy statistics all
 Interface: GigabitEthernet1/0/1                                                                                                    
 Traffic policy inbound: p1                                                                                                         
 Rule number: 1                                                                                                                     
 Current status: success                                                                                                            
 Statistics interval: 300                                                                                                           
---------------------------------------------------------------------                                                               
 Board : 0                                                                                                                          
---------------------------------------------------------------------                                                               
 Matched          |      Packets:                             0                                                                     
                  |      Bytes:                               -                                                                     
                  |      Rate(pps):                           0                                                                     
                  |      Rate(bps):                           -                                                                     
---------------------------------------------------------------------                                                               
   Passed         |      Packets:                             0                                                                     
                  |      Bytes:                               -                                                                     
                  |      Rate(pps):                           0                                                                     
                  |      Rate(bps):                           -                                                                     
---------------------------------------------------------------------                                                               
   Dropped        |      Packets:                             0                                                                     
                  |      Bytes:                               -                                                                     
                  |      Rate(pps):                           0                                                                     
                  |      Rate(bps):                           -                                                                     
---------------------------------------------------------------------                                                               
     Filter       |      Packets:                             0                                                                     
                  |      Bytes:                               -                                                                     
---------------------------------------------------------------------                                                               
     Car          |      Packets:                             0                                                                     
                  |      Bytes:                               -                                                                     
---------------------------------------------------------------------

04

  配置队列流量整形

配置队列流量整形前,需要配置优先级映射,将报文的优先级映射为PHB行为(Per-Hop Behavior,即服务等级的取值),从而使不同业务进入不同的端口队列。

以下示例中,Switch通过接口GE2/0/1与路由器互连,来自网络侧的业务有语音、视频、数据,携带的802.1p优先级分别为6、5、2。由于来自用户局域网的流量速率大于Router接口的速率,出接口GE2/0/1处可能会发生带宽抖动。为减少带宽抖动,同时保证各类业务带宽要求,现要求:

  • 语音带宽限制为3000kbit/s,最大不超过5000kbit/s。
  • 视频带宽限制为5000kbit/s,最大不超过8000kbit/s。
  • 数据带宽限制为2000kbit/s,最大不超过3000kbit/s。

图1-1 流量整形配置组网图

【1】配置优先级映射。

# 创建DiffServ域ds1,将802.1p优先级6、5、2分别映射为PHB行为CS7、EF、AF2。

[HUAWEI] diffserv domain ds1                     //创建DiffServ域ds1
[HUAWEI-dsdomain-ds1] 8021p-inbound 6 phb cs7    //将802.1p优先级6映射为PHB行为CS7
[HUAWEI-dsdomain-ds1] 8021p-inbound 5 phb ef     //将802.1p优先级5映射为PHB行为EF
[HUAWEI-dsdomain-ds1] 8021p-inbound 2 phb af2    //将802.1p优先级2映射为PHB行为AF2
[HUAWEI-dsdomain-ds1] quit 
[HUAWEI] interface gigabitethernet 1/0/1  
[HUAWEI-GigabitEthernet1/0/1] trust upstream ds1 //根据流量方向,将DiffServ域应用到报文的入接口 
[HUAWEI-GigabitEthernet1/0/1] quit

【2】配置端口队列整形。

# 在Switch上配置端口队列整形,使语音、视频、数据业务的带宽分别限制为3000kbit/s、5000kbit/s、2000kbit/s,最大分别不超过5000kbit/s、8000kbit/s、3000kbit/s。

[HUAWEI] interface gigabitethernet 2/0/1       //根据流量方向,在报文的出接口配置流量整形
[HUAWEI-GigabitEthernet2/0/1] qos queue 7 shaping cir 3000 pir 5000  //PHB行为CS7对应的队列索引为7
[HUAWEI-GigabitEthernet2/0/1] qos queue 5 shaping cir 5000 pir 8000  //PHB行为EF对应的队列索引为5
[HUAWEI-GigabitEthernet2/0/1] qos queue 2 shaping cir 2000 pir 3000  //PHB行为AF2对应的队列索引为2
[HUAWEI-GigabitEthernet2/0/1] quit 

配置队列流量整形后,执行display qos queue statistics命令,可以查看流量统计信息。以接口GE2/0/1的2号队列为例:

[HUAWEI] display qos queue statistics interface gigabitethernet 2/0/1 queue 2
------------------------------------------------------------     
  Queue ID          : 2                                   
  CIR(kbps)         : 2,000                                
  PIR(kbps)         : 3,000                                           
  Used Length(byte) : 0                                        
  Passed Packets    : 0                                       
  Passed Rate(pps)  : 0                                     
  Passed Bytes      : 0                                      
  Passed Rate(bps)  : 0                                     
  Dropped Packets   : 0                                      
  Dropped Rate(pps) : 0                                      
  Dropped Bytes     : 0         
  Dropped Rate(bps) : 0  
------------------------------------------------------------

05

  配置接口限速

入方向接口限速的配置方法如下:

  1. 配置CAR参数:qos car car-name cir cir-value [ cbs cbs-value [ pbs pbs-value ] | pir pir-value [ cbs cbs-value pbs pbs-value ] ]
  2. 进入接口视图:interfaceinterface-type interface-number
  3. 在接口下应用CAR模板:qos car inbound car-name
  4. (可选)查看接口入方向的报文统计信息:
  • display qos car statistics interfaceinterface-type interface-numberinbound(显示指定接口入方向上通过和丢弃的报文统计信息)
  • display qos car statistics all [ nonzero ](显示所有应用QoS CAR后的接口入方向上的报文统计信息)


出方向接口限速的配置方法如下:

  1. 进入接口视图:执行命令interfaceinterface-type interface-number
  2. 配置出方向的接口限速qos lr circir-value [ cbs cbs-value ] [outbound ]


关闭