本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹Catalyst 3750交換器QoS功能,例如分類、標籤、管制、佇列和排程。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
Cisco Catalyst 3750 交換器
Cisco IOS®軟體版本12.2(35)SE2
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
藉助QoS,您可以以犧牲其他流量為代價,為特定型別的流量提供優先處理。您可以使用QoS標籤來區分流量。第3層IP報頭中最常用的兩個QoS標籤是IP優先順序欄位和DSCP欄位。第2層幀頭中的QoS標籤稱為服務類別(CoS)。 Catalyst交換機QoS工具可以基於第3層QoS標籤或第2層QoS標籤提供優先處理。本文提供多個範例,藉此您可以瞭解Cisco Catalyst交換器中的第2層和第3層QoS標籤使用情況。
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.
在3750交換器上啟用QoS後,預設會很少啟用輸入和輸出QoS功能。此圖顯示交換器QoS架構的簡要檢視:
以下是基於圖表的要點摘要:
可以根據埠配置輸入QoS功能,如分類、標籤和管制。
可以全域性配置輸入對映表和輸入隊列。不能根據每個埠配置這些埠。
入口隊列的SRR可以全域性配置。
堆疊環頻寬取決於堆疊佈線。如果堆疊以全頻寬連線,則會接收32Gbps頻寬。此頻寬由堆疊中的所有交換器共用。
輸出對映表和輸出隊列是全域性配置的。可以有兩組隊列配置,可以將任一隊列集配置應用於埠。
輸出隊列的SRR可以按埠進行配置。
本節介紹各種可能的輸入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標籤?
如果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-DSCP對映表的CoS值為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後,將使用預設值建立對映表並啟用對映表。
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代替埠特定配置。您還可以使用策略對映標籤傳入的資料包。
本示例的要求如下:
信任IP電話流量的CoS值。
標籤來自連線IP電話的PC的軟電話應用資料包的DSCP值。
不信任來自PC的所有其他流量。
此圖顯示策略對映已附加到介面的輸入。不能將策略對映應用於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的流量設定最高優先順序。
需要為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
來自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
所有其它流量都需要分配給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
將其應用於相關介面下:
Switch(config)#interfaceSwitch(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.
本節將討論以下主題:
本節介紹用於捨棄過度流量的原則管制設定。管制會計量傳入流量,並將傳入速率維持為所配置的位/秒。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的速率被管制。過量的資料包被監察器丟棄。
本節介紹標籤和傳輸過多流量的策略配置。此圖顯示了具有兩個類對映的策略對映sample-policy3:
交換機根據管制的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
配置排隊和安排有三個步驟。步驟如下:
隊列對映配置:
隊列對映配置根據DSCP或CoS值將資料包對映到兩個輸入隊列。
隊列配置:
隊列配置定義了用於劃分兩個隊列之間的入口緩衝區的比率(分配空間量)。
計畫程式配置:
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)#
擁塞管理和避免是Cisco Catalyst 3750交換器支援的輸出QoS功能。擁塞管理和避免是一個三步過程。這些步驟包括排隊、丟棄和排程。
排隊根據QoS標籤將資料包放入不同的軟體隊列中。Cisco Catalyst 3750交換器有4個輸出佇列,每個佇列有3個閾值。使用QoS標籤對流量進行分類和標籤後,可以根據QoS標籤將流量分配到四個不同的隊列。
每個隊列都可以配置緩衝區大小、保留閾值、閾值級別和最大閾值。加權尾部丟棄(WTD)用於管理隊列長度,並為不同的流量分類提供丟棄優先順序。入口隊列引數是全域性配置的。入口隊列引數不是基於每個埠。但是,出口隊列引數是基於每個埠配置的。即使如此,組態也會依照連線埠執行。不能以不同方式配置每個埠。您可以用兩種不同的方式配置每個埠。這稱為隊列集。在全域性配置中,最多可以配置兩個不同的隊列集。然後,您可以在介面上應用這兩個集合中的任意一個。
入口和出口隊列都由SRR提供服務,SRR控制資料包的傳送速率。在輸入佇列上,SRR會將封包傳送到堆疊環。SRR可以在兩種模式下運行,稱為整形和共用。對於入口隊列,共用是預設模式,也是唯一支援的模式。在共用模式下,隊列根據配置的權重共用它們之間的頻寬。此級別的頻寬是保證的,但不僅限於此。在整形模式下,出口隊列保證一定百分比的頻寬,並且速率限制在該數量。整形流量使用的頻寬不會超過分配的頻寬,即使鏈路處於空閒狀態。隨著時間的推移,整形可提供更均勻的流量流,並減少突發流量的峰值和谷值。可以將隊列1配置為優先順序隊列。
本節對所有可用的輸出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 介面配置命令啟用優先順序隊列。
預設隊列對映配置
可以根據需要更改這些預設對映:
!--- 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)解決方案時,您才能更改它們。
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
31-May-2023 |
重新認證 |
1.0 |
17-May-2007 |
初始版本 |