- **作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 **
- ** 座右铭:低头赶路,敬事如仪**
- 个人主页:网络豆的主页
前言
本章将会继续讲解QoS服务访问质量中的流量整形与拥塞管理,可以在看之前回顾一下服务访问质量(QoS)——QoS技术概述与配置
一.流量整形和监管配置
为了避免网络拥塞的出现,可以对流量进行控制,通过采用一定策略控制流量的大小,以减少网络拥塞的出现,主要的流量管理技术是整形和监管。
1.流量整形配置两种方式
一种是基本的流量整形配置,另外一种是基于访问控制列表(ACL)的流量整形配置。
流量整形 (GTS) 将超出去的部分 放到最后慢慢传
①流量整形的命令:
基本的配置
route(config-if)#traffic-shape rate CIR Bc Be
traffic-shape 流量整形命令关键字
rate 速率
CIR 承诺平均速率
Bc 突发量 Be 额外突发量
基于ACL的流量整形配置
trafficce-shape group 100 1000000 1000000 1000000
100 表示 acl 列表编号
1000000 表示 平均速率 单位为字节 换算工程 兆 为 1M
2.承诺访问速率配置
与流量整形相同,承诺访问速率也有两种配置方式,一种是基本的承诺访问速率配置,另一种
是扩展的承诺访问速率配置,
①承诺访问速率命令****
基本承诺访问速率
Router(config-if)# rate-limit {input|output} {CIR} {burst-normal} {burst-max} conform-action {action} exceed-action {action}
例子
Router(config-if)#rate-limit input 8000000 2000 4000 conform-action transmit exceed-action drop
Router(config-if)#rate-limit input 8000000 2000 4000 conform-action set-prec-transmit 5 exceed-action set-prec-transmit 0
扩展的承诺访问速率
首先配置ACL,定义需要整形的流量
Router(config-if)# rate-limit {input|output} [access-group access-group] {CIR} {burst-normal} {burst-max} conform-action {action} exceed-action {action}
查看CAR配置信息
Router#show interface [ interface-type interface-number ] rate-limit
简单讲解
router(config-if)#rate-limit {input|output} CIR Be Bc
conform-action transmit exceed-action drop
conform-action 正常流量
transmit 转发
exceed-action 超出去的额外流量
drop 丢弃
CAR与GTS的另一种配置(了解)
定义匹配策略
Router(config)#class-map [ match-all | match-any ] { class-map-name}
Router(config-cmap)#match access-group {access-group}
Router(config-cmap)#match protocol {protocol}
定义流量控制策略
Router(config)#policy-map {policy-map-name}
Router(config-pmap)#class {class-map-name}
使用set命令标记流量的优先级
Router(config-pmap-c)#set ip dscp {dscp}
Router(config-pmap-c)#set ip precedence {precedence}
配置CAR
Router(config-pmap-c)# police { CIR } [ burst-normal ] [ burst-max] conform-action {action} exceed-action {action} violate-action {action}
配置GTS
Router(config-pmap-c)#shape average {CIR [Bc [Be]]}
配置缓冲区上限,配置如下
Router(config-pmap-c)#shape max-buffers {buffer-limit}
默认为1000
在接口上应用策略
Router(config-if)#service-policy { input | output } { policy-map-name}
GTS只能应用在output方向
查看策略配置
Router#show policy-map [policy-map-name]
查看端口policy map信息
Router#show policy-map interface [ interface-type interface-number]
二.拥塞管理
虽然使用GTS和CAR技术可以控制带宽,但是这样也无法避免网络发生拥塞,如果设备没有足够的缓存区域来保存到达的数据,就会导致部分数据丢失,造成超时重传,最终导致恶性循环,那
么发生网络拥塞时,如何决定资源的使用,带宽的分配、报文的转发顺序呢?这时就需要使用拥塞
管理技术。
1.拥塞管理技术
拥塞管理一般采用队列调度技术,通过队列调度技术的算法使得不同的数据流拥有不同的优先级和带宽信息等,从而确定不同数据流被转发的顺序和带宽,拥塞管理技术主要包括以下五种技术。
- 先进先出队列(FIFO)
- 优先级队列(PQ)
- 定制队列(CQ)
- 加权公平队列(WFQ)
- 基于类的加权公平队列(CBWFQ)
①加权公平队列(WFQ)
WFQ根据数据流的源P地址、目的P地址,协议,端口号,IP优先级等信息将不同的流分配到不同的队列(流分类是路由器自动完成的,无须进行配置),WFO尽量将不的流量分入不同的队列,以从整体上均衡各个流的时延,在出队的时候,WFQ按照流的优先级来分配出口的带宽,优先级越小得到的带宽越小,优先级越大得到的带宽越大,每个流所占用的带宽比例为(自身流优先级加1)/(所有流优先级分别加1的和)
② 基于类的加权公平队列(CBWFQ)****
CBWFO扩展了WFQ的功能,CBWFO可以根据数据的优先级。源P地址和目的P地址,协议等进行分类,并让不同的报文进入不同的队列。
2. CBWFQ的配置****
定义匹配策略
与GTS、CAR的第二种配置相同
配置CBWFQ策略
保证最小带宽
Router(config-pmap-c)#bandwidth { bandwidth-kbps | percent percentage }
配置队列中数据包的个数
Router(config-pmap-c)#queue-limit { packets }
配置默认类
Router(config-pmap)#class class-default
在端口实施策略
Router(config-if)#service-policy { input | output } { policy-map-name }
查看policy map配置信息
Router#show policy-map [ policy-map-name ]
查看接口的policy map信息
Router#show policy-map interface [ interface-type interface-number ]
三.拥塞避免
虽然拥塞管理可以通过队列技术保证关键业务的带宽,但是过度的网络拥塞对于网络的危害是
很大的,那么如何有效地避免拥塞呢?避免拥塞就要主动丢弃部分报文,以减缓网络的拥塞程度。
1.尾丢弃
尾丢弃是传统的丢包策略,即当队列达到最大长度后,将所有后续来到的报文全部丢弃的策略。
使用这种策略能同时丢弃多个TCP报文,从而使得多个TCP连接进入拥塞避免的状态而调整流量。
但这将导致网络中的流量忽大忽小,极不稳定。
在CBWFQ中配置尾丢弃的命令是qpeue-lirit,通过此命令来限制队列的长度。
2.加权随机预检测(WRED)
为了避免出现尾丢弃的现象,随机预检测(FED)为每个队列设定两个值,分别为低阀值和高阈
值,并采用如下算法。
- 小于低阈值时,不进行报文丢弃。
- 大于高阈值时,完全丢弃报文。
- 在低调值和高阔值之间时,WRED开始进行随机丢弃报文,队列越长,丢弃的概率越高。
WRED的原理和RED相同,只是在随机丢弃报文时。加入了报文优先级来区分丢弃策略,通过
RED避免了多个TCP连接同时进入拥塞避免状态的情况,只是让个别TCP连接进入拥塞避免状态。
WRED的配置可以直接配置在接口上,也可以通过policy-map配置。
3.拥塞避免配置
WRED配置
基于DSCP的配置
Router(config-if)#random-detect dscp-based
Router(config-if)#random-detect dscp dscp {min max } [mark]
基于IP优先级的配置
Router(config-if)#random-detect
Router(config-if)#random-detect precedence precedence {min max } [mark]
在CBWFQ中配置WRED命令如下
Router(config-pmap-c)#random-detect
Router(config-pmap-c)#random-detect precedence precedence {min max } [mark]
查看WRED信息
Router#show queueing random-detect
查看端口队列信息
Router#show queue [ interface-type interface-number ]
创作不易,求关注,点赞,收藏,谢谢~
底部投票
版权归原作者 网络豆 所有, 如有侵权,请联系我们删除。