目录
第六章 QoS区分服务
6.1 QoS概述
QoS(Quality of Service),在带宽有限的情况下,该技术的应用一个“有保证”的策略对网络流量进行管理,实现不同的流量可以获得不同的优先级服务。
通信质量的四个指标:带宽、时延、抖动、丢包,不同业务指标的要求不同。如表6-1所示。
流量类型 | 带宽 | 时延 | 抖动 | 丢包率 |
语音 | 低 | 小 | 小 | 低 |
视频 | 高 | 小 | 小 | 低 |
FTP | 中高 | 大 | 大 | 高 |
电子邮件、HTTP网页 | 低 | 大 | 大 | 中高 |
部分流量时延大一些,抖动大些没有关系,有些即时通信要求时间必须小,抖动必须小。语音流量占用带宽64k,占用带宽比较小,不需要占用比如50M带宽,但是对时延,抖动,丢包率敏感。
从根本上来讲,想要提高通信质量,就要提高带宽,减少时延和抖动、降低丢包率。
带宽:通信网络中的最大带宽等于通信路径上的最小带宽
网络时延:传输时延+处理时延+队列时延+串行时延,其中传输时延在链路上,处理时延和队列时延在设备中,串行时延在出口。
- 传输时延:在传输介质中经过的时间
- 处理时延:网络设备对数据包进行了acl等一些列的处理的时间;
- 队列时延:处理完成后,报文在出接口的缓存队列中排队的时间;
- 串行化延迟:报文的第一个bit到最后一个bit全部变成bit流(电信号)的时间。与接口的类型有关系。
6.2 QoS模型
尽力而为模型:没有部署QoS,可以通过增大网络带宽、升级网络设备等方式来提高网络通信质量。
综合服务模型:路径上的沿途设备都需要被特定业务提供带宽和时延保证,但是实现复杂,如果没有流量发送,仍然需要独占带宽,且要求沿途设备都只是RSVP。
区分服务模型:在区分服务域中,将按照流量对报文进行标记,对不同的标记报文进入不同的缓存队列,根据队列间的调度机制,实现不同的转发服务。
6.3 报文分类和标记
6.3.1 报文的标记字段
报文分类的依据:依据报文中的VLAN数据帧中的PRI字段,MPLS Label字段中的EXP字段,IP报文中的ToS字段。根据这些字段对报文进行分类称为简单流分类。如图6.1所示,是VLAN数据中标签部分,标签中的3bit的PRI字段。
图6.1 VLAN数据帧中的优先级字段
如图6.2所示,是MPLS 数据帧中的Label部分中的EXP字段,也是3bit
图6.2 MPLS数据帧的EXP字段
如图6.3 所示,是IPv4报文中的IP-Precedence字段,标识该报文的优先级,取值范围是0-7。其他的如D代表Delay时延,T代表Throughput吞吐量,R代表reliability可靠性。
图6.3 IPv4报文中的IP-Precedence字段
由于3bit的范围比较小,当网络规模扩大,就不适合。因此在RFC2474中对IPv4报文头的ToS字段重新定义,高6bit位组成DSCP,成为DS(Differentiated Service)字段。最后两个bit仍然保持未使用。
6.3.2 DSCP的表达方式
DSCP有两种表达方式:数字形式,取值0-63;关键字表达方式,使用关键字标识DSCP值。如图6.4所示。
图 6.4 DSCP的关键字的表达方式
AFxy中,x代表不同的类型,根据不同的分类后续可以定义进入相应的队列,y代表当队列被装满的时候丢包的概率,列入AF1类中的报文,其中丢包概率由小到大的排序为AF11<AF12<AF13;
不同的关键字标识不同的语音(可以自定义):
- 一般通过CS6,CS7标识协议报文;
- EF标识语音流量,AF4用来承载语音流量的信令流量。信令流量就是电话呼叫控制,可以等待,但是语音流量无法忍受中断;
- AF3用于承载IPTV的直播流量,直播的实时性很强,需要连续性和大吞吐量来支持;
- AF2承载VOD(Video On Demand,视频单播)的流量;
AFxy的DSCP值具体值等于8x+2y,仅正对AF类有效,x占用bit位为3位(对应IP precedence位置),y占用2位,最后1bit固定为0,y取值01表示丢弃率低,取值10为中丢弃率,取值11为高丢弃率。
CS1-CS7对应的IP优先级为1-7;BE对应的IP优先级为0。
6.4 报文的分类
报文分类分为简单流分类和复杂流分类。
简单流分类,根据报文携带的优先级标记进行分类;
复杂流分类,根据报文携带的优先级、源目IP地址,端口号,MAC地址等,进行流量分类。如图6.5所示
图6.5 复杂流分类的匹配项
区分服务工作工作过程:首先将网络中的流量分为多个类,然后为每个类定义相应的处理行为,使其拥有不同的有限转发、丢包率、时延等。
参考命令:
Trust DSCP //接口下配置,信任接口下收到的报文的DSCP值,根据报文的DSCP值,查看设备默认的DSCP到LP的映射表
Display qos map-table DSCP-lp //查看设备上DSCP值到LP的映射表。
Tust 802.1p //接口下配置,接口下收到报文,按照802.1p的值进行LP映射。
本地优先级总共0-7,对应设备上的8个队列。
Qos map-table DSCP-ip //进入映射表视图
Input 46 output 1 //报文进入接口时DSCP值为46的,映射到LP为1,进入1队列
Qos map-table DSCP-DSCP
Input 46 output 10 //报文进入1队列后,将报文的DSCP从64修改为10发出,需要配合trust DSCP override使用才能生效。
Trust DSCP override //配置了该命令之后,上一条命令才会生效。否则上调命令不生效。
6.5 QoS实验:传统的队列配置实验
拓扑如图6.6所示,
AR2和AR3属于DS Domain,在AR1上进行复杂流分类。
图6.6 QoS实验拓扑
在AR1使用MQC对报文进行匹配和标记,将1.1.1.1到3.3.3.3的报文标记为EF,将1.1.1.2到3.3.3.3的报文标记为AF31,并在出接口应用,参考命令如图6.7。
图6.7 AR1上配置标记报文的MQC命令
此时在AR1和AR2之间抓包可以看到DSCP报文已被打上DSCP标记,如图6.8所示。
图6.8 从AR1到AR3的流量的DSCP成功标记为EF
在AR2的入接口G0/0/0设置Qos-map中的DSCP到LP的映射(进入队列,不同队列可以执行不同的网络质量策略),同时配置DSCP到DSCP的映射,将EF标记的流量修改为AF11,配置命令如下。
qos map-table DSCP-DSCP //全局下配置
input 46 output 10 //以上视图下配置,修改DSCP为AF11
trust DSCP override //入接口的接口视图下配置,将接口收到报文的DSCP的EF修改为10,如果不携带override参数,则不会修改DSCP值,保持为EF,并进入队列,如果不配置该命令,则报文不进入到指定队列。
dis qos queue statistics interface GigabitEthernet 0/0/1 //出接口查看队列发出的报文数量。
在AR2和AR3之间抓包显示结果,报文DSCP值为AF11(10),如图6.9所示。
图6.9 DSCP修改为了10,即AF11
由于在AR2上没有配置DSCP和LP的映射关系,因此按照默认的LP(队列发送报文),如果需要修改,则通过qos map修改对应的DSCP值与LP的映射关系,从而可以将报文放置到不同的队列中。图6.10的命令是两种Qos的配置命令,但不是本实验的配置命令,供参考
图6.10 传统Qos的命令配置
本次实验部分配置命令如下:
Qos map-table DSCP-lp //配置DSCP值与lp的映射,LP有8个,分别代表8个队列。
Input 10 output 2 //修改DSCP10的默认队列,改为2
Input 46 output 5 //修改DSCP 46(EF)的默认队列为5
配置命令如下:
Qos queue-profile test //配置后,在出接口调用
Schedule wfq 0 to 1 pq 5 //配置队列0和队列1 进行WFQ调度,队列5配置位PQ调度,如果PQ调度中存在4和5队列,则先给队列5,5没有发完之前,不发送4队列的报文。
6.6 常见队列调度算法
FIFO(First In First Out,先进先出)实现机制简单,处理速度快,不能有差别的对待优先级不同的报文。
PQ(Priority Queuing,优先级队列),使用PQ算法的不同的队列按照队列的优先级,对高优先级队列的报文提供优先转发。对于低优先级队列可能会出现饿死现象。语音一般放入到高优先级队列。
WRR(Weighted Round Robin,加权轮训队列),按照一定的权重(权重设置按照字节数设置,调度时按照数据包个数调度转发),提供依次转发的调度,但是由于权重不同,因此轮训转发也存在差异,保证每一个队列都有被调度的机会。但是按照数据包个数进行调度,容易出现包长尺寸不同的报文不平等调度;低时延业务得不到及时 调度(语音)。
DRR(Deficit Round Robin基于赤字的轮训队列),WRR调度是按照报文个数进行调度,而DRR是按照报文长度进行调度。如果报文长度超过了队列的调度能力,DRR调度允许出现负权重,以保证长报文也能够得到调度。但下次轮循调度时该队列将不会被调度,直到权重为正,该队列才会参与DRR调度。
FQ(Fair Queue,公平队列)的目的是尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优,让不同队列获得公平的调度机会。
WFQ(Weighted Fair Queue)调度即加权公平队列调度,在FQ的基础上增加了优先权方面的考虑,使高优先权的报文获得优先调度的机会多于低优先权的报文。
WFQ调度方式有两种 :根据报文的协议类型,源目TCP或者UDP端口号,源目IP地址,Tos字段优先级等自动进行分类,并且经可能多的提供队列(默认256,最多可以调整到4096),已将每个流量均匀的放入到不同队列中,从而在总体上平衡各个流的延迟,在出队的时候WFQ按流的优先级(Precedence)来分配每个流应该占用的带宽,优先级值越小,所得的带宽越少,优先级的数值越大,所得的带宽越多,这种方式只有CBQ的Default-class支持;如果不是CBQ,则是通过(LP)优先级来设置,例如Schedule wfq 0 to 1 。
优先级的分类:通过优先级将流量标记为本地优先级(LP),每个本地优先级对应一个队列号。每个接口预配8个队列,报文按照队列号进入队列,队列的WFQ权重相同,流量平均分配接口带宽,用户通过配置修改权重,高优先级和低优先级按照权重比例分配带宽。
WFQ是根据加权对各流进行带宽进行划分。
PQ+WFQ的调度方式结合了PQ和WFQ,部分队列使用PQ算法,部分队列使用WFQ算法,详细见产品文档《拥塞管理和拥塞避免配置-拥塞管理和拥塞避免原理描述》
6.7 CBQ队列
6.7.1 CBQ队列
思科存在类似技术CBWFQ;华为CBQ对垒通过MQC模块实现对业务报文带宽的控制,可以在流行为中设置队列的带宽。
CBQ提供三种队列:
- EF队列:满足低时延业务
- AF队列:满足需要带宽保证的关键数据业务
- BE队列:满足不需要严格Qos保证的尽力转发业务
EF队列:EF队列是具有高优先级的队列,一个或多个类的报文可以被设定进入EF队列,不同类别的报文可设定占用不同的带宽。在调度出队的时候,若EF队列中有报文,会优先得到调度,以保证其获得低时延。当接口发生拥塞时,EF队列的报文会优先发送,但为了防止低优先级队列(AF、BE队列)得不到调度,EF队列可以设置带宽限速。当接口不拥塞时,EF队列可以占用AF、BE的空闲带宽。这样,属于EF队列的报文既可以获得空闲的带宽,又不会占用超出规定的带宽,保护了其他报文的应得带宽。设备除了提供普通的EF队列,还支持一种特殊的EF队列—LLQ队列。LLQ队列较EF队列而言,时延更低。这为时延敏感的应用(如VoIP业务)提供了良好的服务质量保证。该两种队列方式出现拥塞只有尾丢弃机制。
AF队列:每个AF队列分别对应一类报文,用户可以设定每类报文占用的带宽。在系统调度报文出队列的时候,按用户为各类报文设定的带宽将报文出队列发送,可以实现各个类的队列的公平调度。当接口有剩余带宽时,AF队列按照权重分享剩余带宽。
注意:
BE队列:当报文不匹配用户设定的所有类别时,报文被送入系统定义的缺省类。虽然允许为缺省类配置AF队列,并配置带宽,但是更多的情况是为缺省类配置BE队列。BE队列使用WFQ调度,使所有进入缺省类的报文进行基于流的队列调度。
EF队列需要预留足够的带宽,EF队列设置的是最高带宽,如果带宽不够,将会出现 尾丢弃丢包,对语音业务造成影响,没有拥塞的时候,才会使用AF队列和BE队列。因此需要预留足够的带宽。AF队列设置带宽是最低带宽,没有拥塞的时候,按照权重分享带宽。存在拥塞的时候出现尾丢弃或者设置Wred丢弃策略。
CBQ的BE队列中的使用WFQ调度,所有缺省报文属于基于流的队列调度。
Qos queue-profile中的队列 ,传统的Qos配置方式中的WFQ调度(8队列),属于基于类的队列调度。
6.7.2QoS实验:CBQ队列配置实验
如图6.10,是CBQ队列实验,框内是DS Domain,在AR1上进行复杂流分类,将DSCP值设置为EF和AF31,1.1.1.1到3.3.3.3 的标记为EF,1.1.1.2到3.3.3.3的标记为AF31。
图6.10 CBQ队列实验拓扑
在AR2上部署CBQ,通过简单流分类,在G0/0/1出接口的Outbound方向上实现带宽的分配,还可使实现策略路由,监管,整形等复杂流量控制能力。配置命令如图6.11所示,可以看到,简单流分类通过MQC匹配类,匹配项是DSCP,当AR1在报文中携带DSCP,被AR2通过流分类再次匹配,该方式称为简单流分类。区别于复杂流分类,复杂流分类的方式是通过ACL等匹配报文特征进行分类。
将EF报文加入到LLQ队列,队列带宽在拥塞时最多5M,将AF31的分类的流量加入到AF队列,分配最小带宽值为10M,在AR2的出接口G0/0/1上调用流策略,实现报文的加入CBQ队列的动作。该方式情况下入口不需要用trust DSCP命令,该命令用于将DSCP对应的报文加入到传统的Qos队列(8个队列)。
如图6.11 AR2上的简单流分类和CBQ的配置命令
实现 端到端的QoS部署,需要在沿途的每个设备上进行Qos(MQC)部署,信任边界使用复杂流分类进行分类,标记报文,在信任边界内部,通过简单流分类使用已标记报文,实现报文分类,对不同分类实现不同的区分服务。
6.7.3 队列总结
队列实现拥塞管理,华为有两种方式 :
- Qos profile中队列(传统方式),通过DSCP,exp等方式映射到LP,本地优先级(LP)范围0-7对应8个队列,通过qos map 映射表,将报文映射到LP中,再使用Qos profile设置队列调度机制,在出接口应用qos profile,将对应报文根据映射表进入到LP(队列中)。
- CBQ的队列有四个:EF队列、AF队列、LLQ队列、BE队列。通过MQC中的流行为,将对应的数据流加入到对应的队列中,进行调度。
6.8 拥塞避免
6.8.1尾丢弃与RED
由于队列长度有限,当某一队列已经被装满时,传统的处理方式会将后续向该队列发送的报文全部丢弃,直到拥塞解除,这种处理方式叫做尾丢弃(Tail Drop)。
尾丢弃引起TCP全局同步现象(滑动窗口机制)
- TCP连接建立完成后,如果发生拥塞,队列排满进行尾丢弃;
- 偶遇拥塞,大量TCP连接包被丢弃; TCP确认包由于拥塞被丢掉,而没被搜到,认为发生拥塞,且将TCP 的窗口字段值调小,整体流量同时减小。
- 拥塞消除,进入TCP慢启动过程,窗口字段慢慢增大,进而最终再次进入到拥塞过程。最终所有数据流的带宽都趋于同时降低,同时进行慢启动,趋于同步,导致带宽利用率不高。
- 解决办法:RED,为避免TCP全局同步,在队列未装满时随机丢弃一些报文,通过预先降低一部分TCP传输速率来尽可能来延缓TCP全局同步到来,这种预先机随机丢弃报文的行为被称为随机早期检测。通过设置队列的丢弃的低门限和高门限,对两个门限的丢弃率为多少。小于低门限不丢弃报文,在低门限和高门限之间,存在随机丢弃概率,队列到达高门限的时候,丢弃率是最大丢弃概率。如图6.12所示。
图6.12 RED的工作原理
尾丢弃导致TCP饿死现象
当队列排满,TCP的窗口调整下降,导致TCP传输效率降低,UDP报文将可能占据带宽,进一步导致TCP的窗口字段值下降,最终带宽将被UDP报文占据带宽。
尾丢弃会导致无差别的丢弃
对流量不能进行区分丢弃,只能将队列尾部的报文进行丢弃。
6.8.2 WRED
WRED技术可以通过对不同优先级数据包或队列设置相应的丢弃策略,实现对不同流量进行区分丢弃。
WRED弥补了尾丢弃的三个确定,大大提高链路利用率。如图6.13所示。
图6.13 WRED丢弃机制
配置命令图6.14所示:
图6.14 WRED的配置
丢弃模板中对DSCP不同值设置不同的丢弃门限,同时在队列模板中调用丢弃模板,队列模板的队列中没有对应的DSCP值的报文,该丢弃模板的配置是无效的。
6.9 流量监管和流量整形技术
流量监管可以在入方向做,也可以在出方向做;对不同类别的报文分别实现带宽限速。当链路空闲时造成带宽浪费。关键命令car,对流量削峰不填谷
流量整形只能在出方向做,只能在出方向做,对于超出带宽的部分缓存,只有出方向的具有缓存功能。关键命令gts,对流量削峰填谷。
6.9.1令牌桶技术
关于令牌桶处理报文的方式,RFC定义了以下标记算法:
单速率三色标记(single rate three color marker,srTCM,或称单速双桶算法),主要关注报文尺寸的突发。
双速率三色标记(Two rate three color marker,trTCM,或称为双速双桶算法),算法,主要关注报文速率的突发。
令牌桶算法的评估结果都是为报文打上红、黄、绿三种颜色的标记,所以称为“三色标记”。QoS会根据报文的颜色做相应的处理,两种算法都可以工作于色盲模式和色敏模式下。色盲模式是只不关注报文颜色标记。
6.9.2 单速双桶
图6.15 单速双桶算法
如图6.15所示,为方便描述将两个令牌桶称为C桶和E桶,用Tc和Te表示桶中的令牌数量。单速双桶有3个参数:
- CIR(Committed Information Rate):承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
- CBS(Committed Burst Size):承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;
- EBS(Excess Burst Size):超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
系统按照CIR速率向桶中投放令牌:
- 若Tc<CBS,Tc增加;
- 若Tc=CBS,Te<EBS,Te增加;
- 若Tc=CBS,Te=EBS,则都不增加。
对于到达的报文,用B表示报文的大小:
- 若B≤Tc,报文被标记为绿色,且Tc减少B;
- 若Tc<B≤Te,报文被标记为黄色,且Te减少B;
- 若Te<B,报文被标记为红色,且Tc和Te都不减少。
单速双桶模式允许流量突发,当用户的流量速率小于配置的CIR时,报文被标记为绿色;当用户的突发流量大于配置的CBS而小于EBS时,报文被标记为黄色;当用户的突发流量大于配置的EBS时,报文被标记为红色。可以配置绿色黄色转发,红色丢弃。
在上述情况下,如果不允许突发尺寸,即TE与TC相等,即是单速单通
注意:
CIR如果设置为1Mbit/s,则C桶新增令牌=CIR*1ms=1000bits=125Bytes
6.9.3 双速双桶
双速双桶采用RFC2698定义的双速三色标记器trTCM(A Two Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
如图6.16所示,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。双速双桶有4个参数:
PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR;
CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量;
CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
系统按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:
- 当Tp<PBS时,P桶中令牌数增加,否则不增加。
- 当Tc<CBS时,C桶中令牌数增加,否则不增加。
对于到达的报文,用B表示报文的大小:
- 若Tp<B,报文被标记为红色;
- 若Tc<B≤Tp,报文被标记为黄色,且Tp减少B;
- 若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。
双速双桶模式允许流量速率突发,当用户的流量速率小于配置的CIR时,报文被标记为绿色;当用户的流量大于CIR而小于PIR时,报文被标记为黄色;当用户的流量大于PIR时,报文被标记为红色。
图6.16 双速双桶的原理
双速是两个桶的令牌投速不同。如果报文尺寸小于CBS的话,C桶和P桶令牌都会减少。当CIR和PIR相同的时候,就与单速单桶效果一样。
6.9.4 流量监管
流量监管可以对不同流量进行监督,对超出部分的流量进行“惩罚”,使进入的流量被限制在一个合理的范围之内,从而保护网络资源和企业网用户的利益。
如图6.17所示,流量监管的三部分组成。
图6.17 流量监管的三部分组成
- Meter:通过令牌桶机制对网络流量进行度量,向Marker输出度量结果。
- Marker:根据Meter的度量结果对报文进行染色,报文会被染成green、yellow、red三种颜色。
- Action:根据Marker对报文的染色结果,对报文进行一些动作,动作包括:
- pass:对测量结果为“符合”的报文继续转发。
- remark + pass:对测量结果为“不符合”的报文修改其内部优先级后再转发。
- discard:对测量结果为“不符合”的报文进行丢弃。
经过流量监管,如果某流量速率超过标准,超出标准部分的报文其测量结果为“不符合”,此时设备可以选择降低报文优先级再进行转发或者直接丢弃。缺省情况下,green、yellow进行转发,red报文丢弃。
配置流量监管:MQC方式进行配置、接口下配置;以下是接口配置命令
Qos car xx //在接口下直接配置流量监管
car //在流行为中进行配置
statistic enable //流行为中使能流量统计功能
6.9.5流量整形
流量整形是一种主动调整流量输出速率的措施,其作用是限制流量与突发,使这类报文以比较均匀的速率向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
流量整形是一种队列的流量控制技术,可以对从接口上经过的某类报文进行速率限制。
下面以采用单速单桶技术的基于流的队列整形为例介绍流量整形的处理流程,其处理流程如图6.18所示,流量整形流程图。
图6.19 流量整形流程图
在接口的出方向进行限速,整形,配置命令如下:
Qos gts cir xxx //在接口下进行限速和整形,是单速单通,只有cir和cbs参数
自适应流量整形,需要和NQA(网络质量分析)技术结合使用,调用命令如下
qos gts adaptation-profile xx //接口下调用自适应模板,自适应模板也需要配置。
可以基于队列整形,参考命令如下:
Qos queue-profile xx //接口下调用队列模板,队列模板中设置整形参数。
也可以直接配置物理接口限速
Qos lr pct xxx //在接口下配置该接口物理限速,pct参数是百分比。
总结:
限速时,在接口的入方向上可以配置流量监管,在出方向可以设置流量监管和流量整形。
6.10 HQoS
HQoS基于队列实现层次化调度,CPE上支持三级队列:Level3流队列(Flow Queue)、Level2用户队列(Subscriber Queue)、Level1接口队列(Port Queue)。如图6.20 所示。
图6.20 HQoS的结构
HQoS队列:流队列调度器和用户调度器都支持PQ、WFQ、PQ+WFQ调度。接口队列调度器使用轮训调度RR方式。各队列使用的调度算法如图6.21,3级队列使用PQ/WFQ,2级队列使用PQ/WFQ,1级队列使用RR轮训队列。
图6.21 各层队列的调度算法
HQoS整形:整形器实现报文的缓存及限速功能。设备支持三级整形器,即流队列整形器、用户队列整形器和接口整形器。报文进入设备后先缓存到队列,在限速从队列发送报文,整形器会配合限速算法,保证承诺速率并限制最大速率。
图6.22 HQoS整形
HQoS丢弃器:
- 接口队列:尾丢弃
- 用户队列:尾丢弃
- 流队列:WRED或尾丢弃
6.11 HQoS配置
6.11.1 实验拓扑
HQoS的配置实验拓扑图6.23所示,AR1拓扑中通过WAN连接企业总部,通过AR1直接连接SW4来模拟。AR1的G0/0/2接口的子接口配置IP地址4.1和5.1,在G0/0/2的物理接口配置3.1地址。AR1的G0/0/1和G0/0/2切换2层接口配置分别配置VLAN10 和VLAN20。
图6.23 HQoS实验拓扑图
采用流策略嵌套的方式配置HQoS,实现对不同业务的差分服务,思路如下:
- 创建VLAN、VLANIF,并配置各接口,使企业用户能通过Router访问WAN侧网络。
- 在Router上配置VLAN10和VLAN20的子流策略,基于DSCP优先级进行流分类,语音报文入LLQ队列,网管控制报文进入EF队列,视频和数据报文进入AF队列,并绑定丢弃模板。
- 在Router上配置父流策略,基于VLAN ID进行流分类,对来自不同VLAN的报文进行流量整形,并为其绑定相应的子流策略。
- 在Router与WAN侧网络连接的接口出方向上应用父流策略,实现对不同用户的不同业务流量的区分,提供更为精细化的服务质量。
6.11.1 配置命令参考
在交换机上配置VLAN 并绑定对应接口,配置结果如图6.24所示。
图6.24 SW2的VLAN配置
在R1上配置如下,使用VLANIF作为PC的网关。详细配置如图6.25所示。
图6.25 R1配置VLANIF接口
同时在R1上的G0/0/2接口配置子接口和物理接口的IP地址分别时物理接口的IP地址为192.168.3.1/24;子接口的IP地址分别为192.168.4.1/24和192.168.5.1/24;详细如图6.26所示。
图6.26 R1联WAN的接口配置
在SW1上配置MQC对报文进行复杂流分类,在出口G0/0/4调用,配置命令如图6.27所示
图6.27 SW1上的复杂流分类
SW2和SW3上做类似配置,对报文进行标记DSCP值,配置对应的VLAN接口,使得AR1收到的报文带有对应的DSCP值。以下是针对各分支的流量配置的子流策略。在AR1上进行简单流分类,配置流分类命令如下:
traffic classifier VOICE operator or
if-match dscp ef
traffic classifier VIDEO operator or
if-match dscp af21
traffic classifier CONTROL operator or
if-match dscp cs6
traffic classifier DATA operator or
if-match dscp af11
在AR1上对DATA数据和VIDEO数据配置丢弃模板,配置命令如下:
drop-profile DATA
wred dscp
dscp af11 low-limit 70 high-limit 90 discard-percentage 60
drop-profile VIDEO
wred dscp
dscp af21 low-limit 80 high-limit 95 discard-percentage 60
在AR1上配置流行为命令如下:
traffic behavior VOICE
queue llq bandwidth pct 15
traffic behavior VIDEO
queue af bandwidth pct 30
drop-profile VIDEO
traffic behavior CONTROL
queue af bandwidth pct 5
traffic behavior DATA
queue af bandwidth pct 45
drop-profile DATA
在AR1上配置分支1和分支2的子流策略,关联上述流分类和流行为。策略名称分别为traffic policy groupa-sub和traffic policy groupb-sub;
在AR1上配置父流策略,首先配置父流分类,选择VLAN10的流量作为分类A(用户A),选择VLAN20的流量作为分类B(用户B),也可以通过其他特征匹配。
父流行为配置整形参数(gts),关联子流策略。配置父流策略,将所有的父流行为和父流分类关联。在AR1的的G0/0/2接口出方向应用 父策略。
父流策略与子流策略的区别在于,子流行为定义了丢弃模板,父流行为直接调用子流行为,父流行为中的流分类定义了整个客户流量,子流行为中的流分类定义了客户的某个流量。