Hillstone QoS流量控制解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hillstone QoS流量控制解决方案
QoS介绍
QoS(Quality of Service)即“服务质量”。
它是指网络为特定流量提供更高优先服务的同时控制抖动和延迟的能力,并且能够降低数据传输丢包率。
当网络过载或拥塞时,QoS 能够确保重要业务流量的正常传输。
QoS的实现
通常来讲,实现QoS管理功能的工具包括:
♦分类和标记工具
♦管制和整形工具
♦拥塞管理工具
♦拥塞避免工具
图22-1描绘了QoS的体系结构。
图22-1:QoS体系结构
如图22-1所示,数据包通过入接口进入系统后,首先会被分类和标记。
在这一过程中,系统会通过管制机制丢弃一些数据包。
然后,根据标记结果,数据包会被再次分类。
系统会通过拥塞管理(Congection Management)机制和拥塞避免(Congection Avoidence)机制对数据包进行管理,为数据包排列优先次序并且在发生拥塞时保证高优先级数据包的顺利通过。
最后,系统会将经过QoS管理的数据
包通过出接口发送出去。
分类和标记
分类和标记的过程就是识别出需进行不同处理(优先或者区分)的流量的过程。
分类和标记是执行QoS管理的第一步。
分类和标记应该在和源主机尽量接近的地方进行。
分类
通常来讲,分类工具依据封装报文的头部信息对流量进行分类。
为做出分类决定,分类工具需要对头部信息进行逐层深入检查。
图22-2显示出头部信息的分类字段,而表22-1列出不同字段的分类标准。
图22-2:分类字段
表22-1:分类标准
标记
可携带标记的字段如下:
♦第2层标记字段:802.1Q/p。
♦第3层标记字段:IP优先权和DSCP。
802.1Q/p
通过设置802.1Q头的802.1p用户优先级位(CoS)来标记以太网帧。
在以太网第2层以太网帧中至于8种服务类别(0到7)可以标记。
数值的分配请参阅表22-2。
表22-2:应用类型值
IP优先权和DSCP
IP优先权与CoS相同,有8种服务(0到7)可以标记,请参考表22-2。
DSCP(DiffServ Code Point)是区分服务代码点。
DSCP提供6位字段用于QoS标记,这6位字段是与IP优先权相同的3位,再加上接下来的ToS字段的3位。
因此,DSCP值的范围是0到63。
图22-3为DSCP和IP优先权位示意图。
图22-3为DSCP和IP优先权位示意图
DSCP值有两种表达方法,数字形式和关键字形式。
关键字形式的DSCP值称为逐跳行为(PHB)。
目前有三类已定义的PHB,分别是尽力服务(BE或者DSCP 0)、
确保转发(AFxy)和加速转发(EF)。
具体信息请参考RFC2547、2597和3246。
DSCP值将在后面的QoS处理中起到关键性的作用。
管制和整形
QoS管理提供管制和整形功能。
管制和整形的作用是识别流量违约并做出响应。
管制和整形使用同样的算法识别流量违约,但是做出的响应不同。
管制工具对流量违约进行即时检查,发现违约后立即采取设定的动作进行处理。
例如,管制工具可以确定负载是否超出了定义的流量速率,然后对超出部分的流量进行重新标记或者直接丢弃。
管制工具可以应用在入接口和出接口上。
整形工具是一个与排队机制一起工作的流量平滑工具。
整形的目的是将所有的流量发送到同一个接口,并且控制流量永远不超出指定的速率,使流量平滑地通过该接口发送出去。
整形工具只可以应用在出接口上。
管制与整形相比较,具有以下区别,参见表22-3。
表22-2:管制与整形比较
令牌桶算法
SA系列安全网关通过使用令牌桶算法评估流量是否违约。
令牌桶是一个存放令牌的容器,它有一定的容量。
系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。
在用令牌桶评估流量时,是以令牌桶中的令牌数量是否足够满足数据包的转发为依据的。
如果桶中存在足够的令牌可以用来转发数据包(通常一个令牌拥有一个比特的转发权限),称流量符合(conform)这个规格,否则称为超标(excess)。
评估流量时令牌桶的参数设置包括:
♦CIR(Conmitted Information Rate):向桶中放置令牌的速率,即允许的流量的平均速率。
♦CBS(Committed Burst Size):第一个令牌桶的容量,即每次突发所允许的最大的流量值。
该值必须大于最大包的长度。
该令牌桶简称为C桶。
♦EBS(Excess Burst Size):第二个令牌桶的容量,即为允许的超出突发的
最大流量值。
该令牌桶简称为E桶。
当使用两个令牌桶进行流量评估时,依据“C桶有足够的令牌”、“C桶令牌不足,但E桶足够”以及“C桶和E桶都没有足够的令牌”的情况,分别实施不同的操作控制。
图22-3为双令牌桶算法示意图。
图22-3:双令牌桶算法示意图
图22-3中,B=数据包的大小;Tc=CBS中令牌的数量;Te=EBS中令牌的数量。
当CBS中的令牌数大于数据包的大小时,则该数据包符合规格(Conform),系统将根据配置进行操作;当CSB中的令牌数小于数据包的大小,系统将检查EBS
中令牌的数量,如果EBS中令牌数量大于数据包的大小,则该数据包超出(Exceed),系统根据配置进行操作,如果EBS中的令牌数也小于数据包的大小,则该数据包违约,系统再根据配置进行操作。
拥塞管理
拥塞管理工具是QoS工具中最重要的一个。
拥塞管理工具即排队工具,应用在产生拥塞的接口上。
由于网络之间的速率不匹配,在广域网或者局域网中都有可能出现拥塞。
只有当接口发生拥塞时,排队工具才会被启用。
SA系列安全网关支持加权公平队列(CBWFQ)和低延迟队列(LLQ)。
♦CBWFQ:基于类别的加权公平队列。
使用户能够为某一类流量配置最小带宽。
♦LLQ:低延迟队列。
LLQ是PQ、CQ和WFQ的综合算法。
LLQ一般用于语音和交互式视频。
在配置时,所有LLQ类型的应用所占总带宽不能超过链路
带宽的33%。
拥塞避免
拥塞避免机制是排队算法的补充,并且依赖于排队算法。
使用拥塞避免工具的目的是为了处理基于TCP的数据流。
SA系列安全网关使用加权早期随机检测(WRED)算法实现拥塞避免。
配置QoS
SA系列安全网关上通过配置QoS Profile,然后将配置好的QoS Profile应用到接口上来实现QoS管理。
用户可以将多个QoS Profile应用到一个接口上。
通常情况下,配置QoS,需要经过以下三个步骤:
1.配置Class。
该步骤为流量识别分类的过程。
Class定义设备需要匹配的流量,从而设备
可以将流量进行区分。
2.配置QoS Profile。
QoS Profile定义了对匹配的流量所做的操作,包括管制、整形、拥塞管理
和拥塞避免。
3.绑定QoS Profile到接口。
只有将配置好的QoS Profile绑定到接口上,QoS功能才能在安全网关上
起作用。
配置Class
SA系列安全网关支持5种类型的匹配条件:
♦应用类型匹配条件
♦DSCP值匹配条件
♦IP地址范围匹配条件
♦QoS标签匹配条件
♦IP优先权值匹配条件
定义流量的匹配条件,需要在Class配置模式下进行。
进入Class配置模式,在全局配置模式下使用以下命令:
class-map class-name
♦class-name–指定class的名称。
执行该命令后,系统创建指定的class,并且进入class配置模式。
如果指定的名称已存在,则直接进入class配置
模式。
StoneOS支持最多16个class。
并且,系统提供一个默认class,名为class-default。
在进行QoS管理时,没有匹配到的流量都将进入class-default。
class-default的默认队列是CBWFQ,它的权是接口带宽减去所有被预留的带宽。
在进行CBWFQ计算时,建议用户为class-default预留25%的带宽,该数值为经过实践证明的最佳预留值。
在全局配置模式下使用no class-map clas-name命令删除指定的class。
配置应用类型匹配条件
SA系列安全网关支持近百中应用类型,例如FTP、SMTP以及OSFP等。
定义某种应用类型匹配条件,在Class配置模式下,使用以下命令:
match application app-name
♦app-name–指定应用类型的名称。
改名称为系统预定义服务和用户自定义服务。
使用多条该命令定义多种匹配应用类型。
在Class配置模式下,使用no match application app-name命令删除指定的应用类型。
配置DSCP值匹配条件
定义DSCP值匹配条件,在Class配置模式下,使用以下命令:match dscp dscp-value1 [dscp-value2] [dscp-value3]
[dscp-value4]
♦dscp-value–指定DSCP的值。
安全网关支持两种DSCP值的表达方式,分别是0到63的数字和RFC中预定义的DSCP值,例如af11、cs2等。
一条命令中最多可以指定4个DSCP值,所有数值之间为“或”的关系。
使用多条该命令配置多个DSCP值匹配条件。
在Class配置模式下,使用no match dscp dscp-value1 [dscp-value2] [dscp-value3] [dscp-value4]命令删除指定的SDCP值匹配条件。
配置IP地址范围匹配条件
定义IP地址范围匹配条件,在Class配置模式下,使用以下命令:match ip-range start-ip end-ip
♦start-ip–指定IP地址范围的起始IP地址。
♦end-ip–指定IP地址范围的结束IP地址。
一个ip-range不能超过一个B类地址的范围。
使用多条该命令配置多个地址范围匹配条件。
在Class配置模式下,使用no match ip-range start-ip end-ip命令删除指定的IP地址范围匹配条件。
配置QoS标签匹配条件
定义QoS标签匹配条件,在Class配置模式下,使用以下命令:match policy-qos-tag tag-value
♦tag-value–指定QoS标签的值。
范围是1到16。
用户在创建策略规则或者P2P Profile时,可以配置QoS标签。
使用多条该命令配置多个QoS标签匹配条件。
在Class配置模式下,使用no match policy-qos-tag tag-value命令删除指定的QoS标签匹配条件。
配置IP优先权匹配条件
定义IP优先权(IP Precedence)匹配条件,在Class配置模式下,使用以下命令:
match precedence precedence-value1 [precedence-value2]
[precedence-value3] [precedence-value4]
♦precedence-value–指定IP优先权值。
范围是0到7。
一条命令中最多可以指定4个IP优先权值,所有数值之间为“或”的关系。
使用多条该命令配置多个IP优先权匹配条件。
在Class配置模式下,使用no match precedence precedence-value1 [precedence-value2] [precedence-value3] [precedence-value4]命令删除指定的IP优先权匹配条件。
显示Class信息
显示Class信息,在任何模式下使用以下命令:
show class-map [class-name]
♦class-name–显示指定名称的class信息。
如不指定该参数,则显示系统中所有class的信息。
配置QoS Profile
QoS Profile配置了对匹配流量进行的QoS管理操作。
QoS Profile的配置需要在QoS Profile配置模式下进行。
进入QoS Profile配置模式,在全局配置模式下,使用以下命令:
qos-profile qos-profile-name
♦qos-profile-name–指定QoS Profile的名称。
执行该命令后,系统创建指定名称的QoS Profile,并且进入该QoS Profile配置模式;如果指定
的名称已存在,则直接进入QoS Profile配置模式。
在全局配置模式下,使用no qos-profile qos-profile-name命令删除指定的QoS Profile。
进入QoS Profile配置模式后,用户需要首先为该QoS Profile指定class。
然后为符合class匹配条件的流量指定QoS管理操作。
为QoS Profile指定class,在QoS Profile配置模式下,使用以下命令:class class-name
♦class-name–指定class的名称。
执行该命令后,系统进入QoS Profile 的Class配置模式。
使用no class class-name命令从QoS Profile中删除指定的class。
在QoS Profile的Class配置模式下,用户可以为匹配的流量指定QoS管理操作,包括:
♦指定最小带宽保证
♦配置管制功能
♦配置整形功能
♦配置基于IP的QoS
♦配置低延迟队列
♦设置DSCP值
♦设置IP优先权值
♦配置匹配优先级
指定最小带宽保证
为QoS Profile中的class指定最小带宽,在QoS Profile的Class配置模式下使用以下命令:
bandwidth bandwidth-value
♦bandwidth-value–指定class的最小带宽值,单位是kbps。
该带宽值也是系统进行CBWFQ计算时的权重值。
范围是32到1000000。
在QoS Profile的Class配置模式下,使用no bandwidth命令取消class的最小带宽配置。
配置管制功能
流量管制功能对流量进行限制,并且对符合规格(Conform)的流量以及超出(Exceed)流量根据配置进行不同的操作。
配置流量管制功能,在QoS Profile的Class配置模式下使用以下命令:
police cir-value[[cbs-value] [ebs-value]] conform-action{drop | set-dscp-transmit dscp-value | set-prec-transmit
precedence-value | transmit} exceed-action {drop |
set-dscp-transmit dscp-value | set-prec-transmit
precedence-value | transmit}
♦cir-value–指定CIR,即向令牌桶中放置令牌的速率,单位是kbps。
该数值为class的最大带宽限制值,必须小于接口的实际带宽。
范围是32
到1000000。
♦cbs-value–指定第一个令牌桶的容量,即CBS的大小,单位是字节。
该数值必须小于接口的实际带宽。
范围是2048到51200000。
♦ebs-value–指定第二个令牌桶的容量,即EBS的大小,单位是字节。
该数值必须小于接口的实际带宽。
范围是2048到51200000。
♦conform-action–指定对符合规格数据包所做的操作,可以是以下各操作中的一种:
∙drop:丢弃数据包。
∙set-dscp-transmit dscp-value:为数据包设置DSCP值,然后传输数据包。
∙set-prec-transmit precedence-value:为数据包设置IP优先权值,然后传输数据包。
∙transmit:不改变并且传输数据包。
♦exceed-action- 指定对超出数据包所做的操作。
可选择操作与comform-action相同。
在QoS Profile的Class配置模式下使用no police命令取消class管制功能的配置。
配置整形功能
流量整形限制数据传输速率,使流量平滑地通过接口发送出去。
流量整形为出接口工具。
配置class的整形功能,在QoS Profile的Class配置模式下使用以下命
令:
shape cir-value [[cbs-value] [ebs-value]]
♦cir-value–指定CIR,即向令牌桶中放置令牌的速率,单位是kbps。
该数值为class的最大带宽限制值,必须小于接口的实际带宽。
范围是32
到1000000。
♦cbs-value–指定第一个令牌桶的容量,即CBS的大小,单位是字节。
该数值必须小于接口的实际带宽。
范围是2048到51200000。
♦ebs-value–指定第二个令牌桶的容量,即EBS的大小,单位是字节。
该数值必须小于接口的实际带宽。
范围是2048到51200000。
在QoS Profile的Class配置模式下使用no shape命令取消class整形功能的配置。
配置基于IP的QoS
基于IP的QoS能够对局域网里的每一个IP进行最大带宽限制。
实现基于IP 的QoS,QoS Profile中的所有class都必须为IP Range匹配类型。
配置基于IP 的QoS,在QoS Profile的Class配置模式下使用以下命令:
ip-qos {shared-bandwidth | per-ip}
♦shared-bandwidth–范围内的所有IP地址共享指定带宽(通过shape (出方向)或者police(入方向)命令配置)。
IP地址范围由class的
ip-range关键字指定。
♦per-ip–指定范围内每一个IP地址能够得到的最大带宽为指定带宽(通过shape(出方向)或者police(入方向)命令配置)。
IP地址范围由class
的ip-range关键字指定。
在QoS Profile的Class配置模式下,使用no ip-qos{shared-bandwidth| per-ip}命令取消基于IP的QoS的配置。
配置低延迟队列
低延迟队列(LLQ)是PQ、CQ和WFQ的综合算法。
LLQ一般用于语音和交互式视频。
在配置时,所有LLQ类型的应用所占总带宽不能超过链路带宽的33%。
配置class的低延迟队列,在QoS Profile的Class配置模式下使用以下命令:
priority bandwidth-value [burst-size]
♦bandwidth-value–指定预留带宽,单位是kbps。
范围是32到1000000。
该带宽值既是class流量的最大带宽限制,也是class的最小带
宽保证。
♦burst-size–指定突发流量大小,单位为字节。
范围是32到51200000。
在QoS Profile的Class配置模式下使用no priority命令取消class的低延迟队列配置。
设置DSCP值
用户可以通过设置DSCP值标记数据包,之后,其它的QoS功能可以根据该命令设置DSCP值对数据包进行操作。
同一个数据包不能既设置DSCP值,又设置IP 优先权值,二者只能选其一。
为class的流量设置DSCP值,在QoS Profile的Class 配置模式下使用以下命令:
set dscp dscp-value
♦dscp-value–指定DSCP值,可以数字形式(0到63)或者关键字形式(例如af11、cs2等)。
在QoS Profile的Class配置模式下使用no set dscp命令取消class的DSCP 值配置。
设置IP优先权值
用户可以通过设置IP优先权值标记数据包,之后,其它的QoS功能可以根据该命令设置DSCP值对数据包进行操作。
同一个数据包不能既设置IP优先权值,又设置DSCP值,二者只能选其一。
为class的流量设置IP优先权值,在QoS Profile 的Class配置模式下使用以下命令:
set precedence precedence-value
♦precedence-value –指定IP优先权值范围是0到7。
在QoS Profile的Class配置模式下使用no set precedence命令取消class的IP优先权值配置。
配置匹配优先级
有时,一些流量可能会匹配QoS Profile中的多个class,此时,就需要根据class 的优先级决定选择哪一个class。
指定匹配优先级,在QoS Profile的Class配置模式下使用以下命令:
match-priority priority-number
♦priority-number–指定class的匹配优先级。
范围是1到255的整数,1为最高优先级,依次降低。
除class-default以外的其它所有class的默
认优先级是255。
未配置优先级的class按照添加到QoS Profile中的先后
顺序进行匹配;class-default的优先级是256,即默认情况下,该class
具有最低优先级。
在QoS Profile的Class配置模式下使用no match-priority命令取消class的匹配优先级配置。
绑定QoS Profile到接口
QoS Profile配置完成后,只有把它们绑定到接口上,配置的各种QoS功能才会起效。
绑定QoS Profile到接口,在接口配置模式下,使用以下命令:
qos-profile {input | output} qos-profile-name
♦input–指定将QoS Profile应用到通过该接口流入安全网关的流量上(入方向)。
♦output–指定将QoS Profile应用到通过该接口流出安全网关的流量上(出方向)。
在该方向,目前只支持匹配DSCP值的class。
♦qos-profile-name–指定绑定的QoS Profile名称。
在接口配置模式下使用no qos-profile {input | output}命令取消QoS Profile在指定方向与接口的绑定。
显示QoS Profile信息
用户可以在任何模式下随时使用show命令查看QoS Profile的配置信息。
show qos-profile [qos-profile-name]
♦qos-profile-name–显示指定名称的QoS Profile的信息。
如果不指定该参数,则显示系统中所有QoS Profile的信息。
QoS配置举例
本节列举7个QoS的配置实例,分别是:
♦例1:匹配优先级
♦例2:分类与标记
♦例3:管制与整形
♦例4:基于应用的QoS
♦例5:CBWFQ
♦例6:低延迟队列
♦例7:基于IP的QoS
例1:匹配优先级配置举例
例如,名为Profile1的QoS Profile中有两个class,class1和class2,其中class1的匹配条件为HTTP服务,class2的匹配条件是QoS标签为2。
配置命令如下:
第一步:配置class1和class2:
第二步:配置Profile1:
第三步:将Profile1绑定到接口ethernet0/3上:
经过以上配置后,通过ethernet0/3流入安全网关的流量中,应用类型为HTTP 且Policy QoS标签为2的流量的DSCP值会被标记为20,而不是35,因为class1的优先级高于class2,所以流量匹配class1。
例2:分类与标记
分类与标记配置举例。
接口的入方向绑定了一个QoS Profile,把HTTP的流量标记成DSCP值为af11,把QoS标签为1(在创建策略规则和P2P Profile时配置QoS标签值)的包标志成cs7, 把H323的包标记上ef(ef是RFC推荐的为语音交互视频使用的DSCP值)。
系统和因特网都将按照RFC定义的标准处理af11、cs7和ef这3个DSCP值。
第一步:配置名为http、voice和trash的class,对流量进行分类:
第二步:配置QoS Profile,为不同类型的应用做标记:
第三步:将配置的QoS Profile绑定到接口ethernet0/0,对从ethernet0/0进入设备的流量按照配置的QoS Profile进行分类:
例3:管制与整形
管制与整形配置举例。
该例将HTTP流量管制到12.8M,而将P2P流量整形到
6.4M。
在例2中,已经将HTTP流量标记为af11,将P2P流量标记为cs7。
该例
将基于例2的分类和标记结果进行配置。
第一步:配置名为af11和cs7的class:
第二步:配置QoS Profile,分别对HTTP流量和P2P流量做整形和管制:
第三步:将配置的QoS Profile绑定到接口ethernet0/1,对从ethernet0/1流出的HTTP和P2P流量按照配置的QoS Profile进行管理:
例4:基于应用的QoS
基于应用的QoS配置举例。
对P2P流量进行限流,使P2P流量按照1M每秒的速率通过ethernet0/0传输出去。
在例2中,已经将P2P流量标记为cs7。
该例将基于例2的分类和标记结果进行配置。
第一步:配置名为cs7的class:
第二步:配置名为p2p的profile,对与cs7相匹配的流量(P2P)做限流,使其最
大通过的流量为1M每秒,并丢弃多出的流量:
第三步:将配置的QoS Profile绑定到接口ethernet0/2,对通过ethernet0/2流出的P2P流量进行限流:
例5:最小带宽保证
最小带宽保证配置举例。
该例体现了当使用CBWFQ算法时,系统是如何保证QoS Profile中不同class的带宽的。
在例2中,已经将HTTP流量标记为af11,将P2P流量标记为cs7。
该例将基于例2的分类和标记结果进行配置。
第一步:配置名为af11和cs7的class:
第二步:创建名为qos-profile1的QoS Profile,为af11和cs7两个class配置最小带宽值。
第三步:配置ethernet0/2的上行带宽,并且将policy1绑定到接口ethernet0/2:
如果ethernet0/2的上行带宽为10M,完成以上配置后,class-default将会获得2.5M(10-5-2.5)的带宽,并且class-default的默认队列也是CBWFQ。
使用以上配置处理流量时,如果到达class1的实际流量为20M,到达class2的实际流量为15M,而class-default没有流量,设备在处理时,会将class-default 的2.5M带宽按照比例分配给class1和class2使用。
分配的计算方法为:♦calss1能够分得的带宽:5+(5/(5+2.5)*2.5)=6.67M
♦class2能够分得的带宽:2.5+(2.5/(5+2.5)*2.5)=3.33M
例6:低延迟队列
低延迟队列(LLQ)配置举例。
为语音流量预留3M带宽,设置HTTP流量的最小带宽保证为5M,管制P2P流量的带宽到6.4M,并且丢弃超出的P2P流量。
在例2中,已经将语音流量标记为ef,HTTP流量标记为af11,P2P流量标记为cs7。
该例将基于例2的分类和标记结果进行配置。
第一步:配置名为af11、cs7和ef的class:
第二步:创建名为llq的QoS Profile,对ef、af11和cs7三个class进行配置:
第三步:配置ethernet0/3的上行带宽,并且将配置的QoS Profile绑定到接口ethernet0/3,对通过ethernet0/3流出的流量进行限流:
在该例中,接口ethernet0/3的带宽为10M,class cs7被执行管制,不加入计算,因此,class-default的带宽为2M(10-3-5)。
当class-default没有流量时,class cf11将会得到7M(5+2)带宽,class ef永远保持3M带宽不变。
例7:基于IP的QoS
基于IP的QoS配置举例。
使class ip-range1内的每个IP地址都有最多2M 带宽,class ip-range2中的所有IP地址共享10M带宽。
第一步:配置class:
第二步:配置入方向QoS Profile:
第三步:配置出方向QoS Profile:
第四步:绑定QoS Profile到接口:
推荐配置
为使用户能够更合理而有效的使用安全网关的QoS功能,这里针对不同的应用类型推荐相应的配置,供用户参考。
请参阅表22-3:
表22-3:推荐配置。