QoS(服务访问质量)(QoS服务)

网友投稿 282 2022-09-25


QoS(服务访问质量)(QoS服务)

随着网络的高速发展,接入网络的用户越来越多,网络提供的服务也越来越多。网络普及、业务多样化、使得网络流量迅速增大,导致网络带宽不能满足网络的需求,这时就出现了网络拥塞现象。由于网络拥塞导致报文产生不能预期的传达、延迟抖动、丢包等现象,将造成业务质量的下降甚至出现不可用。为了应对网络拥塞,最直接的方式就是扩大网络带宽,但是由于技术和经济等方面的限制,有时不能通过增加带宽的方式来解决,这时就需要一种技术能够在有限的带宽上保证报文的带宽以免出现延迟、丢包等情况,这种技术就成为QoS技术。

Qos是一种网络拥塞的解决方法,其基本思想就是把数据进行分类,放到不同队列中,然后根据数据的类型决定传输的先后或保证一定的带宽。而解决网络拥塞的根本方法就是增加带宽,QoS不能代替网络带宽升级。Qos技术在网络发生拥塞时才起到作用,当网络带宽足够时,QoS不起任何作用。在企业或运营商的网络环境中部署QoS时,能保证低延时、应用业务的快速转发、控制网络的拥塞时的丢包率、在网络拥塞时为不同的业务保留一定带宽等。QoS简单来说就是区分流量,保证重要流量及时被转发,所以得到了广泛的应用。

一般情况下,网络拥塞是由于网络中出现瓶颈造成的。当然还有一些特殊情况,比如:当某一时间访问网络的流量超过运营商分配的带宽时;网络上的流量。出现网络拥塞造成的影响:报文传输延迟、延迟抖动和丢包率;由于过高的延迟和丢包导致报文重传,增加网络负担;由于网络拥塞,报文重传导致网络的有效吞吐量。

Qos在网络中的服务模型分为三种:1.Best-Effort Service:尽力而为的服务模型:采用默认的先进先出的方式;2.Integrated Service:综合服务模型,简称IntServ:采用提前申请网络资源,各节点预留资源的方式;3.Differentiated Service:区分服务模型,简称DiffServ:采用不预留资源,通过多种方法指定报文的QoS(比如ACL)。

QoS涉及的四大组件,分别是:分类和标记、整 形和监管、拥塞避免、拥塞管理。

下面我们详细介绍一下

分类:流分类是进行区别服务的基础。流分类可以使用报文的优先级来识别不同优先级特征的流量;也可以使用源地址、目的地址、MAC地址、协议和端口信息来识别不同流量。流分类完全由网络管理员的定义。不同的网络,流量的重要性也不同。列入,对于小型公司而言,HTTP流量可能比较重要;对于大型公司而言,语音流量才是比较重要的。重要是相对而言的,任何流量都应该通过网络,QoS只是优先保证重要的流量。流分类必须与某种流量控制或带宽分配的动作关联起来才有意义。流分类一般通过ACL区分不同的流量,尤其是扩展ACL,基本可以定义大部分流量。比如

R1(config)#access-list 101 permit tcp any any eq 80 #定义允许网络中所有HTTP流量

R1(config)#access-list 100 permit tcp any any eq 80 #流量分类 R1(config)#class-map bjdx 配置class map 名为bjdx R1(config-cmap)#match access-group 100 #匹配之前定义的ACL分类 R1(config)#policy-map beijing #定义一个策略,名为beijing R1(config-pmap)#class bjdx #匹配之前的class map R1(config-pmap-c)#set ip precedence 4 #定义优先级为4 R1(config-pmap)#int f0/0 R1(config-if)#service-policy output beijing #接口出方向应用策略 R1#show policy-map #查看策略配置 Policy Map beijing Class bjdx set ip precedence 4 R1#show policy-map int #查看端口策略应用和流量信息 FastEthernet0/0 Service-policy output: beijing Class-map: bjdx (match-all) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: access-group 100 QoS Set precedence 4 Packets marked 0 Class-map: class-default (match-any) 310 packets, 31086 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any

整 形和监管为了避免网络拥塞的出现,可以定义流量进行控制,通过采用一定策略控制流量的大小,以减少网络拥塞的出现,主要的流量管理技术是整 形和监管。为了更好的利用网络资源,避免大量用户产生突发流量导致网络拥塞,需要对网络中的用户进行限速。当端口接收到某一流量超出限制时,就需要采取一定的措施(降低优先级或丢弃)。在对流量进行监控室一般设定三个参数:1.承诺平均速率(CIR):允许流量通过的平均速率。(单位为:bits/s)2.突发量(Bc):允许突发产生流量的大小,设置的大小必须大于最大报文长度。(单位:字节)3.额外突发量(Be):表示流量超出突发量后还可以转发的流量的大小(单位:字节)对于符合规定的流量视为合规流量,而对于超出规定部分的流量视为违规流量。设置流量策略时,既可以设置合规流量策略,也可以设置违规流量策略。

监管是一种流量控制措施,监管使用的三个参数分别是:承诺平均率、Bc和Be。所以在监管中,Bc+Be的大小是允许突发的最大流量的大小。监管的核心技术是承诺访问速率(CAR)。Bc和Be相当于信用的积累,如果一致守信(小于规定流量),其信用值就不断增加到某个数值(Bc),如果继续守信,则信用值就会继续增加到一个规定的最大值(Bc+Be)。这时,如果出现违规现象(流量速率超过规定速率),信用就会减少,直到信用值为0.所以Bc、Be是一个积累使用的过程,而不是始终存在的(最初时Bc、Be都是满的),类似于我们用的信用卡!

CAR技术多应用于接入层,对接入用户进行流量限制。CIR表示速率,Bc和Be表示大小。

我们简单介绍一下命令:

基本的流量整 形配置:

R1(config)#int f0/0 R1(config-if)#traffic-shape rate 1000000 #在F0/0接口上配置流量整 形,,对经过F0/0接口的所有数据进行流量整 形,范围是1M。

基于ACL的流量整 形配置:

R1(config)#access-list 100 permit udp any any R1(config)#int f1/0 R1(config-if)#traffic-shape group 100 1000000 1000000 1000000 在F1/0接口上配置基于ACL的流量整 形,表示经过F1/0接口的UDP流量进行流量整 形; 承诺平均速率是1M,突发量是1M,额外突发量是1M R1#show traffic-shape f0/0 #查看GTS配置信息 Interface Fa0/0 Access Target Byte Sustain Excess Interval Increment Adapt VC List Rate Limit bits/int bits/int (ms) (bytes) Active - 1000000 6250 25000 25000 25 3125 - R1#show traffic-shape statistics f0/0 #查看GTS流量统计信息 Acc. Queue Packets Bytes Packets Bytes Shaping I/F List Depth Delayed Delayed Active Fa0/0 0 92 9203 0 0 no R1#show traffic-shape queue #查看GTS队列信息 Traffic queued in shaping queue on FastEthernet0/0 Queueing strategy: weighted fair Queueing Stats: 0/1000/64/0 (size/max total/threshold/drops) #1000标识设置的缓存器限制 Conversations 0/0/64 (active/max active/max total) Reserved Conversations 0/0 (allocated/max allocated) Available Bandwidth 1000 kilobits/sec Traffic queued in shaping queue on FastEthernet1/0 Traffic shape group: 100 Queueing strategy: weighted fair Queueing Stats: 0/1000/64/0 (size/max total/threshold/drops) Conversations 0/0/64 (active/max active/max total) Reserved Conversations 0/0 (allocated/max allocated) Available Bandwidth 1000 kilobits/sec

input/output:表示针对端口入/出方向的流量; CIR burst-normal burst-max:CIR表示承诺平均速率;burst-normal表示普通突发量;burst-max表示最大突发量。最大突发量包含普通突发量,所以在配置时,burst-max的值需要不小于burst-normal的值。这三个参数的单位不同,分别: CIR:参数范围是8000~2000000000,单位b/s。 burst-normal:参数范围是1000~512000000,单位为字节。 burst-max:参数范围是2000~1024000000,单位为字节。 conform-action:表示对合规流量进行的操作。 exceed-action:表示对违规流量进行的操作。 action:表示相应流量进行操作,主要的选项: drop:丢弃数据包; transmit:转发数据包。

配置实例,比如:

R1(config-if)#rate-limit input 8000000 2000 4000 conform-action transmit exceed-action drop #表示进入端口的流量被限速为8000000b/s(约8Mb/s),最大突发量为4000字节, 符合的流量转发,不符合的流量将被丢弃

除了转发和丢弃报文之外,还可以设置报文的优先级,可以使用set相关参数进行设定

R1(config-if)#rate-limit input 8000000 2000 4000 conform-action set-prec-transmit 5 exceed-action set-prec-transmit 0 #表示进入端口的流量被限速为8000000b/s(约1Mb/s),最大的突发量是4000字节,符合的流量被标记IP优先级5后转发,超出的流量被标记IP优先级0后进行转发。IP优先级0位默认值,表示尽力发送。当数据传输中出现网络拥塞是,可以根据优先级丢弃数据

R1(config)#access-list 101 permit udp any any R1(config)#int f0/0 R1(config-if)#rate-limit input access-group 101 100000 20000 40000 conform-action continue exceed-action drop #表示匹配ACL序号之后的流量,进人端口的流量限速为100000b/s,最大突发量是40000字节,符合的流量转发,不符合的流量删除。 R1#show int f0/0 rate-limit #查看端口限速信息 FastEthernet0/0 Input matches: access-group 101 #匹配的ACL params: 96000 bps, 20000 limit, 40000 extended limit #配置的速率限制 conformed 0 packets, 0 bytes; action: continue #符合的流量统计,动作为转发 exceeded 0 packets, 0 bytes; action: drop #不符合的流量统计,动作为丢弃 last packet: 1547212ms ago, current burst: 0 bytes #当前流量突发量信息 last cleared 00:10:21 ago, conformed 0 bps, exceeded 0 bps #速率信息

CIR:承诺平均速率 burst-normal:承诺突发量Bc burst-max:与rate-limit命令不同,此参数表示过量突发量Be conform-action:对小于Bc(包含CIR流量)的流量采取的动作,默认转发 exceed-action:对在Bc~Bc+Be之间的流量采取的动作,默认转发 violate-action:对大于Bc+Be的流量采取的动作,默认丢弃

R1(config)#access-list 100 permit tcp any any R1(config)#class-map bjdx R1(config-cmap)#match access-group 100 #配置class map R1(config)#policy-map bj #配置CAR R1(config-pmap)#class bjdx R1(config-pmap-c)#police 8000 1500 1500 conform-action transmit exceed-action transmit violate-action drop #小于Bc转发,在Bc~Bc+Be之间转发,大于Bc+Be丢弃 R1(config-pmap)#int f1/0 R1(config-if)#service-policy input bj #在F1/0接口应用CAR策略

配置GTS

R1(config)#access-list 100 permit tcp any any R1(config)#class-map bjdx R1(config-cmap)#match access-group 100 #配置class map R1(config)#policy-map bj2 R1(config-pmap)#class bjdx #配置GTS R1(config-pmap-c)#shape average 8000 #配置average形式,只配置CIR R1(config)#int f0/0 R1(config-if)#service-policy output bj2 在F0/0接口应用GTS策略

查看信息

R1#show policy-map #查看策略配置 Policy Map bj #策略名称 Class bjdx #调用的class map police cir 8000 bc 1500 be 1500 #配置的速率参数 conform-action transmit exceed-action transmit violate-action drop Policy Map bj2 Class bjdx Traffic Shaping Average Rate Traffic Shaping CIR 8000 (bps) Max. Buffers Limit 1000 (Packets) R1#show policy-map int #查看路由器每个端口的策略应用及流量信息

注意GTS只能应用在output方向,而CAR可以应用在两个方向使用CAR技术,限速后的数据流会出现丢包现象使用GTS技术,通过×××后的数据延时会变大拥塞管理虽然使用GTS和CAR技术可以控制带宽,但是这样也无法避免网络发生拥塞,如果设备没有充足的缓存区域来保存到达的数据,就会导致部分数据丢失,造成超时重传,最终导致恶性循环。那么发生网络拥塞时,如何决定资源的使用、带宽的分配、报文的转发顺序呢?这是就需要使用拥塞管理技术。拥塞管理技术一般采用队列调度技术,通过队列调度技术的算法使得不同的数据拥有不同的优先级和带宽信息等,从而确定不同数据流被转发的顺序和带宽。拥塞管理技术主要包括以下五种技术:FIFQ:先进先出队列;PQ:优先级队列;CQ:定制队列;WFQ:加权公平队列;CBWFQ:基于类的加权公平队列。我们主要介绍WFQ和CBWFQ拥塞管理技术。

默认就是WFQ的配置,接下来我们简单介绍一下CBWFQ的配置

R1(config)#access-list 101 permit ip host 10.0.1.2 host 192.168.1.1 #定义ACL R1(config)#class-map match-all bj1 #定义名为bj1的类 R1(config-cmap)#match access-group 101 #匹配ACL101的流量属于类bj1 R1(config)#policy-map bjdx #定义名称为bjdx的策略 R1(config-pmap)#class bj1 #进入类bj1 R1(config-pmap-c)#set precedence 5 #设置优先级为5 R1(config-pmap-c)#police rate 5000000 #为类bj1设定策略,不拥塞时带宽为5000000b/s(单位bits) R1(config-pmap-c)#bandwidth 4000 #为类bj1设定策略,拥塞时带宽为4000kb/s

定义主要的流量之后,接下来定义默认类

R1(config)#policy-map bjdx #定义名称为bjdx的策略 R1(config-pmap)#class class-default #配置其他流量为默认类 R1(config-pmap-c)#fair-queue #启用公平队列,可以和bandwidth同时使用

最后,将策略应用到接口

R1(config)#int f0/0 R1(config-if)#service-policy output bjdx #CBWFQ策略只能应用于output方向

R1(config-pmap-c)#random-detect 启用基于policy-map的WRED R1(config-pmap-c)#random-detect precedence 6 8 10 以下不丢弃,7个随机丢弃,超过8个直接丢弃 R1#show queueing random-detect #查看WERD信息

QoS就介绍这么多吧!希望大家多多交流学习。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot 关于Feign的超时时间配置操作
下一篇:非直连BGP邻居配置(bgp邻居active)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~