您的位置:首頁>正文

思科:qos

QOS(quality of service)服務品質

一、我們為什麼需要QOS?

1.Lack of bandwidth 缺少頻寬

2.delay 延時

i:處理延時 ii:佇列延時 iii:傳輸延時

3.packet drop 丟包(i:避免網路產生擁塞;ii:給必要的流量保留一點的頻寬)

二、什麼是qos?

定義:在網路資源和頻寬一定的情況下, 避免網路產生擁塞和使某些流量的資料包優先得到轉發和處理。

三、qos的實施?

1.CLI 2.MQC(更具有靈活性)

四、qos的三種模型?

Best-Effort Service 盡力而為服務模型

所有網路設備全部都是盡自己最大努力傳輸資料, 所有資料儘管傳, 不需要得到許可, 有多少傳多少, 任何資料都不能得到保證, 延遲也無法預計, 所以盡力而為服務模型, 其實並沒有實施任何 QOS,

預設的網路都工作在這種模型下。

Integrated Service 綜合服務模型, 簡稱 Intserv

該種模型也叫資源預留, 也就是說給某種流量在網路裡邊預留一定的頻寬, 對流量所需頻寬是一種絕對的保障。 例如一個視頻程式在正常通信下需要 100K 的頻寬, 那麼視頻程式在連接之前, 必須向網路申請自己需要 100K 的頻寬, 當網路同意後, 視頻便可連接, 並且將保證能夠得到 100K 的頻寬, 而不會有任何延遲。

Integrated service 使用RSVP協定來預留頻寬

I:在介面下啟用RSVP協定, 預設預留頻寬為介面的75%。

Ii:發送預留頻寬請求

router(config)#ip rsvp sender 100.1.1.1 10.1.1.2 tcp 80 10000 12.1.1.2 f0/0 200 10

說明:配置為目標位址 100.1.1.1, 源位址 10.1.1.2, 且目標埠為 TCP80, 源埠為10000, 上一跳為 12.1.1.2, 進口為 f0/0 的流量請求保留頻寬 200Kbit, Bc為 10Kbit。

Iii:回應頻寬預留消息

router(config)#ip rsvp reservation 100.1.1.1 10.1.1.2 tcp 80 10000 50.1.1.1 f0/1 ff rate 200 10

說明:配置為目標位址 100.1.1.1, 源位址 10.1.1.2, 且目標埠為 TCP80, 源埠為10000, 下一跳為 12.1.1.2,

出口為 f0/0 的流量保留單個流頻寬 200Kbit, Bc為 10Kbit。

查看rsvp的配置情況:#show ip rsvp interface 埠類型 埠號

缺陷:基於流。

Differentiated Service 區分服務模型, 簡稱 Diffserv

對網路裡邊的資料進行分類, 或者設置不同的優先順序, 在網路發生擁塞的情況下, 保證先傳輸高優先順序的資料, 放棄低優先順序的資料, 如果沒有擁塞, 則正常傳輸。 它現在網路裡邊最常用的一種服務模型。

四、QOS中diffserv的四個組件?

1、分類和標記(classification and marking)

2、管制和整形(policing and shaping)

3、擁塞管理(congestion management)

4、擁塞避免(congestion avoidance)

分類和標記

要提供區分服務的 QOS, 就必須先將資料分為不同的類別, 或者將資料設置為不同的優先順序。 將資料分為不同的類別, 稱為分類(classification), 分類並不修改原來的資料包。 將資料設置為不同的優先順序稱為標記(marking), 而標記會修改原來的資料包。 分類和標記是實施 QOS 的前提,

也是基礎。

管制和整形

在實施 QOS 策略時, 可以將使用者的資料限制在特定的頻寬, 當用戶的流量超過額定頻寬時, 超過的頻寬將不能被傳輸, 只能採取其它方式來處理, 如果處理方式為丟棄超出頻寬, 那麼這種行為稱為管制(Policing), 如果是將超出的頻寬緩存在記憶體中, 等到下一秒再傳遞, 這種行為稱為整形(Shaping)。

擁塞管理

當網路發生擁塞後, 資料還是要被傳遞的, 正因為接收到的資料遠多於自身的傳輸能力, 所以資料被傳輸時就出現了先後順序, 而依照什麼樣的方式來傳資料, 就需要佇列的指導, QOS 中的佇列定義了資料包被傳輸的先後順序。

擁塞避免

當網路發生擁塞後, 超出的流量將採取其它方式處理,

如果處理方式為管制, 那麼資料包就會被丟棄, 通常情況下, 網路設備預設丟棄後到的資料包而傳輸先到的資料包, 這樣的丟棄方式稱為尾丟棄, 但也可以讓網路設備在發生擁塞時, 先丟低優先順序的資料包而傳輸高優先順序的資料包。

五、MQC(modular qos command-line)模組化qos命令列

MQC就是模組化 QOS 命令列, 是配置 QOS 處理資料的一種方式。 MQC可以配置對特定的資料採取特定的動作, 步驟為三步:

定義流量

設置策略

應用策略

(一)定義流量

在使用 MQC 時, 只能在命令列下使用, 定義流量通過創建 class-map 來匹配特定的資料。

例:

匹配源主機 10.1.1.1 發出的資料

1創建 ACL匹配主機 10.1.1.1發出的資料

Router(config)#access-list 1 permit 10.1.1.1 0.0.0.0

2創建 class-map, 調用 ACL的資料

Router(config)# class-map match-all ccie

Router(config-cmap)#match access-group 1

說明:class-map中可以匹配多個資料, 當存在多條匹配時, 是不是所有條件都需要滿足,

則靠創建 class-map 時的關鍵字來判斷, 關鍵字 match-all 表示所有條件都要同時滿足, 默認為 match-all, 如果關鍵字為 match-any, 則任一條滿足即可。

注:名為 class-default 的 class-map, 表示匹配所有資料。

(二)設置策略

當匹配到特定的資料之後, 就需要對其設置相應的策略, 通過創建policy-map, 然後調用 class-map 匹配到的資料, 從而設置相應的策略或動作。

例:

對名為 ccie 的 class-map 所匹配到的資料全部丟棄

Router(config)#policy-map cisco

Router(config-pmap)#class ccie

Router(config-pmap-c)#drop

說明:一個 policy-map 裡面可以調用多個 class-map, 如果調用 class-default, 那麼表

示之前沒有匹配到的流量, 全部都會被 class-default 所匹配。

(三)應用策略

當策略設置完畢之後, 就需要應用到介面上。

例:

將 policy-map 應用到介面 F0/0 出方向上

Router(config)#interface f0/0

Router(config-if)#service-policy output cisco

六、分類和標記(Classification and Marking)

要實施區分服務的 QOS, 就必須先將資料分為不同的類別, 或者將資料設置為不同的優先順序。 資料分為不同的類別, 稱為分類(classification),分類並不修改原來的資料包。將資料設置為不同的優先順序稱為標記(marking),而標記會修改原來的資料包。分類和標記是實施 QOS 的前提,也是基礎。

實現:IP Precedence (IP 優先順序)

DiffServ代碼點(DSCP)

分類的實現:ACL和class-map 標記的實現:ip優先順序和dscp值

例如:

七、擁塞管理?

Qos通過各種佇列機制來對擁塞實施管理。對於各種佇列,都主要包括四個方面:

I:排隊機制 ii:丟棄機制 iii:調度機制 iv:每種佇列的優點和缺點

1、FIFO(first in first out)先進先出佇列,它是一種預設的佇列機制,在介面速率大於2.048Mbps的介面上啟用,小於2.048Mbps的介面預設為WFQ.

排隊機制:所有的資料都進一個佇列

丟棄機制:尾丟棄

調度機制:先進的先出(FCFS first come first service )

優點:簡單快速,無需分類,所有的IOS都支持;缺點:不能為流量公平分配頻寬,會導致後來的資料包餓死。

2、PQ(priority queue)優先順序佇列

排隊機制:四個佇列,分別為high、medium、normal、low

丟棄機制:尾丟棄

調度機制:優先調度高優先順序隊裡裡邊的資料,高優先順序隊裡的資料服務完成,調中優先順序佇列裡邊的資料,最後低優先順序佇列的資料

優點:分類,重要的流量優先得到處理;

缺點:會導致某些資料包被餓死

配置:

R1(config)#priority-list 1 protocol ip high tcp telnet

//創建1 個優先順序佇列,標號為1。把telnet 流量放在高優先順序佇列中

R1(config)#priority-list 1 protocol ip high list 101

//以上把ACL 101 定義的流量也放在高優先順序佇列中

R1(config)#priority-list 1 protocol ip medium gt 1000

//以上把資料包大小大於1000 位元組的流量放在中優先順序佇列中

R1(config)#priority-list 1 interface GigabitEthernet0/0 normal

//以上把從g0/0 介面接收到流量放在普通優先順序佇列中

R1(config)#priority-list 1 default low

//以上把其他的流量放在低優先順序佇列中

R1(config)#access-list 101 permit ip host 10.1.1.1 any

//以上定義ACL 101

R1(config)#priority-list 1 queue-limit 20 30 40 50

//以上定義優先順序佇列高、中、普通、低佇列中的長度,如果佇列超過這些長度,資料包將

被丟棄。

R1(config)#int s0/0/0

R1(config-if)#priority-group 1

//以上把定義好的優先順序佇列應用在s0/0/0 介面上

R1#show interfaces s0/0/0

R1#show queueing priority

3、CQ(custom-queue)自訂佇列

排隊機制:16個佇列(其實是17個),佇列號1到16,其中還有一個0佇列,系統預設使用的,只有0佇列裡邊的資料服務完畢了,其他佇列裡邊的資料才會得到服務。

丟棄機制:尾丟棄

調度機制:16個佇列採用採用輪詢的方式,每個佇列都能得到服務,預設每個對列服務1500個位元組轉向下一個佇列。

優點:每個佇列的流量都可以得到轉發,防止產生餓死現象;

缺點:不能使某一個流量優先得到處理。

配置:

R1(config)#queue-list 1 protocol ip 1 tcp telnet

//創建1 個自訂佇列,標號為1。把telnet 流量放在佇列1 中

R1(config)#queue-list 1 protocol ip 2 list 101

//以上把ACL 101 定義的流量放在佇列2 中

R1(config)#queue-list 1 protocol ip 3 gt 1000

//以上把資料包大小大於1000 位元組的流量放在佇列3 中

R1(config)#queue-list 1 interface GigabitEthernet0/0 5

//以上把從g0/0 介面接收到流量放在普通優先順序佇列5 中

R1(config)#queue-list 1 default 6

//以上把其他的流量放在佇列6 中

R1(config)#access-list 101 permit ip host 10.1.1.1 any

//以上定義ACL 101

R1(config)#queue-list 1 queue 1 limit 40

//以上定義佇列1 的深度為40,也就是說路由器將為佇列1 服務40 個資料包後,轉向佇列2 的服務

R1(config)#queue-list 1 queue 2 limit 35

R1(config)#queue-list 1 queue 3 limit 30

R1(config)#queue-list 1 queue 5 limit 25

R1(config)#int s0/0/0

R1(config-if)#custom-queue-list 1

//以上把定義好的自訂佇列應用在s0/0/0 介面上

R1#show interfaces s0/0/0

R1#show queueing custom

4、WFQ(Weight Fair Queue)加權公平佇列

排隊機制:WFQ是低速鏈路(小於2.048Mbps)上的一種預設的佇列機制,基於優先順序做動作基於流分隊是自動的。基於每個流的ip優先順序去分配頻寬。也可以是手動的,如果是手動(CBWFQ)基於class分隊。WFQ是基於緩存進行調控,而不是基於佇列。

CDT和HQO(緩存下限和緩存上限)

丟棄機制:WFQ的丟棄

調度機制:根據finish time去調度,預設小包先走,如果資料包的優先順序高,優先得到轉發和處理。

Finish time = 數據包的大小/(ip precedence + 1)

優點:配置簡單 缺點:不支援手工分類

配置:(config-if)#fair-queue

5、CBWFQ(Class Based Weight Fair Queue)基於類的加權公平佇列

排隊機制:基於模組的加權公平佇列,可以為每一類設定頻寬(分類:class-map)

丟棄機制:尾丟棄

調度機制:基於模組的調度

配置:

class-map match-any 1301A

match protocol http

match protocol ftp

class-map match-all 1302A (all必須同時符合,any符合一個就可以)

match protocol telnet

policy-map bawei

class 1301A (區分大小寫)

bandwidth 頻寬

class 1302A

bandwidth 頻寬

6、LLQ(Low Latency Queue)低延時佇列

配置和CBWFQ 很類似。有的資料包,例如VOIP 的資料包,對資料的延遲非常敏感。LLQ 允許使用者自訂資料類別,並優先讓這些類別的資料傳輸,在這些資料沒有傳輸完之前不會傳輸其他類別的資料。

(1) 步驟1:定義class-map3,把IP 優先順序為critical 的IP 流量包含進來

R1(config)#class-map match-any CLASS-MAP3

R1(config-cmap)#match ip precedence critical

(2) 步驟2:配置LLQ

R1(config)#policy-map MY-POLICY

R1(config-pmap)#class CLASS-MAP3

R1(config-pmap-c)#priority 15

//LLQ 的配置和CQWFQ 配置很類似,不過使用了priority 命令,我們這裡限制它的頻寬為

15k,超過這個頻寬的資料包將被丟棄。這樣CLASS-MAP3 的流量將優先被發送,然後才發送

CLASS-MAP1 和CLASS-MAP2 等流量。

八、擁塞避免

加權隨機早期檢測(WRED,Weight Random Early Detect)是RED 的Cisco 實現。當多個TCP 連接在傳輸資料時,全部連接都按照最大能力傳輸資料,很快造成佇列滿,佇列滿後的全部資料被丟失;這時所有的發送者立即同時以最小能力傳輸資料,頻寬開始空閒。接著全部發送者開始慢慢加大速度,於是又同時達到最大速率,又出現堵塞,如此反復。這樣網路時空時堵,頻寬的利用率不高。RED 則隨機地丟棄TCP 的資料包,保證鏈路的整體利用率。WRED 是對RED 的改進,資料包根據IP 優先順序分成不同佇列,每個佇列有最小閥值、最大閥值,當平均長度小於最小閥值時,資料包不會被丟棄;隨著平均佇列的長度增加,丟棄的概率也增加;當平均長度大於最大閥值時,資料包按照設定的比例丟棄資料包。

配置實現:

R1(config)#int s0/0/0

R1(config-if)#random-detect

//以上在介面上啟用WRED

R1(config-if)#random-detect precedence 0 18 42 12

//以上配置IP 優先順序為0 的佇列,最低閥值為18,平均佇列長度小於18 時,資料包不會

被丟棄;當平均佇列長度大於18 時,開始丟棄資料包,平均佇列長度越大,丟棄的資料包

越多;最大閥值為42,平均佇列長度小於42 時,資料包按照1/12 的比例丟棄。

R1#show queueing random-detect

九、整形和監管

稱為分類(classification),分類並不修改原來的資料包。將資料設置為不同的優先順序稱為標記(marking),而標記會修改原來的資料包。分類和標記是實施 QOS 的前提,也是基礎。

實現:IP Precedence (IP 優先順序)

DiffServ代碼點(DSCP)

分類的實現:ACL和class-map 標記的實現:ip優先順序和dscp值

例如:

七、擁塞管理?

Qos通過各種佇列機制來對擁塞實施管理。對於各種佇列,都主要包括四個方面:

I:排隊機制 ii:丟棄機制 iii:調度機制 iv:每種佇列的優點和缺點

1、FIFO(first in first out)先進先出佇列,它是一種預設的佇列機制,在介面速率大於2.048Mbps的介面上啟用,小於2.048Mbps的介面預設為WFQ.

排隊機制:所有的資料都進一個佇列

丟棄機制:尾丟棄

調度機制:先進的先出(FCFS first come first service )

優點:簡單快速,無需分類,所有的IOS都支持;缺點:不能為流量公平分配頻寬,會導致後來的資料包餓死。

2、PQ(priority queue)優先順序佇列

排隊機制:四個佇列,分別為high、medium、normal、low

丟棄機制:尾丟棄

調度機制:優先調度高優先順序隊裡裡邊的資料,高優先順序隊裡的資料服務完成,調中優先順序佇列裡邊的資料,最後低優先順序佇列的資料

優點:分類,重要的流量優先得到處理;

缺點:會導致某些資料包被餓死

配置:

R1(config)#priority-list 1 protocol ip high tcp telnet

//創建1 個優先順序佇列,標號為1。把telnet 流量放在高優先順序佇列中

R1(config)#priority-list 1 protocol ip high list 101

//以上把ACL 101 定義的流量也放在高優先順序佇列中

R1(config)#priority-list 1 protocol ip medium gt 1000

//以上把資料包大小大於1000 位元組的流量放在中優先順序佇列中

R1(config)#priority-list 1 interface GigabitEthernet0/0 normal

//以上把從g0/0 介面接收到流量放在普通優先順序佇列中

R1(config)#priority-list 1 default low

//以上把其他的流量放在低優先順序佇列中

R1(config)#access-list 101 permit ip host 10.1.1.1 any

//以上定義ACL 101

R1(config)#priority-list 1 queue-limit 20 30 40 50

//以上定義優先順序佇列高、中、普通、低佇列中的長度,如果佇列超過這些長度,資料包將

被丟棄。

R1(config)#int s0/0/0

R1(config-if)#priority-group 1

//以上把定義好的優先順序佇列應用在s0/0/0 介面上

R1#show interfaces s0/0/0

R1#show queueing priority

3、CQ(custom-queue)自訂佇列

排隊機制:16個佇列(其實是17個),佇列號1到16,其中還有一個0佇列,系統預設使用的,只有0佇列裡邊的資料服務完畢了,其他佇列裡邊的資料才會得到服務。

丟棄機制:尾丟棄

調度機制:16個佇列採用採用輪詢的方式,每個佇列都能得到服務,預設每個對列服務1500個位元組轉向下一個佇列。

優點:每個佇列的流量都可以得到轉發,防止產生餓死現象;

缺點:不能使某一個流量優先得到處理。

配置:

R1(config)#queue-list 1 protocol ip 1 tcp telnet

//創建1 個自訂佇列,標號為1。把telnet 流量放在佇列1 中

R1(config)#queue-list 1 protocol ip 2 list 101

//以上把ACL 101 定義的流量放在佇列2 中

R1(config)#queue-list 1 protocol ip 3 gt 1000

//以上把資料包大小大於1000 位元組的流量放在佇列3 中

R1(config)#queue-list 1 interface GigabitEthernet0/0 5

//以上把從g0/0 介面接收到流量放在普通優先順序佇列5 中

R1(config)#queue-list 1 default 6

//以上把其他的流量放在佇列6 中

R1(config)#access-list 101 permit ip host 10.1.1.1 any

//以上定義ACL 101

R1(config)#queue-list 1 queue 1 limit 40

//以上定義佇列1 的深度為40,也就是說路由器將為佇列1 服務40 個資料包後,轉向佇列2 的服務

R1(config)#queue-list 1 queue 2 limit 35

R1(config)#queue-list 1 queue 3 limit 30

R1(config)#queue-list 1 queue 5 limit 25

R1(config)#int s0/0/0

R1(config-if)#custom-queue-list 1

//以上把定義好的自訂佇列應用在s0/0/0 介面上

R1#show interfaces s0/0/0

R1#show queueing custom

4、WFQ(Weight Fair Queue)加權公平佇列

排隊機制:WFQ是低速鏈路(小於2.048Mbps)上的一種預設的佇列機制,基於優先順序做動作基於流分隊是自動的。基於每個流的ip優先順序去分配頻寬。也可以是手動的,如果是手動(CBWFQ)基於class分隊。WFQ是基於緩存進行調控,而不是基於佇列。

CDT和HQO(緩存下限和緩存上限)

丟棄機制:WFQ的丟棄

調度機制:根據finish time去調度,預設小包先走,如果資料包的優先順序高,優先得到轉發和處理。

Finish time = 數據包的大小/(ip precedence + 1)

優點:配置簡單 缺點:不支援手工分類

配置:(config-if)#fair-queue

5、CBWFQ(Class Based Weight Fair Queue)基於類的加權公平佇列

排隊機制:基於模組的加權公平佇列,可以為每一類設定頻寬(分類:class-map)

丟棄機制:尾丟棄

調度機制:基於模組的調度

配置:

class-map match-any 1301A

match protocol http

match protocol ftp

class-map match-all 1302A (all必須同時符合,any符合一個就可以)

match protocol telnet

policy-map bawei

class 1301A (區分大小寫)

bandwidth 頻寬

class 1302A

bandwidth 頻寬

6、LLQ(Low Latency Queue)低延時佇列

配置和CBWFQ 很類似。有的資料包,例如VOIP 的資料包,對資料的延遲非常敏感。LLQ 允許使用者自訂資料類別,並優先讓這些類別的資料傳輸,在這些資料沒有傳輸完之前不會傳輸其他類別的資料。

(1) 步驟1:定義class-map3,把IP 優先順序為critical 的IP 流量包含進來

R1(config)#class-map match-any CLASS-MAP3

R1(config-cmap)#match ip precedence critical

(2) 步驟2:配置LLQ

R1(config)#policy-map MY-POLICY

R1(config-pmap)#class CLASS-MAP3

R1(config-pmap-c)#priority 15

//LLQ 的配置和CQWFQ 配置很類似,不過使用了priority 命令,我們這裡限制它的頻寬為

15k,超過這個頻寬的資料包將被丟棄。這樣CLASS-MAP3 的流量將優先被發送,然後才發送

CLASS-MAP1 和CLASS-MAP2 等流量。

八、擁塞避免

加權隨機早期檢測(WRED,Weight Random Early Detect)是RED 的Cisco 實現。當多個TCP 連接在傳輸資料時,全部連接都按照最大能力傳輸資料,很快造成佇列滿,佇列滿後的全部資料被丟失;這時所有的發送者立即同時以最小能力傳輸資料,頻寬開始空閒。接著全部發送者開始慢慢加大速度,於是又同時達到最大速率,又出現堵塞,如此反復。這樣網路時空時堵,頻寬的利用率不高。RED 則隨機地丟棄TCP 的資料包,保證鏈路的整體利用率。WRED 是對RED 的改進,資料包根據IP 優先順序分成不同佇列,每個佇列有最小閥值、最大閥值,當平均長度小於最小閥值時,資料包不會被丟棄;隨著平均佇列的長度增加,丟棄的概率也增加;當平均長度大於最大閥值時,資料包按照設定的比例丟棄資料包。

配置實現:

R1(config)#int s0/0/0

R1(config-if)#random-detect

//以上在介面上啟用WRED

R1(config-if)#random-detect precedence 0 18 42 12

//以上配置IP 優先順序為0 的佇列,最低閥值為18,平均佇列長度小於18 時,資料包不會

被丟棄;當平均佇列長度大於18 時,開始丟棄資料包,平均佇列長度越大,丟棄的資料包

越多;最大閥值為42,平均佇列長度小於42 時,資料包按照1/12 的比例丟棄。

R1#show queueing random-detect

九、整形和監管

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示