每次测量时,依据“C桶有足够的令牌”、“C桶令牌不足,但E桶足够”以及“C桶和E桶都没有足够的令牌”的情况,可以分别实施不同的流控策略。
5.流量监管的动作
流量监管依据不同的评估结果,实施预先设定好的监管动作。
这些动作可以是:
●转发:
对测量结果为“符合”的报文继续正常转发的处理,也可以为Diff-Serv提供带有标记DSCP的服务再转发。
●丢弃:
对测量结果为“不符合”的报文进行丢弃。
●改变优先级并转发:
对测量结果为“不符合”的报文,将之标记为其它的优先级后再进行转发。
●进入下一级的监管:
流量监管可以逐级堆叠,每级关注和监管更具体的目标。
2.1.2流量整形
流量整形TS(TrafficShaping)的典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送,是一种主动调整流量输出速率的措施。
流量整形通常使用缓冲区和令牌桶来完成,其处理过程如下:
当报文到来的时候,首先对报文进行分类,报文需要进行GTS处理,令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。
当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中。
当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报文不能再发送或队列中的报文全部发送完毕为止。
图2-1流量整形
例如,在图2-3所示的应用中,路由器RouterA向RouterB发送报文。
RouterB要对RouterA发送来的报文进行流量监管,对超出规格的流量直接丢弃。
图2-2流量监管与整形的应用
为了减少报文的无谓丢失,可以在RouterA的出口对报文进行TS处理。
将超出TS流量特性的报文缓存在RouterA中。
当可以继续发送下一批报文时,TS再从缓冲队列中取出报文进行发送。
这样,发向RouterB的报文将都符合RouterB的流量规定。
流量整形与流量监管的主要区别在于,流量整形对流量监管中超出流量规格的报文进行缓存。
当令牌桶有足够的令牌时,再均匀的向外发送这些被缓存的报文。
流量整形与流量监管的另一区别是,整形可能会增加延迟,而监管几乎不引入额外的延迟。
2.1.3接口限速
利用接口限速LR(LimitRate)可以在一个物理接口或Tunnel接口上限制发送报文的总速率。
LR也是采用令牌桶进行流量控制。
如果在路由器的某个接口上配置了LR,所有经由该接口发送的报文首先要经过LR的令牌桶进行处理。
如果令牌桶中有足够的令牌,则报文可以发送;否则,报文将入QoS队列进行拥塞管理。
这样,就可以对通过该物理接口的报文流量进行控制。
图2-1LR处理过程示意图
由于采用了令牌桶控制流量,当令牌桶中存有令牌时,可以允许报文的突发性传输;当令牌桶中没有令牌时,报文必须等到桶中生成了新的令牌后才可以继续发送。
这就限制了报文的流量不能大于令牌生成的速度,达到了限制流量,同时允许突发流量通过的目的。
与TS相比,LR能够限制在物理接口上通过的所有报文。
TS在IP层实现,对于不经过IP层处理的报文不起作用。
当用户只要求对接口发出的所有报文限速时,使用LR比较简单。
2.2配置流量监管
2.2.1建立配置任务
1.应用环境
在网络中,有大量的用户发送数据,这些不断突发的数据会使网络非常拥塞,严重影响网络的运行效率,通过对进入网络的流量规格进行监管,将流量限制在一个合理的范围之内,可以使有限的网络资源能够更好地发挥效用。
2.前置任务
在配置流量监管之前,需要完成以下任务:
●配置接口的物理参数
●配置接口的链路层属性
●配置接口的IP地址
●配置访问控制列表
3.数据准备
在配置流量监管之前,需准备以下数据:
序号
数据
1
承诺访问速率列表号码、ACL号
2
建立CAR列表所基于的优先级取值或MAC地址
3
承诺信息速率
4
承诺突发尺寸和过度突发尺寸的大小
4.配置过程
序号
过程
1
配置流量监管列表
2
配置流量监管策略
2.2.2配置流量监管列表
步骤
操作
命令
1
进入系统视图
system-view
2
配置流量监管列表
qoscarlcarl-index{precedenceprecedence-value|macmac-address}
对于不同的carl-index,命令的重复执行将创建多个CAR列表;对于同一个carl-index,命令的重复执行将修改CAR列表的参数,也就是说,后配置的CAR列表将取代已存在的使用同一个carl-index的CAR列表。
当需要在一条CAR列表中同时匹配多个优先级时,可指定多个不同的precedence-value。
2.2.3配置流量监管策略
步骤
操作
命令
1
进入系统视图
system-view
2
进入接口视图
interfaceinterface-typeinterface-number
3
配置流量监管策略
qoscar{inbound|outbound}{any|aclacl-index|carlcarl-index}circommitted--information-ratecbsburst-sizeebsexcess-burst-sizegreenactionredaction
流量监管策略只对IP数据包进行处理,可以应用于报文进入的接口,也可以应用于报文发出的接口。
一个接口上可以配置多个流量监管策略。
使用acl配置将对符合某一ACL的流配置监管参数,使用不同的ACL可以为不同的流配置监管参数。
使用any将对所有流设置监管参数,重复使用将替代原先的配置。
acl和any不能同时配置。
2.3配置流量整形
2.3.1建立配置任务
1.应用环境
通过配置流量整形,使上游发送的流量与下游接收的能力匹配,报文可以均匀向外发送,而且部分超出规格的报文不直接丢弃,而是进行缓存,到可以发送的时候发送出去。
2.前置任务
在配置流量整形之前,需要完成以下任务:
●配置接口的物理参数
●配置接口的链路层属性
●配置接口的IP地址
●配置访问控制列表
3.数据准备
在配置流量整形之前,需准备以下数据:
序号
数据
1
承诺信息速率
2
承诺突发尺寸和过度突发尺寸的大小
3
缓存队列的最大长度
4.配置过程
序号
过程
1
配置流量整形
2.3.2配置流量整形
步骤
操作
命令
1
进入系统视图
system-view
2
进入接口视图
interfaceinterface-typeinterface-number
3
配置流量整形
qosgts{any|aclacl-index}circommitted--information-rate[cbsburst-size[ebsexcess-burst-size[queue-lengthqueue-length]]]
使用acl配置将对符合某一ACL的流配置整形参数,使用不同的ACL可以为不同的流配置整形参数。
使用any将对所有流设置整形参数,重复使用将替代原先的配置。
acl和any不能同时配置。
流量整形只能应用于出接口。
2.4配置接口限速
2.4.1建立配置任务
1.应用环境
若需要在物理接口或Tunnel接口上对所有的报文流量进行控制,以避免拥塞的发生,可以配置接口限速,限制报文的总速率。
2.前置任务
配置接口限速之前,需完成以下任务:
●配置接口的物理参数
●配置接口的链路层属性
●配置接口的IP地址
3.数据准备
在配置物理接口限速之前,需准备以下数据:
序号
数据
1
承诺信息速率
2
承诺突发尺寸和过度突发尺寸的大小
4.配置过程
序号
过程
1
配置接口限速
2.4.2配置接口限速
步骤
操作
命令
1
进入系统视图
system-view
2
进入接口视图
interfaceinterface-typeinterface-number
3
配置物理接口限速
qoslrcircommitted--information-rate[cbsburst-size[ebsexcess-burst-size]]
Tunnel接口的限速结合各种队列调度算法,可以实现Tunnel接口的拥塞管理,但必须先在Tunnel接口上配置限速,再配置队列,删除Tunnel接口上的限速时,必须先删除Tunnel接口上的队列配置。
LR只能配置在出方向。
2.5维护流量监管与流量整形
2.5.1维护流量监管
在完成TP配置后,在所有视图下执行display命令可以显示TP的配置情况和统计信息,通过查看显示信息验证配置的效果。
运行信息的详细解释请参考《通用路由平台VRP命令手册》。
表2-1显示TP规则
操作
命令
显示TP规则
displayqoscarl[carl-index]
显示TP在各接口上信息
displayqoscarinterface[interface-typeinterface-number]
2.5.2维护流量整形
在完成TS配置后,在所有视图下执行display命令可以显示TS的配置情况和统计信息,通过查看显示信息验证配置的效果。
运行信息的详细解释请参考《通用路由平台VRP命令手册》。
表2-1显示接口的TS配置情况和统计信息
操作
命令
显示接口的TS配置情况和统计信息
displayqosgtsinterface[interface-typeinterface-number]
2.5.3维护接口限速
在完成LR配置后,在所有视图下执行display命令可以显示LR的配置情况和统计信息,通过查看显示信息验证配置的效果。
运行信息的详细解释请参考《通用路由平台VRP命令手册》。
表2-1显示接口的LR配置情况和统计信息
操作
命令
显示接口的LR配置情况和统计信息
displayqoslrinterface[interface-typeinterface-number]
2.6配置举例
2.6.1流量监管配置示例
1.配置需求
如图所示,三个本地网用户通过路由器Router访问Internet。
限制用户的接入速率为10Mbps,并分别标记不同的IP优先级。
2.组网图
图2-1流量监管
3.配置步骤
配置路由器Router:
#配置流分类策略,采用ACL进行分类
[Router]aclnumber2001
[Router-acl-basic-2001]rule1permitsource1.1.1.00.0.0.255
[Router]aclnumber2002
[Router-acl-basic-2002]rule2permitsource2.1.1.00.0.0.255
[Router]aclnumber2003
[Router-acl-basic-2003]rule3permitsource3.1.1.00.0.0.255
#配置QOS策略,对符合流分类规则的报文进行流量监管,并设置报文的IP优先级,将QOS策略应用在被测设备出接口的出方向上。
[Router-POS2/0/0]qoscaroutboundacl2001cir10000000cbs15000000ebs0greenremark-precedence-pass1reddiscard
[Router-POS2/0/0]qoscaroutboundacl2002cir10000000cbs15000000ebs0greenremark-precedence-pass3reddiscard
[Router-POS2/0/0]qoscaroutboundacl2003cir10000000cbs15000000ebs0greenremark-precedence-pass2reddiscard
4.配置文件
#
sysnameRouetrA
#
aclnumber2001
rule1permitsource1.1.1.00.0.0.255
aclnumber2002
rule2permitsource2.1.1.00.0.0.255
aclnumber2003
rule3permitsource3.1.1.00.0.0.255
#
interfacepos2/0/0
link-protocolppp
ipaddress10.110.41.178255.255.0.0
qoscaroutboundacl2001cir10000000cbs15000000ebs0greenremark-precedence-pass1reddiscard
qoscaroutboundacl2002cir10000000cbs15000000ebs0greenremark-precedence-pass3reddiscard
qoscaroutboundacl2003cir10000000cbs15000000ebs0greenremark-precedence-pass2reddiscard
#
return
2.6.2流量整形配置示例
1.配置需求
如图所示,路由器RouterA通过接口ethernet1/0/1和路由器RouterB的接口ethernet1/0/0互连,Server、PC1、PC2可经由RouterA和RouterB访问Internet。
Server、PC1与RouterA的ethernet1/0/0接口在同一网段,PC2与RouterA的ethernet2/0/0接口在同一网段。
要求在路由器RouterB上对接口ethernet1/0/0接收到的源自Server和PC1的报文流分别实施流量控制如下:
来自Server的报文流量约束为54000bps,流量小于54000bps时可以正常发送,流量超过54000bps时则将违规报文的优先级设置为0后进行发送;
来自PC1的报文流量约束为8000bps,流量小于8000bps时可以正常发送,流量超过8000bps时则丢弃超标流量;
同时,对路由器RouterB的ethernet1/0/0和ethernet1/0/1接口收发报文有如下要求:
●RouterB的ethernet1/0/0接口接收报文的总流量限制为0.5Mbps,如果超过流量限制则将违规报文丢弃;
●经由RouterB的ethernet1/0/1接口进入Internet的报文流量限制为1Mbps,如果超过流量限制则将违规报文丢弃。
2.组网图
图2-1流量监管、流量整形配置组网图
3.配置步骤
配置路由器RouterA:
#在RouterA的ethernet1/0/1接口上配置TS,对该接口发送的报文进行流量整形(对超过0.5Mbps的报文流进行整形),以降低在RouterB接口ethernet1/0/0处的丢包率。
[RouterA]interfaceethernet1/0/1
[RouterA-Ethernet1/0/1]qosgtsanycir500000
配置路由器RouterB:
#配置ACL规则列表,分别匹配来源于Server和PC1的报文流。
[RouterB]aclnumber2001
[RouterB-acl-basic-2001]rulepermitsource1.1.1.10.0.0.0
[RouterB]aclnumber2002
[RouterB-acl-basic-2002]rulepermitsource1.1.1.20.0.0.0
#在ethernet1/0/0接口上进行TP配置,对ethernet1/0/0接收到的不同报文流进行相应流量控制。
[RouterB]interfaceethernet1/0/0
[RouterB-Ethernet1/0/0]qoscarinboundacl2001cir54000cbs54000ebs0greenpassredremark-precedence-pass0
[RouterB-Ethernet1/0/0]qoscarinboundacl2002cir8000cbs8000ebs0greenpassreddiscard
[RouterB-Ethernet1/0/0]qoscarinboundanycir500000cbs500000ebs0greenpassreddiscard
#在ethernet1/0/1接口上进行TP配置,对由Ethernet1/0/1接口发送的报文进行流量控制,报文流量不能超过1Mbps,如果超过流量限制则将违规报文丢弃。
[RouterB]interfaceethernet1/0/1
[RouterB-Ethernet1/0/1]qoscaroutboundanycir1000000cbs1000000ebs0greenpassreddiscard
4.配置文件
#
sysnameRouetrA
#
aclnumber2001
rule1permitsource1.1.1.10.0.0.0
aclnumber2002
rule2permitsource1.1.1.20.0.0.0
#
interfaceethernet1/0/0
ipaddress172.16.1.1255.255.0.0
qoscarinboundanycir500000cbs500000ebs0greenpassreddiscard
qoscarinboundacl2001cir54000cbs54000ebs0greenpassredremark-precedence-pass0
qoscarinboundacl2002cir8000cbs8000ebs0greenpassreddiscard
#
#
interfaceethernet1/0/1
ipaddress172.17.1.1255.255.0.0
qosgtsanycir500000
qoscaroutboundanycir1000000cbs1000000ebs0greenpassreddiscard
#
return