Cisco Catalyst 9000 スイッチング プラットフォーム QoS and キューイング ホワイトペーパー
イントロダクション
このドキュメントは、Cisco Catalyst 9000 ファミリ スイッチのクオリティ・オブ・サービス (QoS) とキューイング アーキテクチャについて記載します。バッファ、スケジューリング、ポリシング、リマーキングの機能についての説明です。それは複数のポート間でどのようにバッファを共有するか、オート QoS が簡潔に構築できるか、そしてアプリケーションの要求に応じて、カスタム QoS ポリシーをどのように設定するか、詳細を提供します。
QoS の事例
エンタープライズ ネットワークは、様々なプラットフォームを横断してネットワークに広がり、エンド・ツー・エンドで QoS ソリューションを提供する必要があります。多様なプラットフォームにソリューションを提供するには、多くの場合それぞれの技術において、異なる QoS コンフィギュレーション アプローチを採る必要があります。エンタープライズ ネットワークは、より複雑で、ミッション クリティカル アプリケーションや、日々増大するウェブのマルチメディア アプリケーション トラフィックを運んでおり、QoS はこれらのトラフィックを優先づけすることで、それぞれのアプリケーションが求めるサービス レベルを確実なものにします。
ネットワークは、複雑さが増大するビジネス アプリケーションを扱えなくてはなりません。QoS によりネットワークは差別化という難しいタスクを扱うことができ、ビジネス アプリケーションについて、最も効率的に機器間のリンクを使用します。
QoS は以下のテクニックを追加することにより、ネットワークに保障と予測されたネットワーク トラフィックの選択を助けます。
- スケジューリングによる、帯域幅の保障
- 特定のトラフィックの損失の削減
- ネットワーク輻輳の管理と回避
- ネットワーク トラフィックのシェーピング
- ネットワークを横断するトラフィックに、優先順位の設定
上記のテクニックを用いてあなたのネットワークに QoS を実装することで、以下の優位点を得られるでしょう。
- 帯域幅、レート制限のように、リソースを超えたもののコントロール 例えば、重要なデータベース アクセスを優先するために優先度を与え、FTP 転送はリンク上で消費する帯域幅を制限したりできます。
- ミッション クリティカル アプリケーションとの共存
- 時間に敏感なマルチメディアと音声アプリケーションに、要求される帯域幅と最小遅延が提供できます
- FTP , メール、HTTP , 取引のような他のアプリケーションがリンクを利用するとき、音声のようなミッション クリティカル トラフィックに干渉させず、公平なレベルのサービスを使用できます
さらにネットワークに QoS 機能を実装することで、将来にすべてが統合されたネットワークとなる基盤を手に入れて、輻輳を管理する効率的なテクニックを使用できます
輻輳とは何ですか ?
輻輳は宛先ポートがすべてのパケットを外部へ送信できないときに発生し、いくつかのパケットは想定よりもドロップや遅延が発生します。画像 1. は 2 つのタイプの輻輳で、QoS とキューイングが必要とされるイラストです。
輻輳のタイプ
2 つのタイプの輻輳は画像 1. に示しています :
- 複数ポートから単一ポートへ : 複数の送信元ポートから単一の宛先ポートへ同時に送信するとき、複数の送信元から合計されたトラフィックが届いてしまい、宛先ポートが服装します
- スピード ミスマッチ : 高速なポートで受信して低速なポート (例えば 10Gbps から 1Gbps) で送信するとき、パケットは出力ポートから流れるのに時間がかかるため、結果としてパケットのドロップや遅延となります
なぜ輻輳に配慮しなくてはなりませんか ?
輻輳が発生したときに、輻輳管理機能が適切に設定されていない場合、パケットはドロップされます。パケットがドロップされると、上位プロトコルによっては再送が発生、もしくはネットワークの再収束が必要になる場合があります。これはネットワークの パフォーマンスに影響を与える可能性があります。すでにネットワークが輻輳していると、これが既存のパフォーマンスの問題に追加されてしまい、ネットワーク全体のパフォーマンスがさらに低下する可能性があります。それは ボーダー・ゲートウェイ・プロトコル (BGP) , オープン・ショーテスト・パス・ファースト (OSPF) , リンク・アグリゲーション・コントロール・プロトコル (LACP) のようなプロトコルの場合、一時的もしくは完全に接続が切れてしまう結果になりえます。このようなコントロール プレーン プロトコルのパケットが、輻輳によりドロップすることで、それらのキープ アライブ メッセージが、受信できなくなることで発生します。
ネットワークの収束と輻輳管理は、さらに重要になります。レイテンシやジッターは、音声やビデオのように敏感なトラフィックでは、もし遅延が発生すると厳しい影響があります。バッファの追加は常に簡潔なソリューションにはなりえません。ソリューションを探す前に重要なステップを踏むことで、アプリケーションのトラフィック パターンの何が影響しているか理解してください。
個別のアプリケーションで QoS を確保するために、適切なツールのセットが必要とされます。Cisco Catalyst 9000 ファミリは、エンタープライズ ネットワークで見られる、一般的なアプリケーションを扱うために必要とされるすべてのツールを提供します。
輻輳を管理するう方法はいくつかあります :
- オーバーサブスクリプション比の削減
- 優先するためのトラフィックに、キューイング スケジューラを使用
- 輻輳管理にウェイテッド・ランダム・アーリー・テール・ドロップ (WRED) やウェイテッド・テール・ドロップのように、いくつかのトラフィックを早期にドロップさせるためのアルゴリズムを採用
- ドロップを削減するためにバッファを使用し、送信する前のパケット保存量を増加
- 入力側でトラフィックをポリシングして、トラフィックを出力する前に削減
次のセクションでは、異なるスイッチのモデルで QoS 機能の統合の仕方を議論します。
Cisco Catalyst 9000 ファミリにおける ASIC の QoS の統合
Cisco Catalyst 9000 スイッチング プラットフォームは、エンタープライズ LAN アクセス、ディストリビューション、コアスイッチにおける次世代の Cisco ファミリです。Cisco ユニファイド・アクセス・データ・プレーン (UADP) アプリケーション・スペシフィック・インテグレーテッド・サーキット (ASIC) はこのプラットフォームはより高速なパフォーマンス、多くの新機能と動作を提供します。
Cisco Catalyst 9000 スイッチング プラットフォームは、一般的で強力なハードウェアとソフトウェア基盤で成り立っています。その性質と一貫性は、ネットワークエンジニアと管理者にシンプルさと運用のしやすさをもたらし、トータルで運用コストの削減とよりよい体験を創出します。
一般的なハードウェア
Cisco Catalyst 9000 ファミリのハードウェアは、その内部と外部で一般的なデザインを持ちっています。内部はハードウェアが一般的な ASIC を使用し、Cisco UADP がパケットの扱いに柔軟性を提供します。他の一般的なコンポーネントはスイッチの CPU です。Cisco Catalyst スイッチの歴史において、最初に x86 ベースの CPU を搭載 (Cisco Catalyst 9200 を除く) し、ネットワーク スイッチで通常使用可能なルーティングなどのアプリケーションを超えて、コンテナされたアプリケーションを追加することが加納です。
一般的なソフトウェア
すべての Cisco Catalyst 9000 ファミリ スイッチは、異なる CPU を持つ Cisco Catalyst 9200 を除いて、まったく同じバイナリ イメージの Cisco IOS XE で動作します。Cisco IOS XE は拡張され、オープンで、プログラマブルな OS です。30 年の歴史の中で 1000 を超える機能を持ち、Cisco IOS XE はネットワーキング市場において、間違いなく最も機能が豊富な OS です。Cisco Catalyst 9000 プラットフォームを横断してシングル バイナリ イメージを持ち、モジュラー・クオリティ・オブ・サービス・CLI (MQC) のようなエンド ツー エンドの機能のサポートを有効化し、ネットワークのどのポイントにおいても、同等の動作であることを担保します。この共通性はキャンパス ネットワーク全体でテストするイメージが単一であるため、ソフトウェア リリースの評価試験を行う際に役立ちます。
Cisco Catalyst 9000 のハードウェアとソフトウェア基盤は、基本機能の上に新モデルを構築する時、同じエンド ツー エンドの QoS 機能を有効化します。それは顧客へ一貫性と簡潔性をもたらします。
これらの Cisco Catalyst 9000 ファミリの 5 つのメンバーは、9300 シリーズ スタッカブル スイッチ、9400 シリーズ モジュラー シャーシ、9500 シリーズと 9500 ハイパフォーマンス シリーズ固定コア スイッチ、そして 9600 シリーズです。このセクションでは QoS アーキテクチャの観点から、これらのプラットフォームについて議論します。
Cisco Catalyst 9200 シリーズ アーキテクチャ
Cisco Catalyst 9200 シリーズスイッチは、シンプルなアーキテクチャを持っています。ネットワーク モジュール ポートを含むすべてのフロント パネル ポートは、24- か 48 ポートモデルで 1 つの UADP Mini ASIC に、マルチ ギガビット モデルで 2 つの UADP Mini ASICs に接続されます。UADP Mini として単一 ASIC コアがあることで、その QoS バッファはすべてのポート間で共有されます。すべてのポートは個別のキューイング機能をサポートします。
Cisco Catalyst 9200 シリーズは、StackWise-160 / 80 を使用するスタッカブル スイッチです。それぞれのスイッチは 2 つのスタック インターフェースで、スタック内で別の 2 つのスイッチへ接続できます。そのスタックインターフェースは ASIC の一部であり、スタックリングへパケットを送出します。専用のバッファがスタック インターフェースに割り当てられ、ユーザは設定で変更することはできません。
Cisco Catalyst 9300 シリーズ アーキテクチャ
Cisco Catalyst 9300 シリーズスイッチは、シンプルなアーキテクチャを持っています。ネットワーク モジュール ポートを含むすべてのフロントパネルポートは、UADP 2.0 ASIC に接続されます。モデルによっては、スイッチは 1 つかそれ以上の ASIC にすべてのポートを割り当てます。1 つより多くの ASIC を持つスイッチについては、殆どの場合同じ数のポートに分割して ASIC に収容されますが、これはすべてのポートが ASICs から同じリソースを利用できるようにするためです。QoS バッファは ASIC コアごとに分割され、ASIC コアに接続されたポートの中でのみ共有されます。すべてのポートは個別のキューイング機能をサポートします。
Cisco Catalyst 9300 シリーズは、スタッカブルスイッチです。それぞれのスイッチは 2 つのスタック インターフェースで、スタック内で別の 2 つのスイッチへ接続できます。そのスタックインターフェースは ASIC の一部であり、スタックリングへパケットを送出します。専用のバッファがスタック インターフェースに割り当てられ、ユーザは設定で変更することはできません。
Cisco Catalyst 9300-B スイッチは UADP 2.0 XL ベースで、Catalyst 9300 の他のモデルよりも、より大きなテーブルと UADP 2.0 と比較して QoS についてディープバッファを提供します。
Cisco Catalyst 9400 シリーズ アーキテクチャ
Cisco Catalyst 9400 シリーズ スイッチは、中央処理アーキテクチャをベースにしており、スーパーバイザですべてのパケットが処理されることを意味します。ラインカードはスタブ ASICs と PHYs のみを持っており、透過的であると考えることができます。結果として、スーパーバイザにすべての QoS のリソースが存在しており、それはポートごとのバッファとその他の QoS リソースを含んでいます。中央処理デザインのシンプルさは、既存のラインカードをそのまま使用しつつ、将来スーパーバイザをアップグレードすることで、機能を簡単にアップグレードできる点にあります。
スーパーバイザ アーキテクチャは UADP 2.0 XL がベースになっており、Cisco Catalyst 9300 で使用されている UADP 2.0 と比較して QoS はより大きなテーブルを持っています。
Cisco Catalyst 9500 シリーズ アーキテクチャ
Cisco Catalyst 9500 シーズのそれぞれのモデルは、異なるポート速度と密度を提供しますが、QoS アーキテクチャの観点からは、9500 シリーズは 9300 シリーズと似ています。モデルによって、UADP 2.0 XL と UADP 3.0 のどちらも 9500 シリーズ スイッチには存在しています。表 1. は、それぞれに使用されるモデルと ASICs のまとめです。
モデル | UADP 2.0 XL | UADP 3.0 |
---|---|---|
C9500-32C | 2 ASICs | |
C9500-32QC | 1 ASIC | |
C9500-48Y4C | 1 ASIC | |
C9500-24Y4C | 1 ASIC | |
C9500-16X | 1 ASIC | |
C9500-40X | 2 ASICs | |
C9500-12Q | 2 ASICs | |
C9500-24Q | 3 ASICs |
画像 6. と 7. に Cisco Catalyst 9500 シリーズ スイッチのフロント パネルと ASIC の接続を示します。
ハイパフォーマンス系のすべてのスイッチは UADP 3.0 ASIC を使用し、2 つの ASIC コアの間でユニファイド バッファをサポートします。これはバースト トラフィックの吸収量を増加でき、スイッチのすべてのポート間で、1 つの共有バッファを持つことになります。
Cisco Catalyst 9600 シリーズ アーキテクチャ
Cisco Catalyst 9600 シリーズ スイッチは、中央処理アーキテクチャをベースにしており、スーパーバイザですべてのパケットが処理されることを意味します。ラインカードはスタブ ASICs と PHYs のみを持っており、透過的であると考えることができます。結果として、スーパーバイザにすべての QoS のリソースが存在しており、それはポートごとのバッファとその他の QoS リソースを含んでいます。中央処理デザインのシンプルさは、既存のラインカードをそのまま使用しつつ、将来スーパーバイザをアップグレードすることで、機能を簡単にアップグレードできる点にあります。
スーパーバイザ アーキテクチャは UADP 3.0 がベースになっており、Cisco Catalyst 9500 で使用されている UADP 2.0 XL と比較して QoS はより大きなテーブルを持っており、ASIC コア間はユニファイド バッファになります。
UADP パケット ウォーク
Cisco Catalyst 9000 ファミリで使用されているすべての UADP ASICs は、 イーサネット フレーム or IPv4 / IPv6 ヘッダのフィールドを使用し、QoS 機能をラインレートで提供できます。
パケット ヘッダのマーキングは、ホップ間でサービスレベルをやり取りします。すべての IPv4 / IPv6 パケットはレイヤ 2 とレイヤ 3 のマーカーを持っており、QoS とキューイングに使用するためにデザインされています。しかしそれらはクラスでトラフィックを分類するためにのみ使用されるわけではありません。UADP ASICs は送信元と宛先 IP アドレス、TCP / UDP ポート、他のパケット ヘッダのデータも、分類に使用することができます。
パケット ヘッダの分類は、以下の値を使用することができます :
- レイヤ 2 クラス・オブ・サービス (CoS) : 3 ビット (0 - 7 の値)
- マルチ・プロトコル・ラベル・スイッチング (MPLS) エクスペリメンタル・ビット (EXP) フィールド : 3 ビット (0 - 7 の値)
- レイヤ 3 ディファレンシエイテッド・サービシズ・コード・ポイント (DSCP) , IPv4 の IP プレシデンス タイプ・オブ・サービス (ToS) ; IPv6 のトラフィック クラス (0 - 63 の値)
もしスイッチからパケットが生成された場合、パケット ヘッダにマーキングされていなくても、CPU は優先度を設定してパケットを分類できます。例えば、LACP プロトコル・データ・ユニット (PDUs) はタグなし (=CoS なし) ですが、CPU は内部優先度を用いて、それらをプライオリティ キューでスケジュールできます。
パケット フォーマットについて、追加の詳細情報は付録 C. を見てください。
UADP 2.0 (と 2.0 XL) と 3.0 は、QoS とキューイングについて同じ ASIC パケット ウォークを共有しています。パケットがシステムに入った時、それは内部ディスクリプタに紐付けられます。ディスクリプタは複数バイトから構成され、いくつかのビットは QoS 専用になっています。これらの QoS ビットはパケットヘッダで、入力マーカーごとに初期セットされます。ディスクリプタはスイッチから出るまでにパケットと紐付けられます。最終転送決定されるとすぐに、ディスクリプタはパケットを書き換えるために使用されます。
パケットが UADP ASIC に入った時、復号化のために MACsec ブロックへ行きます。次に、入力 FIFO がパケットのコピーを作成するために使用され、パケット・バッファー・コンプレックス (PBC) で変更されずに保存され、イングレス・フォワーディング・コントローラ (IFC)、は複数の並列ルックアップとディスクリプタでルックアップの結果を保存します。
- もしパケットがスタック インターフェースを越える時、イングレス・キュー・スケジューリング (IQS) ブロックを経由して送信され、スタック・キューイング・アンド・スケジューリング (SQS) ブロックによって、別のスイッチはスタック インターフェースから受信します。
- もしパケットが同じ ASIC 内で送信されるときは、スタック インターフェースはスキップします。
パケットがローカル PBC から、もしくはスタックのどちらか一方から届いた時、それは出力処理の準備が整っていることを意味します。キューイングのための、イーグレス・キュー・システム (EQS) で送信されます。EQS は 2 つのサブブロックでできており、SQS はスタックからパケットを受信すると、アクティブ・キュー・マネジメント (AQM) は、ポート キューを管理します。その結果、入力側でセットされたパケット ディスクリプタからパケットと情報が、イーグレス・フォワーディング・コントローラ (EFC) によって使用され、出力で設定された機能 (画像 12. 緑色の部分) を適用されます。出力ルックアップが完了すると、最終結果がディスクリプタに保存されます。
パケットがディスクリプタで最後の値をベースに書き換えられます。次に、パケットは暗号化され、ASIC の外に送信されます。
パケット ウォークは QoS 処理の観点から、4 つのパートに分割することができます。
- イングレス・フォワーディング・コントローラによる、入力分類 (イングレス クラシフィケーション)、ポリシング、マーキングが動作
- イングレス・キュー・スケジューリング (IQS) とスタック・キューイング・アンド・スケジューリング (SQS) ブロックによる、スタック インターフェースへのキューイングが動作
- アクティブ・キュー・マネージメント (AQM) による、出力キューイングとスケジューリングが動作
- イーグレス・フォワーディング・コントローラ (EFC) による、出力分類、ポリシング、マーキングが動作
画像 12. は 4 つのパートの描写です。それぞれのステップは後のセクションで詳細を記載します。
The ASIC provides hardware resources to process the packets; its scale numbers are provided in Appendix B.
ASIC はパケットを処理するための、ハードウェア リソースを提供します。スケールの数は、付録 B で提供します。
モジュラー・クオリティ・オブ・サービス コマンド-ライン (MQC) モデル
The MQC model is a standard way of configuring QoS across different product lines. Cisco Catalyst 9000 family switches use the same MQC model as a structured way to configure the different QoS tools such as policers, shapers, traffic remarking features, etc.
Every MQC policy is based on a class map, a policy map, and an interface target where the policy map will be attached. Figure 13 shows an MQC policy structure.
MQC モデルは、異なる機種を横断して、標準的に QoS を設定する方法です。Cisco Catalyst 9000 ファミリ スイッチは、ポリサー、シェイパー、トラフィック リマーキング機能など、異なる QoS ツールを設定するために、構造化された方法として、同じ MQC モデルを使用します。
すべての MQC ポリシーは、インターフェースに適用されるポリシー マップ、クラス マップがベースになっています。画像 13. は MQC ポリシー構造を示しています。
画像 14. は、QoS ポリシーのサンプルを示しています。
The QoS tools can be categorized as ingress and egress, as shown earlier in Figure 12. In that figure, parts 1 and 2 depict the ingress tools, and parts 3 and 4 depict the egress tools. The two QoS tool sets are discussed in the sections that follow. A combination of these tools can be used to achieve the desired quality of service.
QoS ツールは前に画像 12. に示したように、入力と出力で分類することが可能です。その画像ではパート 1 と 2 が入力ツールを描写しており、3 と 4 が出力ツールを描写しています。2 つの QoS ツールセットは、後述のセクションで議論します。これらのツールの組み合わせが、望まれるクオリティ・オブ・サービスを目的として、使用することができます。
入力ツールセット
信頼
Cisco Catalyst 9000 ファミリ スイッチでは、すべての入力パケットの DSCP は、デフォルトで信頼されます。ポリシーでマーキングが変更されない限り、パケット着信時のマーキングは変更されません。これは古い世代のプラットフォームでは望ましくなく、Cisco Catalyst 3750 シリーズの用に、MPLS QoS を有効にすると、すべての入力トラフィックが非信頼と (ToS / EXP などが) 0 にマークダウンされてしまいます。Cisco Catalyst 9000 プラットフォームでは、ポリシーで変更しない限り、すべてのマーキングは保持されます。
条件付き信頼
Cisco Catalyst 9000 ファミリ スイッチは条件付き信頼をサポートし、特定のタイプ・オブ・サービス (ToS) を信頼します。ポート レベルで設定できる信頼デバイス コマンドは、この機能を容易にします。信頼デバイスコマンドがポートに適用されると、ポートは信頼されたデバイスのみ信頼するようになります。他のデバイスから送信されたパケットは、信頼されず、DSCP , IP プレシデンス , CoS は 0 にリマーキングされます。
interface <interface name>
description IP Phone
switchport access vlan 99
switchport mode access
trust device cisco-phone
条件付き信頼は、1 つのタイプのみポートで有効化できます。しかし、複数のデバイスが 1 つのポートに接続する可能性があるため、その場合は同時に複数のデバイスについて、条件付き信頼を有効にすることはできません。
例えば、IP 電話がスイッチに接続され PC が電話に接続される場合があります。IP 電話は信頼デバイスとして設定されますが、PC はそうではありません。これはモバイル環境で信頼をプロビジョニングする際に問題となる可能性があります。次の例を考えてみましょう。:
- ポート A は接続された機器を信頼に設定され、初期は IP 電話です。
- ポート B は接続された機器を非信頼に設定され、初期は PC です。
移動するため、反対のポートに機器を接続しなおします。この移動によって IP 電話 (現在は非信頼のポート B に接続されている) から発信されたボイス・オーバー・IP (VoIP) の品質が損なわれてしまい、PC (現在は信頼のポート A に接続されている) によって、意図的・計画的な QoS の悪用にネットワークが利用されてしまいます。
1 つの解決策は、デバイスが接続されたポートスイッチの間で、インテリジェントな情報をやり取りすることです。もしスイッチがデバイスを発見して信頼できるように見えたら、動的に信頼を拡大します。もしそうでなければ、信頼しません。現在の Cisco の実装では、Cisco ディスカバリ・プロトコル (CDP) を使用して、インテリジェントな情報のやり取りを行っています。
代表的に IP 電話は、VoIP とシグナリング (それぞれデフォルト値は 5 と 3) の両方について、802.1Q/p CoS 値をマーキングする能力を持っています。さらに、それらは VoIP を DSCP EF に、コール シグナリングを DSCP CS3 にマークする能力も持っています。
クラシフィケーション
入力クラシフィケーションは、ポリシーが適用されたインターフェースで、スイッチにパケットが届いた時に実施されます。
Cisco Catalyst 9000 ファミリ スイッチは、以下のクラシフィケーションを使用します。:
- アクセス・コントロール・リスト (ACLs) (送信元 / 宛先 IP , TCP / UDP ポート , その他)
- DSCP
- IP プレシデンス (ToS)
- IPv6 トラフィック クラス
- dot1q CoS
- MPLS EXP (17.3.1 からサポート)
- ネットワーク・ベースド・アプリケーション・認識 (NBAR) プロトコル
- VLANs
クラシフィケーションは、複数のクラシフィケーション パラメータ間で、"AND" や "OR" などの論理演算子を使用できます。
以下の例は "AND" と "OR" の論理演算子間の典型的な違いです。
class-map match-any VOICE
match ?
access-group Access group
--- Or ---
dscp Match DSCP in IPv4 and IPv6 packets
ノート : "match-any" は、access-group "OR" DSCP 値にマッチします
class-map match-all VOICE
match ?
access-group Access group
--- And ---
dscp Match DSCP in IPv4 and IPv6 packets
--- And ---
vlan VLANs to match
ノート : "match-all" は、access-group "AND" DSCP 値 "AND" Vlan のすべてにマッチします
クラシフィケーション結果は、以下で使用されます :
- ポリシング
- 条件付き or 非条件付きマーキング
UADP ASIC の実装における、ハードウェア入力クラシフィケーションの詳細情報は、付録 A. を参照してください。
ポリシング
入力ポリサーは、入力レートを下げfるために使用される、もう 1 つの QoS ツールです。このセクションでは、超過したトラフィックを早急にドロップさせることで、ポリサーがどのようにトラフィック削減を実現しているか説明します。
MQC モデル経由でポリサーを設定するために、使用するパラメータについて、以下で説明します。
ポリサーレートとバースト
ポリシングの設定には、レートとバーストの 2 つの重要なパラメータがあります。そのレート (コミッテド・インフォーメーション・レート (CIR)) は特定の時間間隔 (通常は Kbps , Mbps , Gbps を参照します) の間、最大限転送することができるデータ量を定義したものです。与えられた時間内に受信できる全体データ量は、バーストと呼ばれます。
これらのパラメータがどのように相互作用するかのシンプルな例として、レート 10Mbps とバースト 11Mbps を使用するポリシーを挙げます。このポリシーは 10Mbps (レート) のデータを、特定の時間間隔で最大 11Mbps で受信できることを指定します。このバーストはどのくらいデータを受信 (バケットをいっぱいにできることを想像してください) できるか、レートはどのくらいデータを転送 (バケットを空にできる速度を想像してください) できるかを定義します。
強調するべき要なポイントは、決バーストは指定されたートよを下回ってはならない、ということです。仮に不可能な設定としてバーストを 8Mbps にセットしたとすると、レートを 10Mbps にセットしても、転送速度として 10Mbps を達成することはできません。もしバケット (バースト受信サイズ) は 8Mb だけ保持することができるため、同様に最大レートは 8Mbps のみになってしまいます。
ピーク インフォメーション レートと最大バースト
ピーク・インフォメーション・レート (PIR) と最大バーストは、次に理解するべきパラメータのセットです。もしレートとバーストが最初のバケットと関連付けられたら、PIR と最大バーストは次のバケットと関連付けられます。最大バーストは、2 つめのバケットの深さを定義づけし、PIR は 2 つめのバケットから転送することができる、データ量を意味します。PIR の 1 つの考え方は、リソースが使用可能であれば、追加して使用することが可能な、追加の小さいバケットといえます。
ハードウェア 間隔
上記のレートに関する定義で、"与えられた時間間隔" の用語の使用は、特定のハードウェアに定義・組み込まれた間隔に関連しています。ポリサー レートの精度は 0.0875% です。ハードウェア インターバルは、トークンがトークン バケットを満たすレートに関連しています。
画像 16. に見られるように、データは与えられた時間間隔でスイッチに到着し始めて、データの総数が定義されたレート (その間隔で) 内に収まる限り転送されます。データカウントが与えられた時間間隔でレートの限界を超えると、次のハードウェア インターバルが始まるまで、データは転送されません。
ハードウェア間隔は通常、CIR が使用される時 Tc" として、PIR の時は "Tp" と呼ばれます。
ポリサー設定
Cisco Catalyst 9000 ファミリ スイッチは、1 レートと 2 レートポリサーをサポートします。画像 17. で、ポリサーの動作順を説明します。
The following is a sample MQC policy for policing: 以下はポリシングに関する MQC ポリシーのサンプルです。 :
class-map match-all dscp46
match dscp ef => Classification
policy-map InputPort
class dsp46
police rate percent 10 => Policer 10 % of interface line rate
interface <interface name>
service-policy input InputPort
マーキング
マーキングは、パケットのさまざまなマーキング用フィールド (CoS , DSCP/IP プレシデンス , EXP) の操作を可能にするもう一つの QoS ツールです。Cisco Catalyst 9000 ファミリ スイッチは、ヘッダを書き換えるために複数の方法を提供します。 (パケットフォーマットの詳細は付録 C を参照してください)
- 条件付きマーキング : もしポリシング レートが超過したら、パケットのマーカーを変更する
- 無条件マーキング : ポリシーに該当するすべてのパケットをマークする
マーキング ポリシー設定
class-map match-all dscp20
match dscp 20 => Classification
class-map match-all dscp21
match dscp 21 => Classification
policy-map InputPort
class dscp20
set dscp af11 => Unconditional marking
class dscp21
police cir percent 10 pir percent 50
conform-action transmit
exceed-action set-dscp-transmit dscp table MARKDOWN
=> Conditional marking, as the DSCP value is changed only
if policing rate is exceeded
violate-action drop
class dscp22
police cir percent 10 pir percent 50
set dscp af11 => Unconditional marking can be combined with policing
interface <interface name>
service-policy input InputPort
変換 (ミューテーション) マップ : これらのマップは、レイヤ 2 CoS ヘッダ情報を元にした、レイヤ 3 DSCP ヘッダの書き換えを許可します。テーブル 2. はヘッダの変換をサポートするリストです。
To : | ||||||
---|---|---|---|---|---|---|
プレシデンス | DSCP / トラフィック クラス | CoS | QoS グループ | EXP | ||
From : | プレシデンス | X | X | X | X | |
DSCP / トラフィック クラス | X | X | X | X | ||
CoS | X | X | X | X | ||
QoS グループ | X | X | X | X | ||
EXP | X | X | X | X |
以下に変換マップの設定の仕方を示します。
table-map CoS2DSCP
map from 1 to 46
policy-map Mutation
class class-default
set dscp cos table CoS2DSCP
ここで "set <to> <from>" はマーカー間の変換を設定します。
ポリシーではテーブルマップを使用する時、以下の機能をサポートします。
- クラス デフォルトのみが、テーブル マップを適用できます
- 変換 : テーブル マップはとある DSCP 値のセット (訳注 : ここは複数を意味するセット) を別の DSCP 値にセットし、出力ポートに適用できます
- リライト : 着信パケットは設定されたテーブル マップに応じて書き換えられます
- マッピング : セットされたポリシーの代わりに、テーブル マップ ベースのポリシーが使用可能です
To summarize, trust, classification, policing, and marking are tools that are applied on the ingress forwarding path, as defined in step 1 of Figure 12, “QoS tools per ASIC block.” These tools define the ingress QoS tool set. This section has provided MQC policy examples of how to use the tools.
The next section discusses step 2 of Figure 12, queuing to the stack interface.
まとめると、信頼、クラシフィケーション、ポリシング、マーキングは入力転送パスで適用されるツールで、画像 12. のステップ 1 から定義された、"ASICを ブロックごとの QoS ツール" です。これらのツールは入力 QoS ツール セットを定義します。このセクションでは、ツールの使用方法として、MQC ポリシーの例を提供します。
次のセクションでは、画像 12. のステップ 2 を元に、スタック インターフェースのキューイングについて説明します。
異なる ASIC に届けるための、スタック インターフェースへのキューイングとバッファ
入力転送の結果が来た (信頼 or クラシファイドされ、ポリサーやリマークされた) 後、パケットは宛先 ASIC へ向かってスケジュールされます。このステージでパケット ディスクリプタからの情報は、パケットをキューに入れるために使用されます。この情報は入力転送パスで変更されるか、オリジナルとして保存されるでしょう。パケットは書き換えられず、オリジナルの QoS 優先度を持ったまま宛先へ着信します。
PBC からスタック リングへパケットが送信されると、画像 11. "UADP ASIC コア コンポーネント" に示すように、イングレス・キュー・スケジューラ (IQS) ブロックが使用されます。IQS は第 1 レベルのキュー構造を提供し、高優先度のトラフィックが最初に送信されます。これはスタック リング全体でパケットの優先度が確実保持されるようにするために行われます。Cisco Catalyst 9300 シリーズのようにスタック インターフェースは外部にしたり、Cisco Catalyst 9400 , 9500 , 9500 ハイパフォーマンス スイッチのように、内部にすることができます。しかし QoS とキューイングの視点からは、同じ機能を共有できます。
スタック インターフェースは転送するメディアのみ提供し、パケット優先度を変更するための能力は持っていません。パケットがスタックから届いた時、オリジナルの ASIC コアから入ってきた時と全く同じ設定になっています。
スタック インターフェースはスケジューリングについて、8 つの個別キューを提供します。画像 18. に、スタック インターフェースの "TO" と "FROM" を使用するキュー構造を示します。
パケットは出力ポートのスケジューラへ送信され、画像 12. のステップ 3 に示すように、出力ツールを使用してパケットを更に処理します。
出力ツールセット
出力キューイングとスケジューリング
The egress port scheduler is another QoS tool that provides multiple port queues and buffer and queue thresholds. The scheduler is used to prioritize the sequence in which packets leave the interface. Every packet is placed in a queue with a different priority. The queue system works very similarly to a local grocery store that has a general queue as well as an “express” queue for people with only a few items. Figure 19 illustrates express/priority and regular queues.
出力ポート スケジューラは、複数ポートのキューとバッファとキューしきい値を提供するもう一つの QoS ツールです。スケジューラはインターフェースからパケットが離れる時、優先順位をつけるために使用されます。すべてのパケットは、異なる優先度によってキューへ振り分けられます。キュー システムは、一般のキューと、アイテムが少ない人のための "特急" キューを持った、地元の食料品店とよく似ています。画像 19. に一般のキューと、特急・優先キューのイラストを示します。
キュー構造を提供するために、UADP ASIC はイーグレス・キュー・システム (EQS) ブロックを使用します。主要な EQS のコンポーネントは、以下になります。
- ポート キュー
このタイプのキューは、パケットを同じ方法でグループ化して処理できます。複数のキューがあると、ASIC は次のパケットを取得して、送信するキューを選択できます。食料品店の例を使用すると、すべてのキューは 購入された商品を処理する 1 人のレジ係を表します。特急キューは、処理時間を短縮することで、人々が商品の購入を高速に行え、食料品店を出る方法を表しています。
- ポートは物理キューに分割されています
- すべてのキューはパケットをためておくのに使用できる、バッファ / メモリを持ちます
- ポートごとのキューの数は、1 から 8 個を可変して持つことができます
食料品店の例では、人々は彼らが購入した商品の数に応じて列に並んでいます。同様に、パケットも ASIC でキューに割り当てられる必要があります。UADP ASIC では、パケット ディスクリプタからの情報が、キューにパケットを割り当てるために使用されます。パケットがキューに割り当てられると、スケジューリング アルゴリズムはキューで順番を管理するのに役立ちます。優先 / 特急キューを優先できますが、非優先キューの場合は、輻輳を避けるために、ウェイテッド・ラウンド・ロビン (WRR) が使用されます。
なぜ絶対優先キューなのですか ?
絶対優先キューは、ポートで他の通信をすべて抑制することができ、パケットがある限りキューからパケットを送信します。パケットが絶対優先キューにある時、パケットのスケジューリングは WRR キューを停止し、絶対優先キューのパケットが送信されます。絶対優先キューが空である時のみ、スケジューリング プロセスは、WRR キューからパケットの送信を再開します。
画像 21. は絶対優先キューが WRR キューよりも優先される方法を 3 つのステップで表しています。各シーケンスの矢印は、どのキューが初に処理されるをかを示してます。
UADP ASIC は、ポートごとに 1 つのレベル 1 絶対優先キュー (PQ1) と 1 つのレベル 2 絶対優先キュー (PQ2) をサポートします。PQ1 と PQ2 は WRR スケジューリング アルゴリズムの範囲外で動作します。PQ1 の目的は、最小の遅延で音声トラフィックを処理することです。PQ2 は、もう少し遅延を許容することができる、映像トラフィックを処理するために使用されます。
なぜ WRR なのですか ?
通常のラウンド ロビン アルゴリズムは、送信キューの間で交互に動作し、次のキューに移動する前に、それぞれのキューから同じ数のパケットを送信します。WRR の重み付け比率により、スケジューリング アルゴリズムは、各キューに割り当てられた、重み付けを検査できます。この重み付けは、それぞれのキューがどのくらいの帯域幅でアクセスできるか定義します。WRR スケジューリング アルゴリズムは、他のキューよりも高い重み付け (各間隔) の場合に、キューからより多くのデータを取り出せるように、指定されたキューを偏らせて処理します。
画像 22. は、それぞれのキューから送信されるパケットの数が異なることを示しています。なぜならば 1 つのキューが高帯域幅 / 高い重み付けを持っていると、より多くのパケットがそこから送信され、キューはより頻繁に使用されます。
デフォルト キュー構造は、すべての Cisco Catalyst 9000 ファミリ スイッチ間のすべてのポートで共通化され、速度に関係なく、2 つのキュー モデルをベースとします。デフォルトでは、優先とコントロール トラフィックは Q0 に分離されますが、Q0 は優先キューとして動作しません。
デフォルト キュー設定は、カスタム MQC ポリシーによって変更することが可能です。顧客はポリシー マップで明示的に指定されていない場合でも、クラス デフォルトが常に定義する最小の 1 個から 8 個のキューまで柔軟に使用できます。キュー構造は体系を使用して、多くの通常キューと絶対優先キューの数、キューごとに使用可能なしきい値の数を示します。キュー構造タイプのキーワードは、以下になります。 :
- Q : 通常キュー、もしくは UADP ASIC による WRR キューの数を表す
- P : 絶対優先 (低遅延) キューの数を表す
- T : 通常キューごとのしきい値の数を表す 絶対優先キューはしきい値を実装しません
以下はキュー体系の例と、キューに割り当てたトラフィックのマッピングです。
- 8Q3T : 8 つの通常キュー、キューごとに 3 つのしきい値
- 1P7Q3T : 1 つの優先キュー、7 つの通常キュー、キューごとに 3 つのしきい値
- 2P6Q3T : 2 つの優先キュー (レベル 1 と 2)、6 つの通常キュー、キューごとに 3 つのしきい値
以下は MQC ポリシーのサンプルで、キューの優先度を管理するために、クラス マップとポリシー マップを使用します。WRR 帯域幅はキューごとに調整され、バッファ比率は手動で調整されます。しきい値は後のセクションで説明します。
トラフィックをアサインするには、 DSCP , CoS , QoS グループを使用します。 ACL クラシフィケーションは、キューイング ポリシーでは使用できません。
class-map VOICE
match dscp 46
class-map RT-VIDEO
match dscp 32
* クラスマップのその他の部分は省略
クラシフィケーションは、キューにトラフィックをマッピングします
policy-map 2P6Q3T
class VOICE
priority level 1
queue-buffers ratio 5
class RT-VIDEO
priority level 2
queue-buffers ratio 10
class MGT-CONTROL
bandwidth remaining percent 10
queue-buffers ratio 10
class MULTIMEDIA-CONFERENCE
bandwidth remaining percent 10
queue-buffers ratio 10
class MULTIMEDIA-STREAMING
bandwidth remaining percent 10
queue-buffers ratio 10
class TRANSACTIONAL-DATA
bandwidth remaining percent 10
queue-buffers ratio 10
class BULK-SCAVENGER
bandwidth remaining percent 5
queue-buffers ratio 10
class class-default
bandwidth remaining percent 25
queue-buffers ratio 35
interface <name>
service-policy output 2P6Q3T
=> キューイング MQC ポリシーは、output 方向のポリシーのみサポートされます
17.3(1) から、MPLS EXP をベースにした、出力キューイングがサポートされます。
まとめると、UADP 2.0 ASIC とその後のバージョンでは、すべてのポートで固有の設定を持つことで、非常に柔軟なキューイングモデルをサポートし、異なる数の優先キュー、もしくは帯域幅設定を使用できます。
キュー バッファ
キュー バッファは主に以下で使用されます :
- プライオリティ キューが送信を終了するまで、通常キュー・WRR キューで待機させる
- 高レベルのマイクロ バーストの吸収
- 異なる速度のリンク間 (高速 -> 低速) で、トラフィックを保持する
食料品店の例に戻ると、キュー バッファはお店の責任者が人々を別の列に移動し始める前に、どのくらい多くの人々が 1 列に並ぶことができるかを示します。
マイクロ バーストを説明するため、画像 24. に入力トラフィックのレートを示します。この伸びた棒は、処理されたパケットの数が瞬間的に多くなったことを示します。UADP ASIC は、これらのパケットを廃棄することなく、物理メモリに保存できます。
全体の物理バッファが、UADP ASIC の一部をベースとして複数のセグメントに分割されて、メモリ スペースを使用します :
- スタック インターフェースに向かうようにスケジュールされたパケットについて、To-スタック バッファが使用されます これらは IQS UADP ASIC ブロックによって使用されます。
- スタック インターフェースから受信するトラフィックについて、From-スタック バッファが使用されます これらは SQS UADP ASIC ブロックによって使用されます
- 出力ポート キュー バッファは最大のバッファで、ポート キュー構造によって使用されます。このバッファは異なるキュー、もしくはポート間で共有が可能です。それはアクティブ・キュー・マネジメント (AQM) UADP ASIC ブロックによって使用されます。
これらの 2 つのアプローチは、セグメントにバッファを割り当てるためのものです : そのアプローチとは、静的と動的です。UADP ASIC では、To-スタックと From-スタックのバッファ ブロック、つまり IQS と SQS について、固定アプローチを使用します。しかし出力ポートに固定割当バッファを割り当てることは、バースト トラフィックで発生しうるパケットドロップには、効率的に対処できません。UADP ASIC では、デフォルトでは最小の専用バッファをすべてのポートのキューに持たせ、高バーストを吸収するために、共有プールから動的に追加バッファを加えることができます。共有メモリプールの物理スペースは限られており、トラフィック バーストが来た時にポートキューに割り当てられます。
食料品店の例では、顧客はすべての有効なキューに分散するよりも、1 つのキューに長い列を作ると腹立たしく思うでしょう。すでにいっぱいになっているキューに更に多くの人が来た場合、店舗責任者は物理スペースを広げるために、より列の長さが短いキューから、整列用に一時な線を引くでしょう。スイッチでも同じように、キューが輻輳した時には動的により多くの物理スペースを提供するのです。
ダイナミック・スレッショルド (しきい値)・スケール (DTS) アルゴリズムは、マイクロ バーストに対して UADP ASIC のバッファ パフォーマンスを高めるために導入されました。DTS は UADP ASIC の AQM ブロックの一部です。
DTS は以下の利点を提供します。 :
- バーストの間、ポートごと、キューごとに動的な追加バッファを割り当て
- 共有バッファはマイクロ バーストの間、トラフィックのドロップを削減
- 共有バッファと動的割当のバッファの数の間で、バランスを提供
- 柔軟なバッファ管理 : 専用バッファに共有バッファを追加
DTS は以下の機能を動作させます :
- バッファを使用していないポートから、共有プールを作成
- ポートごと、キューごとに設定可能な、専用しきい値の有効化
- グローバルに設定可能な、最大共有しきい値の有効化
- ハード バッファ (専用) とソフト バッファ (共有) 間で、ポートごとにバッファの分割
- 最初に専用バッファを使用し、次に共有プールの消費が公平になるように使用
以下のステップで DTS から共有プールが構築されます :
ステップ 1. DTS はフリーのポートバッファをまとめて、マイクロバーストの間、動的に分散できる 1 つの共有プールを作成します。全体の合計は、まだトラフィックが無いものと仮定します。画像 26. は共有バッファ スペースが作られたことを示しています。
ステップ 2. 共有プールから作成し、バッファを取得してマイクロ バーストが来ているポートキューへ割り当てます。マイクロ バーストが終了すると、バッファは共有プールへ戻されます。画像 27. は共有プールがどのように消費されるかを示しています。
次に DTS のパラメータと、それらが動的割当バッファとしてどのように使用されるか説明します。画像 28. はメイン パラメータとそれらの相関関係を示します。
専用 / ハード バッファ : これは特定のキューで最小予約されるバッファです。UADP ASIC はレベル 1 優先キューにのみ、ハード バッファを使用します。ハード バッファは画像 28. には表示させていません。しかしそれらは "HardMax" コマンドと呼ばれます。
共有 / ソフト バッファ : これらのバッファはポート キューへ動的に割り当てられますが、他のポート キューによっても共有されます。ソフト バッファを管理するためのパラメータは以下です :
● SoftMin: Minimum shared buffer given to the port. By default, a small piece from the shared buffer will be allocated to a non-priority queue to ensure that it can transmit traffic. It can be removed by configuration.
● SoftMax: Maximum buffer units the port queue can consume from the shared pool. This is a configurable parameter with a default of 100.
● Soft Start: The shared buffer is constantly monitored for utilization. If the total buffer utilization reached 75%, the dynamically allocated portions of buffer units per port queue will start to reduce. The higher the shared buffer utilization, the more aggressive the reduction of the buffer units.
● Soft End: Occurs when the shared buffer is fully utilized and cannot provide additional buffers to port queues to absorb micro-bursts (SoftMin and SoftMax are equal). The shared buffer will still provide a SoftMin buffer unit per port queue to ensure that these queues have minimum buffer to transmit, but nothing additional.