本記事ではACIにおいて元のフレームにセットされていたCoS/DSCP値がどのように扱われるのか、ACI内部のVXLAN Outer HeaderにはCoS/DSCP値がどのようにセットされるのか、ACIの外部に送出する際にCoS/DSCP値がどのようにセットされるのか について解説します。
ACIにおけるQoSの全体像については「ACI QoS - 概要」を、優先制御の実装方法については「ACI QoS - QoS Policy設定」をご参照ください。
1. 概要
- ACI ファブリックに着信した各パケットの DSCP, CoS は ACI QoS Classにマッピングされる
- QoS Class に従って VXLAN Outer ヘッダの CoS フィールドと DEI ビットがセットされる
- CoS は DSCP の最上位 3 ビットにエンコードされる(Dot1p preserve が設定されていなくても常にエンコードされる)
DSCP :
- 着信パケットの DSCP は常に保持される (ACIファブリックへ着信したパケットにセットされていたDSCPは、ACIファブリックの外に送出される時にもそのまま保持される)
- Leaf は着信したパケットの DSCP をVXLAN inner DSCP に保持する
- QoS ポリシーにより DSCP のRe-markingを行わない限り、inner の DSCP値 は変更されない
CoS(Dot1p) :
- デフォルトでは保持されない。Ingress Leaf でVLAN header が削除されることによりCoS値の情報が失われ、Egress Leaf から送出される際にはマーキングが行われない(CoS 0 が使用される)
- 着信パケットのCoSを保持したい場合は Fabric全体で “Dot1p preserve” を有効にする
2. CoS / DSCP の扱いについて
ここからは、いくつかのパターンでそれぞれ CoS / DSCP がどのように処理されるかを紹介していきたいと思います。
2-1. Dot1P Preserve:無効 (デフォルト動作)
2-2. Dot1P Preserve:有効
2-3. Dot1P Preserve:無効 + Custom QoS 有効
2-4. Dot1P Preserve:有効 + Custom QoS 有効
2-1. Dot1P Preserve:無効 (デフォルト動作)
VXLAN Outer Header は以下のルールに従ってセットされます。
CoS(+DEI) :以下の表の通り、QoS Class に応じた CoS + DEI がセットされる
DSCP:上位3bit は 着信したオリジナルパケットのCoS値、下位3bit は QoS Class 毎に決まった Outer の CoS 値となります。
[例] 元のパケットのCoS=3、QoS Class Level 1 に割り当てられた場合、011 010 = 26 となります。
※ VXLAN Outer Header の CoS / DSCP値 については運用の中でユーザが意識する必要は通常ありません。

デフォルト設定では、着信パケットの元の CoS値は削除され、DSCP値は保持されたままACIファブリックの外部に送出されます。

2-2. Dot1P Preserve:有効
Fabric > Access Policies > Policies > Global > QoS Class の設定画面で "Dot1p Preserve" にチェックを入れることで、CoSの保持を有効化することができる。

Dot1P Preserve が有効の場合、下図のように元のパケットにセットされていたCoSを維持したままACIファブリックの外に送出されます。

2-3. Dot1P Preserve:無効 + Custom QoS 有効
以下の例では 元のパケットのCoSが "4" であった場合に、QoS Class Level2 に割り当て、CoS "3" でリマーキングを行うように設定されています。このように Custom QoS Policy で "Target CoS" を設定している場合でも、Dot1P Preserve 設定が 無効 の場合にはリマーキングが行われないため注意が必要です。

2-4. Dot1P Preserve:有効 + Custom QoS 有効
Dot1P Preserve を有効にした場合は Target CoS に設定した値が反映され、CoS 3 をセットした状態でパケットが送出されます。

参考:
https://www.cisco.com/c/ja_jp/support/docs/cloud-systems-management/application-policy-infrastructure-controller-apic/215015-qos-in-cisco-aci-within-a-pod.html