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电话吧其接入的PC的cos设置为0
mls qos trust device cisco //只信任cisco设备的qos,这样把IP电话拔了直接连接PC,PC的流量也不会变为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策略(此时由于封装,不能读取原分组的头部信息),优势是内部分组的TOS,IP/TCP/UDP头参数都可以参与QOS策略
配置:
Int tunnel0 //GRE和IPIP隧道
qos pre-clssify
interfacevirtual-template1
qospre-classify //l2f和l2tp隧道
crypto mapsecured-partner-x //ipsec隧道
qos pre-classify
2. TOS反射:将tos字段从内部分组复制到外部分组,在大多数的GRE和ipsec隧道上的默认行为
3. 独立的分组头标记:最不实用的一种
BC=CIR*TC
TC:多少时间突发一次(即多少时间分配一个桶的令牌),如cir=8000,bc(桶的大小)=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。
峰值速率=cir(1+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 //峰值速率=cir(1+be/bc),这里建议不允许突发流量,因为接收端只能以bc的速率拉流量,这样存在将在的缓冲延迟
Frame-relay mincir 1536000 //当自适应整形启动并受到ECN通知死,降低流量到最小CIR(mincir),默认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 //设置没有语音流量允许的速率(CIR)cir=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队列被放入第二层的一个队列,其他经过三层调度放入二层的另一个队列,这样的第二层队列确保来自一个DLCI的LLQ不会被另一个队列的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
命令和上面一样,只不过开启cTCP或cRTP就会自动开启另一个
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选择内置的类似语音配置文件来将流量分类成LLQ的PQ
(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排队与丢弃
3550有4个出口队列,其中队列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队列1,cos 2/3队列2,cos 4/5队列3,cos 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可将队列1(3550是队列4)设置为优先级队列。
通过整形循环(SRR)算法服务非优先级队列,运行模式:shaped或sharing,入口只支持sharing。
shaped模式根据权重来计算队列的带宽,即使链路空闲也不能超过分配的带宽
share模式根据权重共享带宽,但并不限制
接口可以配置成4Q3T或1P3Q3T
配置每个队列的缓冲分配和阀值:
(config)#mls qos queue-set output 1 buffers35 30 25 10 //分配给每个队列的缓冲比例
(config)#mls qos queue-set output1 threshold 2 40 100 100 100 //队列2的阀值1为40,阀值2为100
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
修改从COS到DSCP的映射:
(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做准备
CCIE学习笔记之端到端QOS