「Cisco Catalyst 9000 スイッチング プラットフォーム QoS and キューイング ホワイトペーパー」の版間の差分

提供: hkatou_Lab
ナビゲーションに移動 検索に移動
456行目: 456行目:
  
 
画像 22. は、それぞれのキューから送信されるパケットの数が異なることを示しています。なぜならば 1 つのキューが高帯域幅 / 高い重み付けを持っていると、より多くのパケットがそこから送信され、キューはより頻繁に使用されます。[[ファイル:C90-QoS-22.png|なし|フレーム|画像 22. WRR キューの帯域幅管理]]デフォルト キュー構造は、すべての Cisco Catalyst 9000 ファミリ スイッチ間のすべてのポートで共通化され、速度に関係なく、2 つのキュー モデルをベースとします。デフォルトでは、優先とコントロール トラフィックは Q0 に分離されますが、Q0 は優先キューとして動作しません。[[ファイル:C90-QoS-23.png|なし|フレーム|画像 23. デフォルト トラフィック マッピング]]デフォルト キュー設定は、カスタム MQC ポリシーによって変更することが可能です。顧客はポリシー マップで明示的に指定されていない場合でも、クラス デフォルトが常に定義する最小の 1 個から 8 個のキューまで柔軟に使用できます。キュー構造は体系を使用して、多くの通常キューと絶対優先キューの数、キューごとに使用可能なしきい値の数を示します。キュー構造タイプのキーワードは、以下になります。 :
 
画像 22. は、それぞれのキューから送信されるパケットの数が異なることを示しています。なぜならば 1 つのキューが高帯域幅 / 高い重み付けを持っていると、より多くのパケットがそこから送信され、キューはより頻繁に使用されます。[[ファイル:C90-QoS-22.png|なし|フレーム|画像 22. WRR キューの帯域幅管理]]デフォルト キュー構造は、すべての Cisco Catalyst 9000 ファミリ スイッチ間のすべてのポートで共通化され、速度に関係なく、2 つのキュー モデルをベースとします。デフォルトでは、優先とコントロール トラフィックは Q0 に分離されますが、Q0 は優先キューとして動作しません。[[ファイル:C90-QoS-23.png|なし|フレーム|画像 23. デフォルト トラフィック マッピング]]デフォルト キュー設定は、カスタム 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 クラシフィケーションは、キューイング ポリシーでは使用できません。<syntaxhighlight lang="c">
 +
class-map VOICE
 +
  match dscp 46
 +
 +
class-map RT-VIDEO
 +
  match dscp 32
 +
 +
* クラスマップのその他の部分は省略
 +
 +
クラシフィケーションは、キューにトラフィックをマッピングします
 +
</syntaxhighlight><syntaxhighlight lang="c">
 +
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
 +
</syntaxhighlight><syntaxhighlight lang="c">
 +
interface <name>
 +
  service-policy output 2P6Q3T
 +
=> キューイング MQC ポリシーは、output 方向のポリシーのみサポートされます
 +
</syntaxhighlight>
  
  
 
[[ファイル:C90-QoS-24.png|なし|フレーム|画像 24. トラフィック スパイクとマイクロ バースト]]
 
[[ファイル:C90-QoS-24.png|なし|フレーム|画像 24. トラフィック スパイクとマイクロ バースト]]
 
[[ファイル:C90-QoS-25.png|なし|フレーム|画像 25. UADP ブロックごとのバッファ区分]]
 
[[ファイル:C90-QoS-25.png|なし|フレーム|画像 25. UADP ブロックごとのバッファ区分]]

2021年3月27日 (土) 08:07時点における版

イントロダクション

このドキュメントは、Cisco Catalyst 9000 ファミリ スイッチのクオリティ・オブ・サービス (QoS) とキューイング アーキテクチャについて記載します。バッファ、スケジューリング、ポリシング、リマーキングの機能についての説明です。それは複数のポート間でどのようにバッファを共有するか、オート QoS が簡潔に構築できるか、そしてアプリケーションの要求に応じて、カスタム QoS ポリシーをどのように設定するか、詳細を提供します。

QoS の事例

エンタープライズ ネットワークは、様々なプラットフォームを横断してネットワークに広がり、エンド・ツー・エンドで QoS ソリューションを提供する必要があります。多様なプラットフォームにソリューションを提供するには、多くの場合それぞれの技術において、異なる QoS コンフィギュレーション アプローチを採る必要があります。エンタープライズ ネットワークは、より複雑で、ミッション クリティカル アプリケーションや、日々増大するウェブのマルチメディア アプリケーション トラフィックを運んでおり、QoS はこれらのトラフィックを優先づけすることで、それぞれのアプリケーションが求めるサービス レベルを確実なものにします。

ネットワークは、複雑さが増大するビジネス アプリケーションを扱えなくてはなりません。QoS によりネットワークは差別化という難しいタスクを扱うことができ、ビジネス アプリケーションについて、最も効率的に機器間のリンクを使用します。

QoS は以下のテクニックを追加することにより、ネットワークに保障と予測されたネットワーク トラフィックの選択を助けます。

  • スケジューリングによる、帯域幅の保障
  • 特定のトラフィックの損失の削減
  • ネットワーク輻輳の管理と回避
  • ネットワーク トラフィックのシェーピング
  • ネットワークを横断するトラフィックに、優先順位の設定

上記のテクニックを用いてあなたのネットワークに QoS を実装することで、以下の優位点を得られるでしょう。

  • 帯域幅、レート制限のように、リソースを超えたもののコントロール 例えば、重要なデータベース アクセスを優先するために優先度を与え、FTP 転送はリンク上で消費する帯域幅を制限したりできます。
  • ミッション クリティカル アプリケーションとの共存
    • 時間に敏感なマルチメディアと音声アプリケーションに、要求される帯域幅と最小遅延が提供できます
    • FTP , メール、HTTP , 取引のような他のアプリケーションがリンクを利用するとき、音声のようなミッション クリティカル トラフィックに干渉させず、公平なレベルのサービスを使用できます

さらにネットワークに QoS 機能を実装することで、将来にすべてが統合されたネットワークとなる基盤を手に入れて、輻輳を管理する効率的なテクニックを使用できます

輻輳とは何ですか ?

輻輳は宛先ポートがすべてのパケットを外部へ送信できないときに発生し、いくつかのパケットは想定よりもドロップや遅延が発生します。画像 1. は 2 つのタイプの輻輳で、QoS とキューイングが必要とされるイラストです。

輻輳のタイプ

画像 1. 輻輳のタイプ

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) はこのプラットフォームはより高速なパフォーマンス、多くの新機能と動作を提供します。

画像 2. Cisco Catalyst 9000 ファミリ スイッチ

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 の一部であり、スタックリングへパケットを送出します。専用のバッファがスタック インターフェースに割り当てられ、ユーザは設定で変更することはできません。

画像 3. Cisco Catalyst 9200 シリーズ デュアル 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 の一部であり、スタックリングへパケットを送出します。専用のバッファがスタック インターフェースに割り当てられ、ユーザは設定で変更することはできません。

画像 4. Cisco Catalyst 9300 シリーズ デュアル 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 リソースを含んでいます。中央処理デザインのシンプルさは、既存のラインカードをそのまま使用しつつ、将来スーパーバイザをアップグレードすることで、機能を簡単にアップグレードできる点にあります。

画像 5. Cisco Catalyst 9400 シリーズ アーキテクチャ

スーパーバイザ アーキテクチャは 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 のまとめです。

表 1. Cisco Catalyst 9500 シリーズの UADP バージョン
モデル 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 の接続を示します。

画像 6. Cisco Catalyst 9500 シリーズ UADP 2.0 XL ベース モデルのアーキテクチャ
画像 7. Cisco Catalyst 9500 シリーズ ハイパフォーマンス UADP 3.0 ベース モデルのアーキテクチャ

ハイパフォーマンス系のすべてのスイッチは UADP 3.0 ASIC を使用し、2 つの ASIC コアの間でユニファイド バッファをサポートします。これはバースト トラフィックの吸収量を増加でき、スイッチのすべてのポート間で、1 つの共有バッファを持つことになります。

画像 8. UADP 2.0 (と 2.0 XL) と UADP 3.0 のバッファの違い
Cisco Catalyst 9600 シリーズ アーキテクチャ

Cisco Catalyst 9600 シリーズ スイッチは、中央処理アーキテクチャをベースにしており、スーパーバイザですべてのパケットが処理されることを意味します。ラインカードはスタブ ASICs と PHYs のみを持っており、透過的であると考えることができます。結果として、スーパーバイザにすべての QoS のリソースが存在しており、それはポートごとのバッファとその他の QoS リソースを含んでいます。中央処理デザインのシンプルさは、既存のラインカードをそのまま使用しつつ、将来スーパーバイザをアップグレードすることで、機能を簡単にアップグレードできる点にあります。

画像 9. Cisco Catalyst 9600 シリーズ アーキテクチャ

スーパーバイザ アーキテクチャは UADP 3.0 がベースになっており、Cisco Catalyst 9500 で使用されている UADP 2.0 XL と比較して QoS はより大きなテーブルを持っており、ASIC コア間はユニファイド バッファになります。

画像 10. Cisco Catalyst 9600 シリーズ 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 の外に送信されます。

画像 11. UADP ASIC コンポーネント


パケット ウォークは QoS 処理の観点から、4 つのパートに分割することができます。

  1. イングレス・フォワーディング・コントローラによる、入力分類 (イングレス クラシフィケーション)、ポリシング、マーキングが動作
  2. イングレス・キュー・スケジューリング (IQS) とスタック・キューイング・アンド・スケジューリング (SQS) ブロックによる、スタック インターフェースへのキューイングが動作
  3. アクティブ・キュー・マネージメント (AQM) による、出力キューイングとスケジューリングが動作
  4. イーグレス・フォワーディング・コントローラ (EFC) による、出力分類、ポリシング、マーキングが動作

画像 12. は 4 つのパートの描写です。それぞれのステップは後のセクションで詳細を記載します。

画像 12. ASIC ブロックごとの QoS ツール

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 ポリシー構造を示しています。

画像 13. MQC ポリシーの仕組み

画像 14. は、QoS ポリシーのサンプルを示しています。

画像 14. MQC サンプル ポリシー

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 ツールです。このセクションでは、超過したトラフィックを早急にドロップさせることで、ポリサーがどのようにトラフィック削減を実現しているか説明します。

画像 15. ポリサーの動作

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. ポリサー トークンが満ちる間隔

画像 16. に見られるように、データは与えられた時間間隔でスイッチに到着し始めて、データの総数が定義されたレート (その間隔で) 内に収まる限り転送されます。データカウントが与えられた時間間隔でレートの限界を超えると、次のハードウェア インターバルが始まるまで、データは転送されません。

ハードウェア間隔は通常、CIR が使用される時 Tc" として、PIR の時は "Tp" と呼ばれます。


ポリサー設定

Cisco Catalyst 9000 ファミリ スイッチは、1 レートと 2 レートポリサーをサポートします。画像 17. で、ポリサーの動作順を説明します。

画像 17. UADP ASIC のポリサーのタイプ

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. はヘッダの変換をサポートするリストです。

テーブル 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" を使用するキュー構造を示します。

画像 18. ASIC コア間の接続

パケットは出力ポートのスケジューラへ送信され、画像 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. に一般のキューと、特急・優先キューのイラストを示します。

画像 19. 食料品店における行列のタイプの違い

キュー構造を提供するために、UADP ASIC はイーグレス・キュー・システム (EQS) ブロックを使用します。主要な EQS のコンポーネントは、以下になります。

  • ポート キュー

このタイプのキューは、パケットを同じ方法でグループ化して処理できます。複数のキューがあると、ASIC は次のパケットを取得して、送信するキューを選択できます。食料品店の例を使用すると、すべてのキューは 購入された商品を処理する 1 人のレジ係を表します。特急キューは、処理時間を短縮することで、人々が商品の購入を高速に行え、食料品店を出る方法を表しています。

画像 20. フロントパネル ポート キュー
  • ポートは物理キューに分割されています
  • すべてのキューはパケットをためておくのに使用できる、バッファ / メモリを持ちます
  • ポートごとのキューの数は、1 から 8 個を可変して持つことができます

食料品店の例では、人々は彼らが購入した商品の数に応じて列に並んでいます。同様に、パケットも ASIC でキューに割り当てられる必要があります。UADP ASIC では、パケット ディスクリプタからの情報が、キューにパケットを割り当てるために使用されます。パケットがキューに割り当てられると、スケジューリング アルゴリズムはキューで順番を管理するのに役立ちます。優先 / 特急キューを優先できますが、非優先キューの場合は、輻輳を避けるために、ウェイテッド・ラウンド・ロビン (WRR) が使用されます。


なぜ絶対優先キューなのですか ?

絶対優先キューは、ポートで他の通信をすべて抑制することができ、パケットがある限りキューからパケットを送信します。パケットが絶対優先キューにある時、パケットのスケジューリングは WRR キューを停止し、絶対優先キューのパケットが送信されます。絶対優先キューが空である時のみ、スケジューリング プロセスは、WRR キューからパケットの送信を再開します。

画像 21. は絶対優先キューが WRR キューよりも優先される方法を 3 つのステップで表しています。各シーケンスの矢印は、どのキューが初に処理されるをかを示してます。

画像 21. WRR キューと比較した、絶対優先キューの処理

The UADP ASIC supports one strict priority level 1 Queue (PQ1) and one strict priority level 2 Queue (PQ2) per port. PQ1 and PQ2 operate outside of the bounds set by the WRR scheduling algorithm. The purpose of PQ1 is to process voice traffic with minimal latency. PQ2 is used to process video traffic, which can tolerate more latency.

UADP ASIC は、ポートごとに 1 つのレベル 1 絶対優先キュー (PQ1) と 1 つのレベル 2 絶対優先キュー (PQ2) をサポートします。PQ1 と PQ2 は WRR スケジューリング アルゴリズムの範囲外で動作します。PQ1 の目的は、最小の遅延で音声トラフィックを処理することです。PQ2 は、もう少し遅延を許容することができる、映像トラフィックを処理するために使用されます。

なぜ WRR なのですか ?

通常のラウンド ロビン アルゴリズムは、送信キューの間で交互に動作し、次のキューに移動する前に、それぞれのキューから同じ数のパケットを送信します。WRR の重み付け比率により、スケジューリング アルゴリズムは、各キューに割り当てられた、重み付けを検査できます。この重み付けは、それぞれのキューがどのくらいの帯域幅でアクセスできるか定義します。WRR スケジューリング アルゴリズムは、他のキューよりも高い重み付け (各間隔) の場合に、キューからより多くのデータを取り出せるように、指定されたキューを偏らせて処理します。

画像 22. は、それぞれのキューから送信されるパケットの数が異なることを示しています。なぜならば 1 つのキューが高帯域幅 / 高い重み付けを持っていると、より多くのパケットがそこから送信され、キューはより頻繁に使用されます。

画像 22. WRR キューの帯域幅管理

デフォルト キュー構造は、すべての Cisco Catalyst 9000 ファミリ スイッチ間のすべてのポートで共通化され、速度に関係なく、2 つのキュー モデルをベースとします。デフォルトでは、優先とコントロール トラフィックは Q0 に分離されますが、Q0 は優先キューとして動作しません。

画像 23. デフォルト トラフィック マッピング

デフォルト キュー設定は、カスタム MQC ポリシーによって変更することが可能です。顧客はポリシー マップで明示的に指定されていない場合でも、クラス デフォルトが常に定義する最小の 1 個から 8 個のキューまで柔軟に使用できます。キュー構造は体系を使用して、多くの通常キューと絶対優先キューの数、キューごとに使用可能なしきい値の数を示します。キュー構造タイプのキーワードは、以下になります。 :

  • Q : 通常キュー、もしくは UADP ASIC による WRR キューの数を表す
  • P : 絶対優先 (低遅延) キューの数を表す
  • T : 通常キューごとのしきい値の数を表す 絶対優先キューはしきい値を実装しません

以下はキュー体系の例と、キューに割り当てたトラフィックのマッピングです。

  1. 8Q3T : 8 つの通常キュー、キューごとに 3 つのしきい値
  2. 1P7Q3T : 1 つの優先キュー、7 つの通常キュー、キューごとに 3 つのしきい値
  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 方向のポリシーのみサポートされます


画像 24. トラフィック スパイクとマイクロ バースト
画像 25. UADP ブロックごとのバッファ区分