この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
目次
Class Based Flow Control(CBFC)または Per Priority Pause(PPP)とも呼ばれるプライオリティ フロー制御(PFC;IEEE 802.1Qbb)は、輻輳が原因のフレーム損失を防ぐメカニズムです。 PFC は 802.3x フロー制御(ポーズ フレーム)またはリンク レベル フロー制御(LFC)と類似しています。 ただし、PFC はサービス クラス(CoS)ごとに動作します。
輻輳が原因でバッファしきい値を超過した場合、指定された期間リンク上のすべてのデータ送信を一時停止するために、ピアにポーズ フレームを送信します。 輻輳が軽減される(トラフィックが設定されたしきい値を下回る)と、再開フレームが生成され、リンク上でデータ送信が最下位されます。
一方、輻輳中は、どの CoS 値を一時停止する必要があるかを示すポーズ フレームを PFC が送信します。 PFC ポーズ フレームには、トラフィックが一時停止する必要のある時間の長さを示す各 CoS の 2 オクテットのタイマー値が含まれます。 タイマーの時間単位はポーズ量子で指定されます。 量子は、ポートの速度で 512 ビットを送信するために必要な時間です。 指定できる範囲は 0 ~ 65535 です。 ポーズ量子が 0 のポーズ フレームは、一時停止したトラフィックを再開する再開フレームを示します。
(注) |
他のクラスが通常の動作を許可される一方で、トラフィックの特定のサービス クラスのみがフロー制御を使用できます。 |
PFC はピアに対して、既知のマルチキャスト アドレスにポーズ フレームを送信して、特定の CoS 値を持つフレームの送信を停止するように求めます。 このポーズ フレームは、ピアによる受信時に転送されない 1 ホップ フレームです。 輻輳が軽減されると、PFC はピアにフレームの送信の再開を要求できます。
次の表に、この機能のライセンス要件を示します。
製品 |
ライセンス要件 |
---|---|
Cisco NX-OS |
PFC 機能にライセンスは必要ありません。 ライセンス パッケージに含まれていない機能は NX-OS イメージにバンドルされており、無料で提供されます。 NX-OS ライセンス方式の詳細については、『Cisco NX-OS Licensing Guide』を参照してください。 |
PFC には、次の前提条件があります。
PFC 設定時の注意事項と制約事項は次のとおりです。
PFC がポートまたはポート チャネルでイネーブルにされる場合でも、ポート フラップは発生しません。
PFC 設定は、送信(Tx)および受信(Rx)の両方向で PFC をイネーブルにします。
ポーズ フレームの設定時間量子はサポートされていません。
この設定は、特定のトラフィック クラス キューにマッピングされ、一時停止が選択されたストリームをサポートしません。 クラスにマッピングされたすべてのフローは、no-drop として扱われます。 これにより、キュー全体のスケジューリングが行われず、キューのすべてのストリームでトラフィックが一時停止します。 no-drop クラスのロスレス サービスを実現するには、キューでのトラフィックを no-drop クラスのトラフィックに限定することを推奨します。
no-drop クラスが 802.1p CoS x に基づいて分類され、内部プライオリティ値(QoS グループ)の y が割り当てられている場合は、内部プライオリティ値 x を使用して 802.1p CoS のみのトラフィックを分類し、他のフィールドのトラフィックは分類しないことを推奨します。 分類が CoS に基づいていない場合、割り当てられるパケット プライオリティは x で、これにより、内部プライオリティ x および y のパケットが同じプライオリティ x にマッピングします。
PFC 機能では、どの最大伝送単位(MTU)サイズでも、最大 3 つの no-drop クラスがサポートされます。 ただし、次の要因に基づく PFC 対応インターフェイス数の制限があります。
systemjumbomtu コマンドを使用して、システム内の MTU の上限を定義できます。 MTU 範囲は、1500 ~ 9216 バイトで、デフォルトは 9216 バイトです。
インターフェイス QoS ポリシーはシステム ポリシーよりも優先されます。 PFC の優先度の派生も同じ順序で行われます。
入力と出力の両方において、すべての PFC 対応インターフェイスで同じインターフェイス レベルの QoS ポリシーを適用していることを確認します。
注意 |
PFC の設定に関係なく、インターフェイス レベルまたはシステム レベルで完全優先レベルがあるキューイング ポリシーの適用または削除をする前にトラフィックを停止することを推奨します。 |
ネットワークを介してエンドツーエンドのロスレス サービスを実現するには、no-drop クラス トラフィック フロー(Tx/Rx)を介して各インターフェイスで PFC をイネーブルにすることを推奨します。
トラフィックがない場合は PFC 設定を変更することを推奨します。 このようにしないと、システムの Memory Management Unit(MMU)に既に含まれているパケットが、予期されるとおりに処理されない可能性があります。
no-drop クラスにデフォルトのバッファ サイズを使用するか、または 10G および 40G インターフェイスおよび no-drop クラス MTU サイズに適した異なる入力キューイング ポリシーを設定することを推奨します。 CLI を使用してバッファ サイズを指定する場合は、リンク速度と MTU サイズに関係なく、すべてのポートに同じバッファ サイズが割り当てられます。 10G および 40G インターフェイスへの同一ポーズ バッファ サイズの適用はサポートされません。
出力キューのドロップの原因になるため、no-drop クラスで WRED をイネーブルにしないでください。
PFC は、Cisco Nexus 9300 プラットフォームと N9K-X9564TX および N9K-X9564PX ラインカードではサポートされていません。
ダイナミック ロード バランシングは、PFC を使用する内部リンクではイネーブルにできません。 DLB をディセーブルにし、port-channel load-balance internal rtag7 コマンドを使用して内部リンクに対し RTAG7 ロード バランシングをイネーブルにする必要があります。
ダイナミック ロード バランシング(DLB)に基づくハッシュ方式は、ラインカードのすべての内部リンクでデフォルトでイネーブルになっています。 DLB がイネーブルの場合、内部リンクの輻輳が発生し、PFC が適用されると、no-drop トラフィックで正しくない順序のパケット配信が発生することがあります。 システム上のアプリケーションが正しくない順序の配信の影響を受ける場合、qos-group レベルで DLB をディセーブルにすることで、これに対処できます。 QoS ポリシー マップの set dlb-disable アクションと、no-drop クラスに対する set qos-group アクションを使用して、DLB をディセーブルにします。
次の例では、qos-group 1 が no-drop クラスであることを前提とします。 set dlb-disable アクションと set qos-group アクションを追加することで、この no-drop クラスに対して DLB がディセーブルになります。
switch(config)# policy-map p1 switch(config-pmap-qos)# class c1 switch(config-pmap-c-qos)# set qos-group 1 switch(config-pmap-c-qos)# set dlb-disable switch(config-pmap-c-qos)# end switch# show policy-map p1 Type qos policy-maps ==================== policy-map type qos p1 class c1 set qos-group 1 set dlb-disable
パラメータ |
デフォルト |
---|---|
PFC |
Auto |
アクティブなネットワーク QoS ポリシーで定義されている CoS の no-drop 動作をイネーブルにするには、ポート単位の PFC を設定できます。 PFC は、次の 3 種類のモードのいずれかに設定できます。
1. configure terminal
2. interface type slot/port
3. priority-flow-control mode {on}
4. show interface priority-flow-control
特定のトラフィック クラスの PFC をイネーブルにできます。
1. configure terminal
2. class-map type qos class-name
3. match cos cos-value
4. exit
5. policy-map type qos policy-name
6. class type qos class-name
7. set qos-group qos-group-value
8. exit
9. exit
10. class-map type network-qos match-any class-name
11. match qos-group qos-group-value
12. exit
13. policy-map type network-qos policy-name
14. class type network-qos class-name
15. pause buffer-size buffer-size pause-threshold xoff-size resume-threshold xon-size pfc-cos cos-value
16. exit
17. exit
18. system qos
19. service-policy type network-qos policy-name
PFC 設定を表示するには、次の作業を実行します。
コマンド |
目的 |
---|---|
show interface priority-flow-control [module number] |
すべてのインターフェイスまたは特定のモジュールの PFC のステータスを表示します。 |
次に、PFC の設定例を示します。
configure terminal interface ethernet 5/5 priority-flow-control mode on
次に、トラフィック クラスで PFC をイネーブルにする例を示します。
switch(config)# class-map type qos c1 switch(config-cmap-qos)# match cos 3 switch(config-cmap-qos)# exit switch(config)# policy-map type qos p1 switch(config-pmap-qos)# class type qos c1 switch(config-pmap-c-qos)# set qos-group 3 switch(config-pmap-c-qos)# exit switch(config-pmap-qos)# exit switch(config)# class-map type network-qos match-any c1 switch(config-cmap-nqos)# match qos-group 3 switch(config-cmap-nqos)# exit switch(config)# policy-map type network-qos p1 switch(config-pmap-nqos)# class type network-qos c-nq1 switch(config-pmap-nqos-c)# pause buffer-size 20000 pause-threshold 100 resume-threshold 1000 pfc-cos 3 switch(config-pmap-nqos-c)# exit switch(config-pmap-nqos)# exit switch(config)# system qos switch(config-sys-qos)# service-policy type network-qos p1
目次
Class Based Flow Control(CBFC)または Per Priority Pause(PPP)とも呼ばれるプライオリティ フロー制御(PFC;IEEE 802.1Qbb)は、輻輳が原因のフレーム損失を防ぐメカニズムです。 PFC は 802.3x フロー制御(ポーズ フレーム)またはリンク レベル フロー制御(LFC)と類似しています。 ただし、PFC はサービス クラス(CoS)ごとに動作します。
輻輳が原因でバッファしきい値を超過した場合、指定された期間リンク上のすべてのデータ送信を一時停止するために、ピアにポーズ フレームを送信します。 輻輳が軽減される(トラフィックが設定されたしきい値を下回る)と、再開フレームが生成され、リンク上でデータ送信が最下位されます。
一方、輻輳中は、どの CoS 値を一時停止する必要があるかを示すポーズ フレームを PFC が送信します。 PFC ポーズ フレームには、トラフィックが一時停止する必要のある時間の長さを示す各 CoS の 2 オクテットのタイマー値が含まれます。 タイマーの時間単位はポーズ量子で指定されます。 量子は、ポートの速度で 512 ビットを送信するために必要な時間です。 指定できる範囲は 0 ~ 65535 です。 ポーズ量子が 0 のポーズ フレームは、一時停止したトラフィックを再開する再開フレームを示します。
(注) |
他のクラスが通常の動作を許可される一方で、トラフィックの特定のサービス クラスのみがフロー制御を使用できます。 |
PFC はピアに対して、既知のマルチキャスト アドレスにポーズ フレームを送信して、特定の CoS 値を持つフレームの送信を停止するように求めます。 このポーズ フレームは、ピアによる受信時に転送されない 1 ホップ フレームです。 輻輳が軽減されると、PFC はピアにフレームの送信の再開を要求できます。
PFC 設定時の注意事項と制約事項は次のとおりです。
PFC がポートまたはポート チャネルでイネーブルにされる場合でも、ポート フラップは発生しません。
PFC 設定は、送信(Tx)および受信(Rx)の両方向で PFC をイネーブルにします。
ポーズ フレームの設定時間量子はサポートされていません。
この設定は、特定のトラフィック クラス キューにマッピングされ、一時停止が選択されたストリームをサポートしません。 クラスにマッピングされたすべてのフローは、no-drop として扱われます。 これにより、キュー全体のスケジューリングが行われず、キューのすべてのストリームでトラフィックが一時停止します。 no-drop クラスのロスレス サービスを実現するには、キューでのトラフィックを no-drop クラスのトラフィックに限定することを推奨します。
no-drop クラスが 802.1p CoS x に基づいて分類され、内部プライオリティ値(QoS グループ)の y が割り当てられている場合は、内部プライオリティ値 x を使用して 802.1p CoS のみのトラフィックを分類し、他のフィールドのトラフィックは分類しないことを推奨します。 分類が CoS に基づいていない場合、割り当てられるパケット プライオリティは x で、これにより、内部プライオリティ x および y のパケットが同じプライオリティ x にマッピングします。
PFC 機能では、どの最大伝送単位(MTU)サイズでも、最大 3 つの no-drop クラスがサポートされます。 ただし、次の要因に基づく PFC 対応インターフェイス数の制限があります。
systemjumbomtu コマンドを使用して、システム内の MTU の上限を定義できます。 MTU 範囲は、1500 ~ 9216 バイトで、デフォルトは 9216 バイトです。
インターフェイス QoS ポリシーはシステム ポリシーよりも優先されます。 PFC の優先度の派生も同じ順序で行われます。
入力と出力の両方において、すべての PFC 対応インターフェイスで同じインターフェイス レベルの QoS ポリシーを適用していることを確認します。
注意 |
PFC の設定に関係なく、インターフェイス レベルまたはシステム レベルで完全優先レベルがあるキューイング ポリシーの適用または削除をする前にトラフィックを停止することを推奨します。 |
ネットワークを介してエンドツーエンドのロスレス サービスを実現するには、no-drop クラス トラフィック フロー(Tx/Rx)を介して各インターフェイスで PFC をイネーブルにすることを推奨します。
トラフィックがない場合は PFC 設定を変更することを推奨します。 このようにしないと、システムの Memory Management Unit(MMU)に既に含まれているパケットが、予期されるとおりに処理されない可能性があります。
no-drop クラスにデフォルトのバッファ サイズを使用するか、または 10G および 40G インターフェイスおよび no-drop クラス MTU サイズに適した異なる入力キューイング ポリシーを設定することを推奨します。 CLI を使用してバッファ サイズを指定する場合は、リンク速度と MTU サイズに関係なく、すべてのポートに同じバッファ サイズが割り当てられます。 10G および 40G インターフェイスへの同一ポーズ バッファ サイズの適用はサポートされません。
出力キューのドロップの原因になるため、no-drop クラスで WRED をイネーブルにしないでください。
PFC は、Cisco Nexus 9300 プラットフォームと N9K-X9564TX および N9K-X9564PX ラインカードではサポートされていません。
ダイナミック ロード バランシングは、PFC を使用する内部リンクではイネーブルにできません。 DLB をディセーブルにし、port-channel load-balance internal rtag7 コマンドを使用して内部リンクに対し RTAG7 ロード バランシングをイネーブルにする必要があります。
ダイナミック ロード バランシング(DLB)に基づくハッシュ方式は、ラインカードのすべての内部リンクでデフォルトでイネーブルになっています。 DLB がイネーブルの場合、内部リンクの輻輳が発生し、PFC が適用されると、no-drop トラフィックで正しくない順序のパケット配信が発生することがあります。 システム上のアプリケーションが正しくない順序の配信の影響を受ける場合、qos-group レベルで DLB をディセーブルにすることで、これに対処できます。 QoS ポリシー マップの set dlb-disable アクションと、no-drop クラスに対する set qos-group アクションを使用して、DLB をディセーブルにします。
次の例では、qos-group 1 が no-drop クラスであることを前提とします。 set dlb-disable アクションと set qos-group アクションを追加することで、この no-drop クラスに対して DLB がディセーブルになります。
switch(config)# policy-map p1 switch(config-pmap-qos)# class c1 switch(config-pmap-c-qos)# set qos-group 1 switch(config-pmap-c-qos)# set dlb-disable switch(config-pmap-c-qos)# end switch# show policy-map p1 Type qos policy-maps ==================== policy-map type qos p1 class c1 set qos-group 1 set dlb-disable
アクティブなネットワーク QoS ポリシーで定義されている CoS の no-drop 動作をイネーブルにするには、ポート単位の PFC を設定できます。 PFC は、次の 3 種類のモードのいずれかに設定できます。
1. configure terminal
2. interface type slot/port
3. priority-flow-control mode {on}
4. show interface priority-flow-control
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure terminal 例: switch# configure terminal switch(config)# |
グローバル コンフィギュレーション モードを開始します |
ステップ 2 | interface type slot/port 例: switch(config)# interface ethernet 2/5 switch(config-if)# |
指定したインターフェイス上でインターフェイス モードを開始します。 |
ステップ 3 | priority-flow-control mode {on} 例: switch(config-if)# priority-flow-control mode on switch(config-if)# |
PFC を on モードに設定します。 |
ステップ 4 | show interface priority-flow-control 例: switch# show interface priority-flow-control |
(任意)すべてのインターフェイスの PFC のステータスを表示します。 |
1. configure terminal
2. class-map type qos class-name
3. match cos cos-value
4. exit
5. policy-map type qos policy-name
6. class type qos class-name
7. set qos-group qos-group-value
8. exit
9. exit
10. class-map type network-qos match-any class-name
11. match qos-group qos-group-value
12. exit
13. policy-map type network-qos policy-name
14. class type network-qos class-name
15. pause buffer-size buffer-size pause-threshold xoff-size resume-threshold xon-size pfc-cos cos-value
16. exit
17. exit
18. system qos
19. service-policy type network-qos policy-name
コマンドまたはアクション | 目的 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
ステップ 1 | configure terminal 例: switch# configure terminal switch(config)# |
グローバル コンフィギュレーション モードを開始します |
||||||||
ステップ 2 | class-map type qos class-name 例: switch(config)# class-map type qos c1 switch(config-cmap-qos)# |
トラフィックのクラスを表す名前付きオブジェクトを作成します。 クラス マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。クラス マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。 |
||||||||
ステップ 3 | match cos cos-value 例: switch(config-cmap-qos)# match cos 2 |
パケットをこのクラスに分類する場合に照合する CoS 値を指定します。 CoS 値は、0 ~ 7 の範囲で設定できます。 |
||||||||
ステップ 4 | exit 例: switch(config-cmap-qos)# exit switch(config)# |
クラス マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。 |
||||||||
ステップ 5 | policy-map type qos policy-name 例: switch(config)# policy-map type qos p1 switch(config-pmap-qos)# |
トラフィック クラスのセットに適用されるポリシーのセットを表す名前付きオブジェクトを作成します。 ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。 |
||||||||
ステップ 6 | class type qos class-name 例: switch(config-pmap-qos)# class type qos c1 switch(config-pmap-c-qos)# |
クラス マップをポリシー マップに関連付け、指定したシステム クラスのコンフィギュレーション モードを開始します。
|
||||||||
ステップ 7 | set qos-group qos-group-value 例: switch(config-pmap-c-qos)# set qos-group 2 |
トラフィックをこのクラス マップに分類する場合に照合する 1 つまたは複数の qos-group 値を設定します。 デフォルト値はありません。 |
||||||||
ステップ 8 | exit 例: switch(config-pmap-c-qos)# exit switch(config-pmap-qos)# |
システム クラス コンフィギュレーション モードを終了し、ポリシー マップ モードを開始します。 |
||||||||
ステップ 9 | exit 例: switch(config-pmap-qos)# exit switch(config)# |
ポリシー マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。 |
||||||||
ステップ 10 | class-map type network-qos match-any class-name 例: switch(config)# class-map type network-qos match-any c1 switch(config-cmap-nqos)# |
トラフィックのクラスを表す名前付きオブジェクトを作成します。 クラス マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。クラス マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。 |
||||||||
ステップ 11 | match qos-group qos-group-value 例: switch(config-cmap-nqos)# match qos-group 2 |
QoS グループ値のリストに基づいてパケットを照合することによって、トラフィック クラスを設定します。 値の範囲は 0 ~ 5 です。 QoS グループ 0 は class-default に相当します。 |
||||||||
ステップ 12 | exit 例: switch(config-cmap-nqos)# exit switch(config)# |
クラス マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。 |
||||||||
ステップ 13 | policy-map type network-qos policy-name 例: switch(config)# policy-map type network-qos p1 switch(config-pmap-nqos)# |
トラフィック クラスのセットに適用されるポリシーのセットを表す名前付きオブジェクトを作成します。 ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。 |
||||||||
ステップ 14 | class type network-qos class-name 例: switch(config-pmap-nqos)# class type network-qos c-nq1 switch(config-pmap-nqos-c)# |
クラス マップをポリシー マップに関連付け、指定したシステム クラスのコンフィギュレーション モードを開始します。
|
||||||||
ステップ 15 | pause buffer-size buffer-size pause-threshold xoff-size resume-threshold xon-size pfc-cos cos-value 例: switch(config-pmap-nqos-c)# pause buffer-size 20000 pause-threshold 100 resume-threshold 1000 pfc-cos 1 |
ポーズと再開のためのバッファのしきい値設定を指定します。
|
||||||||
ステップ 16 | exit 例: switch(config-pmap-nqos-c)# exit switch(config-pmap-nqos)# |
コンフィギュレーション モードを終了し、ポリシー マップ モードを開始します。 |
||||||||
ステップ 17 | exit 例: switch(config-pmap-nqos)# exit switch(config)# |
ポリシー マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。 |
||||||||
ステップ 18 | system qos 例: switch(config)# system qos switch(config-sys-qos)# |
システム クラス コンフィギュレーション モードを開始します。 |
||||||||
ステップ 19 | service-policy type network-qos policy-name 例: switch(config-sys-qos)# service-policy type network-qos p1 |
システム レベルまたは特定のインターフェイスに network-qos タイプのポリシー マップを適用します。 |
次に、PFC の設定例を示します。
configure terminal interface ethernet 5/5 priority-flow-control mode on
次に、トラフィック クラスで PFC をイネーブルにする例を示します。
switch(config)# class-map type qos c1 switch(config-cmap-qos)# match cos 3 switch(config-cmap-qos)# exit switch(config)# policy-map type qos p1 switch(config-pmap-qos)# class type qos c1 switch(config-pmap-c-qos)# set qos-group 3 switch(config-pmap-c-qos)# exit switch(config-pmap-qos)# exit switch(config)# class-map type network-qos match-any c1 switch(config-cmap-nqos)# match qos-group 3 switch(config-cmap-nqos)# exit switch(config)# policy-map type network-qos p1 switch(config-pmap-nqos)# class type network-qos c-nq1 switch(config-pmap-nqos-c)# pause buffer-size 20000 pause-threshold 100 resume-threshold 1000 pfc-cos 3 switch(config-pmap-nqos-c)# exit switch(config-pmap-nqos)# exit switch(config)# system qos switch(config-sys-qos)# service-policy type network-qos p1