CoSフロー制御(イーサネットの一時停止とPFC)を理解する
フロー制御は、トラフィックフローを調整して輻輳時のフレームドロップを回避することで、ロスレス伝送をサポートします。フロー制御は、全二重イーサネット物理リンク上の接続された2つのピアノード間のネットワークトラフィックの送信を停止および再開します。一時停止と再起動によってフローを制御することで、ノード上のバッファがオーバーフローしてフレームがドロップするのを防ぎます。フロー制御は、インターフェイスごとに設定します。
Junosは、ピアツーピアフロー制御の2つの方法をサポートしています。
-
IEEE 802.3Xイーサネットの一時停止
-
IEEE 802.1Qbb プライオリティベースのフロー制御(PFC)
イーサネットの一時停止とPFCに関する一般情報と、それらを使用する場合
イーサネットPAUSEとPFCは、リンクレベルのフロー制御メカニズムです。
ベストエフォート型トラフィックのエンドツーエンドの輻輳制御については、 CoS Explicit Congestion Notificationを理解するを参照してください。
イーサネット一時停止は、物理イーサネットリンク上のすべてのトラフィックの送信を一時停止します。
PFCは、物理的なイーサネットリンクから一時停止機能を切り離し、1つのリンク上のトラフィックを最大8つの優先度に分割することができます。8つの優先度は、転送クラスと出力キューにマッピングされるトラフィックの8つの「レーン」と考えることができます。各優先度は、VLANヘッダーの3ビットIEEE 802.1p CoSコードポイント値にマッピングされます。リンク上の1つ以上の優先度(IEEE 802.1pコードポイント)でPFCを有効にできます。PFC 対応トラフィックがリンク上で一時停止されると、PFC 対応ではないトラフィックは引き続き流れます(輻輳が十分に深刻な場合は破棄されます)。
リンク上 のすべての トラフィックでパケット損失を防ぎたい場合、イーサネットPAUSEを使用します。PFCを使用して、FCoEトラフィックなど、ロスロスレス処理を必要とする特定のタイプのトラフィックでのみパケットロスを防止します。
リンク上のトラフィック量または優先度が割り当てられているトラフィック量によっては、トラフィックを一時停止するとイングレスポートの混雑が発生し、ネットワーク全体に混雑が広がる可能性があります。
イーサネットPAUSEとPFCは、インターフェイス上の相互に排他的な設定です。リンクでイーサネットPAUSEとPFCの両方を設定しようとすると、コミットエラーが発生します。
デフォルトでは、すべての形式のフロー制御が無効になっています。トラフィックを一時停止するには、インターフェイスでフロー制御を明示的に有効にする必要があります。
イーサネットの一時停止
イーサネット一時停止は、全二重イーサネットリンク上のすべてのトラフィックにリンクレベルのフロー制御を提供することで機能する輻輳緩和機能です。イーサネットPAUSEは、リンク上の両方向で動作します。一方向では、インターフェイスがイーサネットPAUSEメッセージを生成して送信し、接続されたピアがそれ以上のトラフィックを送信するのを止めます。もう一方、インターフェイスは、接続されたピアから受信したイーサネットPAUSEメッセージに応答して、トラフィックの送信を停止します。
イーサネットの一時停止は、集合型イーサネットインターフェイスでも動作します。例えば、接続されたピアインターフェイスがノードAおよびノードBと呼ばれる場合:
-
インターフェイスノードAの受信バッファが一定のレベルに達すると、インターフェイスはイーサネットPAUSEメッセージを生成し、接続されたピア(インターフェイスノードB)に送信し、フレームの送信を停止するようにピアに伝えます。ノードBバッファは、イーサネットPAUSEフレームで指定された時間が経過するまでフレームを保存します。その後、ノードBはノードAへのフレームの送信を再開します。
-
インターフェイスノードAがインターフェイスノードBからイーサネットPAUSEメッセージを受信すると、インターフェイスノードAは、イーサネットPAUSEフレームで指定された時間が経過するまでフレームの送信を停止します。その後、ノードAは送信を再開します。(ノードAの送信バッファは、ノードAがノードBへのフレームの送信を再開するまで、フレームを保存します。)
このシナリオでは、ノードBが時間値0のイーサネットPAUSEフレームをノードAに送信した場合、時間値0はノードAに送信を再開できることを示します。これは、ノードBのバッファが特定のしきい値を下回るまで空になり、バッファが再びトラフィックを受け入れることができる場合に発生します。
対称的なフロー制御とは、インターフェイスが両方向で同じイーサネットPAUSE設定を持つことを意味します。イーサネットPAUSE生成とイーサネットPAUSE応答機能は、両方とも有効または無効に設定されています。[edit interfaces interface-name ether-options]階層レベルでflow-controlステートメントを含めることで、対称フロー制御を設定します。
非対称フロー制御により、インターフェイス上で各方向に独立してイーサネットPAUSE機能を設定できます。イーサネットPAUSEメッセージを生成する設定とイーサネットPAUSEメッセージに応答するための設定は、同じである必要はありません。イーサネットの一時停止は、両方向で有効にするか、両方向で無効にするか、一方方向で有効にしてもう一方方向に無効にすることができます。非対称フロー制御を設定するには、[edit interfaces interface-name ether-options]階層レベルでconfigured-flow-controlステートメントを含めます。
特定のインターフェイスでは、対称フロー制御と非対称フロー制御は相互に排他的です。非対称フロー制御は、対称フロー制御をオーバーライドして無効にします。対称フロー制御と非対称フロー制御の両方がサポートされています。
PFCがインターフェイスに設定されている場合、インターフェイスでイーサネットPAUSE設定をコミットすることはできません。1つ以上のキューでPFCが有効になっているインターフェイスでイーサネットPAUSE設定をコミットしようとすると、コミットエラーが発生します。PAUSE設定をコミットするには、まずPFC設定を削除する必要があります。
対称的なフロー制御
対称フロー制御は、受信バッファと送信バッファの両方を同じ状態に設定します。インターフェイスは、イーサネットPAUSEメッセージを送信して応答できます(フロー制御が有効)、またはインターフェイスがイーサネットPAUSEメッセージを送信または応答できない(フロー制御が無効になっています)。
インターフェイスで対称フロー制御を有効にすると、イーサネットの一時停止の動作は接続ピアの設定によって異なります。対称フロー制御を有効にすると、インターフェイスは、接続されたピアが実行できる任意のイーサネットPAUSE機能を実行できます。対称フロー制御が無効になっている場合、インターフェイスはイーサネットPAUSEメッセージを送信または応答しません。
非対称フロー制御
非対称フロー制御により、インターフェイス受信バッファがイーサネットPAUSEメッセージを生成して送信し、接続ピアのトラフィック送信を停止するかどうか、またインターフェイス送信バッファが接続ピアから受信したイーサネットPAUSEメッセージに応答してトラフィックの送信を停止するかどうかを個別に指定できます。受信バッファ設定は、インターフェイスがイーサネットPAUSEメッセージを送信するかどうかを決定し、送信バッファ設定は、インターフェイスがイーサネットPAUSEメッセージを受信して応答するかどうかを決定します。
-
受信バッファオン—イーサネットPAUSE送信を有効にします(イーサネットPAUSEフレームを生成および送信します)
-
送信バッファオン—イーサネットPAUSE受信を有効にします(受信したイーサネットPAUSEフレームに応答します)
非対称イーサネットPAUSEを設定するには、受信バッファと送信バッファ(on または off)の両方のフロー制御を明示的に設定する必要があります。 表1は 、インターフェイスで受信(Rx)バッファと送信(Tx)バッファを設定した場合の設定されたフロー制御状態を示しています。
| 受信(Rx)バッファ |
送信(Tx)バッファ |
設定されたフロー制御状態 |
|---|---|---|
|
|
|
インターフェイスは、イーサネットPAUSEメッセージを生成して送信します。インターフェイスがイーサネットPAUSEメッセージに応答しない(ピアがインターフェイスにトラフィック送信の停止を要求しても、インターフェイスは送信を続行する)。 |
|
|
|
インターフェイスは、接続されたピアから受信したイーサネットPAUSEメッセージに応答しますが、イーサネットPAUSEメッセージを生成または送信しません。(インターフェイスは、接続されたピアにトラフィックの送信を停止するよう要求しません。) |
|
|
|
対称イーサネットPAUSEと同じ機能。インターフェイスは、イーサネットPAUSEメッセージを生成して送信し、受信したイーサネットPAUSEメッセージに応答します。 |
|
|
|
イーサネットPAUSEフロー制御は無効です。 |
設定されたフロー制御は、インターフェイス上に設定されたイーサネットのPAUSE状態です。
1ギガビットイーサネットインターフェイスでは、接続ピアとのイーサネットPAUSEの自動ネゴシエーションがサポートされています。(10ギガビットイーサネットインターフェイスでの自動ネゴシエーションはサポートされていません)。自動ネゴシエーションにより、インターフェイスは接続されたピアと状態アドバタイズを交換できるため、2つのデバイスがイーサネットPAUSE設定に同意できます。各インターフェイスは、 表 2 に示すように、イーサネット PAUSE と ASM_DIR ビットの組み合わせを使用して、フロー制御状態を接続ピアにアドバタイズします。
| Rxバッファ状態 |
Txバッファ状態 |
一時停止ビット |
ASM_DIRビット |
説明 |
|---|---|---|---|---|
|
|
|
|
|
インターフェイスは、イーサネットPAUSE機能をアドバタイズしません。これは、インターフェイスのフロー制御を無効にすることと同じです。 |
|
|
|
|
|
インターフェイスは、対称フロー制御(イーサネットPAUSEメッセージの送信とイーサネットPAUSEメッセージの受信および応答機能の両方)をアドバタイズします。 |
|
|
|
|
|
インターフェイスは、非対称フロー制御(イーサネットPAUSEメッセージの送信をアドバタイズしますが、イーサネットPAUSEメッセージを受信して応答する機能は送信しません)。 |
|
|
|
|
|
このインターフェイスは、対称フロー制御と非対称フロー制御の両方をアドバタイズします。インターフェイスはイーサネットPAUSEリクエストを生成してピアに送信しませんが、ピアがイーサネットPAUSEリクエストを受信しない場合、ピアは影響を受けないため、インターフェイスはピア上で対称および非対称の両方のイーサネットPAUSE設定をサポートします。(インターフェイスがピアのイーサネットPAUSE要求に応答する場合、それはピア上の対称または非対称フロー制御をサポートするのに十分です。) |
各スイッチ インターフェイス上のフロー制御設定は、接続されたピアのフロー制御設定と相互作用します。各ピアは、その状態をもう一方のピアにアドバタイズします。 表 3 に示すように、ピアのフロー制御設定の相互作用によって、ピア間のフロー制御動作(解決)が決まります。最初の4列は、ローカルデバイスと接続ピア( リンクパートナーとも呼ばれる)でのイーサネットPAUSE設定を示しています。最後の2列は、各インターフェイスのローカルおよびピア設定から得られるイーサネットPAUSE解決を示しています。これは、各インターフェイスのイーサネットPAUSE設定が他のインターフェイスのイーサネットPAUSE動作にどのように影響するかを示しています。
テーブルの解決列で、イーサネットPAUSE送信を無効にすると、インターフェイス受信バッファがイーサネットPAUSEメッセージを生成してピアに送信しないことを意味します。イーサネットPAUSE受信を無効にすると、インターフェイス送信バッファがピアから受信したイーサネットPAUSEメッセージに応答しないことを意味します。
| ローカル インターフェイス |
ピアインターフェイス |
ローカル解決 |
ピア解決 |
||
|---|---|---|---|---|---|
| 一時停止ビット |
ASM_DIRビット |
一時停止ビット |
ASM_DIRビット |
||
| 0 |
0 |
気にしない |
気にしない |
イーサネットの送受信の一時停止を無効にする |
イーサネットの送受信の一時停止を無効にする |
| 0 |
1 |
0 |
気にしない |
イーサネットの送受信の一時停止を無効にする |
イーサネットの送受信の一時停止を無効にする |
| 0 |
1 |
1 |
0 |
イーサネットの送受信の一時停止を無効にする |
イーサネットの送受信の一時停止を無効にする |
| 0 |
1 |
1 |
1 |
イーサネットPAUSE送信を有効にし、イーサネットPAUSE受信を無効にします |
イーサネットPAUSE送信を無効にし、イーサネットPAUSE受信を有効にします |
| 1 |
0 |
0 |
気にしない |
イーサネットの送受信の一時停止を無効にする |
イーサネットの送受信の一時停止を無効にする |
| 1 |
0 |
1 |
気にしない |
イーサネットの送受信一時停止を有効にする |
イーサネットの送受信一時停止を有効にする |
| 1 |
1 |
0 |
0 |
イーサネットの送受信の一時停止を無効にする |
イーサネットの送受信の一時停止を無効にする |
| 1 |
1 |
0 |
1 |
イーサネットPAUSE受信を有効にし、送信イーサネットPAUSEを無効にする |
イーサネットPAUSE送信を有効にし、イーサネットPAUSE受信を無効にします |
| 1 |
1 |
気にしない |
気にしない |
イーサネットの送受信一時停止を有効にする |
イーサネットの送受信一時停止を有効にする |
便宜上、 表3 は、IEEE 802.X仕様のセクション2の表28B-3を再現したものです。
PFC
PFCは、全ロスレストランスポートおよび混雑緩和機能であり、全二重イーサネットリンク上の各IEEE 802.1pコードポイント(優先度)に対してきめ細かなリンクレベルのフロー制御を提供することで機能します。スイッチインターフェイスの受信バッファがしきい値までいっぱいになると、スイッチは送信側(接続されたピア)に一時停止フレームを送信し、送信側によるそれ以上のフレームの送信を一時的に停止します。バッファしきい値は、送信側がフレームの送信を停止し、バッファがオーバーフローする前に受信側がすでに配線上にあるフレームを受け入れることができるように、十分に低くなければなりません。スイッチは、フレームの損失を防ぐために、キューバッファのしきい値を自動的に設定します。
輻輳によりリンク上の優先度の1つが強制的に一時停止されると、リンク上の他のすべての優先度がフレームの送信を続行します。一時停止した優先度のフレームのみ送信されません。受信バッファが別のしきい値を下回ると、スイッチはフローを再開するメッセージを送信します。
PFCは、混雑通知プロファイル(CNP)を使用して設定します。CNPは2つの部分から成ります。
-
入力—PFCを有効にするコードポイントを指定し、オプションで最大受信ユニット(MRU)とインターフェイスと接続されたピアインターフェイス間のケーブル長を指定します。
-
出力—接続されたピアからの一時停止メッセージに応答する出力キューを指定します。
1つ以上のインターフェイスにCNPを設定することで、PFC設定を適用します。特定のCNPを使用する各インターフェイスは、そのCNPで指定された優先度(コードポイント)によって識別されるトラフィックを一時停止することができます。1つのインターフェイスに1つのCNPを設定し、異なるCNPを異なるインターフェイスに設定できます。インターフェイス上でCNPを設定すると、キューバッファが一時停止しきい値に達するたびに、CNPがPFCに対して有効にする優先度にマッピングされたイングレストラフィックが一時停止されます。(一時停止のしきい値はユーザーが設定できません。)
データパス全体に沿って優先順位の高いエンドツーエンドにPFCを設定し、ネットワーク上にトラフィックのロスレスレーンを作成します。同じリンク上の他のキューのトラフィックを一時停止せずに、任意のキュー内のトラフィックを選択的に一時停止することができます。FCoE、LANバックアップ、管理などのトラフィック用にロスレスレーンを作成し、同じリンク上のIPトラフィックには標準のフレームドロップ混雑管理を使用できます。
フロー制御の潜在的な結果は次のとおりです。
-
イングレスポートの輻輳(設定するロスレスフローが多すぎると、イングレスポートの輻輳が発生することがあります)
-
アップストリームデバイスが同じ優先度を一時停止し、ネットワークを介して輻輳を波及させる一時停止された優先度
定義上、PFCは対称的な一時停止のみをサポートします(対称および非対称の一時停止をサポートするイーサネットPAUSEとは対照的です)。対称的な一時停止により、デバイスは次のことが可能になります。
-
送信フレームを一時停止して、受信トラフィックを一時停止します。(輻輳通知プロファイルの入力スタンザを使用して設定します。)
-
受信、フレームを一時停止し、バッファがいっぱいになりすぎてそれ以上のフレームを受け入れることができないデバイスへのトラフィックの送信を停止します。(輻輳通知プロファイルの出力スタンザを使用して設定します。)
接続されたピアからPFCフレームを受信すると、PFCポーズフレームが識別するIEEE 802.1p優先度に基づいて、エグレスキュー上のトラフィックが一時停止されます。優先度は 0 から 7 です。デフォルトでは、優先度は表 4に示すように、それぞれキュー番号0から7、および特定の転送クラスにマッピングされます。
| IEEE 802.1p 優先度(コード ポイント) |
キュー |
フォワーディングクラス |
|---|---|---|
| 0 (000) |
0 |
ベストエフォート型 |
| 1 (001) |
1 |
ベストエフォート型 |
| 2 (010) |
2 |
ベストエフォート型 |
| 3 (011) |
3 |
FCoE |
| 4 (100) |
4 |
損失なし |
| 5 (101) |
5 |
ベストエフォート型 |
| 6 (110) |
6 |
ネットワーク制御 |
| 7 (111) |
7 |
ネットワーク制御 |
例えば、優先度3を一時停止した受信PFCポーズフレームは、出力キュー3を一時停止します。デフォルト設定を使用したくない場合は、キューや転送クラスへの優先度のカスタマイズされたマッピングを設定できます。
慣例により、統合型サーバーアクセスによる導入では、通常、FCoEトラフィックにIEEE 802.1p優先度3が使用されます。デフォルト設定では、 fcoe 転送クラスがキュー3にマッピングされたロスレス転送クラスとして設定されます。デフォルトの分類子は、受信した優先度3のトラフィックを fcoe 転送クラスにマッピングします。 ただし、FCoEトラフィックに必要なエンドツーエンドのロスレス動作を設定するには、FCoEデータパス全体にPFCを適用する必要があります。
ネットワークがFCoEトラフィックに優先度3を使用している場合は、デフォルト設定を使用することをお勧めします。ネットワークがFCoEトラフィックに3以外の優先度を使用している場合、ロスレスFCoEゲートウェイでの CoS IEEE 802.1p優先度について および FCoE-FCゲートウェイでのCoS IEEE 802.1p優先度の再マッピングについてで説明されているように、任意のFCoE FCoEトランスポートを設定できます。
優先的にPFCを有効にするには:
CNP の入力スタンザで一時停止する IEEE 802.1p コード・ポイントを指定します。
デフォルトのロスレス転送クラスを使用していない場合は、一時停止する IEEE 802.1p コード ポイントと、CNP の出力スタンザで対応する出力キューを指定します。
トラフィックを一時停止したいイングレスインターフェイスにCNPを適用します。
デフォルトのロスレス転送クラスを使用していない場合は、トラフィックを一時停止したいイングレスインターフェイスにCNPを適用します。
ポートのPFC設定を変更すると、ポート全体(PFCの変更の影響を受ける優先度だけでなく)が一時的にブロックされ、ポートが変更を実装できるようにした後、ポートのブロックが解除されます。ポートをブロックすると、イングレストラフィックとエグレストラフィックが停止し、ポートのブロックが解除されるまでポート上のすべてのキューでパケット損失が発生します。
PFC設定の変更とは、CNPの入力部分の変更(優先度でのPFCの有効化または無効化、またはMRUまたはケーブル長値の変更)や、キュー上の出力フロー制御を有効または無効にするCNPの出力部分の変更など、CNPへの変更を意味します。PFC設定の変更は、変更されたCNPを使用するポートにのみ影響します。
以下のアクションにより、PFC設定が変更されます。
-
1つ以上のインターフェイスで使用中のCNPのPFC設定(入力または出力)を削除または無効にする。次に例を示します。
優先度 3、5、6 で PFC を有効にする入力スタンザを持つ既存の CNP は、インターフェイス xe-0/0/20 および xe-0/0/21 に設定されます。
入力CNPの優先度6のPFC設定を無効にしてから、設定をコミットします。
PFC設定の変更により、PFC変更が実施されるまでインターフェイスxe-0/0/20およびxe-0/0/21上のすべてのトラフィックが停止します。PFC 変更が実装されると、トラフィックが再開されます。
-
インターフェイス上のCNPの設定。(これにより、1つ以上の優先度でPFCを有効にすることでPFC状態が変更されます。)
-
インターフェイスからCNPを削除する。(これにより、1つ以上の優先度でPFCを無効にすることでPFC状態が変更されます。)
CNPをインターフェイスに関連付けると、ロスレストラフィックの出力キューバッファが一時停止しきい値に達すると、インターフェイスはPFCを使用して一時停止要求を送信します。
ユニキャストトラフィックとマルチデスティネーショントラフィックに異なる分類子を使用するスイッチでは、ユニキャストキュー(キュー0〜7)とマルチデスティネーションキュー(キュー8、9、10、または11)を同じIEEE 802.1pコードポイント(優先度)にマッピングして、ユニキャストトラフィックとマルチキャストトラフィックの両方がその優先度を使用するようにすることができます。ただし、マルチデスティネーショントラフィックをロスレス出力キューにマッピングしないでください。1つの優先度を複数の出力キューにマッピングできます。
1つのインターフェイスに最大1つのCNPをアタッチできますが、入力スタンザのみを明示的に設定し、デフォルトの出力スタンザを使用するCNPは無制限に作成できます。
CNP の出力スタンザは、インターフェイスが接続されたピアから受信した一時停止メッセージに応答するために使用するプロファイルにマッピングされます。スタンドアロンスイッチでは、明示的に設定された出力スタンザを持つ2つのCNPを作成できます。
ロスレストランスポートサポートの概要
ロスレス トランスポートの場合、ロスレス転送クラスにマップされた IEEE 802.1p 優先度(コード ポイント)で PFC を有効にする必要があります。
ポートのPFC設定を変更すると、ポート全体(PFCの変更の影響を受ける優先度だけでなく)が一時的にブロックされ、ポートが変更を実装できるようにした後、ポートのブロックが解除されます。ポートをブロックすると、イングレストラフィックとエグレストラフィックが停止し、ポートのブロックが解除されるまでポート上のすべてのキューでパケット損失が発生します。
デフォルトのCoS設定では、 fcoe と no-lossの2つのロスレス転送クラスが提供されます。ロスレス転送クラスを明示的に設定した場合、ロスレス動作を有効にするには no-loss パケットドロップ属性を含める必要があります。そうしないとトラフィックがロスレスされません。デフォルトおよび明示的なロスレス転送クラス設定の両方で、CNP入力スタンザを設定して、ロスレストラフィックの優先度でPFCを有効にし、CNPをイングレスインターフェイスに適用する必要があります。
CoS について ロスレストラフィックフローのIEEE 802.1p優先度 についてでは、ロスレス優先度の明示的な設定と、CNPの入出力スタンザを含むロスレス優先度のデフォルト設定に関する詳細な情報を提供します。
プラットフォーム固有のリンクレベルのフロー制御動作
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
お使いのプラットフォームに固有の動作を確認するには、以下の表を使用して下さい:
| プラットフォーム |
違い |
|---|---|
| EX4400 |
|
| PTXシリーズ |
|
| QFX10000シリーズ |
|
| プラットフォーム |
違い |
|---|---|
| PTX10000シリーズ |
|
| QFXシリーズ |
|
| QFX10000シリーズ |
|