目錄

簡介

必要條件

需求

採用元件

慣例

QoS概述

不含QoS的Cisco Catalyst 3750交換器

Cisco Catalyst 3750交換器QoS功能

輸入QoS功能

預設輸入QoS配置

分類和標籤

分類和標籤 — 基於埠

分類 — 埠信任配置

標籤 — QoS對映表配置

分類和標籤 — 基於MQC

管制

分類、標籤和管制（超過操作 — 丟棄）

分類、標籤和管制(exceed action - policed-dscp-transmit)

擁塞管理和規避

預設排隊、丟棄和排程配置

佇列和排程

佇列、捨棄和排程

輸出QoS功能

輸出QoS命令

預設配置

排隊、丟棄和排程

相關資訊

簡介

本檔案介紹Catalyst 3750交換器QoS功能，例如分類、標籤、管制、佇列和排程。

必要條件

需求

思科建議您瞭解以下主題：

- 配置QoS。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco Catalyst 3750 交換器

- Cisco IOS®軟體版本12.2(35)SE2

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

QoS概述

藉助QoS，您可以以犧牲其他流量為代價，為特定型別的流量提供優先處理。您可以使用QoS標籤來區分流量。

第3層IP報頭中最常用的兩個QoS標籤是IP優先順序欄位和DSCP欄位。

第2層幀頭中的QoS標籤稱為服務類別(CoS)。 Catalyst交換機QoS工具可以基於第3層QoS標籤或第2層QoS標籤提供優先處理。

本文提供多個範例，藉此您可以瞭解Cisco Catalyst交換器中的第2層和第3層QoS標籤使用情況。

Cisco Catalyst交換機中的第2層和第3層QoS標籤使用情況

不含QoS的Cisco Catalyst 3750交換器

Catalyst 3750交換器上預設停用QoS。當QoS停用時，所有訊框/封包都會順利通過交換器。

例如，如果具有CoS 5的幀和具有DSCP EF的幀內的資料包進入交換機，則不會更改CoS和DSCP標籤。

流量在進入時具有相同的CoS和DSCP值。所有流量（包括語音）均盡力傳送。

Switch#show mls qos

QoS is disabled

QoS ip packet dscp rewrite is enabled

!--- Even though it says QoS ip packet dscp rewrite is enabled,

!--- the switch does not alter the DSCP label on the packets when

!--- the QoS is disabled.

Cisco Catalyst 3750交換器QoS功能

在3750交換器上啟用QoS後，預設會很少啟用輸入和輸出QoS功能。此圖顯示交換器QoS架構的簡要檢視：

交換機QoS架構高級檢視

以下是基於圖表的要點摘要：

- 可以根據埠配置輸入QoS功能，如分類、標籤和管制。

- 可以全域性配置輸入對映表和輸入隊列。不能根據每個埠配置這些埠。

- 入口隊列的SRR可以全域性配置。

- 堆疊環頻寬取決於堆疊佈線。如果堆疊以全頻寬連線，則會接收32Gbps頻寬。此頻寬由堆疊中的所有交換器共用。

- 輸出對映表和輸出隊列是全域性配置的。可以有兩組隊列配置，可以將任一隊列集配置應用於埠。

- 輸出隊列的SRR可以按埠進行配置。

輸入QoS功能

本節介紹各種可能的輸入QoS配置的概念。本節涵蓋以下主題：

- 預設輸入QoS配置

- 分類和標籤

- 管制

- 擁塞管理和規避

預設輸入QoS配置

以下是啟用QoS後，交換器預設處理訊框的方式：

- 幀進入交換機埠並且沒有標籤幀（這意味著埠是接入埠，並且幀進入交換機時沒有ISL或dot1q封裝）。

- 交換機使用dot1q封裝幀（忽略ISL，因為dot1q是所有新交換機的預設值）。

- 在dot1q幀標籤內，有三個稱為802.1p優先順序位的位可用，也稱為CoS。這些位設定為0。

- 然後，交換機根據CoS-DSCP對映表計算DSCP值。根據表，交換機將DSCP值設定為0。DSCP值位於資料包的IP報頭。

總之，如果交換機上啟用了QoS，則幀的CoS和DSCP值將預設進入設定為0的交換機。

分類和標籤

與路由器不同，Cisco Catalyst交換機中的QoS分類和標籤操作有所不同。

在Cisco路由器中，可以根據傳入資料包DSCP值或訪問控制清單(ACL)使用MQC對資料包進行分類。

這取決於您是否信任傳入資料包的QoS標籤。在Cisco Catalyst 3750交換機中，可以根據傳入的CoS/DSCP值或ACL對幀進行分類。

基於傳入的CoS/DSCP值的配置是通過三種不同方式實現的：

- 使用基於介面的mls qos 命令進行基於埠的配置

- 基於類別對映和策略對映的MQC配置

- VLAN型配置

您可以使用這三種方法中的任意一種。在連線埠中不能使用多個方法。例如，您在連線埠上設定了mls qos trust指令。

使用service-policy input <policy-map-name> 命令配置埠時，它會自動刪除mls qos trust cos 命令。

「分類和標籤 — 基於埠」部分說明了基於埠的配置。

「分類和標籤 — 基於MQC」部分解釋了基於MQC的分類。

分類和標籤 — 基於埠

本節介紹根據介面特定配置進行的分類。可能會出現有關章節標題分類和標籤的問題。

這是因為在Cisco Catalyst 3750交換器中，訊框（訊框內的封包）的CoS或DSCP值會使用對應表來重新標籤。對映表在Cisco路由器中不可用。

這些僅在Cisco Catalyst交換機中可用。您可以在本節中看到這些表的功能。

本節將討論這兩種配置：

- 分類 — 埠信任配置

- 標籤 — QoS對映表配置

分類和標籤 — 基於埠

分類 — 埠信任配置

傳入資料包或幀可能已經分配了QoS標籤。可能會出現以下問題：

- 您是否信任埠上傳入資料包/幀的QoS標籤？

- 如果IP電話和PC連線到一個埠，您是否信任電話、PC或兩者的QoS標籤？

如果不信任傳入資料包/幀的QoS標籤，則需要根據訪問清單對資料包進行分類並標籤QoS標籤。

如果您信任傳入資料包/幀的QoS標籤，則另一個問題是，您是否需要信任埠上傳入資料包/幀的CoS值或DSCP值？

視情況而定。您可以在此部分通過示例檢視不同的方案。

埠信任配置選項包括：

Switch(config-if)#mls qos trust ?

cos            cos keyword

device         trusted device class

dscp           dscp keyword

ip-precedence  ip-precedence keyword

<cr>

- 示例1:如果埠是接入埠或第3層埠，則需要配置mls qos trust dscp命令。

不能使用mls qos trust cos 命令，因為來自接入埠或第3層埠的幀不包含dot1q或ISL標籤。CoS位僅存在於dot1q或ISL幀中。

interface GigabitEthernet1/0/1

description **** Layer 3 Port ****

no switchport

ip address 192.168.10.1 255.255.255.0

mls qos trust dscp

end

interface GigabitEthernet1/0/2

description **** Access Port ****

switchport access vlan 10

switchport mode access

mls qos trust dscp

end

- 示例2:如果埠是中繼埠，則可以配置mls qos trust cos 或mls qos trust dscp 命令。

如果埠配置為信任DSCP，則dscp-cos對映表用於計算CoS值。同樣，如果埠配置為信任CoS，則cos-dscp對映表用於計算DSCP值。

interface GigabitEthernet1/0/3

description **** Trunk Port ****

switchport trunk encapsulation dot1q

switchport mode trunk

switchport trunk native vlan 5

switchport trunk allowed vlan 5,10,20,30,40,50

mls qos trust cos

end

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

spanning-tree portfast

end

!--- The Cisco IP Phone uses IEEE 802.1Q frames for Voice

!--- VLAN traffic.

- 示例3：如果埠是dot1q中繼埠，並且使用mls qos trust cos 命令配置該埠，則本地VLAN幀的CoS和DSCP值可以為0。由於本地VLAN幀未標籤並且在幀進入交換機後對其進行標籤，因此交換機可以將預設CoS值設定為0，並且CoS到DSCP表會將DSCP值設定為0。

附註：來自本地VLAN的資料包的DSCP值重置為0。

您也可以使用mls qos cos <0-7> 命令配置交換機埠，將未標籤的幀的預設CoS值從0更改為0到7之間的任何其他值。

此命令不會更改已標籤幀的CoS值。

例如，埠GigabitEthernet1/0/12配置了接入VLAN 10和語音VLAN 20。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

spanning-tree portfast

!--- The Cisco IP Phone uses IEEE 802.1Q frames for Voice

!--- VLAN traffic. Voice VLAN is only supported on access ports and not

!--- on trunk ports, even though the configuration is allowed.

end

預設情況下，PC傳送未標籤的資料。來自連線到Cisco IP電話的裝置的未標籤流量會原封不動地通過電話，而不管電話上接入埠的信任狀態如何。

電話會傳送帶語音VLAN ID 20的dot1q標籤的訊框。因此，如果使用mls qos trust cos 命令設定連線埠，則電話會信任來自電話的訊框的CoS值（標籤訊框），並將來自PC的訊框（未標籤）的CoS值設定為0。

此後，CoS-DSCP對映表將幀內資料包的DSCP值設定為0，因為CoS值0的CoS-DSCP對映表的DSCP值為0。

如果來自PC的資料包具有任何特定的DSCP值，則該值可以重置為0。如果在埠上配置mls qos cos 3命令，則會將來自PC的所有幀的CoS值設定為3，並且不會更改來自電話的幀的CoS值。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

mls qos cos 3

spanning-tree portfast

end

如果使用mls qos cos 3 override命令配置埠，則會將所有幀的CoS值（包括已標籤和未標籤）設定為3。它會覆蓋先前配置的信任值。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

mls qos cos 3 override

!--- Overrides the mls qos trust cos.

!--- Applies CoS value 3 on all the incoming packets on both

!--- the vlan 10 and 20.

spanning-tree portfast

end

- 示例4：例如，檢視埠gi 1/0/12配置：

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

spanning-tree portfast

end

如果PC使用VLAN 20標籤其幀，它也會將CoS值設定為5。交換機處理來自連線到Cisco IP電話接入埠的裝置上的已標籤資料流量（IEEE 802.1Q或IEEE 802.1p幀型別的流量）。

由於介面配置為信任CoS值，因此通過Cisco IP電話上的接入埠接收的所有流量都會通過電話，不會發生更改。

交換器也信任和允許來自PC的流量，並賦予與IP電話流量相同的優先順序。

這不是您想要看到的理想結果。switchport priority extend cos<cos-value>命令可避免這種情況。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

switchport priority extend cos 0

!--- Overrides the CoS value of PC traffic to 0.

spanning-tree portfast

end

switchport priority extend cos <cos-value> 命令可配置電話，以便IP電話將PC流量的CoS值更改為0。

- 示例5：例如，在同一介面中，有人將PC直接連線到交換機，並使用dot1q幀標籤具有較高CoS值的PC資料。可以使用mls qos trust device cisco-phone 指令避免這種情況。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

switchport priority extend cos 0

mls qos trust device cisco-phone

!--- Specify that the Cisco IP Phone is a trusted device.

spanning-tree portfast

end

- 示例6:例如，在介面GigabitEthernet1/0/12中，您必須信任來自PC的QoS標籤。

此外，PC已連線到本徵VLAN 10。在這種情況下，mls qos trust cos 命令沒有幫助，因為PC資料包沒有標籤CoS值。它只標籤DSCP值。

因此，交換機新增dot1q幀並將預設CoS值配置為0。然後，CoS-DSCP表計算並將DSCP值重置為0。

為了解決此問題，您有兩個選擇。一種選擇是使用MQC配置分類和標籤。

您可以根據源、目標IP地址和源/目標埠號，建立ACL以匹配您的PC流量。然後，您可以在類對映中匹配此ACL。

您可以建立策略對映以信任此流量。此解決方案將在下一節討論。本節討論第二種方法。第二種方法是信任DSCP標籤而不是CoS標籤。

然後，DSCP-CoS標籤計算並設定與DSCP值對應的CoS值。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust dscp

spanning-tree portfast

end

第一種方法是首選方法，因為建議不要信任所有PC流量QoS標籤。

標籤 — QoS對映表配置

啟用QoS後，將使用預設值建立對映表並啟用對映表。

Distribution1#show mls qos maps cos-dscp

Cos-dscp map:

cos:   0  1  2  3  4  5  6  7

--------------------------------

dscp:   0  8 16 24 32 40 48 56

Distribution1#show mls qos maps dscp-cos

Dscp-cos map:

d1 :  d2 0  1  2  3  4  5  6  7  8  9

---------------------------------------

0 :    00 00 00 00 00 00 00 00 01 01

1 :    01 01 01 01 01 01 02 02 02 02

2 :    02 02 02 02 03 03 03 03 03 03

3 :    03 03 04 04 04 04 04 04 04 04

4 :    05 05 05 05 05 05 05 05 06 06

5 :    06 06 06 06 06 06 07 07 07 07

6 :    07 07 07 07

- 示例1:如果埠配置為信任CoS，則所有傳入的CoS值都是受信任的，並且會根據CoS-DSCP表重新標籤DSCP值。根據預設的CoS-DSCP配置，值對映如下所示：

CoS

DSCP（十進位）

DSCP

0

0

預設

1

8

CS1

2

16

CS2

3

24

CS3

4

32

CS4

5

40

CS5

6

48

CS6

7

56

CS7

此處需要注意的一個重要值是DSCP值對應於CoS值5。它是CS5。示例2介紹了此值。

- 示例2:例如，將介面GigabitEthernet1/0/12配置為信任CoS。

interface GigabitEthernet1/0/12

description **** Cisco IP Phone  ****

switchport access vlan 10

switchport mode access

switchport voice vlan 20

mls qos trust cos

spanning-tree portfast

end

Cisco IP電話將流量傳送到交換器時，會使用CoS 5和DSCP EF標籤語音負載。流量進入連線埠Gi 1/0/12時，交換器會信任CoS值。然後，交換機從CoS-DSCP表匯出CoS值5的DSCP值CS5(40)。所有具有CoS 5的語音有效負載均使用DSCP值CS5進行標籤。這不是理想值。語音負載所需的DSCP值為DSCP EF。預設情況下，根據RFC將其他CoS值正確對映到DSCP值。

- 此配置可幫助您配置CoS-DSCP對映表以更改與CoS 5對應的DSCP值EF。

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

!--- DSCP 46 is EF

進行此配置後，值將如下圖所示：

CoS

DSCP（十進位）

DSCP

0

0

預設

1

8

CS1

2

16

CS2

3

24

CS3

4

32

CS4

5

46

EF

6

48

CS6

7

56

CS7

- 示例3:如果埠配置為信任DSCP，則所有傳入的DSCP值都是受信任的，並且會根據DSCP-CoS表重新標籤CoS值。根據預設的DSCP-CoS配置，值對映如下所示：

DSCP

DSCP（十進位）

CoS

預設

0-7

0

CS1 AF11 AF12 AF13

8-15

1

CS2 AF21 AF22 AF23

16-23

2

CS3 AF31 AF32 AF33

24-31

3

CS4 AF41 AF42 AF43

32-39

4

CS5 EF

40-47

5

CS6

48-55

6

CS7

56-63

7

您無需更改這些預設值。

下表彙總了DSCP值和CoS值以供參考：

DSCP（十進位）

DSCP

CoS

0

預設

0

8

CS1

1

10

AF11

1

12

AF12

1

14

AF13

1

16

CS2

2

18

AF21

2

20

AF22

2

22

AF23

2

24

CS3

3

26

AF31

3

28

AF32

3

30

AF33

3

32

CS4

4

34

AF41

4

36

AF42

4

38

AF43

4

40

CS5

5

42

5

44

5

46

EF

5

48

CS6

6

56

CS7

7

附註：在網路中，所有Cisco Catalyst交換機必須具有相同的對映表。不同交換機中的對映表值不同會導致不期望的QoS行為。

分類和標籤 — 基於MQC

如「分類和標籤」部分所述，您可以使用MQC對資料包進行分類和標籤。您可以使用MQC代替埠特定配置。您還可以使用策略對映標籤傳入的資料包。

本示例的要求如下：

- 信任IP電話流量的CoS值。

- 標籤來自連線IP電話的PC的軟電話應用資料包的DSCP值。

- 不信任來自PC的所有其他流量。

分類和標籤 — 基於MQC

此圖顯示策略對映已附加到介面的輸入。不能將策略對映應用於Catalyst 3750交換機中任何介面的輸出。下一個配置表示圖表。本節不重點介紹QoS功能的排隊部分。本節僅重點介紹應用於介面的MQC。

假設資料VLAN為10，子網地址為172.16.10.0/24，語音VLAN為100，子網地址為192.168.100.0/24。

!--- Section A

Distribution1(config)#ip access-list extended voice-traffic

Distribution1(config-std-nacl)#permit ip 192.168.100.0 0.0.0.255 any

Distribution1(config-std-nacl)#ip access-list extended

database-application

Distribution1(config-ext-nacl)#permit tcp any any eq 1521

Distribution1(config-ext-nacl)#permit tcp any any eq 1810

Distribution1(config-ext-nacl)#permit tcp any any eq 2481

Distribution1(config-ext-nacl)#permit tcp any any eq 7778

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map  Class-A

Distribution1(config-cmap)#match access-group name voice-traffic

Distribution1(config-cmap)#exit

Distribution1(config)#class-map  Class-B

Distribution1(config-cmap)#match access-group name

database-application

Distribution1(config-cmap)#exit

!--- Section B

Distribution1(config)#policy-map sample-policy1

Distribution1(config-pmap)#class Class-A

Distribution1(config-pmap-c)#trust cos

Distribution1(config-pmap-c)#exit

Distribution1(config-pmap)#class Class-B

Distribution1(config-pmap-c)#set dscp af21

Distribution1(config-pmap-c)#exit

Distribution1(config-pmap)#exit

!--- Section C

Distribution1(config)#interface gigabitEthernet 1/0/13

Distribution1(config-if)#switchport access vlan 10

Distribution1(config-if)#switchport mode access

Distribution1(config-if)#switchport voice vlan 100

Distribution1(config-if)#spanning-tree portfast

Distribution1(config-if)#service-policy input sample-policy1

Distribution1(config-if)#exit

A部分：

- 將IP電話流量分類為A類。IP電話屬於語音VLAN，其IP地址在192.168.100.0子網中。

- 將資料庫應用程式流量分類為B類。目的地為連線埠號碼為1521、1810、2481和7778的任何目的地的PC流量（實際上是根據組態設定的任何流量）會分類到B類對映中。

B部分：

- 與Class-A匹配的流量配置為信任CoS標籤。這表示來自IP電話的所有流量的CoS值是受信任的。如圖所示，DSCP值是從Class-A流量的CoS-DSCP對映表派生的。

- 與Class-B匹配的流量被配置為將DSCP值設定為AF21。如圖所示，DCoS值從Class-B流量的DSCP-CoS對映表中匯出。

- 每類策略對映下的配置稱為PHB操作。標籤、隊列、管制、整形和擁塞迴避是思科路由器中支援的PHB操作。標籤和管制是Cisco Catalyst 3750交換機中唯一支援的PHB操作。

Distribution1(config)#policy-map test

Distribution1(config-pmap)#class test

Distribution1(config-pmap-c)#?

QoS policy-map class configuration commands:

exit            Exit from QoS class action configuration mode

no              Negate or set default values of a command

police          Police

service-policy  Configure QoS Service Policy

set             Set QoS values

trust           Set trust value for the class

<cr>

set和trust命令是Marking PHB操作。可以配置set 或trust PHB操作。不能在一個策略對映類中同時配置這兩個操作。但是，您可以在同一個策略對映中的一個類中配置set，並在另一個類中信任該類。

police命令是Policing PHB操作。下一節將對此進行詳細討論。

Cisco Catalyst 3750交換器不支援調節。Cisco Catalyst 3750交換機支援排隊和擁塞避免，但無法使用MQC進行配置。隊列和擁塞迴避配置將在本文檔後面詳細討論。

C部分：

- 策略對映只能應用於介面上的輸入。當您應用到輸出介面時，會收到以下錯誤消息：

Distribution1(config)#interface gigabitethernet 1/0/3

Distribution1(config-if)#service-policy output test

Warning: Assigning a policy map to the output side of an

interface not supported

Service Policy attachment failed

Warning: Assigning a policy map to the output side of an

interface not supported

- 如果在連線埠gi 1/0/3上設定了任何其他QoS分類方法（例如連線埠型或基於VLAN型），則當您應用策略對映時，這些設定會被移除。例如，埠Gi 1/0/13配置為信任CoS，如下所示：

interface GigabitEthernet1/0/13

description **** Access Port ****

switchport access vlan 10

switchport mode access

switchport voice vlan 100

mls qos cos 3

mls qos trust cos

spanning-tree portfast

- 將策略對映應用於介面時，會刪除trust命令。

Distribution1(config)#interface gigabitethernet 1/0/13

Distribution1(config-if)#service-policy input sample-policy1

Distribution1(config-if)#do show run int gi 1/0/13

Building configuration...

Current configuration : 228 bytes

!

interface GigabitEthernet1/0/13

description **** Access Port ****

switchport access vlan 10

switchport mode access

switchport voice vlan 100

service-policy input sample-policy1

!--- It replaces the mls qos trust or mls qos

!--- vlan-based command.

mls qos cos 3

!--- This command is not removed.

spanning-tree portfast

end

您可以看到service-policy輸入只取代了mls qos trust或mls qos vlan-based 命令。它不會更改其他命令，例如mls qos cos 或mls qos dscp-mutation 命令。總而言之，它取代了QoS分類命令，而不取代了QoS標籤命令。

- 在策略對映中，您只能看到兩個類對映。Class-A匹配IP電話流量，Class-B匹配來自PC的資料庫應用流量。所有其他PC流量（訪問清單中定義的資料庫應用程式除外）均歸類於策略對映的class-default類。這是一種捕獲所有流量，捕獲與附加到策略對映的已定義類對映不匹配的流量。因此，屬於類預設流量的此類流量不受埠信任，並且這些資料包將預設CoS和DSCP標籤設定為0。您可以配置為將任何預設CoS或DSCP值設定為此類預設流量。

您可以使用MQC設定預設DSCP值。CoS值是從DSCP-CoS對映表派生的。

Distribution1(config)#policy-map sample-policy1

Distribution1(config-pmap)#class class-default

Distribution1(config-pmap-c)#set dscp af13

Distribution1(config-pmap-c)#exit

您可以如下所示設定預設CoS值。DSCP值是從CoS-DSCP對映表派生的。

Distribution1(config)#interface gigabitethernet 1/0/13

Distribution1(config-if)#mls qos cos 3

Distribution1(config-if)#do show run int gi 1/0/13

Building configuration...

Current configuration : 228 bytes

!

interface GigabitEthernet1/0/13

description **** Access Port ****

switchport access vlan 10

switchport mode access

switchport voice vlan 100

service-policy input sample-policy1

mls qos cos 3

spanning-tree portfast

設定流量的最高優先順序

在本例中，配置用於為來自TCP埠1494的流量設定最高優先順序。

1. 需要為VOIP流量分配DSCP值EF:

!--- Classifying all traffic coming with dscp value of EF

!--- under this class-map.

Switch(config)#class-map match-all AutoQoS-VoIP-RTP-Trust

Switch(config-cmap)#match ip dscp ef

Switch(config)#policy-map AutoQoS-Police-CiscoPhone

Switch(config-pmap)#class AutoQoS-VoIP-RTP-Trust

!--- Again setting the dscp value back to EF.

Switch(config-pmap-c)#set dscp ef

Switch(config-pmap-c)#police 320000 8000 exceed-action policed-dscp-transmit

2. 來自TCP 1494的流量需要分配一個DSCP值CS4:

Switch(config)#access-list 100 permit tcp

eq 1494

Switch(config)#class-map tcp

Switch(config-cmap)#match access-group 100

Switch(config)#policy-map AutoQoS-Police-CiscoPhone

Switch(config-pmap)#class tcp

Switch(config-pmap-c)#set dscp cs4

3. 所有其它流量都需要分配給CS3:

Switch(config)# access-list 200 permit ip any any

Switch(config)# class-map default

Switch(config-cmap)# match access-group 200

Switch(config)#policy-map AutoQoS-Police-CiscoPhone

Switch(config-pmap)#class default

Switch(config-pmap-c)#set dscp cs3

4. 將其應用於相關介面下：

Switch(config)#interface

Switch(config-if)#service-policy

管制

在Cisco Catalyst 3750交換器上，只能在輸入連線埠上設定管制。只能通過MQC配置管制。這表示沒有特定於介面的命令來管制流量。您可以在策略對映中配置策略，並且只使用service-policy input <policy-name> 命令應用策略對映。不能將任何策略對映應用於介面的輸出端。

Distribution1(config-if)#service-policy output test

police command is not supported for this interface

Configuration failed!

Warning: Assigning a policy map to the output side of an

interface not supported.

本節將討論以下主題：

- 分類、標籤和管制（超過操作 — 丟棄）

- 分類、標籤和管制(exceed action - policed-dscp-transmit)

分類、標籤和管制（超過操作 — 丟棄）

本節介紹用於捨棄過度流量的原則管制設定。管制會計量傳入流量，並將傳入速率維持為所配置的位/秒。Cisco Catalyst 3750交換機僅支援單速率、單桶策略。這表示交換器僅以一個速率進行計量，且它能夠以兩種顏色設定流量配置檔案，以符合和超過動作。該圖顯示了一個包含三個類對映的策略對映sample-policy2。

本示例的要求如下：

- 將ftp、pop3、imap流量管製為10Mbps。

- 信任來自連線到IP電話的PC的IP Communicator應用程式資料包的DSCP值。此外，要求將此流量管製為1Mbps。

- 標籤並管制檔案網路應用程式。

管制（超過操作丟棄）

此配置表示圖中提到的策略對映：

!--- Create Access-list and Class map Class-A

Distribution1(config)#ip access-list extended BULK-DATA

Distribution1(config-ext-nacl)#permit tcp any any eq ftp

Distribution1(config-ext-nacl)#permit tcp any any eq ftp-data

Distribution1(config-ext-nacl)#permit tcp any any eq pop3

Distribution1(config-ext-nacl)#permit tcp any any eq 143

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map Class-A

Distribution1(config-cmap)#match access-group name BULK-DATA

Distribution1(config-cmap)#exit

!--- Create Access-list and Class map Class-B

Distribution1(config)#ip access-list extended IP-Communicator

Distribution1(config-ext-nacl)#remark *** Voice Payload ***

Distribution1(config-ext-nacl)#permit udp any any range 16384 32767

Distribution1(config-ext-nacl)#remark *** Voice Signalling ***

Distribution1(config-ext-nacl)#permit tcp any any range 2000 2002

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map Class-B

Distribution1(config-cmap)#match access-group name IP-Communicator

Distribution1(config-cmap)#exit

!--- Create Access-list and Class map Class-C

Distribution1(config)#ip access-list extended application

Distribution1(config-ext-nacl)#remark *** Application for example ***

Distribution1(config-ext-nacl)#permit tcp any any eq 32768

Distribution1(config-ext-nacl)#permit udp any any eq 32768

Distribution1(config-ext-nacl)#permit tcp any any eq 32769

Distribution1(config-ext-nacl)#permit udp any any eq 32769

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map Class-C

Distribution1(config-cmap)#match access-group name application

Distribution1(config-cmap)#exit

!--- Create Policy map

Distribution1(config-cmap)#policy-map sample-policy2

Distribution1(config-pmap)#class Class-A

Distribution1(config-pmap-c)#police 10000000 8000 exceed-action drop

Distribution1(config-pmap-c)#class Class-B

Distribution1(config-pmap-c)#trust dscp

Distribution1(config-pmap-c)#police 256000 8000 exceed-action drop

Distribution1(config-pmap-c)#class Class-C

Distribution1(config-pmap-c)#set dscp CS2

Distribution1(config-pmap-c)#police 25000000 8000 exceed-action drop

Distribution1(config-pmap-c)#exit

Distribution1(config-pmap)#exit

!--- Apply Policy map to the interface

Distribution1(config)#interface GigabitEthernet1/0/20

Distribution1(config-if)#service-policy input sample-policy2

策略對映中的配置解釋如下：

- Class-A：與A類匹配的流量以10 Mbps的速率管制。A類流量上的QoS標籤不受信任。CoS和DSCP值被標籤為0。策略器將丟棄過多的資料包。

- Class-B：對與Class B匹配的流量執行兩個PHB操作。一是信任，二是管制。B類流量的DSCP值是受信任的。CoS值可以從DSCP-CoS表匯出。然後，B類流量以256 Kbps的速率被管制。過量的資料包被監察器丟棄。

- Class-C：對與類B匹配的流量執行兩個PHB操作。一個是標籤，另一個是管制。與C類匹配的傳入資料包使用DSCP值CS2進行標籤，CoS值從DSCP-CoS表中派生出來，該表為2。然後，C類流量以25 Mbps的速率被管制。過量的資料包被監察器丟棄。

分類、標籤和管制(exceed action - policed-dscp-transmit)

本節介紹標籤和傳輸過多流量的策略配置。此圖顯示了具有兩個類對映的策略對映sample-policy3:

管制(Exceed Action policed-dscp-transmit)

交換機根據管制的DSCP對映表值標籤超出配置的管制速率的流量。只有在策略配置中配置了策略的DSCP對映時，才會使用該對映。以下列出了預設的policed-DSCP對映表：

Distribution1(config)#do show mls qos map policed-dscp

Policed-dscp map:

d1 :  d2 0  1  2  3  4  5  6  7  8  9

---------------------------------------

0 :    00 01 02 03 04 05 06 07 08 09

1 :    10 11 12 13 14 15 16 17 18 19

2 :    20 21 22 23 24 25 26 27 28 29

3 :    30 31 32 33 34 35 36 37 38 39

4 :    40 41 42 43 44 45 46 47 48 49

5 :    50 51 52 53 54 55 56 57 58 59

6 :    60 61 62 63

在此表中，您可以看到相同的DSCP值已匹配。例如，DSCP 34對映到DSCP 34。符合監察器速率的流量無需更改DSCP值即可傳輸。可以使用不同的DSCP值傳輸超過策略器速率的流量。例如，可以使用丟棄概率較高的DSCP值來標籤它。

如果您使用預設的policed-DSCP值，則使用管制沒有意義。例如，您已配置為以10 Mbps的速率管制流量。傳入資料包的DSCP值為CS4。如果保留預設DSCP值，則使用CS2的DSCP值傳輸符合10Mbps的流量。此外，使用CS2的DSCP值傳輸超過10 Mbps的流量。這是因為policed-DSCP對映預設值對映了相同的值。因此，建議相應地配置policed-DSCP對映表以區分DSCP值。

本示例的要求如下：

- 將策略化DSCP對映表配置為對映：

- EF至AF31

- CS3至AF13

- CS2至AF11

- 信任IP通訊器資料包的DSCP值，並將其管製為256Kbps。如果流量超過256Kbps，則使用policed-DSCP對映表對DSCP值進行註釋。

- 標籤並管制檔案網路應用程式。如果流量超過25Mbps，則使用policed-DSCP對映表註釋DSCP值。

此配置表示圖中提到的策略對映：

!--- Policed DSCP table Configuration

Distribution1(config)#mls qos map policed-dscp 46 to 26

Distribution1(config)#mls qos map policed-dscp 24 to 14

Distribution1(config)#mls qos map policed-dscp 16 to 10

!--- Create Access-list and Class map Class-A

Distribution1(config)#ip access-list extended IP-Communicator

Distribution1(config-ext-nacl)#remark *** Voice Payload ***

Distribution1(config-ext-nacl)#permit udp any any range 16384 32767

Distribution1(config-ext-nacl)#remark *** Voice Signalling ***

Distribution1(config-ext-nacl)#permit tcp any any range 2000 2002

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map Class-A

Distribution1(config-cmap)#match access-group name IP-Communicator

Distribution1(config-cmap)#exit

!--- Create Access-list and Class map Class-C

Distribution1(config)#ip access-list extended application

Distribution1(config-ext-nacl)#remark *** Application for example ***

Distribution1(config-ext-nacl)#permit tcp any any eq 32768

Distribution1(config-ext-nacl)#permit udp any any eq 32768

Distribution1(config-ext-nacl)#permit tcp any any eq 32769

Distribution1(config-ext-nacl)#permit udp any any eq 32769

Distribution1(config-ext-nacl)#exit

Distribution1(config)#class-map Class-B

Distribution1(config-cmap)#match access-group name application

Distribution1(config-cmap)#exit

!--- Create Policy map

Distribution1(config-cmap)#policy-map sample-policy3

Distribution1(config-pmap-c)#class Class-A

Distribution1(config-pmap-c)#trust dscp

Distribution1(config-pmap-c)#police 256000 8000 exceed-action policed-dscp-transmit

Distribution1(config-pmap-c)#class Class-B

Distribution1(config-pmap-c)#set dscp CS2

Distribution1(config-pmap-c)#police 25000000 8000 exceed-action policed-dscp-transmit

Distribution1(config-pmap-c)#exit

Distribution1(config-pmap)#exit

!--- Apply Policy map to the interface

Distribution1(config)#interface GigabitEthernet1/0/21

Distribution1(config-if)#service-policy input sample-policy3

策略對映中的配置解釋如下：

- Policed-DSCP：在policed-DSCP對映表中修改了三個值。

- EF至AF31

- CS3至AF13

- CS2至AF11

根據在Class-A和Class-B類對映中分類的流量型別修改前兩個值。

- Class-A：語音負載和來自軟電話的語音控制在Class-A類對映中分類。語音負載流量的DSCP值為EF，語音控制的DSCP值為CS3。根據策略對映配置，這些DSCP值是受信任的。流量以256 Kbps的速率受到管制。符合此速率的流量可以與傳入DSCP值一起傳送。超過此速率的流量可以用受管制的DSCP表重新標籤並傳輸。管制的DSCP表可以根據配置的值將EF註釋為AF31，將CS3註釋為AF13。然後，可以從DSCP-CoS表匯出對應的CoS值。

- Class-B：與Class-B匹配的傳入資料包使用CS2的DSCP值進行標籤。Class-B流量以25 Mbps的速率被管制。符合此速率的流量可以以DSCP值2傳送，CoS值從DSCP-CoS表（即2）中匯出。超過此速率的流量可以用受管制的DSCP表重新標籤並傳輸。管制的DSCP表可以根據配置值將EF註釋為AF31，將CS3註釋為AF13。然後，可以從DSCP-CoS表匯出對應的CoS值。

擁塞管理和規避

擁塞管理和避免是一個三步過程。這些步驟包括排隊、丟棄和排程。排隊根據QoS標籤將資料包放入不同的軟體隊列中。Cisco Catalyst 3750交換器有兩個輸入佇列。使用QoS標籤對流量進行分類和標籤後，可以根據QoS標籤將流量分配到兩個不同的隊列中。

加權尾部丟棄(WTD)用於管理隊列長度，並為不同的流量分類提供丟棄優先順序。

入口和出口隊列都由SRR提供服務，SRR控制資料包的傳送速率。在輸入佇列上，SRR會將封包傳送到堆疊環。SRR可以在兩種模式下運行，稱為整形和共用。對於入口隊列，共用是預設模式，也是唯一支援的模式。在共用模式下，隊列根據配置的權重共用頻寬。此級別的頻寬是保證的，但不僅限於此。

本節介紹三種型別的配置。

- 預設排隊、丟棄和排程配置

- 佇列和排程

- 佇列、捨棄和排程

可用於配置這些命令的命令有：

Distribution1(config)#mls qos srr-queue input ?

!--- Queueing

buffers         Configure buffer allocation

cos-map         Configure cos-map for a queue id

dscp-map        Configure dscp-map for a queue id

!--- Scheduling

bandwidth       Configure SRR bandwidth

priority-queue  Configure priority scheduling

!--- Dropping

threshold       Configure queue tail-drop thresholds

預設排隊、丟棄和排程配置

此輸出顯示預設QoS標籤到隊列的對映。每個隊列可以支援三個閾值級別。預設情況下，每個隊列支援只有一個閾值，即100%。

預設排隊、丟棄和排程

- 預設隊列對映配置：

具有CoS 5（DSCP 40到47）的資料包被置於隊列2中。剩餘的資料包被置於隊列1中。

Distribution1#show mls qos maps cos-input-q

Cos-inputq-threshold map:

cos:  0   1   2   3   4   5   6   7

------------------------------------

queue-threshold: 1-1 1-1 1-1 1-1 1-1 2-1 1-1 1-1

Distribution1#show mls qos maps dscp-input-q

Dscp-inputq-threshold map:

d1 :d2  0    1    2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

1 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

2 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

3 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

4 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 01-01 01-01

5 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

6 :  01-01 01-01 01-01 01-01

此表表示預設的CoS/DSCP到輸入隊列的對映：

CoS

DSCP

輸入佇列

0

0到7

1

1

8 - 15

1

2

16 - 23

1

3

24 - 31

1

4

32 - 39

1

5

40 - 47

2

6

48 - 55

1

7

56 - 63

1

- 預設隊列配置：

輸入佇列緩衝區由佇列1共用90%，佇列2共用10%。臨界層級1、2和3為100%。

Distribution1#show mls qos input-queue

Queue     :       1       2

----------------------------------------------

buffers   :      90      10

bandwidth :       4       4

priority  :       0      10

threshold1:     100     100

threshold2:     100     100

- 預設排程程式配置：

隊列2是優先順序隊列。SRR為其配置的權重(10%)提供優先順序隊列。然後，SRR會與入口隊列共用其餘的頻寬(90%)，並根據配置的權重為其提供服務。在這種情況下，隊列1和隊列2的服務費率各為45%。

Distribution1#show mls qos input-queue

Queue     :       1       2

----------------------------------------------

buffers   :      90      10

bandwidth :       4       4

priority  :       0      10

threshold1:     100     100

threshold2:     100     100

佇列和排程

配置排隊和安排有三個步驟。步驟如下：

1. 隊列對映配置：

隊列對映配置根據DSCP或CoS值將資料包對映到兩個輸入隊列。

2. 隊列配置：

隊列配置定義了用於劃分兩個隊列之間的入口緩衝區的比率（分配空間量）。

3. 計畫程式配置：

SRR配置權重的比率，該比率控制將資料包從隊列出隊到堆疊環的頻率。

隊列和排程程式配置控制資料包被丟棄之前可以緩衝的資料量。

排隊和排程

在本節中，未設定WTD捨棄層級。這表示如果佇列為100%，封包可能會遭捨棄。

- 隊列對映配置：

首先，將CoS值對映到隊列。本節中未配置閾值。

!--- Assign the frames into the queue based on the CoS value.

Distribution1(config)#mls qos srr-queue input cos-map queue 1 0 1

Distribution1(config)#mls qos srr-queue input cos-map queue 2 2 3 4 5 6 7

!--- Show output.

Distribution1#show mls qos maps cos-input-q

Cos-inputq-threshold map:

cos:  0   1   2   3   4   5   6   7

------------------------------------

queue-threshold: 1-1 1-1 2-1 2-1 2-1 2-1 2-1 2-1

Distribution1#show mls qos maps dscp-input-q

Dscp-inputq-threshold map:

d1 :d2   0    1    2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

1 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

2 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

3 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

4 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 01-01 01-01

5 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

6 :  01-01 01-01 01-01 01-01

您可以在Cos-inputq-threshold和Dscp-inputq-threshold對映中看到衝突。例如，CoS 3對映到Cos-inputq-threshold表中的隊列2。但是，在Dscp-inputq-threshold對映中，DSCP值24（對應於CoS 3）被對映到隊列1。實際上，Dscp-inputq-threshold對映覆蓋Cos-inputq-threshold對映。這些對映必須儘可能一致，以確保可預測的行為並簡化故障排除。因此，Dscp-inputq-threshold對映配置為與Cos-inputq-threshold對映同步。

!--- Assign the frames into the queue based on the DSCP value.

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 16 17 18 19 20 21 22 23

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 24 25 26 27 28 29 30 31

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 32 33 34 35 36 37 38 39

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 48 49 50 51 52 53 54 55

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 56 57 58 59 60 61 62 63

Distribution1#show mls qos maps dscp-input-q

Dscp-inputq-threshold map:

d1 :d2  0   1   2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

1 :  01-01 01-01 01-01 01-01 01-01 01-01 02-01 02-01 02-01 02-01

2 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

3 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

4 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

5 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

6 :  02-01 02-01 02-01 02-01

- 隊列配置：

啟用QoS後，Cisco IOS會在緩衝區中分配預設空間，將入口資料包排隊。入口隊列（queue1和queue 2）均共用此緩衝區空間。在Catalyst 3750交換器中，您可以設定每個佇列可以使用的緩衝區空間的百分比。入口隊列總可用記憶體的67%分配給隊列1,33%分配給隊列2。

Distribution1(config)#mls qos srr-queue input buffers 67 33

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      67      33

bandwidth :       4       4

priority  :       0      10

threshold1:     100     100

threshold2:     100     100

- 計畫程式配置：

此配置是使用themls qos srr-queue input bandwidthcommand執行的。此處，此頻寬說明SRR在隊列上服務的位數。

Distribution1(config)#mls qos srr-queue input bandwidth 90 10

Distribution1(config)#mls qos srr-queue input priority-queue 2

bandwidth 20

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      67      33

bandwidth :      90      10

priority  :       0      20

threshold1:     100     100

threshold2:     100     100

預設情況下，隊列2是優先順序隊列，10%的內部環頻寬分配給優先順序隊列。您還可以將隊列1配置為優先順序隊列。但是，不能將兩個隊列都配置為優先順序隊列。

- 如果您將環頻寬設定為10Gbps，則SRR服務會先將10Gbps的20%用於隊列2（即2 Gbps）。8 Gbps環頻寬的其餘部分由隊列1和隊列2共用。根據配置，隊列1將獲得8 Gbps的90%服務，而隊列2將獲得8 Gbps的10%服務。此8 Gbps頻寬由SRR以共用模式提供服務。這意味著配置的頻寬百分比是有保證的，但不僅限於此。

附註：您可以使用mls qos srr-queue input priority-queue 2 bandwidth 0命令禁用優先順序隊列。

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      90      10

bandwidth :      90      10

priority  :       0       0

threshold1:     100     100

threshold2:     100     100

Distribution1(config)#

佇列、捨棄和排程

在本節中，除了隊列緩衝區大小之外，還配置WTD閾值級別。您可以將流經交換機的每個資料包分配給隊列和閾值。

排隊、丟棄和排程

以下是組態範例和說明：

- 隊列對映配置：

首先，將CoS值對映到隊列。

!--- Assign the frames into the queue based on the CoS value.

Distribution1(config)#mls qos srr-queue input cos-map queue 1 threshold 2  1

Distribution1(config)#mls qos srr-queue input cos-map queue 1 threshold 3  0

Distribution1(config)#mls qos srr-queue input cos-map queue 2 threshold 1  2

Distribution1(config)#mls qos srr-queue input cos-map queue 2 threshold 2  4 6 7

Distribution1(config)#mls qos srr-queue input cos-map queue 2 threshold 3  3 5

!--- Show output.

Distribution1(config)#do show mls qos maps cos-input-q

Cos-inputq-threshold map:

cos:  0   1   2   3   4   5   6   7

------------------------------------

queue-threshold: 1-3 1-2 2-1 2-3 2-2 2-3 2-2 2-2

Distribution1(config)#do show mls qos maps dscp-input-q

Dscp-inputq-threshold map:

d1 :d2  0    1    2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

1 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

2 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

3 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

4 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 01-01 01-01

5 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01

6 :  01-01 01-01 01-01 01-01

您可以在Cos-inputq-threshold和Dscp-inputq-threshold對映中看到衝突。例如，CoS 3對映到Cos-inputq-threshold表中的隊列2，但DSCP值24（對應於CoS 3）對映到Dscp-inputq-threshold對映中的隊列1。實際上，Dscp-inputq-threshold對映覆蓋Cos-inputq-threshold對映。這些對映必須儘可能一致，以確保可預測的行為並簡化故障排除。因此，Dscp-inputq-threshold對映配置為與Cos-inputq-threshold對映同步。

!--- Assign the frames into the queue based on the DSCP value.

Distribution1(config)#mls qos srr-queue input dscp-map queue 1 threshold 2 9 10 11 12 13 14 15

Distribution1(config)#mls qos srr-queue input dscp-map queue 1 threshold 3 0 1 2 3 4 5 6 7

Distribution1(config)#mls qos srr-queue input dscp-map queue 1 threshold 3 32

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 threshold 1 16 17 18 19 20 21 22 23

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 threshold 2 33 34 35 36 37 38 39 48

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 threshold 2 49 50 51 52 53 54 55 56

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 threshold 2 57 58 59 60 61 62 63

Distribution1(config)#mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31

Distribution1(config)#do show mls qos maps dscp-input-q

Dscp-inputq-threshold map:

d1 :d2  0    1    2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  01-03 01-03 01-03 01-03 01-03 01-03 01-03 01-03 01-01 01-02

1 :  01-02 01-02 01-02 01-02 01-02 01-02 02-01 02-01 02-01 02-01

2 :  02-01 02-01 02-01 02-01 02-03 02-03 02-03 02-03 02-03 02-03

3 :  02-03 02-03 01-03 02-02 02-02 02-02 02-02 02-02 02-02 02-02

4 :  02-03 02-03 02-03 02-03 02-03 02-03 02-03 02-03 02-02 02-02

5 :  02-02 02-02 02-02 02-02 02-02 02-02 02-02 02-02 02-02 02-02

6 :  02-02 02-02 02-02 02-02

- 隊列配置：

預設情況下，閾值3為100%，不能更改。

Distribution1(config)#mls qos srr-queue input buffers 67 33

Distribution1(config)#mls qos srr-queue input threshold 1 8 16

Distribution1(config)#mls qos srr-queue input threshold 2 34 66

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      67      33

bandwidth :       4       4

priority  :       0      10

threshold1:       8      34

threshold2:      16      66

- 計畫程式配置：

啟用QoS後，Cisco IOS會在緩衝區中為每個入口埠分配預設空間。兩個隊列共用此緩衝空間。在Catalyst 3560/3750交換器中，您可以設定每個佇列可以使用的緩衝區空間百分比。

Distribution1(config)#mls qos srr-queue input bandwidth 90 10

Distribution1(config)#mls qos srr-queue input priority-queue 2 bandwidth 20

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      67      33

bandwidth :      90      10

priority  :       0      20

threshold1:       8      34

threshold2:      16      66

預設情況下，隊列2是優先順序隊列，10%的內部環頻寬分配給優先順序隊列。您還可以將隊列1配置為優先順序隊列。但是，不能將兩個隊列配置為優先順序隊列。

如果您將環頻寬設定為10Gbps，則SRR服務會先將10Gbps的20%用於隊列2（即2 Gbps）。剩餘的8 Gbps環頻寬由隊列1和隊列2共用。根據配置，隊列1將獲得8 Gbps的90%服務，而隊列2將獲得8 Gbps的10%服務。此8 Gbps頻寬由SRR以共用模式提供服務。這意味著配置的頻寬百分比是有保證的，但不僅限於此。

附註：您可以使用mls qos srr-queue input priority-queue 2 bandwidth 0命令禁用優先順序隊列。

Distribution1(config)#do show mls qos input

Queue     :       1       2

----------------------------------------------

buffers   :      90      10

bandwidth :      90      10

priority  :       0       0

threshold1:     100     100

threshold2:     100     100

Distribution1(config)#

輸出QoS功能

擁塞管理和避免是Cisco Catalyst 3750交換器支援的輸出QoS功能。擁塞管理和避免是一個三步過程。這些步驟包括排隊、丟棄和排程。

排隊根據QoS標籤將資料包放入不同的軟體隊列中。Cisco Catalyst 3750交換器有4個輸出佇列，每個佇列有3個閾值。使用QoS標籤對流量進行分類和標籤後，可以根據QoS標籤將流量分配到四個不同的隊列。

每個隊列都可以配置緩衝區大小、保留閾值、閾值級別和最大閾值。加權尾部丟棄(WTD)用於管理隊列長度，並為不同的流量分類提供丟棄優先順序。入口隊列引數是全域性配置的。入口隊列引數不是基於每個埠。但是，出口隊列引數是基於每個埠配置的。即使如此，組態也會依照連線埠執行。不能以不同方式配置每個埠。您可以用兩種不同的方式配置每個埠。這稱為隊列集。在全域性配置中，最多可以配置兩個不同的隊列集。然後，您可以在介面上應用這兩個集合中的任意一個。

入口和出口隊列都由SRR提供服務，SRR控制資料包的傳送速率。在輸入佇列上，SRR會將封包傳送到堆疊環。SRR可以在兩種模式下運行，稱為整形和共用。對於入口隊列，共用是預設模式，也是唯一支援的模式。在共用模式下，隊列根據配置的權重共用它們之間的頻寬。此級別的頻寬是保證的，但不僅限於此。在整形模式下，出口隊列保證一定百分比的頻寬，並且速率限制在該數量。整形流量使用的頻寬不會超過分配的頻寬，即使鏈路處於空閒狀態。隨著時間的推移，整形可提供更均勻的流量流，並減少突發流量的峰值和谷值。可以將隊列1配置為優先順序隊列。

輸出QoS命令

本節對所有可用的輸出QoS命令進行分類。

- 隊列對映配置：

若要將CoS值對映到輸出隊列：

Rack1SW1(config)#mls qos srr-queue output cos-map queue ?

<1-4>  enter cos-map output queue id

Rack1SW1(config)#mls qos srr-queue output cos-map queue 1

threshold ? <1-3>  enter cos-map threshold id

Rack1SW1(config)#mls qos srr-queue output cos-map queue 1

threshold 1 ? <0-7>  8 cos values separated by spaces

若要將DSCP值對映到輸出隊列：

Rack1SW1(config)#mls qos srr-queue output dscp-map queue ?

<1-4>  enter dscp-map output queue id

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 1 threshold ?

<1-3>  enter dscp-map threshold id

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 1threshold 1 ?

<0-63>  dscp values separated by spaces

(up to 8 values total)

- 隊列配置：

出口隊列配置允許您配置兩個隊列集。每個隊列集都可選擇為四個輸出隊列配置緩衝區大小和閾值。然後，您可以將任一隊列集應用於任何埠。預設情況下，在交換機上啟用QoS時，隊列集1將分配給所有埠。

Rack1SW1(config)#mls qos queue-set output ?

<1-2>  queue-set id

Rack1SW1(config)#mls qos queue-set output 1 ?

buffers    assign buffers to each egress queue

threshold  Assign threshold values to a queue

若要設定所有四個輸出佇列的緩衝區大小：

Rack1SW1(config)#mls qos queue-set output 1 buffers ?

<0-99>  enter buffer percentage for queue 1 0-99

Rack1SW1(config)#mls qos queue-set output 1 buffers 10 ?

<1-100>  enter buffer percentage for queue 2 1-100

(includes CPU buffer)

Rack1SW1(config)#mls qos queue-set output 1 buffers 10 20 ?

<0-99>  enter buffer percentage for queue 3 0-99

Rack1SW1(config)#mls qos queue-set output 1 buffers 10 20 30 ?

<0-99>  enter buffer percentage for queue 4 0-99

要配置兩個閾值，請為每個隊列保留和最大閾值（預設情況下閾值3為100%，且不能更改）：

Rack1SW1(config)#mls qos queue-set output 1 threshold ?

<1-4>  enter queue id in this queue set

Rack1SW1(config)#mls qos queue-set output 1 threshold 1 ?

<1-400>  enter drop threshold1 1-400

Rack1SW1(config)#mls qos queue-set output 1 threshold 1 50 ?

<1-400>  enter drop threshold2 1-400

Rack1SW1(config)#mls qos queue-set output 1 threshold 1 50 60 ?

<1-100>  enter reserved threshold 1-100

Rack1SW1(config)#mls qos queue-set output 1 threshold 1 50 60 100 ?

<1-400>  enter maximum threshold 1-400

若要將佇列集套用到介面（預設情況下，當在交換器上啟用qos時，佇列集1會指派給所有連線埠）：

Rack1SW1(config-if)#queue-set ?

<1-2>  the qset to which this port is mapped

- 計畫程式配置：

交換機介面有三種不同的配置。這些配置包括頻寬形狀、共用和限制。您還可以將輸出隊列1配置為優先順序隊列。如果啟用了優先順序隊列，則SRR會在為其他三個隊列提供服務之前為其提供服務，直到其為空。但是，在入口優先順序隊列中，SRR會使用配置的值為優先順序隊列提供服務。

Rack1SW1(config-if)#srr-queue bandwidth ?

limit  Configure bandwidth-limit for this interface

shape  Configure shaping on transmit queues

share  Configure shared bandwidth

Rack1SW1(config-if)#priority-queue ?

out  egress priority queue

頻寬限制配置：

Rack1SW1(config-if)#srr-queue bandwidth limit ?

<10-90>  enter bandwidth limit for interface  as percentage

頻寬形狀配置：

Rack1SW1(config-if)#srr-queue bandwidth shape ?

<0-65535>  enter bandwidth weight for queue id 1

Rack1SW1(config-if)#srr-queue bandwidth shape 10 ?

<0-65535>  enter bandwidth weight for queue id 2

Rack1SW1(config-if)#srr-queue bandwidth shape 10 20 ?

<0-65535>  enter bandwidth weight for queue id 3

Rack1SW1(config-if)#srr-queue bandwidth shape 10 20 30 ?

<0-65535>  enter bandwidth weight for queue id 4

頻寬共用配置：

Rack1SW1(config-if)#srr-queue bandwidth share ?

<1-255>  enter bandwidth weight for queue id 1

Rack1SW1(config-if)#srr-queue bandwidth share 10 ?

<1-255>  enter bandwidth weight for queue id 2

Rack1SW1(config-if)#srr-queue bandwidth share 10 20 ?

<1-255>  enter bandwidth weight for queue id 3

Rack1SW1(config-if)#srr-queue bandwidth share 10 20 30 ?

<1-255>  enter bandwidth weight for queue id 4

除非啟用優先順序隊列，否則所有四個隊列都將加入SRR，在這種情況下，第一個頻寬權重將被忽略，並且不用於比率計算。優先順序隊列將一直服務到清空後再為其他隊列提供服務。您可以使用priority-queue out 介面配置命令啟用優先順序隊列。

預設配置

預設隊列對映配置

預設排隊、丟棄和排程2

可以根據需要更改這些預設對映：

!--- Map CoS to Egress Queue

Distribution1#show mls qos maps cos-output-q

Cos-outputq-threshold map:

cos:  0   1   2   3   4   5   6   7

------------------------------------

queue-threshold: 2-1 2-1 3-1 3-1 4-1 1-1 4-1 4-1

!--- Map DSCP to Egress Queue

Distribution1#show mls qos maps dscp-output-q

Dscp-outputq-threshold map:

d1 :d2  0    1    2    3    4    5    6    7    8    9

------------------------------------------------------------

0 :  02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

1 :  02-01 02-01 02-01 02-01 02-01 02-01 03-01 03-01 03-01 03-01

2 :  03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01

3 :  03-01 03-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01

4 :  01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 04-01 04-01

5 :  04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01

6 :  04-01 04-01 04-01 04-01

預設隊列配置

預設緩衝區分配方案

輸出隊列預設設定適用於大多數情況。僅當透徹瞭解出口隊列並且這些設定不滿足QoS解決方案時，才能更改這些設定。

預設情況下，會配置兩個隊列集，並將隊列集1分配給所有埠。每個隊列分配總緩衝區空間的25%。每個隊列被預留所分配緩衝空間的50%，即總緩衝空間的12.5%。所有預留緩衝區的總和代表預留池，而其餘緩衝區是公用池的一部分。預設配置將400%設定為此隊列在丟棄資料包之前可以具有的最大記憶體。

Distribution1#show mls qos queue-set 1

Queueset: 1

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      25      25      25      25

threshold1:     100     200     100     100

threshold2:     100     200     100     100

reserved  :      50      50      50      50

maximum   :     400     400     400     400

Distribution1#show mls qos queue-set 2

Queueset: 2

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      25      25      25      25

threshold1:     100     200     100     100

threshold2:     100     200     100     100

reserved  :      50      50      50      50

maximum   :     400     400     400     400

Distribution1#show mls qos int gigabitEthernet 1/0/20 buffers

GigabitEthernet1/0/20

The port is mapped to qset : 1

The allocations between the queues are : 25 25 25 25

預設排程程式配置：

優先順序隊列被禁用。整形模式和共用模式均配置用於SRR。整形模式權重覆蓋共用模式值。因此，最終結果是在整形模式下為隊列1提供服務，而在共用模式下為隊列2、3和4提供服務。這意味著使用頻寬的(1/25)%或4%的絕對值為隊列1提供服務。隊列2、3和4的服務頻寬佔頻寬的25%。如果頻寬可用，則隊列2、3和4的服務頻寬可以超過頻寬的25%。

Distribution1#show mls qos int gigabitEthernet 1/0/20 queueing

GigabitEthernet1/0/20

Egress Priority Queue : disabled

Shaped queue weights (absolute) :  25 0 0 0

Shared queue weights  :  25 25 25 25

The port bandwidth limit : 100  (Operational Bandwidth:100.0)

The port is mapped to qset : 1

排隊、丟棄和排程

以下是組態範例：

- 隊列對映配置：

Rack1SW1(config)#mls qos srr-queue output cos-map queue 1 threshold 3 5

Rack1SW1(config)#mls qos srr-queue output cos-map queue 1 threshold 1 2 4

Rack1SW1(config)#mls qos srr-queue output cos-map queue 2 threshold 2 3

Rack1SW1(config)#mls qos srr-queue output cos-map queue 2 threshold 3 6 7

Rack1SW1(config)#mls qos srr-queue output cos-map queue 3 threshold 3 0

Rack1SW1(config)#mls qos srr-queue output cos-map queue 4 threshold 3 1

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 1 threshold 3  46

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 1  16

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 1  18 20 22

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 1  25

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 1  32

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 1  34 36 38

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 2  24 26

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 2 threshold 3  48 56

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 3 threshold 3  0

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 4 threshold 1  8

Rack1SW1(config)#mls qos srr-queue output dscp-map queue 4 threshold 3  10 12 14

- 隊列配置：

此配置顯示隊列集1和2的配置。預設情況下，隊列集1應用於所有介面。

Rack1SW3(config)#mls qos queue-set output 1 buffers 10 10 26 54

Rack1SW3(config)#mls qos queue-set output 2 buffers 16 6 17 61

Rack1SW3(config)#mls qos queue-set output 1 threshold 2 70 80 100 100

Rack1SW3(config)#mls qos queue-set output 1 threshold 4 40 100 100 100

Rack1SW3(config)#mls qos queue-set output 2 threshold 1 149 149 100 149

Rack1SW3(config)#mls qos queue-set output 2 threshold 2 118 118 100 235

Rack1SW3(config)#mls qos queue-set output 2 threshold 3 41 68 100 272

Rack1SW3(config)#mls qos queue-set output 2 threshold 4 42 72 100 242

Rack1SW3(config)#interface fastethernet 1/0/11

Rack1SW3(config-if)#queue-set 2

介面1/0/11應用了隊列集2。

Rack1SW3(config-if)#do show mls qos interface fastethernet 1/0/10 buffers

FastEthernet1/0/10

The port is mapped to qset : 1

The allocations between the queues are : 10 10 26 54

Rack1SW3(config-if)#do show mls qos interface fastethernet 1/0/11 buffers

FastEthernet1/0/11

The port is mapped to qset : 2

The allocations between the queues are : 16 6 17 61

- 計畫程式配置：

Rack1SW3(config-if)#srr-queue bandwidth share 1 75 25 5

Rack1SW3(config-if)#srr-queue bandwidth shape  3  0  0  0

Cisco Catalyst 3750輸出佇列不支援低延遲佇列(LLQ)。 它支援優先順序隊列。配置優先順序隊列輸出時，隊列1在收到資料包時始終提供服務。

Rack1SW3(config-if)#srr-queue bandwidth share 1 75 25 5

Rack1SW3(config-if)#srr-queue bandwidth shape  3  0  0  0

Rack1SW3(config-if)#priority-queue out

配置此命令時，SRR權重和隊列大小比率會受到影響，因為參與SRR的隊列會少一個。這表示忽略srr-queue bandwidth shape或srr-queue bandwidth share 命令中的weight1（在比率計算中不使用）。

以下是用於檢視特定隊列上的丟棄的命令：

步驟 1:

1/ #show platform pm if-numbers

使用show platform pm if-numbers命令並檢查與您的介面（這是3750上的傳出介面）對應的埠資訊。 例如，fas 0/3可以是埠0/4。保留4作為埠值；如果第一個值不是零，請在連線埠號後給出asic編號。

interface gid gpn lpn port slot unit slun port-type lpn-idb gpn-idb

------------------------------------------------------------------------

---------

Gi0/1     1    1    25   0/1  1    1    1    local     Yes     Yes

Gi0/2     2    2    26   0/0  1    2    2    local     Yes     Yes

Fa0/1     3    3    1    0/2  1    1    3    local     Yes     Yes

Fa0/2     4    4    2    0/3  1    2    4    local     Yes     Yes

Fa0/3     5    5    3    0/4  1    3    5    local     Yes     Yes

Fa0/4     6    6    4    0/5  1    4    6    local     Yes     Yes

Fa0/5     7    7    5    0/6  1    5    7    local     Yes     Yes

Fa0/6     8    8    6    0/7  1    6    8    local     Yes     Yes

與介面fa 0/3對應的埠值為0/4。現在可以使用show platform port-asic stats drop port 4 命令檢視介面fa 0/3的隊列丟棄。

2/ #show platform port-asic stats drop port 4

Port-asic Port Drop Statistics - Summary

========================================

RxQueue 0 Drop Stats: 0

RxQueue 1 Drop Stats: 0

RxQueue 2 Drop Stats: 0

RxQueue 3 Drop Stats: 0

...

Port 4 TxQueue Drop Statistics

Queue 0

Weight 0 Frames 0

Weight 1 Frames 0

Weight 2 Frames 0

Queue 1

Weight 0 Frames 0

Weight 1 Frames 2755160   <--- Here is an example of drops

Weight 2 Frames 0

Queue 2

Weight 0 Frames 0

Weight 1 Frames 0

Weight 2 Frames 0

Queue 3

Weight 0 Frames 0

Weight 1 Frames 0

Weight 2 Frames 8

步驟 2:

- 頻寬限制配置：

為了限制埠上的最大輸出，請配置srr-queue bandwidth limit介面配置命令。如果將此命令配置為80%，則20%的時間埠處於空閒狀態。線路速率降至連線速度的80%。這些值並不準確，因為硬體以六為增量調整線速。此命令在10-Gigabit乙太網介面上不可用。

srr-queue bandwidth limit weight1

其中weight1是埠必須限制到的埠速度的百分比。範圍介於 10 至 90。

附註：輸出隊列預設設定適用於大多數情況。只有在您完全瞭解出口隊列並且這些設定不符合您的服務品質(QoS)解決方案時，您才能更改它們。

相關資訊

- 配置QoS

- Cisco Catalyst 3750系列交換器 — 支援檔案

- 無線產品支援

- 思科技術支援與下載