QOS(Quality Of Server)(在擁塞時才用) 哪些問題會影響網絡的數據傳輸 解決可用帶寬的方法: 延遲的分類:端到端延遲分爲 注意:只有排隊延遲可以通過使用QOS來進行控制 解決抖動: 丟包:僞丟棄 排隊滿 將後續的包丟棄 不分優先級 QOS服務模型: IntServ 資源預留的過程分爲5步: 路由器對數據包的處理過程: 資源預留方式可分爲兩類: 需要一個PDP(policy Decision Point策略決策點)來集中完成網絡對RSVP請求的許可控制。 配置: R2(config)#interface S0 R3(config)#interface S0 show ip rsvp interface DiffServ 缺點:沒有絕對的服務保證,機制複雜。 語音進程的端口號:16384-32767之間的偶數 奇數的是控制端口,偶數的是數據端口 ·確定數據流的優先順序。對延遲敏感的流量賦予高的優先級。 ·制定排隊策略: ·RTP(Real-Time Protocol):實時傳輸協議 ·MQC–模塊化的QOS命令行 分類和標識的方法: 分類是以特定的優先級或預定的參數來區分幀或數據包 標記就是對區分出來的數據包打上相應的優先級 一、二層標記方法 二、三層標記方法 標在IP頭中 同IEEE802.1P DSCP–區分服務代碼點 PHB–逐跳行爲,取出13個DSCP值進行了標準化 PBR:做了分類和設置優先級的工作。 例子: 第一步:定義ACL 第二步:定義route-map並打標記 R1(config)#route-map PBR 20 R1(config)#route-map PBR 30 第三步:調用 R1(config)#interface s0 MQC(Modular QoS CLI(command line interface)): CBMARKING 步驟: 2、定義類別映射表 R1(config)#class-map [match-any|match-all] TELNET R1(config)#class-map [match-any|match-all] NETWORK 3、定義策略映射表 4、調用 #show policy-map class-map默認是match-all 例二: R1(config)#class-map [match-any|match-all] INTER R1(config)#policy-map XWX 調用在出口 NBAR(Network-Based Application Recongnition基於網絡的應用識別) 例一: 配置NBAR: 2、定義類別映射表 3、定義策略映射表 4、調用 注意事項: R1(config)#ip nbar port-map http tcp 80 8080 指定http協議對應的端口,不僅僅是默認的,還可以擴展 例二、禁止訪問新浪、禁止下載JPG圖片 class-map match-any DROP R1(config)#policy-map XWX R1(config)#int s0 PDLM(packet description language module) 包描述語言模塊,一種擴展的技術,可以讓路由器直接對某種應用程序流量或新的協議流量進行識別,而不需要更換IOS或重啓路由器。PDLM模塊由cisco的工程師開發,需要先下載進flash中,再進行加載。 例三: R1(config)#ip nbar pdlm bt.pdlm ——-灌入抓BT的PDLM。裝入之後就可以在class map中調用了 R1(config)#class-map match-any DROP R1(config)#int s0 ———————————————————————————- 更多內容可關注老胳膊博客 FIFO:first in first out queuing 先進先出隊列 分類:不對報文進行分類 ·FIFO(First In First Out) 排隊是一種經典的分組傳輸算法。 R1(config-if)#no fair-queue 在接口啓用FIFO show interface e0 查看 FIFO輸出隊列的緩存中默認只容納40個包,可以修改。 PQ:優先級隊列 加隊:在每一個隊列中還是按照fifo的原則加隊,按尾丟棄原則丟棄。 實驗: Access-list 100 permit icmp any any 抓出所有icmp的流量 R1(Config)# priority-list 1 protocol ip high tcp telnet 將telnet流量的優先級置爲high R1(Config-if)#priority-group 1 接口下調用 R1(Config)# priority-list 1 queue-limit 22 44 66 88 定義每一個隊列的座位數,隊列1爲22個,隊列4爲88個 priority-list 1 interface s0 [high|medium|normal|low] 按接口來進行分類,也就是說把一個接口來的數據都放進一個隊列,太過粗略 priority-list 1 default [high|medium|normal|low] 設置默認 Show int e0 看每一個隊列有多少個座位,也就是能容納多少個包 CQ Custom queue access-list 100 permit udp any any range 16384 32767 語音流量 R1(Config)# queue-list 1 protocol ip 0 list 100 注意:在定義CQ時,最好由小到大一個個來定義,否則可能出錯 R1(Config-if)#custom-queue-list 1 接口下調用 R1(Config)# queue-list 1 queue 0 byte-count 800 show queueing custom 擴大優先級隊列的範圍 : 默認沒有分類的流量走的是低級隊列的第一個隊列。默認就是走1級隊列。 WFQ(Weighted Fair Queuing) 加權公平隊列(基於流的) ·WFQ算法將數據流劃分成流,這是根據分組報頭中的地址實現的。 加隊:默認總共只有256個隊列,共享緩存,統一調度座位 1000個包 CDT:congestive discard threshold 緩存中容納包的下限 HQO:hold-Queue out limit 緩存中容納包的上限 調度: ·WFQ給每個數據包指定一個權重(also called finish time),權重決定了隊列中分組的傳輸順序。權重小的數據包得到優先傳送,權重是根據公式得到的,FT和SN算法 ·WFQ在調度時首先傳輸權重小的分組。包的尺寸越小,其權重也就越小。所以小尺寸的包往往被優先傳送。 ·小容量流量發送後,各大容量共享餘下的鏈路帶寬。 ·對於有優先級的包的處理:要計算其權重的時候會使用其虛擬包大小來計算。 virtual packet size=real packet/(ip precedence+1)實際上等於減小了權重 從以上公式可以看出:優先級越大,計算出的權重越小 ·WFQ可確保每個數據報都能佔用適當的帶寬。 ·WFQ給每個會話分配一個隊列,隊列優先級分7種。 配置: R2#show interfaces ethernet 0/0 ·速率不超過E1(2.048Mbps)的Serial口默認使用WFQ。 修改默認的隊列數: show queueing interface Link queue:爲系統保留的 CBWFQ(Class-Based Weighted Fair Queuing) ·CBWFQ拓展了標準WFQ的功能,支持用戶自定義的數據流類別。 ·CBWFQ給每個類別(而不是流)指定權重,它與分配給類別的帶寬呈反比。 ·默認情況下,分配給所有類別的帶寬總和不能超過接口可用帶寬的75%。 實驗一: 1、分類: R1(config)#access-list 111 permit tcp any any eq www 2、策略: 3、調用: 還可以在最後一個隊列中單獨使用WFQ,用了後,就不能指定帶寬了 max-reserved-bandwidth 100 這個值默認是75%,如果你想用到100%,必須打上這一命令 實驗二: ·需求:普通199.1.1.0/24 ->20% 1)定義普通用戶的流量: 2)將前2種流量放入Class-map: 3)爲3種流量設定百分比: 4)在接口調用: 默認情況下,帶寬的25%用於網絡控制流量,只有75%用於數據的傳輸 LLQ(Low Latency Queuing)在WFQ的基礎上增加了一個優先隊列 ·低延遲隊列:LLQ將絕對優先隊列技術應用於CBWFQ,能夠提供低延遲的傳輸保證。從而緩和了語音會話的抖動。絕對優先隊列主要被用來處理對延遲敏感的數據(如語音)。 ·雖然可以將多種不同的實時數據流加入到Priority隊列中,但Cisco建議只將語音流加入到這種隊列中。 例一: 例二: 例三: 可用帶寬=實際帶寬*0.75 <CBWFQ/WFQ的對比> 與基於流的WFQ相比,CBWFQ具有以下優點: ·粒度更細、可擴展性更高:CBWFQ可根據多種條件來定義類別。 RTP優先隊列可以和WFQ或CBWFQ結合使用 RTP優先隊列只能爲UDP流量服務 這個隊列在接口下直接配置,實際上就是在接口下劃出一部分帶寬給特定UDP流量來使用,實際上主要是爲VOIP流量服務 ·RTP(Real-Time Protocol):實時傳輸協議 語音進程的端口號:16384-32767之間的偶數 奇數的是控制端口,偶數的是數據端口 R1(config-if) #ip rtp priority 16384 16383 50 最後這個參數是分配的帶寬值 WRRQ(Weighted Round-Robin加權輪詢隊列) 配置實例: SW1(config)#mls qos 啓用命令,必須打上 SW1#sh mls qos int f0/1 queueing 查看 可以配置四個隊列的權值,使其得到不同的服務 SW1(config-if)#priority-queue out 啓用絕對優先隊列 配置入站信任 當信任入站的COS和IP優先級時,會映射到相應的內部DSCP值,在交換機上根據內部的DSCP值來決定相應的出站QOS策略。 限速策略: 令牌桶: TC=BC/CIR CIR=Bc/Tc cir 64 tc 125=8000 bc Shaping mechanisms: GTS Overview GTS is multiprotocol. 三層協議 GTS Implementation Traffic-shape group shapes outbound traffic matched by the specified access list. configuration GTS 例一: R1(config-if)#traffic-shape rate 64000 8000 8000 1000 ———- 啓用GTS,設置CIR爲64000。 #show traffic-shap serial 0 例二: R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255 #show traffic-shape GTS幀中繼適應性整型(GTS Frame Relay Congestion Adaptability) FECN (Forward explicit congestion notification) 前向顯示擁塞通告 幀中繼交換機通告receive方 DE:一旦幀中繼有一個DE位置位,而且發生擁塞,那麼就丟掉DE位的幀。 注意:在做幀中繼適應性整型命令之前,首先要做正常的GTS流量整形,說明接口的限制速率。 if)#traffic-shape adaptive [bit-rate] ———- 啓用幀中繼適應性整型命令,還可以在這裏設置當發生擁塞時,最少可低至多少流速 show traffic-shape 可以查看到BECN顯示出來了 traffic-shape fecn-adapt —– 在接收方配置,在某些情況下,發過來的是單向流量,沒有回包,產生擁塞時,無法通知發送方,用這一命令可讓接收方在收到FECN置位的數據幀後發送一個測試信息,用來通知發送方產生了擁塞。 例三: FRTS Overview 幀中繼流量整型 可以在幀中繼中爲每一個DLCI管道做整型 配置: 第二步: 另一種寫法 第三步: 在一條PVC中單獨調用: 也可以做適應性的流量整形: R1(config-map-class)#frame-relay cir 128000 適應性整型時指定cir FRTS的shape queue默認也是WFQ EIR=Be/Tc CBshaping 在CBshaping中可以指定平均速率,也可以指定最大速率。 例: 第一步:定義ACL,抓出流量 第二步:定義class-map,將流量分類 第三步:定義策略,對不同類別的流量給予不同的速率 第四步:接口下調用 show policy-map interface s0 shape max-buffers 2000 ——– 修改的buffers數,默認值爲1000。 Policing mechanisms: CAR沒有BE的情況下: CAR中有Be的情況下: 當DC<=Be時,這個包就屬於comform-action 例一:對所有流量都控制,沒有分類 if)#rate-limit input 64000 1500 2000 conform-action transmit exceed-action drop shaping中BC和BE是用單位bit 例二:對一類特定的流量做限制 access-list 100 permit udp 192.168.1.0 0.0.0.255 any range 4000 5000 int s0/0 #show interface rate-limit 注意:這裏Bc和Be的單位是BYTE,切記,在shaping中,單位是bit,在policy中,單位是byte 例三:說明continue的作用 access-list 100 permit tcp any any eq www rate-limit output access-group 100 64000 1500 2000 conform-action transmit exceed-action continue CBpolicing 第一步: 第二步: 第三步: 第四步: show policy-map interface s0/0 —————————————————————————————– ·默認設置尾丟棄是一種被動的隊列管理機制。 ·基本思想:確保隊列長度位於最小閾值和最大閾值之間,對於不同類別的數據流採用不同丟棄策略。 R2(config-if)#random-detect 啓用開關 random-detect precedence 6 45 50 5 設優先級爲6的包在隊列填充到45和50之間時開始丟棄 random-detect exponential-weighting-constant N 默認是9 注意:默認情況下,啓用WRED後只能使用FIFO FB-WRED show queueing random-detect CBWRED即可對TCP,也可對非TCP流量,必須結合CBWFQ來做 例:將優先級爲3、4 的數據包分爲一個類別GOLD、帶寬30% 將優先級爲1、2 的數據包分爲一個類別SILVER、帶寬20% 對於默認隊列,啓用WFQ,WRED class-map GOLD policy-map POLICY1 show policy-map 以上的例子是基於優先級來做的,如果基於DSCP,開啓的命令是不一樣的 policy-map POLICY1 本文鏈接地址: Qos (Quality of server)
1、有限的帶寬
2、延遲
3、抖動
4、丟包
1、升級帶寬,增加鏈路帶寬
2、讓優先級高的流量先過
3、壓縮二層的幀 不建議
4、壓縮IP包的頭部
1、處理延遲–網絡設備將數據幀從入接口取出,將其放到接收隊列,再放到出接口輸出隊列所需的時間
2、排隊延遲–數據包在接口的輸出隊列中等待的時間 可控
3、串行化延遲–將封裝在數據幀中比特放到物理介質上的時間 比特轉換爲電信號
4、傳播延遲–通過物理介質傳輸數據幀中的比特所需的時間
解決延遲的方法:
1、增加鏈路帶寬
2、讓優先級高的流量通過
3、壓縮 不建議
使用緩衝:解決的是抖動
解決方法:
1、升級鏈路帶寬
2、爲重要的數據有足夠的帶寬
3、擁塞之前丟棄不重要的數據包
1、盡力而爲的服務–沒有應用QOS,網絡的默認行爲
2、集成服務–所有的中間系統和資源都顯式的爲流提供預定的服務,這種服務需要預留網絡資源,確保網絡能夠滿足通信流的特定服務要求。
3、區分服務–將根據服務要求將通信流分類,然後將它們加入到效率不同的隊列中,使一些通信流優先於其他類別的通信流得到處理。
集成服務是通過使用RSVP(Resource Reservation Protocol資源預留協議)實現的,在兩個端點中間網絡設備上都要啓用RSVP。
工作原理–數據流在發送之前,起始節點會向網絡請求特定類型的服務,並將其流量配置文件告訴網絡中的每個中間節點,請求網絡提供一種能夠滿足其帶寬和延遲要求的服務。在從網絡得到確認後,應用纔開始發送數據。
1、數據發送方發送rsvp path控制消息,這種消息描述了將要被髮送的數據的信息。
2、每個rsvp路由器收到path消息後,保存上一跳的IP地址,並繼續向下發送。
3、接收站接收到rsvp path消息後,使用rsvp resv消息向上一跳路由器請求rsvp資源預留。rsvp resv消息從接收方到發送方所經過的路徑與rsvp path消息到來時完全相同。
4、rsvp路由器確定是否可以滿足這些rsvp請求,如果不能,則拒絕。如果可以,則預留出資源,並繼續向上一跳發送出rsvp請求。
5、發送方收到rsvp請求,說明預留已經就緒,可以開始發送數據了。
1、准入控制
2、分類
3、策略
4、排隊
5、調度
1、獨佔式–適合於多個數據源同時發送的應用程序,針對每個發送方預留資源,且發送方是很清楚的。
2、共享式–適合於多個數據源不太可能同時發送的應用程序。
又可分爲兩種:
①共享顯式(shard explicit SE)–爲多個明確的源預留資源
②通配符過濾器(wildcard filter WF)–爲所有源預留資源
缺點:不具有可擴展性,並且需要網絡設備不斷的發送信號,本身佔用帶寬。
R1(config)#interface e0
R1(config-if)#ip rsvp bandwidth 起用rsvp,默認使用75%的帶寬做rsvp
R1(config-if)#ip rsvp bandwidth 500 只使用500K的帶寬
R1(config)#interface S0
R1(config-if)#ip rsvp bandwidth
R1(config)#ip rsvp sender 20.1.1.5 10.1.1.4 udp 1040 0 10.1.1.4 e0 32 32
目標IP 源IP 目標端口 源端口 預留帶寬
R2(config-if)#ip rsvp bandwidth
R2(config)#interface S1
R2(config-if)#ip rsvp bandwidth
R3(config-if)#ip rsvp bandwidth
R3(config)#interface S1
R3(config-if)#ip rsvp bandwidth
R3(config)#ip rsvp reservation 20.1.1.5 10.1.1.4 udp 1040 0 20.1.1.5 e0 ff load 32 32
獨佔式預留
show ip rsvp installed
區分服務–能夠提供滿足不同QOS需求的多種服務等級。不需要顯示的通知網絡設備。
路由器對數據包的處理是逐跳行爲
如果WAN鏈路不發生擁塞,沒有必要劃分數據流的優先順序。
如果WAN鏈路經常發生擁塞,劃分數據流的優先順序可能解決不了問題,更合適的解決方案是增加帶寬。
1.爲所有用戶提供合適的服務級別
2.節省昂貴的WAN費用
RTP傳輸多媒體應用的數據流,包括IP語音和視頻(對延遲比較敏感的)
爲我們配置QOS提供了一個統一的格式標準
COS–二層的服務類別 IEEE802.1P
7 保留
6 保留
5 語音流量
4 視頻會議
3 呼叫信令
2 高優先級數據
1 中優先級數據
0 盡力而爲的傳輸
IP優先級–共8個分類,從0-7,0級最低,7級最高
使用ToS字段的前6個bit,共64個不同的優先級
AF–保證轉發,定義了四種不同的類別,每種類別又定義了三種不同的丟棄概率
EF–快速轉發 101110 建議給語音用
注意:只能設置IP優先級,不能支持DSCP
1、對VOIP流量設定IP優先級爲5
2、對於5.5.5.0網段過來的,訪問2.2.2.0的流量設定IP優先級爲2
3、對於6.6.6.0網段過來的,訪問2.2.2.0的流量設定IP優先級爲1
R1(config)#access-list 100 permit udp any any range 16384 32767 端口 抓的是VOIP的流量
R1(config)#access-list 101 permit ip 5.5.5.0 0.0.0.255 2.2.2.0 0.0.0.255
R1(config)#access-list 102 permit ip 6.6.6.0 0.0.0.255 2.2.2.0 0.0.0.255
R1(config)#route-map PBR 10
R1(config-route-map)#match ip address 100
R1(config-route-map)#set ip precedence 5
R1(config-route-map)#match ip address 101
R1(config-route-map)#set ip precedence 2
R1(config-route-map)#match ip address 102
R1(config-route-map)#set ip precedence 1
R1(config-if)#ip policy route-map PBR
MQC–模塊化的QOS命令行
爲我們配置QOS提供了一個統一的格式標準
要求:
1、對VOIP流量,給予IP優先級5
2、對於telnet流量,給予IP優先級4
3、對於來自172.16.1.0的流量,給予IP優先級2
1、定義ACL
R1(config)#access-list 100 permit udp any any range 16384 32767
R1(config)#access-list 101 permit tcp any any eq 23
R1(config)#access-list 102 permit ip 172.16.1.0 0.0.0.255 any
R1(config)#class-map [match-any|match-all] VOIP
R1(config-cmap)#match access-group 100
R1(config-cmap)#match access-group 101
R1(config-cmap)#match access-group 102
#show class-map
R1(config)#policy-map XWX
R1(config-pmap)#class VOIP
R1(config-pmap-c)#set ip precedence 5
R1(config-pmap)#class TELNET
R1(config-pmap-c)#set ip precedence 4
R1(config-pmap)#class NETWORK
R1(config-pmap-c)#set ip precedence 2
#show policy-map
R1(config)#int s0
R1(config-if)#service-policy input XWX
#show policy-map interface
#show class-map
#show policy-map interface
對於來自s1接口的流量,給予IP優先級1
R1(config-cmap)#match input-interface s1 還可以匹配入站接口
R1(config-pmap)#class INTER
R1(config-pmap-c)#set ip precedence 1
R1(config)#int s0
R1(config-if)#service-policy input XWX
基於ACL的分類使用數據包的第3層和4層信息來對數據包進行分類。
NBAR可以根據第7層信息來對數據幀進行分類。
match protocol時,就是用NBAR
對於telnet流量,給予優先級3
1、開啓cef
R1(config)#ip cef
R1(config)#class-map [match-any|match-all] TELNET
R1(config-cmap)#match protocol telnet 區別就在這裏
R1(config)#policy-map XWX
R1(config-pmap)#class TELNET
R1(config-pmap-c)#set ip precedence 3
R1(config)#int s0
R1(config-if)#ip nbar protocol-discovery
R1(config-if)#service-policy input XWX
使用NBAR,必須先啓用CEF特性
config)#ip cef
使用NBAR,接口模式下必須打開 (match 字段中有protocol時就表示使用了NBAR)
ip nbar protocol-discovery 必須在接口下開啓這一命令
match protocol http host www.sina.com.cn 過濾本網站的流量
match protocol http url *.jpg|*.gif 還可以抓網頁上的圖片
R1(config-pmap)#class DROP
R1(config-pmap-c)#drop
R1(config-if)#service-policy input XWX
在網絡中過濾掉BT流量
R1(config-cmap)#match protocol pdlm bt
R1(config)#policy-map XWX
R1(config-pmap)#class DROP
R1(config-pmap-c)#drop
R1(config-if)#service-policy input XWX
———————————————————————————-
排隊技術
從三個步驟上來學習:
1、分類
2、加隊
3、調度
加隊:按數據包到達的先後順序進行加隊,按尾丟棄原則丟棄。
調度:按數據包到達的先後順序進行出隊
分組的傳輸順序與接收順序相同。現今仍是大部分接口的默認設置。(大於2M的基本都是fifio)
默認2.048M以下都是WFQ
R1(config-if)#hold-queue 50 out
共有四個隊列,分爲四個優先級別,默認的流量都是normal
優先級分類:1high 2medium 3normal 4low 默認所有流量都走normal隊列
調度:只要高優先級有流量就發高優先級的,只到高優先級的數據發完再發低優先級的數據,這樣就有可能造成低優先級的數據無帶寬可用。
要求在路由器的出接口將telnet流量放入high隊列 將icmp流量放入medium隊列
R1(Config)# priority-list 1 protocol ip medium list 100 調用訪問列表將icmp的優先級置爲normal
Show queueing (看所有隊列)
Show queueing priority
Debug priority 再使用telnet和ping來測試
R2(config)#line vty 0 4
no login
分類:1~16隊列 再加上一個優先隊列0級隊列 共17個隊列 0級和其它級的關係相當於PQ
加隊:自定義加隊,不同的流量加不同的隊列。在每一個隊列中還是按照fifo的原則加隊,按尾丟棄原則丟棄。
調度:輪循,第一個傳完就傳第二個,默認1500個字節,可以修改每個隊列的傳輸字節數
先有1000個字節,再來1000,還是會傳
例:將VOIP流量設爲優先隊列,將telnet流量置爲隊列1,將ICMP流量置爲隊列2
access-list 101 permit icmp any any
R1(Config)# queue-list 1 protocol ip 1 tcp telnet 將telnet流量置爲隊列1
R1(Config)# queue-list 1 protocol ip 2 list 101
R1(Config)# queue-list 1 queue 1 byte-count 1600 設置本隊列每次可傳的字節數 默認傳1500字節
R1(Config)# queue-list 1 queue 1 limit 50 設置本隊列的座位數
Debug custom-queue
show interface e0/0
R1(Config)#queue-list 1 lowest-custom 1 不推薦打0 一般打2 這樣的話隊列0和隊列1同其它隊列就相當於是PQ的關係
分類標準:按流來分,而不是按類來分
2層 源和目標的mac地址
3層 源和目標的ip地址,還有協議類型
4層 源和目標的端口號
流的五元組:源IP、目標IP、源端口號、目標端口號、協議
源/目標網絡地址(MAC地址)(套接字)(DLCI)
當緩存中的數據包小於這個值時,不採取任何限制措施
當緩存中的數據包大於這個值時,採用以下方法來限制後續數據包:
1、如果後續數據包屬於最長隊列,則被drop
2、如果後續數據包不屬於最長隊列,則直接將這個包加入
如果緩存中的數據包超過HQO值,又來了一個包,則採取以下措施:
1、如果這個包屬於最長隊列,則被drop
2、如果這個包不屬於最長隊列,則去掉最長隊列中的一個包,再將這個包加入其所屬隊列
·基於流的WFQ在傳輸數據之前,將各個會話的分組放到公平隊列中。
虛擬包大小=實際包大小/(ip優先級+1)
大小相同的文件傳輸將獲得相同的帶寬,而不是先到的文件佔用大量帶寬。
R2(config-if)#fair-queue (接口啓用WFQ) (s口默認是開啓的,E口默認是FIFO)
….Queueing strategy: weighted fair
在使用X.25或壓縮PPP的Serial,WFQ被禁用。
E3/T3 (34M/45M)的WAN接口和Serial不支持WFQ。
R2(config-if)#fair-queue 256 512 6 注意最後這一參數表示爲RSVP預留的隊列數
CDT 隊列數
R2(config-if)#hold-queue 2000 out 修改允許的座位數HQO值,默認最大是1000
show queueing fair
Reserved queue:保留隊列,爲RSVP保留的
可以根據多種條件來定義數據流類別。(協議/ACL/輸入接口)
CBWFQ最多隻有64個類別,默認每個隊列中能緩存64個包。
餘下的25%用於傳輸控制數據流和路由選擇數據流。
Voip 30%
Http 20%
Other ……25%
R1(config)#class-map voip
R1(config-)#match ip rtp 16384 16383 抓取16384之後的16383個端口
R1(config)#class-map http
R1(config-)#match access-group 111
policy-map CBWFQ 名字
class voip
bandwidth percent 30 percent參數代表總帶寬的百分比,remaining參數代表75%可用帶寬的百分比
class http
bandwidth percent 20
class class-default 設置其它流量佔用20%帶寬
bandwidth percent 25
service-policy output CBWFQ 名字
policy-map CBWFQ
class class-default
fair-queue
Voice (Critial)->50% VOIP的流量已經被標記了優先級5
Other ->30%
access-list 1 permit 199.1.1.0 0.0.0.255
class-map match-all VOICE
match ip precedence 5 將優先級爲5的包找出來
class-map match-all NORMAL
match access-group 1
policy-map CBWFQ
class NORMAL
bandwidth percent 20
class VOICE
bandwidth percent 50
class class-default
bandwidth percent 30
interface Serial0/0
max-reserved-bandwidth 100
(因爲默認是隻能使用總帶寬的75%,如果想用所有帶寬,必須使用這一命令,對所有帶寬進行劃分)
service-policy output CBWFQ
R2#show class-map
R2#show policy-map
R2#show policy-map interface
·CBWFQ雖然能夠爲各種類別的流量提供帶寬的保證,但卻不能提供低延遲的傳輸保證。
使用這種LLQ特性後,將首先發送對延遲敏感的數據,也就是LLQ中的數據。這種數據發送完畢後才發送其他隊列中的分組。
policy-map WAN-EDGE
class VOICE
priority percent 33 設定語音流量佔用33%的帶寬,並放入LLQ隊列 使用priority就放入優先級隊列
class CALL-SIGNALING
bandwidth percent 20
class MISSION
bandwidth percent 20
class class-default
fair-queue 對其它的流量應用WFQ
policy-map WAN-EDGE
class VOICE
priority 540 指定語音流量佔用540K帶寬
class VIDEO
priority 460 指定視頻流量佔用460K帶寬
class CALL-SIGNALING
bandwidth percent 2
class MISSION
bandwidth percent 20
class class-default
fair-queue
policy-map WAN-EDGE
class VOICE
priority percent 33
class NISSION
bandwidth remaining percent 50 剩餘百分比語句,劃分去掉優先級隊列所佔帶寬之後的帶寬
class class-default
bandwidth remaining percent 50
其它隊列的可用帶寬=實際帶寬*0.75-分配給語音的帶寬
·帶寬分配:CBWFQ能夠給每個類別分配帶寬,最多可以定義64個類別
WFQ只能根據7種IP優先級來對數據流進行分類。
<RTP優先隊列>隊列中真正的老大
RTP傳輸多媒體應用的數據流,包括IP語音和視頻(對延遲比較敏感的)
主要用於交換機的技術
3550每一個端口下都有四個隊列,每個隊列默認佔用25%的帶寬,採用輪詢的方式來調度。可以把第四個隊列配置成絕對優先隊列,只有絕對優先隊列中的數據處理完成後,纔會傳輸其它隊列的數據。
需求:
將優先級爲0、1的數據幀放入隊列一中
將優先級爲2、3的數據幀放入隊列二中
將優先級爲4、5的數據幀放入隊列三中
將優先級爲6、7的數據幀放入隊列四中
SW1(config-if)#wrr-queue cos-map 1 0 1 定義映射表,將cos 0和1映射到隊列1
SW1(config-if)#wrr-queue cos-map 2 2 3
SW1(config-if)#wrr-queue cos-map 3 4 5
SW1(config-if)#wrr-queue cos-map 4 6 7
SW1(config-if)#wrr-queue bandwidth 1 2 3 4
隊列1得到10%的帶寬
隊列2得到20%的帶寬
隊列3得到30%的帶寬
隊列4得到40%的帶寬
SW1(config-if)#mls qos trust cos
SW1(config-if)#mls qos trust dscp
SW1(config-if)#mls qos trust ip-precedence
SW1(config-if)#mls qos trust device cisco-phone
—————————————————————————————–
—————————————————————————————
Shaping mechanisms: 整形
Generic traffic shaping (GTS)通用流量整型
Frame Relay traffic shaping (FRTS)幀中繼流量整型 這個通常要考
Class-based shaping
流量輸出平緩 將超出的流量放入緩存 等帶寬可用時再輸出 只能用於出方向
Policing mechanisms: 監管
Committed access rate (CAR)
Class-based policing
將超出的流量直接丟棄 可以用處出方向和入方向
TC:time comminted 單位毫秒 默認125毫秒,承諾時間 間隔時間 每個多少時間放一次令牌
BC:burst committed 單位bit,承諾突發量,也叫正常突發量
Be:burst excess Be是從Bc溢出來的令牌,超出的突發量 存儲第一個令牌桶溢出的令牌
CIR:commited infromation rate,單位Kbps。承諾信息速率 所要控制的流量
每Tc秒向桶中放入Bc這麼多的令牌
CIR承諾信息速率,也就是你實際想要控制的速率
GTS Building Blocks通用流量整型
GTS uses WFQ for the shaping queue. 默認是WFQ,不能改
GTS can be implemented in combination with any queuing mechanisms:可以配合以下的軟件Q使用
FIFO queuing
Priority queuing (PQ)
Custom queuing (CQ)
Weighted fair queuing (WFQ)
GTS works on output only. 只能工作在出方向
Several traffic-shape group commands can be configured on the same interface.
The traffic-shape rate and traffic-shape group commands cannot be mixed on the same interface.
A separate token bucket and shaping queue is maintained for each traffic-shape group command.
Traffic not matching any access list is not shaped.
要求將接口速率限制爲64K
CIR Bc Be buffer(shape Q中的座位數)
關鍵是CIR的值,其它會自動計算,可以不指定
對於1.1.1.0網段的用戶訪問2.2.2.0網段進行限速,限爲64K
R1(config-if)#traffic-shape group 100 64000
#show traffic-shape queue 查看shape隊列
BECN (Backward explicit congestion notification) 後向顯示擁塞通告 交換機通告send方
CLLM (Consolidated link layer management)
DE(Discard Eligibility)bit
發送方發送tcp數據給接收方,幀中繼會FECN置位 發給接收方 接收方回包 幀中繼會BECN置位 發給發送方
GTS在幀中繼中可以做適應性的整型,如果收到BECN就降低到3/4,如收不到則回升。
if)#traffic-shape adaptive 12800 當發生擁塞時,最少可低到12800bit/S
要求將路由器的出接口速率限定爲256K,並啓用幀中繼的適應性整形,一旦收到BECN,則可將速率最低降到64K。
interface s0/0
traffic-shape rate 256000
traffic-shape adaptive 64000
FRTS is multiprotocol.
在接口上啓用了FRTS後,不能使用WFQ,只能是FIFO,CISCO的膠片上有錯誤
FRTS can use one of these queuing mechanisms as the shaping queue:shap Q可以選以下任一種
Priority queuing (PQ)
Custom queuing (CQ)
Weighted fair queuing (WFQ)
FRTS can be implemented only in combination with only FIFO on the interface.
FRTS works on output only. 也只能工作在出方向
第一步:
R1(config-if)#frame-relay traffic-shaping 在接口上啓用FRTS
在幀中繼中必須在map-class中去改CIR
R1(config)#map-class frame-relay FRTS
R1(config-map-class)#frame-relay traffic-rate average[peak] 看下面的示例
R1(config-map-class)#frame-relay traffic-rate 64000 80000 如果兩個值相同,等於沒有Be
R1(config-map-class)#frame-relay traffic-rate 64000 64000 這種情況等於沒有Be
R1(config-map-class)#frame-relay [in|out] cir 64000 分別指定,以下三條命令等於上面一條
R1(config-map-class)#frame-relay [in|out] BC 8000
R1(config-map-class)#frame-relay [in|out] BE 8000
show traffic-shaping
R1(config-if)#frame-relay class FRTS 在接口下調用,對本接口下的所有VC均有效
R1(config-if)#frame-relay interface-dlci 104
R1(config-if-dlci)#class FRTS 在PVC下單獨調用和修改
R1(config)#map-class frame-relay FRTS
R1(config-map-class)#frame-relay adaptive-shaping becn ———– FR中啓用適應性的整型,也就是讓路由器根據收到的BECN量調整其發送速率。單獨針對一條PVC起效
R1(config-map-class)#frame-relay minicir 16000 適應性整型的最低速率,通常和上一條命令結合用。
1、對VOICE流量,設定平均速率爲64K
2、對於1.1.1.0網段訪問2.2.2.0網段的流量,設定最大速率爲32K
access-list 100 permit udp any any range 16384 32767
access-list 101 permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255
class-map VOIP
match access-group 100
class-map NET
match access-group 101
policy-map CBSHAPE
class VOIP
shape average 64000
class NET
shape peak 32000
int e0/0
service-policy output CBSHAPE
CAR可以做在進方向也可以做在出方向。
同一接口使用car和CBmarking 入接口先cbmarking後car 出接口則相反
可以單獨針對某一個流量作限速,還可決定拿到牌的和沒拿到牌的分別作什麼動作
-Transmit
-Continue
-Drop
If the number of bytes in the packet is less than or equal to(<=)the number of tokens in Bucket1,the packet conforms,CAR removes tokens from Bucket1 equal to the number of bythes in the packet and performs the action for packets that conform
DA-actual debt 真實債務,向第二個桶所借的實際令牌數,DA是累加的,直到新令牌放進來
DC-compounded debt 符合債務
DC=原DC+當前DA
當DC>Be時,這個包就屬於exceed-action,同時將DC置0
#show interface rate-limit
要求在出接口做 CAR
speed:64Kpbs
Traffic:192.168.1.0/24 any udp 4000 5000(端口號4000-5000)
Token:prec=3
NO Token:Drop
rate-limit output access-group 100 64000 1500 2000 conform-action set-prec-transmit 3 exceed-action drop
CIR Bc Bc+Be 拿到令牌的 設置優先級 沒令牌的drop掉
set-prec-transmit 如果這裏用的是set-prec-continue 則表示可以繼續向下找更優的語句
要求:
1、將出接口的HTTP流控制在64K,拿到令牌的傳遞,其他的向下匹配
2、對於接口的語音流量要求控制在128K,拿到令牌的傳遞,其他的drop
access-list 101 permit udp any any range 16384 32767
rate-limit output access-group 101 128000 1500 2000 conform-action transmit exceed-action drop
-conforms 拿到令牌的就是conforms
-exceeds 在只有一個桶的情況下,沒拿到令牌的就是exceeds,兩個桶的情況下,借了第二個桶的令牌的就是exceeds
-violates 在有兩個桶的情況下才有用,當兩個桶的令牌都用完了,再來的數據包就是violates一類了
例:
對於VOICE流量,設傳輸速率爲64K,拿到令牌的設爲EF優先級,並傳輸,借用令牌的,只作爲普通包傳輸,沒牌的drop掉。
access-list 100 permit udp any any range 16384 32767
class-map VOIP
match access-group 100
policy-map WOLF
class VOIP
police cir 64000 conform-action set-dscp-transmit ef exceed-action transmit violate-action drop 拿到令牌的設爲ef優先級,借用令牌的只作爲普通包傳輸,沒牌的丟掉
int s0/0
service-policy input WOLF 調用
WRED(Weighted Random Early Detection)
·TCP中存在一個慢啓動和擁塞避免機制,當檢測到網絡中發生衝突的時候,會大幅度降低發送速率
·當網絡中發生擁塞,有可能同時丟失多個TCP連接的數據包,造成多個TCP連接同時進入慢啓動狀態,這被稱爲TCP全局同步
·解決方法:可以在網絡發生擁塞之前,就主動丟棄一部分TCP數據包,防止出現尾丟棄,從而避免進入慢啓動
主動隊列管理機制在擁塞發生前就丟棄分組。
丟棄概率:1/10
5表示按1/5的概率丟棄
random-detect dscp-based
show queueing random-detect
N值越大,WRED就越不敏感,最後導致失效,N值越小,會導致包被丟掉的概率越大
使用流來分類,默認最多可分256個流
int s0/0
random-detect flow 開啓開關
random-detect flow count 256 設定可分的流的數目
當隊列中數據包達到20個時,以1/10的概率丟棄優先級爲3的包,達到40個時尾丟棄
當隊列中數據包達到30個時,以1/10的概率丟棄優先級爲4的包,達到40個時尾丟棄
當隊列中數據包達到15個時,以1/10的概率丟棄優先級爲1的包,達到35個時尾丟棄
當隊列中數據包達到20個時,以1/10的概率丟棄優先級爲2的包,達到35個時尾丟棄
match ip precedence 3 4
class-map SILVER
match ip precedence 1 2
class GOLD
bandwidth percent 30
random-detect
random-detect precedence 3 20 40 10
random-detect precedence 4 30 40 10
class SILVER
bandwidth percent 20
random-detect
random-detect precedence 1 15 35 10
random-detect precedence 2 20 35 10
class class-default
fair-queue
random-detect
show policy-map interface s0/0
class GOLD
bandwidth percent 30
random-detect dscp-based
random-detect precedence 31 20 40 10
random-detect precedence 41 30 40 10
class SILVER
bandwidth percent 20
random-detect dscp-based
random-detect precedence 11 15 35 10
random-detect precedence 21 20 35 10
class class-default
rair-queue
random-detect dscp-based
Qos (Quality of server)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.