搭載Supervisor III(WS-X4014)或Supervisor IV(WS-X4515)的Catalyst 4000支援進階服務品質(QoS)功能,包括分類、管制、標籤、佇列和排程。本文檔介紹排隊和排程功能,包括流量調節、共用和嚴格優先順序/低延遲隊列。排隊確定資料包在輸出介面的各種隊列中的排隊方式,排程確定高優先順序流量如何優先於低優先順序流量(在擁塞時)。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
本文檔的讀者應瞭解以下內容:
訊框的第2層(L2)優先順序建立在InterSwitch連結(ISL)標頭(4位使用者欄位中的三個最低有效位元)和802.1Q標頭(2位元組標籤控制資訊欄位中的三個最高有效位元)提供的服務等級(CoS)值上。
封包的第3層(L3)優先順序設定以區分服務程式碼點(DSCP)值為基礎,此值可在IP標頭中的服務型別(ToS)位元組(六個最高有效位元)或ToS位元組的IP優先順序值(三個最高有效位元)中取得。
請參閱軟體組態設定指南以瞭解其他組態協助。
本文檔中的資訊基於以下在Supervisor III(WS-X4014)上的軟體版本:
Cisco IOS®軟體版本12.1(8)EW
註:Cisco IOS軟體版本12.1(12c)EW首次支援Supervisor IV。除非有明確區別,否則本文檔中介紹的功能也適用於Supervisor IV。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您在即時網路中工作,請確保在使用任何命令之前瞭解其潛在影響。
Catalyst 4000 Supervisor III和IV使用共用記憶體交換架構,能夠為現有的線卡提供佇列和排程功能。由於Supervisor提供無阻塞交換架構,因此沒有輸入佇列。封包透過背板轉送到輸出或輸出連線埠。介面的輸出端提供四個傳輸隊列。隊列大小目前固定為:快速乙太網埠為240個資料包,無阻塞千兆乙太網介面為1920個資料包。無阻塞表示埠在連線到背板時沒有超額預訂。無阻塞千兆乙太網埠清單如下:
supervisor Engine III(WS-X4014)和IV(WS-X4515)上的上行鏈路埠
ws-X4306-GB線路卡上的埠
ws-X4232-GB-RJ線路卡上的兩個1000BASE-X埠
ws-X4418-GB線卡上的前兩個埠
WS-X4412-2GB-TX線卡上的兩個1000BASE-X埠
阻塞(超訂用)Gigabit乙太網路連線埠佇列大小目前也固定為240個封包。阻塞埠如下所示:
WS-X4412-2GB-TX線路卡上的10/100/1000 T埠
ws-4418-GB線路卡上的埠(前兩個埠除外)
ws-X4424-GB-RJ45線路卡上的埠
ws-X4448-GB-LX線卡上的埠
ws-X4448-GB-RJ45線路卡上的埠
注意:隊列大小取決於資料包的數量,而不是資料包的大小。目前,Supervisor III不支援傳輸隊列的任何擁塞迴避機制,如加權隨機早期檢測(WRED)。
注意:Supervisor IV支援Cisco IOS版本12.1(13)EW及更高版本中的主動隊列管理(AQM)功能。AQM是一種擁塞迴避技術,在緩衝區溢位發生之前起作用。AQM是通過動態緩衝區限制(DBL)實現的。DBL跟蹤交換機中每個流量的隊列長度。當特定流的隊列長度超過其限制時,DBL將丟棄資料包或在資料包報頭中設定顯式擁塞通知(ECN)位。有關如何配置DBL的詳細資訊,請參閱配置QoS。
禁用QoS後,資料包會被信任用於入口埠上的傳入DSCP,並排隊到相應的隊列中。這些隊列以循環方式提供服務。
啟用QoS時,資料包根據內部DSCP排隊,內部DSCP是使用埠信任狀態從傳入的CoS/DSCP派生,或者根據輸入埠或訪問清單(ACL)/基於類的標籤上的CoS/DSCP預設配置派生。基於全域性DSCP - tx-queue對映選擇隊列,完全可配置。對映可以如下顯示:
Switch#show qos maps dscp tx-queue DSCP-TxQueue Mapping Table (dscp = d1d2) d1 : d2 0 1 2 3 4 5 6 7 8 9 ------------------------------------- 0 : 01 01 01 01 01 01 01 01 01 01 1 : 01 01 01 01 01 01 02 02 02 02 2 : 02 02 02 02 02 02 02 02 02 02 3 : 02 02 03 03 03 03 03 03 03 03 4 : 03 03 03 03 03 03 03 03 04 04 5 : 04 04 04 04 04 04 04 04 04 04 6 : 04 04 04 04
上述對映是預設對映。如果需要,可通過發出qos map dscp dscp-values to tx-queue queue-id 命令更改對映。例如,要將DSCP值50對映到tx-queue 2,請在全域性配置模式下進行以下配置:
Switch(config)#qos map dscp 50 to tx-queue 2 !--- You can verify to make sure the changes have been made. Switch #show qos maps dscp tx-queue DSCP-TxQueue Mapping Table (dscp = d1d2) d1 : d2 0 1 2 3 4 5 6 7 8 9 ------------------------------------- 0 : 01 01 01 01 01 01 01 01 01 01 1 : 01 01 01 01 01 01 02 02 02 02 2 : 02 02 02 02 02 02 02 02 02 02 3 : 02 02 03 03 03 03 03 03 03 03 4 : 03 03 03 03 03 03 03 03 04 04 5 : 02 04 04 04 04 04 04 04 04 04 6 : 04 04 04 04
有關更改對映的配置步驟的詳細資訊,請參閱以下文檔:
由於交換機特定應用積體電路(ASIC)的限制,如果輸入埠設定為trust-cos,則傳輸CoS等於在埠上配置的傳入資料包CoS或預設CoS(對於未標籤的資料包)。如果策略配置為通過對此類資料包發出set ip dscp value命令來設定資料包的DSCP,則將它們用作內部DSCP的源而不是預設/資料包CoS,並在適當的隊列中排隊。如果埠不受CoS信任,則傳出CoS將基於內部DSCP值。
如果需要,可將傳輸隊列3配置為嚴格的優先順序隊列,以便排入該隊列中的資料包將排定在排入其餘隊列的資料包之前傳輸,只要它們不超過配置的共用值。這將在下一節中解釋。
嚴格優先順序功能預設會停用。預設對映會將具有CoS 4和5以及DSCP 32至47的資料包排隊到傳輸隊列3中。可以根據需要修改DSCP到tx隊列對映,以便所需的資料包在高優先順序隊列中排隊。
為了避免低優先順序資料包被耗盡,該隊列需要主要針對低流量,但針對高優先順序流量(如語音流量)進行配置,而不是針對批次低優先順序TCP/IP流量。如果需要防止其他非嚴格優先順序隊列的耗竭,建議為高優先順序隊列配置調節/共用。通過配置整形/共用,其他低優先順序資料包將在滿足嚴格隊列的形狀/共用值後進行排程。
Switch#show run interface gigabitEthernet 1/1 interface GigabitEthernet1/1 no switchport ip address 10.1.1.1 255.255.255.0 tx-queue 3 priority high end
Catalyst 4000 Supervisor III和IV支援bandwidth命令,該命令是tx-queue命令下的子命令。此命令允許四個傳輸隊列中的每一個都有保證的最小頻寬。此命令不應與用於路由協定目的的介面級別bandwidth命令相混淆。這與DSCP-tx-queue對映一起,提供了對四個隊列中的每個隊列中排隊的各類流量的保證頻寬大小的精細控制。通常,通過為傳輸隊列3配置的共用,通過嚴格的優先順序隊列,可以保證高優先順序流量(如語音流量)在擁塞時達到最小流量值。只有無阻塞的千兆乙太網埠才支援共用鏈路頻寬。此功能目前不適用於阻塞千兆乙太網埠或10/100快速乙太網介面。
在交換機上全域性啟用QoS時,所有埠上的四個隊列預設分配的最小頻寬為250 Mbps。可能需要更改預設設定,以確保它們匹配應用程式或相關網路的所需設定。
Switch#show run interface gigabitEthernet 1/1 interface GigabitEthernet1/1 no switchport ip address 10.1.1.1 255.255.255.0 tx-queue 1 bandwidth 500 mbps tx-queue 2 bandwidth 25 mbps tx-queue 3 bandwidth 50 mbps priority high tx-queue 4 bandwidth 200 mbps end Switch#show qos interface GigabitEthernet 1/1 QoS is enabled globally Port QoS is enabled Port Trust State: 'untrusted' Default DSCP: 0 Default CoS: 0 tx-Queue Bandwidth ShapeRate Priority QueueSize (bps) (BPS) (packets) 1 500000000 disabled N/A 1920 2 250000000 disabled N/A 1920 3 50000000 disabled high 1920 4 200000000 disabled N/A 1920
交換機當前未驗證每個隊列的頻寬共用總和<= 1 Gbps。例如,如果Q1 = 300 Mbps、Q2 = 200 Mbps、Q3= 100 Mbps和Q4 = 500 Mbps,則超過該介面可用的1 Gbps總頻寬。要瞭解交換機在此超訂用情況下的行為,我們需要了解排程的工作原理。
當傳輸隊列輸出速率低於其配置的共用和形狀值時,它被視為高優先順序隊列。最初,所有隊列都是高優先順序,因為它們中沒有一個隊列被授予其份額,因此將以循環方式提供服務(請注意,如果配置為高優先順序的隊列不為空,則始終首先提供服務,直到該隊列達到共用)。 一旦某些隊列滿足其份額要求,如果有更多具有高優先順序的隊列,則為其提供服務。如果沒有高優先順序隊列,則所有低優先順序隊列(已滿足其份額的隊列)將以輪詢方式提供服務。
基於以上操作說明,在我們的示例場景中,在擁塞時,Q1、Q2和Q3將獲得它們的份額,但不會是Q4,因為介面分配的頻寬不能超過其可用的物理頻寬。應根據使用者/應用程式要求謹慎選擇共用值。
Catalyst 4000 Supervisor III和IV支援除原則執行功能以外的其他流量調節功能。可以針對快速乙太網和千兆乙太網上的每個傳輸隊列配置整形功能。整形將每秒每隊列傳輸的頻寬限製為配置的最大值,該最大值可配置為16 Kbps到1 Gbps(快速乙太網埠為100 Mbps)。 當決定從特定隊列傳輸資料包時,整形與配置值的方差非常低。
Switch#show run interface FastEthernet 5/9 interface FastEthernet5/9 no switchport no snmp trap link-status ip address 10.1.1.1 255.255.255.0 tx-queue 1 shape 50 mbps tx-queue 2 shape 35 mbps tx-queue 3 priority high shape 5 mbps tx-queue 4 shape 10 mbps Switch#show qos interface FastEthernet 5/9 QoS is enabled globally Port QoS is enabled Port Trust State: 'untrusted' Default DSCP: 0 Default CoS: 0 tx-Queue Bandwidth ShapeRate Priority QueueSize (BPS) (BPS) (packets) 1 N/A 50000000 N/A 240 2 N/A 35000000 N/A 240 3 N/A 5000000 high 240 4 N/A 10000000 N/A 240
根據前面所述的四個隊列中的一個隊列上的內部DSCP對資料包進行排隊。內部DSCP可以從輸入DSCP、輸入埠DSCP或基於類的標籤匯出。傳輸隊列排程如下所示。如果設定了整形,則檢查傳輸佇列中的封包是否處於已設定的最大形狀值內。如果超過該值,則將其排入隊列並且不進行傳輸。
如果封包符合條件,則會考慮共用/嚴格優先順序功能。首先,只要隊列中的嚴格優先順序資料包低於已配置的隊列形狀引數,就會優先處理這些資料包。在為嚴格優先順序隊列提供服務(即,在嚴格優先順序隊列中沒有資料包或者它已達到其份額)後,在非嚴格優先順序隊列中排隊的資料包將以輪詢方式提供服務。由於存在三個此類隊列,因此再次考慮為這些隊列配置共用。例如,如果傳輸隊列1未滿足其共用,則其優先順序高於滿足其共用的傳輸隊列2。一旦此類較高優先順序的隊列資料包出隊,就會考慮隊列中已滿足其份額的資料包。
注意:此上下文中的較高優先順序並不意味著更好的DSCP、CoS或IP優先順序值。它僅基於特定隊列是否達到其份額。如果特定非嚴格優先順序隊列未滿足其份額要求,則將其視為非嚴格優先順序隊列中滿足其份額要求的高優先順序隊列。