Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

PTXシリーズパケットトランスポートルーターの仮想出力キュー

このセクションでは、PTXシリーズパケットトランスポートルーターの仮想出力キュー(VOQ)アーキテクチャについて説明し、以下のトピックを含みます。

PTXシリーズパケットトランスポートルーターの仮想出力キューの概要

このトピックでは、PTXシリーズパケットトランスポートルーターの仮想出力キュー(VOQ)アーキテクチャと、PTXシリーズルーターの設定可能なサービスクラス(CoS)コンポーネントとの併用方法について説明します。

Junos OSおよびPTXシリーズのハードウェアCoS機能は、入力で仮想出力キューを使用して、各出力出力キューのトラフィックをバッファリングおよびキューイングします。PTXシリーズルーターは、出力ポート(物理インターフェイス)ごとに最大8つのegress出力キューをサポートします。

ルーターを介してトラフィックを転送する従来の方法は、イングレス インターフェイスの入力キューでイングレス トラフィックをバッファリングし、ファブリック全体のトラフィックをエグレス インターフェイスの出力キューに転送し、出力キューでトラフィックを再度バッファリングしてからネクスト ホップにトラフィックを送信するというものです。イングレスポートでパケットをキューイングする従来の方法では、異なるエグレスポート宛てのトラフィックを同じ入力キュー(バッファ)に格納します。

輻輳中、ルーターはエグレスポートでパケットをドロップすることがあります。そのため、ルーターは、トラフィックをスイッチファブリックを介してエグレスポートに伝送するためにリソースを費やし、そのトラフィックを転送するのではなくドロップするだけです。また、入力キューには異なるエグレス ポート宛てのトラフィックが格納されるため、1 つのエグレス ポートでの輻輳が別のエグレス ポートのトラフィックに影響を与える可能性があります。これは ヘッドオブライン ブロッキング(HOLB)と呼ばれます)。

仮想出力キュー(VOQ)アーキテクチャは、別のアプローチを採用しています。

  • PTXシリーズルーターは、入力キューと出力キュー用に別々の物理バッファーの代わりに、各パケット転送エンジンのイングレスパイプラインにある物理バッファーを使用して、各エグレスポートのトラフィックを保存します。エグレス ポートのすべての出力キューには、ルーター上のすべてのパケット転送エンジンのすべてのイングレス パイプラインにバッファー ストレージ領域があります。イングレス パイプラインのストレージ領域と出力キューのマッピングは 1 対 1 であるため、各出力キューは各イングレス パイプラインのバッファー領域を受け取ります。

  • 複数の異なる出力キュー宛てのトラフィックを含む 1 つの入力キュー(1 対多マッピング)の代わりに、各出力キューには、その出力キュー専用の各パケット転送エンジンの入力バッファーで構成される専用の VOQ があります(1 対 1 マッピング)。このアーキテクチャにより、任意の 2 つのポート間の通信が別のポートに影響を与えることを防ぎます。

  • VOQは、転送できるようになるまで物理的な出力キューにトラフィックを保存するのではなく、エグレスポートにトラフィックを転送するためのリソースを確保するまで、ファブリックを介してイングレスポートからエグレスポートにトラフィックを送信しません。VOQは、1つの出力ポート上の1つの出力キュー宛てのトラフィックを受信して保存する入力キュー(バッファ)の集合体です。各出力ポートの各出力キューには、その出力キューにトラフィックを送信するすべての入力キューで構成される独自の専用 VOQ があります。

VOQは、1つの出力ポート上の1つの出力キュー宛てのトラフィックを受信して保存する入力キュー(バッファ)の集合体です。各出力ポートの各出力キューには、その出力キューにトラフィックを送信するすべての入力キューで構成される独自の専用 VOQ があります。

VOQアーキテクチャ

VOQは、特定の出力キューのイングレスバッファリングを表します。PTXシリーズルーターの各パケット転送エンジンは、特定の出力キューを使用します。パケット転送エンジンに保存されるトラフィックは、1つのポート上の1つの特定の出力キュー宛てのトラフィックで構成され、その出力キューのVOQとなります。

VOQは、その出力キューにトラフィックをアクティブに送信しているルーター内のすべてのパケット転送エンジンに分散されます。各出力キューは、ルーター内のすべてのパケット転送エンジンでその出力キューに割り当てられた合計バッファーの合計です。したがって、出力キュー自体は物理ではなく仮想ですが、出力キューは物理入力キューで構成されています。

ラウンドトリップタイムバッファリング

輻輳期間中の出力キューバッファリングはありません(長期保存はありません)が、トラフィックがファブリックをイングレスからエグレスに移動する往復時間に対応するために、エグレスラインカードには小さな物理出力キューバッファがあります。往復時間は、イングレスポートがエグレスポートリソースをリクエストし、エグレスポートからリソースに対する許可を受け取り、ファブリック全体にデータを送信するのにかかる時間で構成されます。

つまり、パケットがルーターのイングレスでドロップされず、ルーターがファブリックを介してパケットをエグレスポートに転送する場合、パケットはドロップされず、ネクストホップに転送されます。すべてのパケットドロップは、イングレスパイプラインで行われます。

VOQの利点

VOQアーキテクチャには、2つの大きな利点があります。

ヘッドオブラインブロッキングを排除

VOQアーキテクチャは、ヘッドオブラインブロッキング(HOLB)の問題を排除します。非VOQスイッチでは、エグレスポートでの輻輳が輻輳していない別のエグレスポートに影響を与えると、HOLBが発生します。HOLB は、輻輳しているポートと輻輳していないポートがイングレス インターフェイスで同じ入力キューを共有している場合に発生します。

VOQアーキテクチャは、各インターフェイスの出力キューごとに異なる専用仮想キューを作成することで、HOLBを回避します。

異なるエグレス キューは同じ入力キューを共有しないため、あるポートの輻輳したエグレス キューが別のポートのエグレス キューに影響を与えることはありません。同じ理由で、あるポートの輻輳したエグレス キューが、同じポートの別のエグレス キューに影響を与えることはありません。各出力キューには、イングレス インターフェイス入力キューで構成された専用の仮想出力キューがあります。

イングレス インターフェイスでキュー バッファリングを実行すると、ルーターは、そのエグレス キューがトラフィックを受信する準備ができている場合にのみ、ファブリックを介してエグレス キューにトラフィックを送信します。エグレス キューがトラフィックを受信する準備ができていない場合、トラフィックはイングレス インターフェイスでバッファリングされたままになります。

ファブリックの効率と使用率の向上

従来の出力キューアーキテクチャには、VOQアーキテクチャが対処する固有の非効率性がいくつかあります。

  • パケットバッファリング—従来のキューイングアーキテクチャは、各パケットを長期DRAMストレージに2回(イングレスインターフェイスとエグレスインターフェイスで1回)バッファリングします。VOQアーキテクチャは、イングレスインターフェイスで、長期DRAMストレージに各パケットを1回だけバッファリングします。ファブリックは、エグレス CoS ポリシーに対して透過的であるのに十分な速度であるため、ルーターは、エグレス インターフェイスでパケットをもう一度バッファリングする代わりに、設定されたエグレス CoS ポリシー(スケジューリング)に影響を与えることなく、ディープ エグレス バッファを必要としないレートでトラフィックを転送できます。

  • リソースの消費—従来のキューイングアーキテクチャは、イングレスインターフェイス入力キュー(バッファ)からファブリックを介して、エグレスインターフェイス出力キュー(バッファ)にパケットを送信します。エグレスインターフェイスでは、ルーターがファブリック上でパケットを伝送し、エグレスキューに保存するためにリソースを費やした場合でも、パケットがドロップされる可能性があります。VOQアーキテクチャは、エグレスインターフェイスがトラフィックを送信する準備ができるまで、ファブリックを介してエグレスインターフェイスにパケットを送信しません。これにより、後でドロップされるパケットの伝送と保存にリソースを浪費することがなくなるため、システムの使用率が向上します。

VOQはCoSの設定方法を変更しますか?

CoS 機能の設定方法に変更はありません。 図1 は、Junoś OSとPTXシリーズのハードウェアCoSコンポーネントとVOQ選択を示し、それらが相互作用する順序を示しています。

図 1: PTXシリーズルーターのCoSコンポーネントを通るパケットフロー Packet Flow Through CoS Components on PTX Series Routers

VOQ選択プロセスは、設定に応じて、BA(動作集約)分類子またはマルチフィールド分類子のいずれかを使用するASICによって実行され、エグレスポートで可能な8つの仮想出力キューの1つを選択します。CoS 設定に基づくエグレス ポートのイングレス バッファー データの仮想出力キュー。

CoS機能は変更されませんが、VOQとは運用上の違いがいくつかあります。

  • ランダム早期検出(RED)は、イングレスパケット転送エンジンで発生します。エグレス出力キューイングのみをサポートするルーターでは、REDおよび関連する輻輳ドロップがエグレスで発生します。イングレスで RED を実行すると、貴重なリソースが節約され、ルーターのパフォーマンスが向上します。

    REDはVOQのイングレスで発生しますが、ドロッププロファイルの設定方法に変更はありません。

  • ファブリックのスケジューリングは、リクエストおよび許可の制御メッセージによって制御されます。パケットは、エグレスパケット転送エンジンが受信準備ができたことを示す許可メッセージをイングレスパケット転送エンジンに送信するまで、イングレス仮想出力キューにバッファリングされます。ファブリックスケジューリングの詳細については、 PTXシリーズルーターでのファブリックスケジューリングと仮想出力キューを参照してください。

PTXシリーズルーターでのVOQの仕組みを理解する

このトピックでは、PTXシリーズルーターでのVOQプロセスの仕組みについて説明します。

VOQプロセスのコンポーネントを理解する

図2 は、VOQプロセスに関与するPTXシリーズルーターのハードウェアコンポーネントを示しています。

図2:PTXシリーズルーターのVOQコンポーネント VOQ Components on PTX Series Routers

これらのコンポーネントは、次の機能を実行します。

  • Physical Interface Card (PIC)- さまざまなネットワーク メディア タイプに物理的に接続し、ネットワークから着信パケットを受信し、発信パケットをネットワークに送信します。

  • Flexible PIC Concentrator (FPC)- インストールされているPICを他のパケット トランスポート ルーター コンポーネントに接続します。シャーシ当たり最大 8 個の FPC を搭載できます。

  • Packet Forwarding Engine—レイヤー 2 およびレイヤー 3 のパケット スイッチングとカプセル化解除、転送、ルート ルックアップ機能を提供し、パケット バッファリングと通知のキューを管理します。パケット転送エンジンは、FPCに搭載されたPICから着信パケットを受信し、スイッチプレーンを介して適切な宛先ポートに転送します。

  • Output queues—(図示せず)PTXシリーズルーターは、出力ポート(物理インターフェイス)ごとに最大8つの出力キューをサポートします。これらの出力キューは、CoS スケジューラ設定によって制御され、スイッチ ファブリックに送信する出力キュー内のトラフィックの処理方法が確立されます。さらに、これらの出力出力キューは、入力の仮想出力キューから出力出力キューにパケットが送信されるタイミングを制御します。

VOQプロセスの理解

PTXシリーズルーターは、出力ポート(物理インターフェイス)ごとに最大8つの出力キューをサポートします。これらの出力キューは、ファブリックに送信する出力キュー内のトラフィックの処理方法を確立するCoSスケジューラ設定によって制御されます。さらに、これらの出力出力キューは、入力の仮想出力キューから出力出力キューにパケットが送信されるタイミングを制御します。

VOQアーキテクチャは、すべてのエグレス出力キューに対して、すべてのイングレスパケット転送エンジンに 仮想 キューを提供します。これらのキューを仮想と呼ぶのは、ラインカードに実際にパケットがエンキューされている場合 のみ 、イングレスパケット転送エンジンに物理的に存在するからです。

図 3 は、3 つのイングレス パケット転送エンジン(PFE0、PFE1、PFE2)を示しています。各イングレスパケット転送エンジンは、単一のエグレスポート0に対して最大8つの仮想出力キュー(PFEn.e0.q0〜PFEn.e0.q7)を提供します。エグレスパケット転送エンジンPFEn は、ラウンドロビン方式で各Ingress VOQに帯域幅を分配します。

例えば、EgressPFE NのVOQ e0.q0には10Gbpsの帯域幅があります。PFE 0 の提供負荷は e0.qo に対して 10 Gbps、PFE1 および PFE2 では e0.q0 に対して 1 Gbps の提供負荷があります。その結果、PFE1 と PFE2 はトラフィックの 100% を通過しますが、PFE0 はトラフィックの 80% しか通過しません。

図3: PTXシリーズルーターの仮想出力キュー Virtual Output Queues on PTX Series Routers

図 4 は、出力出力キューと入力仮想出力キューの相関関係の例を示しています。エグレス側では、PFE-Xには100Gbpsポートがあり、4つの異なる転送クラスで構成されています。その結果、PFE-X の 100 Gbps の出力出力ポートは、利用可能な 8 つの出力出力キューのうち 4 つを使用し(PFE-X ではオレンジ色の破線で強調表示された 4 つのキューで示されます)、VOQ アーキテクチャは、入力パケット転送エンジンに対応する 4 つの仮想出力キューを提供します(オレンジ色の破線で強調表示された PFE-A と PFE-B の 4 つの仮想キューで示されます)。PFE-A と PFE-B の仮想キューは、送信されるトラフィックがある場合にのみ存在します。

図4:VOQExample of VOQの例

PTXシリーズルーターでのファブリックスケジューリングと仮想出力キュー

このトピックでは、VOQを使用するPTXシリーズルーターでのファブリックスケジューリングプロセスについて説明します。

VOQは、リクエストメッセージとグラントメッセージを使用して、PTXシリーズルーターのファブリックスケジューリングを制御します。エグレス パケット転送エンジンは、リクエスト メッセージと許可メッセージを使用して、イングレス仮想出力キューからのデータ配信を制御します。仮想キューは、エグレス パケット転送エンジンがイングレス パケット転送エンジンに許可メッセージを送信してパケットを受信する準備ができていることを確認するまで、イングレス上のパケットをバッファリングします。

図 5: ファブリックスケジューリングと仮想出力キューのプロセス Fabric Scheduling and Virtual Output Queues Process

図5 は、VOQを搭載したPTXシリーズルーターで使用されるファブリックスケジューリングプロセスを示しています。パケットがイングレス ポートに到着すると、イングレス パイプラインは宛先出力キューに関連付けられたイングレス キューにパケットを格納します。ルーターは、パケットルックアップを実行した後にバッファリングの決定を行います。パケットが、最大トラフィックしきい値を超えた転送クラスに属している場合、パケットはバッファリングされず、ドロップされる可能性があります。スケジューリングプロセスは次のように機能します。

  1. イングレスパケット転送エンジンは、パケットを受信して仮想キューにバッファリングし、同じエグレスインターフェイスとデータ出力キューを宛先とする他のパケットでパケットをグループ化します。

  2. イングレスラインカードのパケット転送エンジンは、パケットグループへの参照を含むリクエストを、ファブリックを介してエグレスパケット転送エンジンに送信します。

  3. 利用可能なエグレス帯域幅がある場合、エグレスラインカード付与スケジューラは、イングレスラインカードのパケット転送エンジンに帯域幅グラントを送信することで応答します。.

  4. イングレスラインカードのパケット転送エンジンが、エグレスラインカードのパケット転送エンジンから許可を受信すると、イングレスパケット転送エンジンはパケットグループをセグメント化し、ファブリック上のすべてのピースをエグレスパケット転送エンジンに送信します。

  5. エグレス パケット転送エンジンは、ピースを受信してパケット グループに再構築し、仮想出力キューに対応するデータ出力キューに個々のパケットをエンキューします。

イングレス パケットは、出力キューがさらにトラフィックを受け入れて転送できるようになるまで、イングレス ポート入力キューの VOQ に残ります。

ほとんどの条件下で、ファブリックはエグレスサービスクラス(CoS)ポリシーに対して透過的であるのに十分な速度であるため、イングレスパイプラインからファブリックを越えてエグレスポートにトラフィックを転送するプロセスは、トラフィックに設定されたCoSポリシーに影響を与えません。ファブリックが CoS ポリシーに影響するのは、ファブリックに障害が発生した場合、またはポートの公平性に問題がある場合のみです。

パケットが同じパケット転送エンジン(ローカルスイッチング)で送受信される場合、パケットはファブリックを通過しません。ただし、ルーターは、ファブリックを通過するパケットと同じリクエストおよび付与メカニズムを使用してエグレス帯域幅を受信するため、ローカルにルーティングされたパケットとファブリックを通過した後にパケット転送エンジンに到着するパケットは、トラフィックが同じ出力キューをめぐって競合している場合に公平に処理されます。

パケット転送エンジンの公平性と仮想出力キュープロセスの理解

このトピックでは、PTXシリーズルーターのVOQで使用されるパケット転送エンジンの公平性スキームについて説明します。

パケット転送エンジンの公平性とは、すべてのパケット転送エンジンがエグレスの観点から平等に扱われることを意味します。複数のエグレスパケット転送エンジンが同じ仮想出力キューからデータを送信する必要がある場合、ラウンドロビン方式で処理されます。仮想出力キューのサービスは、送信元の各パケット転送エンジンに存在する負荷に依存し ません

図6 は、3つのパケット転送エンジンを使用した簡単な例で、VOQで使用されるパケット転送エンジンの公平性スキームを示しています。イングレスPFE-Aには、PFE-C上のVOQx 宛ての10Gbpsデータの単一ストリームがあります。PFE-Bには、PFE-C上のVOQx 宛ての100Gbpsデータの単一ストリームがあります。PFE-C では、VOQx は 100 Gbps インターフェースによってサービス提供され、それがそのインターフェース上の唯一のアクティブな仮想出力キューです。

図 6: 仮想出力キューを使用したパケット転送エンジンの公平性 プロセス Packet Forwarding Engine Fairness with Virtual Output Queue Process

図6では、100Gbpsの出力インターフェース宛てのソースデータが合計110Gbpsあります。その結果、10Gbpsのデータをドロップする必要があります。ドロップはどこで発生し、このドロップは PFE-A と PFE-B のトラフィックにどのように影響しますか?

PFE-A と PFE-B はエグレス PFE-C によってラウンドロビン方式でサービスされるため、PFE-A からの 10 Gbps のトラフィックはすべてエグレス出力ポートに到達します。しかし、PFE-B 上では 10 Gbps のデータが破棄され、PFE-B から PFE-C に送信できるのは 90 Gbps のデータのみです。したがって、10 Gbps ストリームのドロップは 0% で、100 Gbps ストリームのドロップは 10% のみです。

しかし、PFE-AとPFE-Bがそれぞれ100Gbpsのデータをソースとする場合、それぞれ50Gbpsのデータをドロップすることになります。これは、エグレス PFE-C が、ラウンドロビンアルゴリズムを使用して、イングレス仮想キューのサービスとドレインレートを実際に制御しているためです。ラウンドロビンアルゴリズムでは、複数のソースが存在する場合、より高い帯域幅のソースには常にペナルティが課せられます。このアルゴリズムは、2 つのソースの帯域幅を等しくしようとします。ただし、遅いソースの帯域幅を上げることはできないため、高いソースの帯域幅はドロップされます。ラウンドロビンアルゴリズムは、送信元のエグレス帯域幅が均等になるまでこのシーケンスを継続します。

各イングレスパケット転送エンジンは、1つのエグレスポートに対して最大8つの仮想出力キューを提供します。エグレス パケット転送エンジンは、各イングレス仮想出力キューに帯域幅を分散します。したがって、提示された負荷に関係なく、同等の扱いを受けます。キューのドレイン率は、キューがドレインされる速度です。エグレス パケット転送エンジンは、各出力キューの帯域幅をイングレス パケット転送エンジン全体に均等に分割します。つまり、各イングレスパケット転送エンジンのドレインレート=出力キューのドレインレート/イングレスパケット転送エンジンの数です。

輻輳への対処

発生する可能性のある輻輳には、主に 2 つのタイプがあります。

  • Ingress輻輳 — Ingressパケット転送エンジンが、Egressが処理できるよりも多くの負荷を提供している場合に発生します。イングレス輻輳ケースは、キューが蓄積し、設定されたしきい値を超えるとパケットがドロップされるという点で、従来のルーターと非常によく似ています。

  • Egress 輻輳 — すべてのイングレスパケット転送エンジンの合計がエグレスルーターの能力を超えた場合に発生します。すべてのドロップは、イングレスパケット転送エンジンで実行されます。ただし、イングレス キューのサイズは、キューのドレイン レート(エグレス パケット転送エンジンがパケットを要求する速度)によって減衰します。このレートは、基本的に、エグレスパケット転送エンジンによってリクエストがグラントに変換されるレートによって決まります。エグレスパケット転送エンジンは、ラウンドロビン方式でリクエストからグラントへの変換を処理します。入力パケット転送エンジンが提供する負荷に依存しません。例えば、イングレス パケット転送エンジンのドレイン レートが予想の半分である場合(2 つのイングレス パケット転送エンジンがターゲット出力キューにオーバーサブスクライブ負荷を提示している場合など)、イングレス パケット転送エンジンはこのキューのサイズを元のサイズの半分に縮小します(フル ドレイン レートを取得していたとき)。

VOQキュー深度監視(Junos OS Evolved)

VOQキュー深度監視、または遅延監視は、VOQのピークキュー占有率を測定します。この機能により、個々のパケット転送エンジン(PFE)ごとに、特定の物理インターフェイスのピーク キュー長を報告できます。

手記:

各キューは、ピーク キュー長データに加えて、イングレス データ パス上のドロップ統計と時間平均キュー長も保持します。また、各キューは、エグレス データ パスでキュー伝送統計を維持します。

絶対優先スケジューリングを使用する一般的な展開シナリオでは、 HIGH プライオリティ キューがプライオリティ キュー LOW 不足する可能性があります。したがって、このような LOW プライオリティキュー内のパケットは、必要以上に長く留まることができます。この VOQ キュー奥行き監視機能を、キュー伝送統計とともに使用して、このような停止状態を検出できます。

インターフェイスでVOQキュー深度モニタリングを有効にするには、まずモニタリングプロファイルを作成し、そのプロファイルをインターフェイスにアタッチします。集合型イーサネット(ae-)インターフェイスに監視プロファイルをアタッチする場合、各メンバーインターフェイスには専用のハードウェアVOQモニターがあります。

手記:

VOQキューの深さ監視は、トランジットWANインターフェイスでのみ有効にできます。デバイスごとに最大420の物理インターフェイスでVOQキュー深度監視を有効にできます。

各モニター・プロファイルは、1 つ以上のエクスポート・フィルターで構成されます。エクスポート フィルターは、物理インターフェイス上の 1 つ以上のキューのピーク キュー長の割合のしきい値を定義します。エクスポート フィルター内のいずれかのキューについて、定義されたピーク キュー長の割合の閾値に達すると、Junos はエクスポート フィルター内のすべてのキューの VOQ テレメトリ データをエクスポートします。

手記:

キューの深さの監視データは、テレメトリ チャネル を介してのみ 送信されます。監視プロファイルの構成に加えて(以下を参照)、データを送信するには、通常のセンサーサブスクリプションを開始する 必要があります 。CLI表示オプションはありません。

VOQキューの深さの監視を設定する

VOQキュー奥行き監視を設定して、キュー使用率データをエクスポートします。このデータを使用して、マイクロバーストを監視し、停止しているトランジット出力キューの特定にも役立ちます。VOQキュー深度監視を設定するには:

  1. 監視プロファイルを設定します。
  2. モニタリングプロファイルをインターフェイスにアタッチします。

監視プロファイルを設定するには、次の手順を実行します。

  1. 監視プロファイルに名前を付けます。例えば:
  2. モニタリングプロファイルのエクスポートフィルタに名前を付けます。例えば:
  3. エクスポート・フィルターに属するキュー (0 から 7) を定義します。例えば:
  4. (オプション)VOQテレメトリデータをエクスポートするためのしきい値ピークキュー長の割合を定義します。デフォルトのパーセンテージは 0 です。例えば:
  5. (オプション)モニター・プロファイル用に、1 つ以上の他のエクスポート・フィルターを定義します。例えば:
  6. 変更をコミットします。

監視プロファイルをインターフェイスにアタッチするには:

  1. モニタリングプロファイルをインターフェイスにアタッチします。例えば:
  2. 変更をコミットします。

構成を確認してください。例えば:

次の show コマンドを実行して、設定を確認します。

手記:

この例からわかるように、エクスポート フィルターに peak-queue-length percent を設定しないと、エクスポート フィルターの ef2 に示すように、割合がデフォルトで 0% に設定されます。この例では、VOQテレメトリデータをエクスポートするためのピークキュー長のしきい値が異なる、物理インターフェイス上のさまざまなキューを示しています。