本文介绍交换机的流量监管、流量整形和接口限速的原理,并且介绍相关参数和配置方法。
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的流量监管包括以下四个主要步骤:
-
配置流分类。通过定义流分类中的匹配规则,使需要限速的流量归入此类。
-
配置流行为。创建并进入流行为视图后,配置CAR动作。
-
配置流策略。创建并进入流策略视图后,将流分类与流行为绑定。
-
应用流策略。将流策略应用到相应的接口、VLAN或全局视图。
以下示例中,限制所有进入接口GE1/0/1流量的速率。在流行为b1中配置流量监管动作:承诺信息速率(保证能够通过的平均速率)为200000kbit/s,峰值信息速率(最大能够通过的速率)为2500000kbit/s,允许绿色报文正常发送,允许黄色报文通过,丢弃红色报文。
<HUAWEI> 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 //将流策略p
配置基于MQC的流量监管后,执行display traffic policy statistics命令,可以查看流量统计信息。
[HUAWEI] display traffic policy statistics allInterface: 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
配置接口限速
入方向接口限速的配置方法如下:
-
配置CAR参数:qos car car-name cir cir-value [ cbs cbs-value [ pbs pbs-value ] | pir pir-value [ cbs cbs-value pbs pbs-value ] ]
-
进入接口视图:interfaceinterface-type interface-number
-
在接口下应用CAR模板:qos car inbound car-name
-
(可选)查看接口入方向的报文统计信息:
-
-
display qos car statistics interfaceinterface-type interface-numberinbound(显示指定接口入方向上通过和丢弃的报文统计信息)
-
display qos car statistics all [ nonzero ](显示所有应用QoS CAR后的接口入方向上的报文统计信息)
-
出方向接口限速的配置方法如下:
-
进入接口视图:执行命令interfaceinterface-type interface-number。
-
配置出方向的接口限速:qos lr circir-value [ cbs cbs-value ] [outbound ]