标签:rsa iat 默认值 code ping 也有 interval weight 限速
随着网络的高速发展,接入网络的用户越来越多,网络提供的服务也越来越多。网络普及、业务多样化、使得网络流量迅速增大,导致网络带宽不能满足网络的需求,这时就出现了网络拥塞现象。R1(config)#access-list 101 permit tcp any any eq 80
#定义允许网络中所有HTTP流量
标记:
在QoS技术的DiffServ服务模型中,对于IP报文中的DS字段使用DSCP(差异化服务编码点)作为QoS优先级描述,比如:
DS字段一共八位,在DiffServ中使用DS的前六位,即DS0~DS5定义了0~63共64个优先级。
QoS也可以使用DS字段中的IP优先级,使用DS的前三位IP。优先级共八个等级,其中0表示正常流量(尽力转发),遵循尽力发送原则。
默认情况下在实际的网络通信中,如果不做任何设置,正常的数据优先级都是0,当然也有例外,比如:RIP报文默认优先级是6,OSPF报文的默认优先级也是6等等。
QoS中标记可以通过PBR(策略路由)或者Class-Based Marking。前者多用于策略路由,后者通过一个配置模板来实现功能,下面我们通过配置一个Class-Based Marking 为例演示配置过程:
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
整 形和监管
为了避免网络拥塞的出现,可以定义流量进行控制,通过采用一定策略控制流量的大小,以减少网络拥塞的出现,主要的流量管理技术是整 形和监管。
为了更好的利用网络资源,避免大量用户产生突发流量导致网络拥塞,需要对网络中的用户进行限速。当端口接收到某一流量超出限制时,就需要采取一定的措施(降低优先级或丢弃)。
在对流量进行监控室一般设定三个参数:
承诺平均速率(CIR):允许流量通过的平均速率。(单位为:bits/s)
突发量(Bc):允许突发产生流量的大小,设置的大小必须大于最大报文长度。(单位:字节)
额外突发量(Be):表示流量超出突发量后还可以转发的流量的大小(单位:字节)
对于符合规定的流量视为合规流量,而对于超出规定部分的流量视为违规流量。设置流量策略时,既可以设置合规流量策略,也可以设置违规流量策略。
一般流量策略有以下几种:
转发:对于合规流量和违规流量都可以设置策略为转发;
丢弃:对于合规流量和违规流量都可以设置策略为丢弃;
标记:标记报文的优先级。例如:将合规流量报文的IP优先级设定为5,而将违规流量报文的IP优先级设定为0;
进入下一级流量策略:流量策略可以多级处理,可以将流量提交给下一级流量策略进行控制。
流量×××(GTS)是一种调节输出速率的措施,流量×××使用缓冲区使流量均匀地进行转发。流量进入设备进行分类,不需要进行×××的流量直接通过设备转发,需要进行×××的流量根据配置分为合规流量和违规流量。当流量速率超过设定时,设备将多余的流量缓存到GTS队列,然后按照配置的CIR,将报文均匀地转发出去,以保证网络流量平稳。×××流量的速率保持在承诺平均速率附近,如图:
由于流量×××使用缓存来保存违规流量,所以可以减少丢包率,避免了报文重发,但是使用缓存将导致数据转发时增加时延。流量×××一般应用在整体流量较小,但有时出现突发流量的环境中。
监管是一种流量控制措施,监管使用的三个参数分别是承诺平均率、Bc和Be。所以在监管中,Bc+Be的大小是允许突发的最大流量的大小。监管的核心技术是承诺访问速率(CAR)。
Bc和Be相当于信用的积累,如果一致守信(小于规定流量),其信用值就不断增加到某个数值(Bc),如果继续守信,则信用值就会继续增加到一个规定的最大值(Bc+Be)。这时,如果出现违规现象(流量速率超过规定速率),信用就会减少,直到信用值为0.所以Bc、Be是一个积累使用的过程,而不是始终存在的(最初时Bc、Be都是满的),类似于我们用的信用卡!
在使用CAR技术限制流量速率时,违规流量一般会被直接丢弃而不进行缓存。所以CAR技术保证了数据的时延,但是增加了丢包率,如图:
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
承诺访问速率配置
基本的承诺速率配置(如果是实验环境,配置完成之后,不可以被NO掉,只能使用R1(config)#default int f1/0恢复默认接口设置)
其中,各参数的含义:
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位默认值,表示尽力发送。当数据传输中出现网络拥塞是,可以根据优先级丢弃数据
配置ACL,定义需要整 形的流量:
比如
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
#速率信息
承诺访问速率与流量整 形的第二种配置
配置CAR
各参数含义:
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(加权公平队列)根据数据流的源IP地址、目的IP地址、协议、端口号、IP优先级等信息将不同的流分配到不同的队列。WFQ尽量将不同的流量分入不同的队列,以从整体上均衡各个流的时延。在出队的时候,WFQ按照流的优先级来分配出口的带宽,优先级越小得到的带宽越小,优先级越大得到的带宽越大。每个流所占用的带宽比例为(自身流优先级加1)/(所有流优先级分别加1的和)。
例如:如果六个流优先级,分别为0、1、2、3、4、5,则带宽总配额为(0+1)+(1+1)+(2+1)+(3+1)+(4+1)+(5+1)=21,每个流获得的端口带宽分别是1/21、2/21、3/21、4/21、5/21、6/21。
最后轮询各个队列,并根据带宽占用比例进行报文转发。WFQ是Cisco低速端口的默认配置,比如串口等。
CBWFQ(基于类的加权公平队列)扩展了WFQ的功能,CBWFQ可以根据数据的优先级、源IP地址、目的IP地址、协议等进行分类,并让不同的报文进入不同的队列。LLQ(低延时队列)是一个优先类队列,首先转发此队列中的数据,只有此队列没有数据时才转发其他队列中的数据,LLQ可以保证实时性要求较高的业务(比如语音流量)的服务质量。BQ共64个,数据分类后每一类进入一个队列,队列采用WFQ方式进行调度。Default class为默认类队列,在数据分类时没有匹配任何条件的数据被系统送入默认类队列,默认类队列一般采用先进先出或WFQ方式,进行调度。
CBWFQ进行出队调度时,首先转发LLQ中的数据,直到LLQ中数据为0,然后采用WFQ方式转发其他队列中的数据。为了避免转发LLQ队列中的数据时其他队列长时间等待,CBWFQ可以设定一个最大带宽参数,来限制在网络发生拥塞时优先类转发的速率。当网络出现拥塞时,优先类队列中超出配置的流量将被丢弃。
BQ进行出队调度时,可以通过配置保证最小带宽参数来保证网络拥塞时队列的最小带宽,当网络没有发生拥塞时,能够保证队列可以获得设定的最小带宽,使数据能够及时被转发。另外,在网络拥塞时,如果某队列没有数据,则其他队列可以按照配置的保证最小带宽的比例公平地得到空闲带宽。
在CBWFQ技术中,当队列达到设定队列长度的最大值时,需要丢弃后到的数据,这就是尾丢弃。除了尾丢弃,还可以采用加权随机预检测(WRED)的丢弃策略。
默认就是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方向
拥塞避免
虽然拥塞管理可以通过队列技术保证关键业务的带宽,但是过度的网络拥塞对于网络的危害是很大的,那么如何有效地避免拥塞呢?避免拥塞就要主动丢弃部分报文,以减轻网络的拥塞程度。
尾丢弃就是传统的丢包策略,即当队列达到最大长度后,讲后续来到的报文全部丢弃的策略。很显然不太实用。
在CDWFQ中配置尾丢弃的命令是queue-limit,通过此命令来限制队列的长度。
为了避免出现尾丢弃的现象,就需要使用到WRED(加权随机预检测)这种技术。
采用了以下算法:
小于低阈值时,不进行报文丢弃;
大于高阈值时,完全丢弃报文;
在低阈值和高阈值之间时,WRED开始进行随机丢弃报文,队列越长,丢弃的概率越高。
接下来我们进行简单配置
在接口上配置(基于DSCP的配置)
其中,min表示低阈值,max表示高阈值,mark表示最大概率分母(计算丢弃时使用)
我们通过policy-map配置WRED
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就介绍这么多吧!希望大家多多交流学习。
标签:rsa iat 默认值 code ping 也有 interval weight 限速
原文地址:https://blog.51cto.com/14157628/2396940