本檔案將提供Cisco Nexus 7000系列交換器上的服務品質(QoS)功能組態範例,以簡化分類和佇列達成方式。
嘗試此組態之前,請確保符合以下要求:
瞭解Nexus 7000系列交換機配置的基本知識
具有QoS基礎知識
本檔案中的資訊是根據Nexus 7000系列交換器。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
請參閱思科技術提示慣例以瞭解更多有關文件慣例的資訊。
Nexus 7000交換機上的預設QoS引數足以滿足大多數部署的需要。但是,您需要瞭解建立自定義策略所需的限制和配置詳細資訊。
對於Nexus 7000 M系列線卡上的QoS,您需要考慮兩個方面:
隊列策略
QoS策略
隊列在硬體中執行,並使用模組化QoS CLI(MQC)隊列策略進行配置。用於標籤或管制流量的QoS策略通過MQC策略使用,其格式與其他Cisco平台上的標準QoS策略完全相同。例如,訪問清單用於將類對映中的流量與相應的策略對映進行分類,以設定/管理流量。
目前,M系列模組嚴格根據服務等級(CoS)值進行排隊。因此,您需要首先瞭解如何匯出CoS值。在知道交換機的CoS值進入/離開後,您可以專注於隊列配置,以獲得不同流量型別所需的QoS。
對於路由的單點傳播流量,CoS值是從差分服務代碼點(DSCP)值的3個最高位派生的。對於橋接的單點傳播流量,會從802.1q標頭中收到的CoS值複製CoS值。請注意,在L2接入鏈路上沒有中繼報頭。因此,如果流量在接入埠上收到並橋接,它將使用CoS 0輸出交換機。DSCP值不會更改,但資料包可能無法獲得所需的優先順序。您可以通過任何手動設定CoS或DSCP值的QoS策略在策略對映中手動設定CoS值。
瞭解組播的行為也很重要。路由組播流量獲取其CoS值的方式與路由單播流量相同。對於橋接組播流量,行為取決於L3狀態。如果組播組沒有L3狀態,則以與橋接單播流量相同的方式匯出CoS。如果組播組存在L3狀態,則以與路由單播流量相同的方式匯出CoS。請注意,當您在交換器虛擬介面(SVI)上為接收流量的VLAN啟用稀疏模式下的通訊協定無關多點傳送(PIM)時,會在看到多點傳送時建立S、G專案。
總而言之,以下顯示了流量型別的CoS行為:
流量型別 | CoS行為 |
路由單播 | 從3個MSB複製到ToS |
橋接單播 | 未更改 |
路由組播 | 從3個MSB複製到ToS |
具有組L3狀態的網橋組播 | 從3個MSB複製到ToS |
組沒有第3層狀態的網橋組播 | 未更改 |
考慮存取連線埠(Eth8/1)上接收流量並在VLAN上橋接流量的範例。預設情況下,橋接單點傳播流量的CoS值不會變更。如果流量到達接入埠,則會分配預設CoS值0。在本範例中,優先順序流量(DSCP 46)是在存取連線埠上接收的,並以DSCP值未變更且CoS值為0的方式輸出交換器。因此,封包沒有取得適當的優先順序。
一種可能的解決方法是建立一個QoS策略來手動設定輸入埠上的CoS值。
在本示例中,只有具有DSCP 46的資料包才會更新其CoS值。如果需要多個DSCP值來確保正確的CoS值,則需要定義策略對映中的其他類對映和操作。
另一個選項是將表對映與操作「default copy」一起使用。 表對映允許您根據當前DSCP值重置DSCP。例如,如果接收的DSCP值為40的流量,並且需要確保將其重新標籤為DSCP值為46,則可以使用操作為「從40到46」的表對映。
表對映還包含「預設複製」操作,該操作將DSCP值設定為原始值。這與使用「match dscp ef」分類和「set dscp ef」操作建立策略對映類似。 在邏輯上,DSCP值保持不變,但「set dscp」操作會將CoS值隱式設定為新DSCP值的3-MSB。
因此,如果需要確保CoS值始終更新為DSCP值的3-MSB,請使用帶有「default copy」的單個操作的表對映。
匯出CoS值後,您可以操縱全域性隊列類對映來影響cos到隊列的對映。這些類對映是全域性的,並且影響該特定隊列型別的所有虛擬裝置上下文(VDC)中的所有模組。例如,考慮M108和M132模組(1p7q4t)的這些預設隊列類對映:
class-map type queuing match-any 1p7q4t-out-pq1
Description: Classifier for egress priority queue of type 1p7q4t
match cos 5-7
class-map type queuing match-any 1p7q4t-out-q2
Description: Classifier for egress queue 2 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q3
Description: Classifier for egress queue 3 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q4
Description: Classifier for egress queue 4 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q5
Description: Classifier for egress queue 5 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q6
Description: Classifier for egress queue 6 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q7
Description: Classifier for egress queue 7 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q-default
Description: Classifier for egress default queue of type 1p7q4t
match cos 0-4
預設情況下,cos 0-4對映到預設隊列,cos 5-7對映到優先順序隊列。這些策略與同一隊列型別的預設隊列策略並行執行:
policy-map type queuing default-out-policy
class type queuing out-pq1
priority level 1
queue-limit percent 16
class type queuing out-q2
queue-limit percent 1
class type queuing out-q3
queue-limit percent 1
class type queuing out-q-default
queue-limit percent 82
bandwidth remaining percent 25
優先順序隊列是「priority」,隊列限製為16%。預設隊列的隊列限製為82%,具有預設頻寬剩餘權重。未使用的其他隊列分配了1%的隊列限制。請注意,q4、q5和q6不在預設隊列策略中表示,因此,在硬體中程式設計的隊列限制和頻寬權重會更小。
要建立自定義隊列策略,請完成以下步驟:
考慮具有1p7q4t隊列體系結構的M132模組的示例,其中所有8個CoS值都對映到單獨的隊列。輸出顯示了自定義隊列策略以及對全域性隊列類對映的更改:
policy-map type queuing 10G_POLICY
class type queuing 1p7q4t-out-pq1
priority level 1
queue-limit percent 10
class type queuing 1p7q4t-out-q2
queue-limit percent 10
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q3
queue-limit percent 5
bandwidth remaining percent 5
class type queuing 1p7q4t-out-q4
queue-limit percent 5
bandwidth remaining percent 5
class type queuing 1p7q4t-out-q5
queue-limit percent 10
bandwidth remaining percent 20
class type queuing 1p7q4t-out-q6
queue-limit percent 5
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q7
queue-limit percent 5
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q-default
queue-limit percent 50
bandwidth remaining percent 40
! voice
class-map type queuing match-any 1p7q4t-out-pq1
match cos 5
! scavenger
class-map type queuing match-any 1p7q4t-out-q2
match cos 1
! transactional
class-map type queuing match-any 1p7q4t-out-q3
match cos 2
! call signaling
class-map type queuing match-any 1p7q4t-out-q4
match cos 3
! video
class-map type queuing match-any 1p7q4t-out-q5
match cos 4
! routing
class-map type queuing match-any 1p7q4t-out-q6
match cos 6
! management
class-map type queuing match-any 1p7q4t-out-q7
match cos 7
! best effort
class-map type queuing match-any 1p7q4t-out-q-default
match cos 0
最後一步是將自定義隊列策略應用到每個1p7q4t介面:
interface Ethernet8/1
service-policy type queuing output 10G_POLICY
預設隊列策略假設CoS 0-4對映到預設隊列,CoS 5-7對映到優先順序隊列。因此,隊列q3、q4、q5、q6和q7的隊列限制極小。可以輸入show queuing interface命令來驗證硬體中配置和應用的當前隊列大小和頻寬。
請考慮上一節中的示例策略,其中每個CoS值對映到特定隊列。在示例的末尾,自定義隊列策略應用到Eth8/1。此外,假定還有另一個1p7q4t介面(Eth6/1),該介面保留有預設隊列策略:
N7k# show queuing interface e6/1
<some output omitted>
Configured queue-limit ratios
queue-limit ratios: 78[1p7q4t-out-q-default] 1[1p7q4t-out-q2] 1[1p7q4t-out-q3]
*1[1p7q4t-out-q4] *1[1p7q4t-out-q5] *1[1p7q4t-out-q6] *1[1p7q4t-out-q7] 16[1p7q4t-out-pq1]
* means unused queue with mandatory minimum queue-limit
Thresholds:
COS Queue Threshold Type Min Max
______________________________________________________________
0 1p7q4t-out-q-default DT 100 100
1 1p7q4t-out-q2 DT 100 100
2 1p7q4t-out-q3 DT 100 100
3 1p7q4t-out-q4 DT 100 100
4 1p7q4t-out-q5 DT 100 100
5 1p7q4t-out-pq1 DT 100 100
6 1p7q4t-out-q6 DT 100 100
7 1p7q4t-out-q7 DT 100 100
從上面的輸出中,您可以看到隊列q2和q3的隊列限製為1%,而隊列4、q5、q6和q7的隊列限製為*1%,這是最小強制隊列限制(換句話說,顯著小於1%)。 此外,您可以看到CoS值1-4和6-7利用了這些非常小的隊列。小隊列大小會很快導致輸出丟棄並會降低網路效能。如果預設流量CoS 0對映到這些小隊列之一,則情況會進一步惡化。
總之,如果您建立自定義隊列策略並更改全域性隊列類對映,將自定義隊列策略應用於機箱中共用相同隊列型別的所有介面至關重要。
此外,以下列出一些有用的捨棄指令:
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
29-May-2013 |
初始版本 |