簡介
在思科以應用為中心的基礎設施(ACI)中,我們有多種選項可用於對流量進行分類,以便在交換矩陣內以特定方式提供服務。這些規則通常稱為服務品質(QoS)。 QoS主要是透過在乙太網路(第2層)或IP(網際網路通訊協定,第3層)標頭(分別稱為服務等級(COS)和區別服務代碼點(DSCP))處設定封包的某些值來達成。
ACI還允許使用者在進入或離開交換矩陣的資料流量上保留、忽略或修改這些QOS標籤。我們將詳細瞭解這些。
在本檔案的範圍內,我們將限制在ACI交換矩陣中的單一Pod設定。
設定和拓撲
測試和捕獲是在3.2.x版本的第2代硬體上完成的。
在本檔案中,我們將使用以下設定程式(示意性圖表)。
我們的交換矩陣包含兩個終端組(EPG):EPG-1和EPG-2。每個EPG都連結到其自己的網橋域(BD)。
EPG-1的BD有子網10.0.1.254/24
EPG-2的BD有子網10.0.2.254/24
枝葉1和2上存在兩個EPG的端點。
為方便起見,我們將簡要介紹不同的QOS配置,我們將詳細瞭解以下內容:
案例 1
在此場景中,我們將保持交換矩陣不受任何QOS策略的限制。這是為了檢查交換矩陣在處理預先標籤了不同COS或/和DSCP值的流量時的預設行為。
案例 2
在此案例中,我們將啟用「Dot1p Preserve」選項:
然後,我們將重複場景1的一些流量流,並比較/對比交換矩陣對流量的處理
案例 3
在此方案中,我們將使用EPG策略中可用的「QoS類」選項,並將其設定為不同的可用級別。然後,我們重複這些流量並比較交換矩陣對此流量的處理。
案例 4
這是在啟用「Dot1p Preserve」選項的情況下重複出現的場景3。
案例 5
在此方案中,我們將定義4個自定義QoS策略,然後在我們的EPG策略上呼叫它們。
此類策略示例:
這些自定義QoS策略將有助於瞭解在資料流量上重新標籤COS/DSCP的不同方式。
案例 1:ACI上未啟用QoS策略
此案例為觀察使用某些COS或DSCP值預先標籤的流量的預設行為。
只有兩種值得關注的行為。
1)是否保留COS?
2)是否保留DSCP?
預設情況下,在任何情況下都不會保留COS。當在入口枝葉刪除VLAN標頭時,該值將丟失,在出口時,不會標籤cos值(使用cos 0)
範例 1
此處我們將流量從E1D1傳送到E1D11。E1D1處的流量標有Cos = 4。
流量從Leaf-1發出並由E1D11接收,但已丟失其cos標籤。
預設情況下保留DSCP
範例 2
此處我們將流量從E1D1傳送到E1D2。E1D1的流量標籤為Cos = 2,DSCP = 12
流量以0 Cos和相同DSCP(12)退出枝葉2。 以下部分將介紹外部標頭的DSCP(16)。
案例 2:已啟用Dot1p Preserve
「Dot1P」是「IEEE 801.1p」(一種服務品質優先順序方案)的縮寫;這是IEEE 802.1Q "Dot1Q"(支援VLAN的網路標準)的一部分
Dot1Q報頭:
TPID:標籤協定識別符號 — 將值設定為0x8100,以將幀標識為Dot1Q標籤的幀
TCI:標簽控制資訊,包含以下子欄位:
PCP:優先級代碼點,一個引用Dot1P服務類的3位欄位,對映到幀優先順序級別
DEI:丟棄資格指示符,一個可以與PCP結合使用的1位欄位,用於指示在擁塞期間適合丟棄的幀。
VID:VLAN ID ,一個12位欄位,指定幀所屬的VLAN。
預設情況下(無論是否使用「Dot1p preserve」),傳入資料包(進入交換矩陣)上的COS值將編碼到外部報頭(iVXLAN報頭)DSCP上。DSCP的6位對映如下(4.0版之前):
有效3位= cos值
低3位=用於流量的類(預設情況下為第3級)
以下是包含一些示例DSCP值的表:
啟用「Dot1p Preserve」後,會對外部標頭DSCP值進行解碼,以找出資料流量上的原始COS值。然後將它寫入從枝葉輸出的VLAN報頭的Dot1P部分。
範例 3
此處我們將流量從E1D1傳送到E2D2。E1D1處的流量標籤為Cos = 1和DSCP = 8。啟用dot1p preserve後,在目的地E2D2上檢查時這兩個值都會保留。
案例 3:在EPG上設定的QoS級別
EPG流量可以使用特定QOS級別進行標籤。預設標籤是級別3。在4.0之前,只有三個使用者可配置的級別 — 級別1至3。在4.0之後,有6個級別。
該級別表示在其他標頭(iVXLAN標頭)COS上,如下所示:
4.0之前的版本:
第1級 |
Cos 2 |
第2級 |
Cos 1 |
第3級 |
Cos 0 |
Post 4.0:
下面未提及的COS + DEI組合保留供內部使用。
第1級 |
Cos 2 |
Dei 0 |
第2級 |
Cos 1 |
Dei 0 |
第3級 |
Cos 0 |
Dei 0 |
第4級 |
Cos 2 |
Dei 1 |
第5級 |
Cos 3 |
Dei 1 |
第6級 |
Cos 5 |
Dei 1 |
請注意,即使使用了DEI位,在擁塞時,第4、5和6類也不會自動丟棄符合條件的資料。該欄位只是用於新增類(與PCP相鄰)的一種方便方式
範例 4
此處我們將流量從E1D1傳送到E2D2。流量在來源處標籤為CoS = 1,DSCP = 8,而EPG-1使用QOS類別「Level 1」。
— 第1級在外部報頭上反映為CoS 2。
— 由於原始CoS為1且級別為1,因此外部標頭DSCP為001010 = 10
— 警告=如果使用EPG上的Level時未啟用preserve CoS,則丟棄資料幀的原始CoS,並將與Level對應的CoS放置在輸出幀上(3.2.x中已進行了測試)
案例 4:具有Dot1P保留的QoS類
在此方案中,我們還將在EPG-1上啟用Dot1P保留以及使用QoS類分配。
範例 5
在啟用Dot1P Preserve選項的情況下,此設定與EXAMPLE 4相同。啟用Dot1P Preserve後,我們在輸出幀CoS上看不到任何意外值。
案例 5:自定義QoS類別
在此方案中,我們將定義一個自定義QoS類,並將其應用於我們的源EPG(EPG-1)。如果同時使用QoS類和自定義QoS,則自定義QoS優先。
此外,在自定義QoS策略中,如果同時使用「Dot1P分類器」和「DSCP到優先順序對映」,則DSCP對映優先。
自定義類定義如下:
- CoS值4應匹配。如果是,則流量被分類到第2級,其CoS為3且DSCP CS3(24)
範例 6
此處我們將從E1D1向E1D2傳送流量。該流量在E1D1標有CoS 4和DSCP 0。EPG-1使用上述自定義QoS策略。
— 類(2級)在外部報頭中表示為CoS 1
— 重寫的CoS(3)和類一起編碼為DSCP = 011001 = 25
此處我們再次觀察到相同的警告 — 如果不啟用Dot1P Preserve,我們將在輸出資料幀上看到與「Level 2」對應的CoS值。即,在E1D2上,我們將看到幀具有CoS 1和DSCP 24。
使用Dot1P Preserve可以獲得實際預期的CoS(3):