CCIE學習筆記之端到端QOS
Class-map預設行為match-all
Match protocol http mime “*/audiovideo/*” //分類器尋找特殊類型的音頻和視訊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做準備
轉載于:https://blog.51cto.com/flyclc/1539394