OVSDB マネージド VXLAN インターフェイスでの CoS の設定
サポートされているプラットフォームでは、OVSDB が管理する VXLAN インターフェイスで、パケット分類、パケット スケジューリング、パケット コード ポイント書き換え(書き換えルール)CoS 機能を設定できます。OVSDB で管理する VXLAN インターフェイスは、OVSDB コントローラを使用して VXLAN インターフェイスとトンネルを作成および管理します。
OVSDB 管理対象 VXLAN インターフェイスの分類子、スケジューラ、書き換えルール設定では、通常のイーサネット インターフェイスの CoS 設定と同じ CLI ステートメントが使用されます。ただし、OVSDB で管理する VXLAN インターフェイスでは、通常のイーサネット インターフェイスと比べて、機能サポートがいくつか異なります。機能のサポートは、スイッチ インターフェイスがアクセス向け(ネットワークにアクセスするデバイスに接続)かネットワーク向け(ネットワークに接続、たとえば VXLAN ゲートウェイに接続するスイッチ インターフェイス)かによって異なります。
分類子—アクセス側のイングレスインターフェイスで、BAまたはMF DSCP分類子を設定できます。
ネットワークに面したイングレスインターフェイスでは、DSCP分類子のみを設定できます。
書き換えルール—ネットワークに面したインターフェイスでは、DSCP書き換えルールを設定できます。アクセス向けインターフェイスは、書き換えルールをサポートしていません。IEEE 802.1p 書き換えルールはサポートされていません。
注:ルールの書き換えは、VXLAN ヘッダー上の DSCP コード ポイントのみを書き換えます。書き換えルールは、内部パケットヘッダーのDSCPコードポイントを書き換えません。書き換えルールを設定しない場合、デフォルトではパケットヘッダーのコードポイント値がVXLANヘッダーにコピーされます。
スケジューラ—エグレスインターフェイスは、通常のイーサネットインターフェイスと同じように、拡張伝送選択(ETS)階層ポートスケジューリングを使用し、同じ機能がサポートされています。アクセス側とネットワーク側のエグレスインターフェイスでパケットのスケジューリングを設定できます。
OVSDB 管理 VXLAN インターフェイスでの CoS 機能サポートの詳細については、「 OVSDB 管理 VXLAN インターフェイス上の CoS について」を参照してください。
このトピックでは、OVSDB 管理下の VXLAN インターフェイスでの CoS 設定について説明します。OVSDB または VXLAN の設定には適用されません。OVSDB で管理される VXLAN については、「OVSDB 環境で動的に設定された VXLAN について」 を参照してください。
インターフェイスに CoS を設定しない場合、インターフェイスはデフォルトの CoS プロパティを使用します。インターフェイス上でいくつかのCoSプロパティを設定した場合、インターフェイスはそれらのプロパティに対して設定済みのCoSを使用し、未設定のプロパティに対してデフォルトのCoSを使用します。OVSDB で管理する VXLAN インターフェイスのデフォルト設定の唯一の違いは、書き換えルールを構成しない場合、デフォルトではパケット ヘッダーのコード ポイント値が VXLAN ヘッダーにコピーされることです。その他のインターフェイスタイプには、デフォルトの書き換えルールがありません。デフォルトのスケジューラと分類子の設定については、 デフォルトのCoSスケジューリングと分類を理解する を参照してください。
次の 3 つの手順は、OVSDB 管理下の VXLAN インターフェイスで分類子、書き換えルール、ETS 階層ポート スケジューリングを設定する方法を示しています。
デフォルト分類子または以前に設定された分類子に基づいて分類子を設定することも、デフォルト値を使用しないまったく新しい分類子を作成することもできます。この例は、ネットワークインターフェイスを対象としています。
デフォルトの書き換えルールまたは既存の書き換えルールに基づいて書き換えルールを設定できます。デフォルトの書き換えルールでは、内部パケットヘッダー値がVXLAN外部ヘッダーに書き込まれます。または、デフォルト値を使用しないまったく新しい分類子を作成することもできます。書き換えルールは、ネットワークに面したインターフェイスでのみ設定でき、サポートされている書き換えルールはDSCP書き換えルールのみです。
デフォルトの書き換えルールまたは以前に設定された書き換えルールをテンプレートとして使用して、ネットワークに面したエグレスインターフェイスに書き換えルールを設定するには、
importステートメントを含め、インポートする書き換えルールとしてdefaultまたは書き換えルール名を指定します。次に、書き換えルールを転送クラス、損失優先度、および1つ以上のコードポイントに関連付けます。[edit class-of-service rewrite-rules] user@switch# set dscp rewrite-name import (rewrite-name | default) forwarding-class forwarding-class-name loss-priority loss-priority code-points (aliases | bit-patterns)
デフォルトの書き換えルールまたは既存の書き換えルールに基づいていない書き換えルールを作成するには、新しい書き換えルールを作成し、それを転送クラス、損失の優先度、および1つ以上のコードポイントに関連付けます。
[edit class-of-service rewrite-rules] user@switch# set dscp rewrite-name forwarding-class forwarding-class-name loss-priority loss-priority code-points (aliases | bit-patterns)
注:書き換えルールは、アクセス向けインターフェイスではサポートされていません。
スイッチ上の1つ以上のOVSDB管理下のVXLANインターフェイスに書き換えルールを適用します。
[edit class-of-service interfaces] user@switch# set interface-name unit unit rewrite-rules dscp rewrite-name
ETS階層ポートスケジューリングは、ポート帯域幅を2層のトラフィックに割り当てます。ETSは、ポート帯域幅の使用率を向上させ、ポートリソースをフォワーディングクラスとフォワーディングクラスセット(fc-set)と呼ばれるフォワーディングクラスのグループに割り当てる柔軟性を提供します。
まず、ETSはポート帯域幅をfc-set(優先度グループとも呼ばれます)に割り当てます。各fc-setは、同様のCoS処理を必要とするトラフィックを伝送する1つ以上の転送クラスで構成されています。各fc-setが受信した帯域幅は、そのfc-set内の転送クラスに割り当てられます。各転送クラスは出力キューにマッピングされます。転送クラスのスケジューリングプロパティは、転送クラスがマップされているキューに割り当てられます。トラフィック制御プロファイルは、fc-setへのポート帯域幅の割り当てを制御します。キュースケジューラは、fc-set帯域幅のフォワーディングクラスへの割り当てを制御します。スケジューリングの詳細については、 Understanding CoS Output Queue Schedulers, Understanding CoS Traffic Control Profiles, and Understanding CoS Hierarchical Port Scheduling (ETS) を参照してください。
スケジューラは、転送クラスにマッピングされた出力キューの CoS プロパティを定義します。スケジューラを設定した後、スケジューラマップを使用して、スケジューラを1つ以上の転送クラスにマッピングします。スケジューラを転送クラスにマッピングすると、スケジューリングプロパティが転送クラスのトラフィックに適用されます。
スケジューラは、スケジューラにマッピングされた転送クラス(キュー)に以下の特性を定義します。
transmit-rate—最小帯域幅は、 CIR(コミット情報レート)とも呼ばれ、パーセントレートまたはビット/秒での絶対値として設定されます。また、送信レートは、キューが共有できる超過(余計な)優先度グループ帯域幅の量も決定します。追加の優先度グループの帯域幅は、各キューの送信レートに比例して、優先度グループ内のキュー間に割り当てられます。注:帯域幅の計算には、プリアンブルバイトとフレーム間ギャップ(IFG)バイト、データバイトを含めます。
注:優先度が最も高いキューの送信レートを設定することはできません。送信レートが設定されたキュー(転送クラス)は、優先度が最も高い優先度のキューを持つfc-setに含めることはできません。
shaping-rate—最大帯域幅は、 ピーク情報レート(PIR)とも呼ばれ、パーセントレートまたはbps単位の絶対値として設定されます。注:帯域幅の計算には、プリアンブルバイトとフレーム間ギャップ(IFG)バイト、データバイトを含めます。
priority—スケジューラに関連付けられたキューが受信できる2つの帯域幅優先度のうちの1つ:low—スケジューラの優先度は低いです。strict-high—スケジューラの優先度は最も高いです。優先度が最も高いキューとして設定できるのは 1 つのキューだけです。絶対に高い優先度は、他のキューが帯域幅を受信する前に、スケジュールされた帯域幅をキューに割り当てます。他のキューは、ストリクトハイキューが処理された後に残っている帯域幅を受け取ります。優先度が厳密なキューが他のキューを枯渇させないように、常にシェーピング レートを厳密に高優先度のキューに適用することをお勧めします。絶対優先度の高いキューが使用できる帯域幅を制限するためにシェーピング レートを適用しない場合、厳密な優先度の高いキューは利用可能なポート帯域幅をすべて使い果たし、ポート上の他のキューを枯渇させる可能性があります。
drop-profile-map—WRED パケットドロップ特性をスケジューラに適用するための、損失優先度とプロトコルへのドロッププロファイルマッピング。注:エグレスポートの混雑が原因でイングレスポートの輻輳が発生した場合、輻輳したエグレスポートのトラフィックにドロッププロファイルを適用して、トラフィックがイングレスインターフェイスではなくエグレスインターフェイスでドロップされるようにします。イングレス インターフェイスの輻輳は、イングレス ポートが輻輳しているエグレス ポートと輻輳していないエグレス ポートの両方にトラフィックを送信する場合、輻輳していないポートに影響を与える可能性があります。
buffer-size—ポート上の専用バッファ領域の割合、または明示的に設定されたキューが提供された後に残るポートの専用バッファ領域の比例シェアとして表示されるキューバッファのサイズ。explicit-congestion-notification—BEキューでECNを有効にします。ECNにより、TCP/IPベースのネットワーク上の2つのECN対応エンドポイント間でエンドツーエンドの輻輳通知が可能になります。ECNが正常に動作するためには、両方のエンドポイントとエンドポイント間のすべての中間デバイスでECNを有効にする必要があります。ECNはデフォルトで無効になっています。
TCP は、fc-set の CoS プロパティと、fc-set 内の転送クラス(キュー)のグループに割り当てられるポート リソースの量を定義します。TCPを設定した後、(関連するfc-setとともに)インターフェイスに適用して、転送クラスに属するトラフィックのスケジューリングを設定します。
TCPは、TCPとfc-setをインターフェイスに適用するときにTCPにマッピングされたfc-set(優先度グループ)について以下の特性を定義します。
guaranteed-rate—最小帯域幅。 コミット情報レート(CIR)とも呼ばれます。保証レートは、fc-setが共有できる超過(追加)ポート帯域幅の量も決定します。追加のポート帯域幅は、各fcセットの保証レートに比例して、ポート上のfcセット間に割り当てられます。注:優先度が最も高いキューを含むfc-setには、保証レートを設定することはできません。TCPが、優先度が厳密に高い優先度のキューを含むfc-set用である場合、保証レートを設定しないでください。
shaping-rate—最大帯域幅、 ピーク情報レート(PIR)とも呼ばれます。scheduler-map—転送クラスをスケジューラにマッピングすることで定義される、キューの帯域幅とスケジューリングの特性。キュー スケジューリング特性は、fc-set 帯域幅の量またはパーセンテージを表しるのであって、リンク帯域幅の量またはパーセンテージではありません。
ポートに複数のfc-setを含めることができるため、fc-setにリソースを割り当てるときは、ポート帯域幅の合計が各fc-set内のそのポートに関連するすべてのキューに対応する必要があることに留意してください。
以下の手順は、スケジューラのプロパティの設定、スケジューラの転送クラスへのマッピング、転送クラスのfc-setへのマッピング、TCPプロパティの設定、およびTCPとfc-setのインターフェイスへの適用(ETSポートのスケジューリング設定をインターフェイスに適用するため)の方法を示しています。
スケジューラとTCPの特性のすべてを明示的に設定する必要はありません。ECNなど、一部の特性はデフォルトで無効になっており、特定の条件下でのみ有効にする必要があります。設定済みの CoS プロパティとデフォルトの CoS プロパティを混在させることができます。
キュースケジューラに名前を付け、キューの最小保証帯域幅を定義します。
[edit class-of-service] user@switch# set schedulers scheduler-name transmit-rate (rate | percent percentage)
キューの最大帯域幅を定義します。
[edit class-of-service schedulers scheduler-name] user@switch# set shaping-rate (rate | percent percentage)
キューの優先度を定義します。
[edit class-of-service schedulers scheduler-name] user@switch# set priority level
ドロッププロファイルマップを使用してドロッププロファイルを定義します。
[edit class-of-service schedulers scheduler-name] user@switch# set drop-profile-map loss-priority (low | medium-high | high) protocol protocol drop-profile drop-profile-name
キューのポート専用バッファー領域のサイズを設定します。
[edit class-of-service schedulers scheduler-name] user@switch# set buffer-size percent percentage
必要に応じて、ECNを有効にします。
[edit class-of-service schedulers scheduler-name] user@switch# set explicit-congestion-notification
スケジューラマップを設定して、スケジューラをフォワーディングクラスにマッピングし、スケジューラのプロパティをそのフォワーディングクラスのトラフィックに適用します。
[edit class-of-service] user@switch# set scheduler-maps scheduler-map-name forwarding-class forwarding-class-name scheduler scheduler-name
これで、スケジューラで設定できる特性と、転送クラスへのスケジューラマッピングが完成します。次の手順では、TCPの設定方法を示します。
TCPに名前を付け、fc-setの最小保証帯域幅を定義します。
[edit class-of-service] user@switch# set traffic-control-profiles traffic-control-profile-name guaranteed-rate (rate | percent percentage)
fc-set の最大帯域幅を定義します。
[edit class-of-service traffic-control-profiles traffic-control-profile-name] user@switch# set shaping-rate (rate | percent percentage)
TCPにスケジューラマップを添付します。スケジューラマップは、スケジューラマップ内のスケジューラと転送クラス(キュー)をTCPに関連付けます。
[edit class-of-service traffic-control-profiles traffic-control-profile-name] user@switch# set scheduler-map scheduler-map-name
これで、TCPで設定できる特性は完了です。次のステップでは、fc-setsに転送クラスを割り当てる方法を示します。
fc-setに1つ以上の転送クラスを割り当てます。
[edit class-of-service] user@switch# set forwarding-class-sets forwarding-class-set-name class forwarding-class-name
これでfc-setへの転送クラスの割り当ては完了です。次の手順では、ETS階層ポートスケジューリングをインターフェイスに適用する方法を示します。
ETS階層ポートスケジューリングをインターフェイスに適用するには、fc-setとTCPをインターフェイスに関連付けます。fc-setは、指定されたインターフェイスを使用する転送クラスとキューを決定します。TCP は、fc-set に割り当てられるポートリソースの量を決定します。TCP内のスケジューラへの転送クラスのマッピングによって、fc-setのメンバーである転送クラスへのfc-setリソースの割り当てが決まります。
[edit class-of-service] user@switch# set interfaces interface-name forwarding-class-set fc-set-name output-traffic-control-profile tcp-name