首页 > 代码库 > CCIE学习笔记之端到端QOS

CCIE学习笔记之端到端QOS

CCIE学习笔记之端到端QOS

Class-map默认行为match-all

 

Match protocol http mime “*/audio/*”

Match protocol http mime “*/video/*”  //分类器寻找特殊类型的音频和视频mime流量

Match protocol http “*.jpg|*.jpeg”     //匹配图片流量

注:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开

 

config-if#mls qos cos 1 //把不打802.1q标签的帧cos设置为1

          mls qos cos override //把所有帧的cos都重写为上一条命令设置的值

          switchport voice vlan 20 //设置语音vlan

          switchport priority extend cos 0 //IP电话吧其接入的PCcos设置为0

          mls qos trust device cisco  //只信任cisco设备的qos,这样把IP电话拔了直接连接PCPC的流量也不会变为5

 

set fr-de     //设置帧中继DE

set mpls experimental  imposition  //设置所有MPLS标签的实验位

set mpls experimental  topmost   //设置最上端MPLS标签的实验位

 

(config)# max -reserved -bandwidth 90

匹配流量

class -map match -any  BB23

  matchinput-interface G0/0/1.50        //匹配流量入口

 match input-interface  G0/0/1.70

 

(config-class )#  match protocol http  url “*.thiswebsite.com/*”  //匹配特定网站流量

(config-class )#  match protocol http url “(*.gif|*.jpg|*.jpeg)”    //匹配图片流量

match not  packet length min500 max 500  //匹配除了包长500的数据

(config-if)# ip nbar protocol-discovery   //用到NBAR时要在QOS应用的接口下开启NBAR发现

de list

frame -relay de -list 1 protocol ip list100

interface S0/0.5

 frame -relay de -group 1 503    //DLCI503符合ACL100的流量打上DE标签

map -class frame-relay FR 

 frame -relay cir  64000 

 frame -relay mincir 32000 

 frame -relay adaptive-shaping interface-congestion 10  //如果端口队列超过10流量减少到mincir

interface S0/0

 frame -relay traffic -shaping

interface S0/0.3

 frame -relay interface -dlci 503 

class FR

 

 

 

修改每个队列的最小buffer

values as follows: 

Minimum reserve level 3 to 80 packets and map to queue 1 

Minimum reserve level 4 to 150 packets andmap to queue 2

Minimum reserve level 8 to 170 packets andmap to queue 3:

 

show mls qos interface f0/1  buffers

 

mls qos

 

mls qos min-reserve 3 80

mls qos min-reserve 4 150 

mls qos min-reserve 8 170 

 

interface f0/1

  wrr-queue min-reserve 1 3

  wrr-queue min-reserve 2 4

  wrr-queue min-reserve 3 8

为第三层隧道提供QOS标记的3种方法:

1.      QOS与分类:在分组封装前提供内部分组的副本,在出口处用此副本进行QOS策略(此时由于封装,不能读取原分组的头部信息),优势是内部分组的TOSIP/TCP/UDP头参数都可以参与QOS策略

配置:

Int tunnel0     //GREIPIP隧道

qos pre-clssify

interfacevirtual-template1

qospre-classify  //l2fl2tp隧道

crypto mapsecured-partner-x  //ipsec隧道

qos pre-classify

2.      TOS反射:将tos字段从内部分组复制到外部分组,在大多数的GREipsec隧道上的默认行为

3.      独立的分组头标记:最不实用的一种

 

BC=CIR*TC

TC:多少时间突发一次(即多少时间分配一个桶的令牌),如cir=8000bc(桶的大小)=2000,那么TC=125ms,即每秒产生4个突发

 

map -class frame-relay FR 

 frame -relay cir 512000

 frame -relay fragment 640 

 frame -relay ip rtp priority 16384 16383 256   //将所有RTP 数据设置(UDP 16384 开始及之后的16383 个端口)优先带宽为mincir(256K)

interface S0/0/0     

 frame -relay traffic -shaping

 frame -relay class FR

 frame -relay ip rtp header-compression

 

 

承诺的访问速率(CAR,不推荐)

interface FastEthernet1/0

rate-limit input access-group 101 960002000 3000 conform-action set-dscp-transmit 10 exceed-action drop

 

单速率三色标记器/管制器:

低于CIR而第一个桶未使用的令牌可累计到第二个桶,用于临时突发流量,但是过量的信用连累计会引起流量的不可预测。

配置:

R2(config)#policy-map clc

R2(config-pmap)#class class-default

R2(config-pmap-c)#police cir 20000000 bc8000 be 8000

R2(config-pmap-c-police)#conform-actionset-dscp-transmit af31

R2(config-pmap-c-police)#exceed-actionset-dscp-transmit af32

R2(config-pmap-c-police)#violate-actiondrop

 

双速率三色标记器/管制器:

两个桶独立(也以一定的速率往第二个桶放令牌,与累计信用量无关,不用把第一个桶用剩的令牌放入第二个桶),允许保持一定速率的过量突发,先检查违约,在检查过量,最后才是符合,配置:

R2(config-pmap-c)#police cir 20000000 bc8000 pir 30000000 be 8000

 

分层管制(policy-map的嵌套)

Policy-map tcp-policy

   Classtcp

     Policecir 10000000

     Service-policyftp-policy      //ftp流量属于TCP的子集,第二级的管制器作用在由第一级管制器传输或标记的分组上,第二级无需知道第一级丢弃的任何分组,即第二级在第一级的基础上管制

 

整形器:

默认Bc设置为cir/8,即产生125ms的间隔,语音流量建议间隔10ms,即bc设置为cir/100

峰值速率=cir1+be/bc

,峰值速率语序比平均速率整形较高的整形,但是峰值速率整形启动后如果网络拥塞则超过cir的流量都会被丢弃

 

帧中继流量整形(FRTS

Int s0/1

 Encapsulationframe-relay

 Frame-relaytraffic-shaping    //开启FRTS

Int s0/1.1 point-to-point

  Frame-relayinterface-dlci 100

Class frts                       //应用FRTS策略,可用在物理接口,子接口或单独的DLCI

Map-class frame-relay frts

  Frame-relaycir 1536000

  Frame-relaybc 15360             //bc=cir/100,即突发间隔10ms

  Frame-relay be0       //峰值速率=cir1+be/bc,这里建议不允许突发流量,因为接收端只能以bc的速率拉流量,这样存在将在的缓冲延迟

 Frame-relay mincir 1536000   //当自适应整形启动并受到ECN通知死,降低流量到最小CIRmincir),默认cir/2,推荐网络传输试试流量时禁用自适应整形

  Frame-relayadaptive-shaping //开启自适应整形

 

基于类别的帧中继整形:

Policy-map cb-frts

  Classclass-default

Shape average1536000(cir) 15360(bc) 0(be)

Int s0/1

Encapsulation frame-relay  //貌似不用开启FRTS

Int s0/1.1 point-to-point

  Frame-relayinterface-dlci 100

Class cb-frts

Map-class frame-relay cb-frts

  Service-policyoutput cb-frts   //流量整形只能用于out方向

 

帧中继语音自适应的流量整形(FR-VATS)

根据分组进入优先级队列或低延迟队列来判断语音的出现,如果没有语音出现,允许流量突发到线路速率(下面例子中配置为CIR),如果有语音出现被整形到另一个速率(下面的例子配置为mincir

配置:

Policy-map fr-vats

  Classclass-default

Shapeaverage 768600 3648 0   //设置没有语音流量允许的速率(CIRcir=768600,bc=mincir/100,be=0

Shape adaptive 364800   //设置出现语音流量的整形速率(mincir

Shapefr-voice-adapt deactivation 30 //允许当语音流量出现时进行速率调整,并且设置钝化周期30s(默认),这样语音消失30秒内还是被整形到有语音流的速率

int s0/1

frame-relay fragmentation  voice-adaptivedeactivation 30

//开启FR voiceadaptive fragmentation(sub-component of FR VATS)

 

Int s0/1.50

Bandwidth 768

Frame-relay interface-dlci 100

   Classfrts

Map-class frame-relay frts

  Service-policyoutput fr-vats

  Frame-relayfragment 480    //对帧中继流量进行分片和交叉传递以减少语音流量延迟

 

通用流量整形(MQC

第三层排队机制

Policy-map a

  Classvoice

    Prioritypercent 30   //启用LLQ,如果开启两个LLQ队列,实际上是分时复用一个PQ队列,没有拥塞时可以超过,拥塞时严格管制

Class important_data

  Bandwidth percent 45  //启用CBWFQ

Class class-default

  Fair-queue      //启用WFQ

 

2层排队工具

1.       帧中继双FIFO

三层的LLQ队列被放入第二层的一个队列,其他经过三层调度放入二层的另一个队列,这样的第二层队列确保来自一个DLCILLQ不会被另一个队列的CBWFQ队列延迟。

配置了FRF.12时接口上自动启动双FIFO排队。FRF.12依赖于帧中继流量整形(FRTS)或基于类别的FRTS被启用

2.       PVC接口有限级队列

在接口级别定义了四个队列,优先级高的比优先级低的拥有绝对优先权,可能饿死低优先级队列,配置:

Int s0/1.1

  Frame-relay interface-queue priority 10 20 3040

  Frame-relay interface-dlci 101

     Class high-pvc           //dlci101的流量放入高优先级队列

Map-classframe-relay high-pvc

   Frame-relay interface-queue priority high

 

早期随机检测

Random-detect dscp-base af11 5 20 8    //启动基于DSCP的早期随机检测,从队列深度5个分组开始丢弃,达到最大深度20时,8个分组中丢1

Random-detect ecn

 

报头压缩

1.      HDLC

Ip tcpheader-compression

Ip rtp header-compression

Ip tcpcompression-connections 可能的最短会话数量

Ip rtpcompression-connections

2.      ppp

命令和上面一样,只不过开启cTCPcRTP就会自动开启另一个

3.      帧中继

Frame-relay iprtp header-compression

基于类别的头压缩

Policy-map a

  Classvoice

Compressionheader ip rtp/tcp

注意:启用接口下的头压缩和基于类别的有压缩互斥的,连接并发数自动配置

分段与交错(LFI

让语音的串行化延迟低于10ms(推荐),所以只要1500字节所造成串行化延迟低于10ms就不需要LFI(如1536kbit/s的链路)

1.      多链路PPP LFI

Int multilink1

  Ppp multilink

  Ppp multilink group 1

  Ppp multilink fragment delay 10   //串行化延迟设置为10ms,自动计算分片大小

  Ppp multilink interleave    //交叉传递

  Ints1/0

Bandwidth 786

Encapsulationppp

Ppp multilink

Ppp multilinkgroup 1

2.      帧中继LFI

Map-relayframe-relay frag

  Frame-relay fragment 960   //开启分片也自动开启交错

Int s1/0.1

  Frame-relay interface-dlci 102

    Class frag

RSVP

配置:

Interface s0/1

R1(config-if)#ip rsvp bandwidth 1000 200   //总共可预留1000kbps,每个流最大预留200kbps

 

RSVP为语音流量提供带宽延迟保障必须与LLQ一起使用

R1(config)#ip rsvp pq-profilevoice-like    //可以为RSVP选择内置的类似语音配置文件来将流量分类成LLQPQ

(config)# ip rsvp pq -profile1024 128    // max flow rate  1024Bps max flow burst  128bps

(config-if)# ip rsvp bandwidth256 64   //总共254,单个流量最大64

3550分类、标记和映射

接口下信任或用MQC

3550配置DSCP突变

diffserv区域的边界接口上应用突变映射:

(config)#mls qos map dscp-mutationdiff1-to-diff2 18 to 10    //邻居来的DSCP 18转成dscp 10

(config)#mls qos map dscp-mutationdiff1-to-diff2 20 to 12

(config)#mls qos map dscp-mutationdiff1-to-diff2 22 to 14

Int g0/3

Mls qos trust dscp    //信任dscp

Mls qos dscp-mutation diff1-to-diff2   //应用突变映射

 

3550管制和降格

(config)#mls qos map policed-dscp 10 to 12  //AF11转成AF12

Class a

  Matchip dscp af11

  Matchvlan 10

policy-map a

 class a

police 100000008000 exceed-action policed-dscp-transmit

int f0/1

 service-policy input a

3550排队与丢弃

35504个出口队列,其中队列4可被配置为严格优先级队列,默认不启用,启用要在接口上:

int f0/1

priority queue out

 

为每个队列设置带宽,如果优先级队列启用则其带宽被忽略(weight4被忽略)

(config)#wrr-queue bandwidth 5 4 11 1

 

修改队列可用缓冲空间,默认每个队列可用缓冲空间的25%

(config)#wrr-queue queue-limit 30 30 30 10

 

根据cos把流量归入相应队列,默认cos 0/1队列1cos 2/3队列2cos 4/5队列3cos 6/7队列4,注意是基于每个接口:

int f0/1

wrr-queue cos-map 4 5   //cos5划入队列4

 

配置WRED阀值和DSCP到阀值的映射:

int f0/1

wrr-queue random-detect max-threshold 1 40 100  //队列1启用WRED且第一个丢弃阀值设为40%,第二个阀值设为100%

wrr-queue dscp-map 1 12 20 28 36   //cos 12 20 28 36映射到阀值1,超过阀值1则丢弃

wrr-queue dscp-map 2 8 10   //cos 8 20映射到阀值2,超过阀值2则丢弃

 

2970/3560/3750分类、标记和映射

3550同,接口信任或MQC

2970/3560/3750管制和降格

3550

2970/3560/3750排队与丢弃

支持入口调度,但是几乎不需要

支持4个出口队列,通过priority-queue out可将队列13550是队列4)设置为优先级队列。

通过整形循环(SRR)算法服务非优先级队列,运行模式:shapedsharing,入口只支持sharing

shaped模式根据权重来计算队列的带宽,即使链路空闲也不能超过分配的带宽

share模式根据权重共享带宽,但并不限制

接口可以配置成4Q3T1P3Q3T

 

配置每个队列的缓冲分配和阀值:

(config)#mls qos queue-set output 1 buffers35 30 25 10  //分配给每个队列的缓冲比例

(config)#mls qos queue-set output1 threshold 2 40 100 100 100 //队列2的阀值140,阀值2100

int f0/1

queue-set 1

priority-queue out      //开启优先级队列1

 

配置SRR整形和共享的权重:

int f0/1

srr-queue bandwidth share 35 30 25 10

srr-queue bandwidth shape 0 0 0 10   //0表示该队列用共享模式,如果有值表明该队列在整形模式,此时该队列的共享模式的值无效

 

DSCP值分配给队列和相应的阀值:

(config)#mls qos srr-queue outputdscp-map queue 1 threshold 1 46  //dscp 46划入队列1的阀值1

 

修改从COSDSCP的映射:

(config)#mls qos map cos-dscp 0 816 24 32 46 48 56

 

auto qos:

Router(config-if)# auto qosvoip cisco-phone/ cisco-softphone

! ConfiguresautoQoS for a Cisco IP phone.

Router(config-if)# auto qos voip trust

! ConfiguresautoQoS for marked traffic

 

auto discovery qos trust

!自动收集网络上的流量,为autoQOS做准备


本文出自 “flyclc” 博客,请务必保留此出处http://flyclc.blog.51cto.com/1385758/1539394