目錄

簡介

必要條件

需求

採用元件

慣例

QoS概述

不含QoS的Cisco Catalyst 3750交換器

Cisco Catalyst 3750交換機QoS功能

輸入QoS功能

預設入口QoS配置

分類和標籤

分類和標籤-基於埠

分類-埠信任配置

標籤- QoS對映表配置

分類和標籤-基於MQC

管制

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

分類、標籤和管制（超出操作- 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 Precedence欄位和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命令。因為來自接入埠或第3層埠的幀不包含dot1q或ISL標籤，所以不能使用mls qos trust cos 命令。僅dot1q或ISL幀中存在CoS位。

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-to-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-DSCP對映表的CoS值0為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。交換機處理來自連線到思科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幀標籤PC資料的CoS值。使用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：例如，千兆乙太網介面1/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。預設情況下，其他CoS值到DSCP值將根據RFC正確對映。

- 此配置可幫助您配置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值是從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 命令是標籤 PHB操作。可以配置set 或trust PHB操作。不能在一個策略對映類中同時配置這兩個操作。但是，可以在同一策略對映的一個類中配置set，並在另一個類中配置trusti。

police命令是策略 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

您可以看到，服務策略輸入僅替換mls qos trust 或mls qos vlan-based 命令。它不會更改其他命令，例如mls qos cos 或mls qos dscp-mutation 命令。總之，它取代了QoS classification命令，而不是取代了QoS marking命令。

- 在策略對映中，您只能看到兩個類對映。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 <source source-wildcard> <destination destination-wildcard> 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 <interface-type><interface number>

Switch(config-if)#service-policy <policy-map-name>

管制

在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.

本節討論下列主題：

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

- 分類、標籤和管制（超出操作- policed-dscp-transmit）

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

本節介紹丟棄過多流量的策略配置。管制會測量傳入流量，並將傳入速率保持為配置的位元/秒。Cisco Catalyst 3750交換機僅支援單速率、單桶策略。這意味著交換機僅以一個速率進行測量，並且它可以用兩種顏色分析流量一致和超出操作。該圖顯示了一個帶有三個類對映的策略對映sample-policy2。

本示例的要求是：

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

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

- 標籤並管制filnet應用程式。

管制（超出操作丟棄）

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

!--- 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

下面將介紹策略對映中的配置：

- 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的速率受到管制。過量的資料包被監察器丟棄。

分類、標籤和管制（超出操作- 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的流量。此外，超過10 Mbps的流量使用DSCP值CS2進行傳輸。這是因為policed-DSCP對映預設值對映相同的值。因此，建議相應地配置受管制的DSCP對映表，以區分DSCP值。

本示例的要求是：

- 配置要對映的管制-DSCP對映表：

- EF至AF31

- CS3至AF13

- CS2至AF11

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

- 標籤並管制filnet應用程式。如果流量超過25Mbps，請使用管制的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匹配的傳入資料包使用DSCP值CS2進行標籤。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。剩餘的資料包將放在queue1中。

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值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 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會先為隊列2提供10Gbps的20%，即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會先為隊列2提供10Gbps的20%，即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會先為其提供服務，直到其為空，然後再為其他3個隊列提供服務。但是，在入口優先順序隊列中，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

wherweight1為埠必須限制到的埠速度百分比。範圍介於 10 至 90。

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

相關資訊

- 配置QoS

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

- 無線產品支援

- 思科技術支援與下載