スイッチ : Cisco Catalyst 6500 シリーズ スイッチ

CatOS システム ソフトウェアが稼働している Catalyst 6500/6000 シリーズ スイッチの QoS 出力スケジューリング

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2008 年 5 月 29 日) | 英語版 (2015 年 9 月 19 日) | フィードバック


目次


概要

出力スケジューリングにより、加入過多が過剰に発生した場合に重要なトラフィックが廃棄されなくなります。 このドキュメントでは、Catalyst OS(CatOS)システム ソフトウェアが稼働する Catalyst 6500/6000 シリーズ スイッチでの出力スケジューリングに関連するテクニックとアルゴリズムについて包括的に説明しています。 また、このドキュメントでは Catalyst 6500/6000 スイッチのキューイング機能についての簡単な概要を提供し、出力スケジューリングのさまざまなパラメータを設定する方法についても説明しています。

Cisco IOS を実行すればか。 Catalyst 6500/6000 のソフトウェアは、詳細については Cisco IOS システム ソフトウェアが稼働している Catalyst 6500/6000 シリーズ スイッチの QoS 出力スケジューリングを示します。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントの例は、Supervisor Engine 1A と Policy Feature Card(PFC; ポリシー フィーチャ カード)を搭載した Catalyst 6000 で作成されたものです。 しかし、これらの例は PFC2 を搭載した Supervisor Engine 2 や PFC3 を搭載した Supervisor Engine 720 でも有効です。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

出力キューでの廃棄

出力キューでの廃棄はインターフェイスの輻輳によって発生します。 通常、この原因としては、高帯域幅リンクからのトラフィックが低帯域幅リンクにスイッチングされているか、あるいは複数の着信リンクからのトラフィックが単一の発信リンクにスイッチングされていることが考えられます。

たとえば、バースト トラフィックが大量にギガビット インターフェイスに流れ込み、それが 100 Mbps インターフェイスにスイッチングされると、100 Mbps インターフェイスの出力廃棄が増加する場合があります。 これは、着信側の帯域幅と発信側の帯域幅との間で速度のミスマッチがあるため、インターフェイスの出力キューが過度のトラフィックによってあふれるためです。 発信インターフェイスのトラフィック レートでは、発信する必要があるすべてのパケットを受け入れられません。

この問題を解決する最善の方法は、回線速度を上げることです。 ただし、回線速度を上げたくない場合に、出力の廃棄を防止、減少、または制御する方法があります。 出力廃棄の防止は、短時間のデータ バーストの結果として出力廃棄が発生している場合にだけ可能です。 恒常的な高レートのフローによって出力の廃棄が引き起こされている場合、廃棄を防ぐことはできません。 ただし、出力廃棄を制御することはできます。

Catalyst 6500/6000 の出力スケジューリングに関連するキューイングの種類

テール ドロップ

テール ドロップは基本的な輻輳回避メカニズムです。 テール ドロップでは、輻輳中にキューがいっぱいになり始めると、Class of Service(CoS; サービス クラス)が区別されず、すべてのトラフィックが均等に処理されます。 出力キューがおよびテール ドロップが有効になる時、パケットは輻輳が排除され、キューがもはや充満状態ではなくならないまで廃棄されます。 テール ドロップは最も基本的なタイプの輻輳回避であり、QoS パラメータはまったく考慮されません。

Catalyst 6000 には、バッファの使用率が特定の割合になると特定の CoS が指定されたすべてのパケットが廃棄されるようになっている拡張版のテール ドロップ輻輳回避が実装されています。 重み付けテール ドロップでは、しきい値のセットが定義され、CoS が各しきい値に関連付けられます。 このセクションの例では、4 つのしきい値が考えられます。 各しきい値の定義は次のとおりです。

  • しきい値 1 には、バッファの使用率が 50 % になると到達します。 CoS 0 と 1 が、このしきい値に割り当てられています。

  • しきい値 2 には、バッファの使用率が 60 % になると到達します。 CoS 2 と 3 が、このしきい値に割り当てられています。

  • しきい値 3 には、バッファの使用率が 80 % になると到達します。 CoS 4 と 5 が、このしきい値に割り当てられています。

  • しきい値 4 には、バッファの使用率が 100 % になると到達します。 CoS 6 と 7 が、このしきい値に割り当てられています。

図 1 のダイアグラムでは、バッファの使用率が 50 % になると、CoS 0 または 1 のすべてのパケットが廃棄されます。 バッファの使用率が 60 % になると、CoS 0、1、2、または 3 のすべてのパケットが廃棄されます。 バッファが完全にいっぱいになると、CoS 6 または 7 のパケットが廃棄されます。

図 1

/image/gif/paws/10582/60a.gif

バッファの使用率が特定のしきい値を下回ると、以降、関連する CoS のパケットは廃棄されなくなります。

ランダム早期検出と重み付けランダム早期検出

Weighted random early detection(WRED; 重み付けランダム早期検出)とは、バッファの使用率が定義されたしきい値に達すると、特定の IP 優先順位でパケットをランダムに廃棄する、輻輳回避メカニズムです。 WRED は、下記の 2 つの機能の組み合せです。

  • テール ドロップ

  • Random Early Detection(RED; ランダム早期検出)

RED では、優先順位や CoS は考慮されません。 RED では、バッファの使用率がしきい値に達すると、単一のしきい値の 1 つが使用されます。 RED ではランダムなパケットの廃棄が開始され(ただしテール ドロップのようにすべてのパケットではありません)、最大(Max)のしきい値に達するまでこれが続きます。 最大のしきい値に達すると、すべてのパケットが廃棄されます。 パケットが廃棄される確率は、バッファの使用率がしきい値を超えて増加すると、直線的に増加します。 図 2 のダイアグラムでは、パケットが廃棄される確率を示しています。

図 2:パケット廃棄確率

60b.gif

このダイヤグラムのマーク確率はREDで調整できます。つまり、このリニア廃棄確率のスロープは調節可能であることになります。

RED と WRED は、TCP ベースのトラフィックでは非常に有用な輻輳回避メカニズムです。 他のタイプのトラフィックに対しては、RED はそれほど効率的ではありません。 これは、TCP で輻輳の管理に使用されるウィンドウ方式のメカニズムを RED が利用しているためです。 RED では、複数の TCP セッションが同じルータ ポートを通過する際にルータで発生する一般的な輻輳が回避されます。 このメカニズムは、グローバル ネットワーク同期と呼ばれます。 図 3 のダイアグラムでは、RED が負荷に対してどのようにスムージング効果を及ぼすかが示されています。

図 3 – 輻輳回避のための RED

60c.gif

RED でどのように輻輳が削減され、ルータを通過するトラフィックが平滑化されるかについての詳細は、ドキュメント『輻輳回避の概要』の「ルータが TCP と相互対話する方法」セクションを参照してください。

WRED と RED はどちらも、いくつかの最小(Min)しきい値を定義して、それらの最小しきい値に到達したときにパケットがランダムに廃棄されるという点で似ています。 また、WRED では特定の最大しきい値も定義され、それらの最大しきい値に到達すると、すべてのパケットが廃棄されます。 WRED では、さらに CoS が認識されています。つまり、1 つまたは複数の CoS 値が各最大しきい値と最小しきい値のペアに追加されることを意味します。 最小しきい値を超えると、パケットは割り当てられた CoS でランダムに廃棄されます。 キューに 2 つのしきい値を持つ、次の例について考えます。

  • CoS 0 と 1 が最小しきい値 1 と最大しきい値 1 に割り当てられます。最小しきい値 1 はバッファの使用率 50 %、最大しきい値 1 は 80 % に設定されています。

  • CoS 2 と 3 が最小しきい値 2 と最大しきい値 2 に割り当てられます。最小しきい値 2 はバッファの使用率 70 %、最大しきい値 2 は 100 % に設定されています。

バッファが最小しきい値(50 %)を超えると、CoS 0 と 1 のパケットはランダムに廃棄され始めます。 バッファ使用率が増加すると、さらに多くのパケットが廃棄されます。 最小しきい値 2(70 %)に達すると、CoS 2 と 3 のパケットはランダムに廃棄され始めます。

この段階で、CoS 0 と 1 のパケットの廃棄確率は、CoS 2 または CoS 3 のパケット廃棄確率よりもはるかに大きくなります。

最大しきい値 2 に到達すると、常に、CoS 0 と 1 のパケットはすべて廃棄され、CoS 2 と 3 のパケットはランダムに廃棄され続けます。 最終的には、100 %(最大しきい値 2)に到達すると、CoS 2 と 3 のすべてのパケットが廃棄されます。

図 4図 5 のダイアグラムでは、これらのしきい値の例が説明されています。

図 4:最小しきい値と最大しきい値の 2 つのセット(2 つのサービス)を使用する WRED

/image/gif/paws/10582/60d.gif

図 5:2 つのサービス セットを使用する WRED(ただし両方の最小しきい値は 0)

/image/gif/paws/10582/60e.gif

初期の CatOS の WRED の実装では、最大しきい値だけが設定され、最小しきい値は 0 % にハード コードされていました。 図 5 のダイアグラムの下部では、動作の結果が強調表示されています。

廃棄確率は常に最小しきい値より上であるため、パケットの廃棄確率は常にヌル以外です。 この動作はソフトウェア バージョン 6.2 以降では修正されています。

ウエイテッド ラウンドロビン

重み付けラウンドロビン (WRR)は Catalyst 6000 の出力スケジューリングのためのもう一つのメカニズムです。 WRR は 2 つ以上のキューの間で動作します。 WRR では、キューはラウンドロビン方式で(送信処理されて)空になり、さらに各キューの重み付けを設定できます。 デフォルトで、ポートに Catalyst 6000 の 2 つの WRR キューがあります。 デフォルトは次のとおりです:

  • 高優先度 WRR キューに 70 % の時間を使用

  • 低優先度 WRR キューに 30 % の時間を使用

図 6 のダイアグラムには、WRR 方式で 3 つのキューを持つ WRR が示されています。 高優先度キュー(赤いパケット)では、他の 2 つのキューよりも多くのパケットが送信されます。

図 6 –出力スケジューリング: WRR

60f.gif

6500 のほとんどのラインカードには、帯域幅ごとの WRR が実装されています。 帯域幅ごとの WRR のこの実装では、スケジューラによりキューのパケット送信が許可されるたびに、特定のバイト数が送信されることになります。 このバイト数には、パケットを複数取り込むことができます。 たとえば、一度に 5120 バイトを送信するようになっている場合、1518 バイト パケットを 3 つ、合計で 4554 バイトを送信できます。 超過バイトは失われます(5120 - 4554 = 566 バイト)。 したがって、極端な重み付け(queue 1 に 1 %、queue 2 に 99 % など)の場合、設定した重み付けのとおりにならない可能性があります。 重み付けを厳密に達成する上でのこの障害は、比較的大きいパケットで頻繁に発生します。

6548-RJ-45 のような一部の新世代のラインカードでは、Deficit Weighted Round-Robin(DWRR)の実装により、この制限が克服されています。 DWRR では送信はキューから行われますが、低優先度キューが滞ることはありません。 DWRR では送信中の低優先度キューのトラッキングが継続され、次のラウンドで補正されます。

完全優先キュー

Catalyst 6000 の他のタイプのキューに完全優先キューがあり、常に最初に(送信処理されて)空になります。 完全優先キューにパケットがあると、パケットは即座に送信されます。

WRR キューや WRED キューがチェックされるのは、完全優先キューが空になった後だけです。 WRR キューまたは WRED キューのいずれかから各パケットが送信されたると、完全優先キューがチェックされ、必要な場合は(送信処理されて)空になります。

1p2q1t、1p3q8t および 1p7q8t に類似するキューイング タイプが使用されるすべてのラインカードでは、DWRR が使用されています。 これ以外のラインカードは、標準 WRR が使用されています。

Catalyst 6000 のさまざまなラインカードの出力キューイング機能

show port コマンドの機能

ポートのキューイング機能についてよくわからない場合は、show port capabilities コマンドを発行できます。 WS-X6408-GBIC ラインカードでの、このコマンドの出力を次に示します。

Model                  WS-X6408-GBIC
Port                   4/1
Type                   No GBIC
Speed                  1000
Duplex                 full
Trunk encap type       802.1Q,ISL
Trunk mode             on,off,desirable,auto,nonegotiate
Channe                 yes
Broadcast suppression  percentage(0-100)
Flow control           receive-(off,on,desired),send-(off,on,desired)
Security               yes
MembershIP             static,dynamic
Fast start             yes
QOS scheduling         rx-(1q4t),tx-(2q2t)
CoS rewrite            yes
ToS rewrite            DSCP
UDLD                   yes
SPAN                   source,destination
COPS port group        none

このポートには、2q2t と呼ばれるキューイング出力のタイプが備わっています。

ポートのキューイング機能について

Catalyst 6500/6000 スイッチでは、複数のタイプのキューが利用可能です。 このセクションの表は、新しいラインカードがリリースされると不完全になる可能性があります。 新しいラインカードでは、新しいキューイングの組合せが導入される可能性があります。 Catalyst 6500/6000 スイッチ モジュールで利用可能なすべてのキューイングについての最新の説明は、使用している CatOS バージョンの『Catalyst 6500 シリーズ ソフトウェア ドキュメンテーション』にある「QoS の設定」セクションを参照してください。

Cisco Communication Media Module(CMM)では、すべての QoS 機能がサポートされているわけではありせん。 サポートされている機能を判別するには、ご使用の特定ソフトウェア リリースのリリース ノートを確認してください。

次の表には、ポート QoS アーキテクチャの表記法が説明されています。

— —
Tx1/Rx2 ide キュー表記 キューの数 優先キュー WRR キューの数 WRR キューのしきい値のタイプと数
Tx 2q2t 2 2 2 つの設定可能なテール ドロップ
Tx 1p2q2t 3 1 2 2 つの設定可能な WRED
Tx 1p3q1t 4 1 3 1 つの設定可能な WRED
Tx 1p2q1t 3 1 2 1 つの設定可能な WRED
Rx 1q4t 1 1 4 つの設定可能なテール ドロップ
Rx 1p1q4t 2 1 1 4 つの設定可能なテール ドロップ
Rx 1p1q0t 2 1 1 設定不可
Rx 1p1q8t 2 1 1 8 つの設定可能な WRED

1 Tx = 送信

2 Rx = 受信

次の表には、すべてのモジュールとインターフェイスやポートの Rx と TX 側のキューのタイプがリストされています。

モジュール Rx キュー Tx キュー
WS-X6K-S2-PFC2 1p1q4t 1p2q2t
WS-X6K-SUP1A-2GE 1p1q4t 1p2q2t
WS-X6K-SUP1-2GE 1q4t 2q2t
WS-X6501-10GEX4 1p1q8t 1p2q1t
WS-X6502-10GE 1p1q8t 1p2q1t
WS-X6516-GBIC 1p1q4t 1p2q2t
WS-X6516-GE-TX 1p1q4t 1p2q2t
WS-X6416-GBIC 1p1q4t 1p2q2t
WS-X6416-GE-MT 1p1q4t 1p2q2t
WS-X6316-GE-TX 1p1q4t 1p2q2t
WS-X6408A-GBIC 1p1q4t 1p2q2t
WS-X6408-GBIC 1q4t 2q2t
WS-X6524-100FX-MM 1p1q0t 1p3q1t
WS-X6324-100FX-SM 1q4t 2q2t
WS-X6324-100FX-MM 1q4t 2q2t
WS-X6224-100FX-MT 1q4t 2q2t
WS-X6548-RJ-21 1p1q0t 1p3q1t
WS-X6548-RJ-45 1p1q0t 1p3q1t
WS-X6348-RJ-21 1q4t 2q2t
WS-X6348-RJ21V 1q4t 2q2t
WS-X6348-RJ-45 1q4t 2q2t
WS-X6348-RJ-45V 1q4t 2q2t
WS-X6148-RJ-45V 1q4t 2q2t
WS-X6148-RJ21V 1q4t 2q2t
WS-X6248-RJ-45 1q4t 2q2t
WS-X6248A-TEL 1q4t 2q2t
WS-X6248-TEL 1q4t 2q2t
WS-X6024-10FL-MT 1q4t 2q2t

Catalyst 6500/6000 での QoS の作成

QoS 作成には Catalyst 6500/6000 の 3 つのフィールドが使用されます。

  • IP 優先順位:IP ヘッダーの Type of Service(ToS)フィールドの上位 3 ビット

  • Differentiated Services Code Point(DSCP; DiffServ コード ポイント):IP ヘッダー内の ToS フィールドの上位 6 ビット

  • CoS:レイヤ 2(L2)レベルで使用される 3 ビット

    これらの 3 ビットは、Inter-Switch Link(ISL)ヘッダーの一部か、IEEE 802.1Q(dot1q)タグ内のどちらかにあります。 タグの付いていないイーサネット パケットの内部には、CoS はありません。

Catalyst 6500/6000 の出力スケジューリング メカニズム

送出されるデータバスからフレームが送信される際には、パケットの CoS が考慮対象の唯一のパラメータになります。 その後、パケットはスケジューラを通り、ここでパケットが入れられるキューが選択されます。 したがって、このドキュメントで説明されている出力スケジューリングとすべてのメカニズムは CoS 認識だけであることに注意してください。

Multilayer Switch Feature Card(MSFC; マルチレイヤ スイッチ フィーチャ カード)を搭載した Catalyst 6500/6000 では、パケットを分類するために内部 DSCP が使用されます。 QoS がイネーブルに設定された Catalyst 6500/6000 では、PFC レベルで転送決定がされる際に DSCP 値が割り当てられます。 この DSCP は、非 IP パケットを含むあらゆるパケットに割り当てられ、出力スケジューリングをイネーブルにするために CoS にマッピングされます。 DSCP から Catalyst 6500/6000 の CoS 値にマッピングを設定できます。 デフォルト値を残す場合、DSCP から CoS を得ることができます。 式は次のようになります。

DSCP_value / 8

さらに、パケットがタグ付の ISL か dot1q(非ネイティブの VLAN)の IP パケットである場合、DSCP 値は発信パケットの CoS にマップされます。 DSCP 値は、IP ヘッダーの ToS フィールドの内部にも書かれています。

図 7 のダイアグラムは、1p2q2t キューを示しています。 WRR キューは WRR スケジューラにより(送信処理されて)空にされます。 また、完全優先キューの中に何かあるかどうかを判断するために、WRR キューからの各パケット間をチェックするアービターがあります。

図 7

/image/gif/paws/10582/60g.gif

  1. IP ヘッダー の ToS フィールドと 802.1p/ISL CoS フィールドが書き換えられます。

  2. スケジューリング キューおよびしきい値は、設定可能なマップを通して、CoS に基づいて選択されます。

  3. 各キューのサイズとしきい値は設定可能で、一部のキューには WRED が設定されています。

  4. デキューイングでは、2 つのキュー間で WRR が使用されます。

  5. 発信カプセル化は、dot1q、ISL、または、なしです。

Catalyst 6500/6000 の設定、モニタリング、および出力スケジューリング

Catalyst 6500/6000 の QoS のデフォルト設定

このセクションでは、Catalyst 6500/6000 のデフォルト QoS 設定からのサンプル出力と、これらの値の意味と値の調整方法についての情報を提供しています。

このコマンドを発行すると、QoS はデフォルトでディセーブルにされます。

set qos disable

次のリストのコマンドは、2q2t ポートでの各 CoS のデフォルトの割り当てを示しています。 queue 1 には最初のしきい値に CoS 0 と 1 が割り当てられており、2 番目のしきい値に CoS 2 と 3 が割り当てられています。 queue 2 には最初のしきい値に CoS 4 と 5 が割り当てられており、2 番目のしきい値に CoS 6 と 7 が割り当てられています。

set qos map 2q2t tx 1 1 cos 0

set qos map 2q2t tx 1 1 cos 1

set qos map 2q2t tx 1 2 cos 2

set qos map 2q2t tx 1 2 cos 3

set qos map 2q2t tx 2 1 cos 4

set qos map 2q2t tx 2 1 cos 5

set qos map 2q2t tx 2 2 cos 6

set qos map 2q2t tx 2 2 cos 7

次のコマンドでは、各キューの 2q2t ポートでのデフォルトのしきい値レベルが表示されます。

set qos drop-threshold 2q2t tx queue 1 80 100

set qos drop-threshold 2q2t tx queue 2 80 100

各 WRR キューにはデフォルトの重み付けを割り当てられます。 queue 1 と queue 2 にデフォルトの重み付けを割り当てるには、このコマンドを発行します。

低優先度キューには時間の 5/260 の割合が使用され、高優先度キューには時間の 255/260 の割合が使用されます。

set qos wrr 2q2t 5 255

バッファ アベイラビリティの合計が、2 つのキュー間で分割されます。 低優先度キューは、利用可能なバッファの 80 % に正しく割り当てられます。これは、パケットがバッファリングされて、しばらくそのままでいる可能性が高いキューであるためです。 アベイラビリティを定義するためには、次のコマンドを発行します。

set qos txq-ratio 2q2t 80 20

次の設定では、1p2q2t ポートに関する同様の設定を表示できます。

set qos map 1p2q2t tx 1 1 cos 0

set qos map 1p2q2t tx 1 1 cos 1

set qos map 1p2q2t tx 1 2 cos 2

set qos map 1p2q2t tx 1 2 cos 3

set qos map 1p2q2t tx 2 1 cos 4

set qos map 1p2q2t tx 3 1 cos 5

set qos map 1p2q2t tx 2 1 cos 6

set qos map 1p2q2t tx 2 2 cos 7

set qos wrr 1p2q2t 5 255

set qos txq-ratio 1p2q2t 70 15 15

set qos wred 1p2q2t tx queue 1 80 100

set qos wred 1p2q2t tx queue 2 80 100

デフォルトでは、完全優先キューには CoS 5(音声トラフィック)が割り当てられています。

設定

設定の最初のステップは、QoS をイネーブルにすることです。 QoS はデフォルトでは無効になっていることに注意してください。 QoS が無効のときは、CoS マッピングは無関係です。 FIFO で使用される単一のキューがあり、そこにすべてのパケットがキューイングされます。

bratan> (enable) set qos enable

QoS is enabled

bratan> (enable) show qos status

QoS is enabled on this switch

キューまたはキュー タイプすべてに関するしきい値に、CoS 値を割り当てる必要があります。 ポートの 2q2t タイプに対して定義されるマッピングは、1p2q2t のポートには適用されません。 また、2q2t 用に作成されるマッピングは、2q2t のキューイング メカニズムを備えたすべてのポートに適用されます。 次のコマンドを発行します。

set qos map queue_type tx Q_number threshold_number cos value

キューには、常に優先順位が最も低いキューから始まり、利用可能な完全優先キューで終わる番号がつけられます。 次に例を示します。

  • queue 1 は、低優先度 WRR キューです。

  • queue 2 は、高優先度 WRR キューです。

  • queue 3 は、完全優先キューです。

すべてのタイプのキューに対して、この操作を繰り返し実行する必要があります。 これを行わない場合は、デフォルトの CoS 割り当てが保持されます。 次に 1p2q2t の例を示します。

設定

set qos map 1p2q2t tx 1 1 cos 0

!--- This is the low-priority WRR queue threshold 1, CoS 0 and 1.

set qos map 1p2q2t tx 1 1 cos 1 and 1

set qos map 1p2q2t tx 1 2 cos 2

!--- This is the low-priority WRR queue threshold 2, CoS 2 and 3.

set qos map 1p2q2t tx 1 2 cos 3 and 3

set qos map 1p2q2t tx 2 1 cos 4

!--- This is the high-priority WRR queue threshold 1, CoS 4.

set qos map 1p2q2t tx 3 1 cos 5

!--- This is the strict priority queue, CoS 5.

set qos map 1p2q2t tx 2 1 cos 6

!--- This is the high-priority WRR queue threshold 2, CoS 6.

set qos map 1p2q2t tx 2 2 cos 7 and 7

コンソール出力

tamer (enable) set qos map 1p2q2t tx 1 1 cos 0

QoS tx priority queue and threshold mapped to cos successfully

WRR の重み付けを 2 つの WRR キューに設定する必要があります。 次のコマンドを発行します。

set qos wrr Q_type weight_1 weight_2

weight_1 は queue 1 に関連し、これは低優先度の WRR キューである必要があります。 weight_1 は、weight_2 よりも常に低い状態にしてください。 重み付けは、1 から 255 までの任意の値にできます。 これらの数式によってパーセントを割り当てることができます:

  • キュー 1:

    weight_1 / (weight_1 + weight_2)
  • キュー 2:

    weight_2 / (weight_1 + weight_2)

また、さまざまなタイプのキューに対する重み付けを定義する必要があります。 重み付けは同じである必要はありません。 たとえば、2q2t では、queue 1 には時間の 30 % が使用され、queue 2 には時間の 70 % が使用されます。重み付けを定義するには、次のコマンドを発行します。

set qos wrr 2q2t 30 70

!--- This ensures that the high-priority WRR queue is served 70 percent of the time
!--- and that the low-priority WRR queue is served 30 percent of the time.

コンソール出力

tamer (enable) set qos wrr 2q2t 30 70

QoS wrr ratio is set successfully

送信キュー比率も定義する必要があります。送信キュー比率とは、異なるキュー間でバッファが分割される方法を示します。 次のコマンドを発行します。

set qos txq-ratio port_type queuel_val queue2_val ... queueN_val

3 つのキュー(1p2q2t)がある場合は、ハードウェア上の理由から、高優先度の WRR キューと完全優先キューを同じレベルに設定する必要があります。

設定

set qos txq-ratio 1p2q2t 70 15 15

!--- This gives 70 percent of the buffer of all 1p2q2t ports to the low-priority WRR
!--- queue and gives 15 percent to each of the other two queues.

set qos txq-ratio 2q2t 80 20

!--- This gives 80 percent of the buffer to the low-priority queue,
!--- and gives 20 percent of the buffer to the high-priority queue.

コンソール出力

tamer (enable) set qos txq-ratio 1p2q2t 70 15 20

Queue ratio values must be in range of 1-99 and add up to 100
Example: set qos txq-ratio 2q2t 20 80

tamer (enable) set qos txq-ratio 1p2q2t 70 30 30

Queue ratio values must be in range of 1-99 and add up to 100
Example: set qos txq-ratio 2q2t 20 80

tamer (enable) set qos txq-ratio 1p2q2t 80 10 10

QoS txq-ratio is set successfully

このコンソール出力が説明すると同時に、キュー 値の合計は 100 である必要があります。 このキューがほとんどのバッファリングを必要とするので低優先順位WRR キューのためのバッファの最も大きい一部を残して下さい。 他のキューは高い優先順位で使用されます。

最後のステップとして、WRED キューまたはテール ドロップ キューにしきい値レベルを設定します。 次のコマンドを発行します。

set qos wred port_type [tx] queue q_num thr1 thr2 ... thrn


set qos drop-threshold port_type tx queue q_num thr1 ... thr2

設定

set qos drop-threshold 2q2t tx queue 1 50 80

!--- For low-priority queues in the 2q2t port, the first threshold is defined at 50
!--- percent and the second threshold is defined at 80 percent of buffer filling.

set qos drop-threshold 2q2t tx queue 2 40 80

!--- For high-priority queues in the 2q2t port, the first threshold is defined at 40
!--- percent and the second threshold is defined at 80 percent of buffer filling.

set qos wred 1p2q2t tx queue 1 50 90

!--- The commands for the 1p2q2t port are identical.

set qos wred 1p2q2t tx queue 2 40 80

コンソール出力

tamer (enable) set qos drop-threshold 2q2t tx queue 1 50 80

Transmit drop thresholds for queue 1 set at 50% 80%

tamer (enable) set qos drop-threshold 2q2t tx queue 2 40 80

Transmit drop thresholds for queue 2 set at 40% 80%

tamer (enable) set qos wred 1p2q2t tx queue 1 50 90

WRED thresholds for queue 1 set to 50 and 90 on all WRED-capable 1p2q2t ports

tamer (enable) set qos wred 1p2q2t tx queue 2 40 80

WRED thresholds for queue 2 set to 40 and 80 on all WRED-capable 1p2q2t ports

set qos wred 1p2q2t tx queue 2 40 80 コマンドは、しきい値のマッピングの CoS と組み合されて動作します。 たとえば、次のリストのコマンドを発行すると、送信方向の 1p2q2t ポートで、CoS 0、1、2、3 のパケットは確実に最初のキュー(低い WRR キュー)で送信されます。 そのキューでのバッファの 50 % がいっぱいになると、WRED により CoS 0 と 1 のパケットの廃棄が始まります。CoS 2 と 3 のパケットが廃棄されるのは、キューのバッファの 90 % がいっぱいになった場合だけです。

set qos map 1p2q2t tx 1 1 cos 0

set qos map 1p2q2t tx 1 1 cos 1

set qos map 1p2q2t tx 1 2 cos 2

set qos map 1p2q2t tx 1 2 cos 3

set qos wred 1p2q2t tx queue 1 50 90

出力スケジューリングの監視と設定の確認

ポートの出力スケジューリングについて、現在のランタイム設定を確認するために使用する簡単なコマンドは show qos info runtime mod/port です。 このコマンドでは、次の情報が表示されます。

  • ポートでのキューイング タイプ

  • さまざまなキューとしきい値への CoS のマッピング

  • バッファ共有

  • WRR の重み付け

この例では、queue 1 の値は WRR の 20 %、queue 2 の値は WRR の 80 % です。

tamer (enable) show qos info runtime 1/1

Run time setting of QoS:
QoS is enabled
Policy Source of port 1/1: Local
Tx port type of port 1/1 : 1p2q2t
Rx port type of port 1/1 : 1p1q4t
Interface type: port-based
ACL attached:
The qos trust type is set to untrusted
Default CoS = 0
Queue and Threshold Mapping for 1p2q2t (tx):
Queue   Threshold     CoS
-----   ---------    -------
1          1           0 1
1          2           2 3
2          1           4 6
2          2           7
3          1           5
Queue and Threshold Mapping for 1p1q4t (rx):
All packets are mapped to a single queue
Rx drop thresholds:
Rx drop thresholds are disabled
Tx drop thresholds:
Tx drop-thresholds feature is not supported for this port type
Tx WRED thresholds:
Queue #        Thresholds - percentage (* abs values)
-------     ------------------------------------------
1             80% (249088 bytes) 100% (311168 bytes)
2             80% (52480 bytes) 100% (61440 bytes)
Queue Sizes:
Queue #       Sizes - percentage (* abs values)
-------       -------------------------------------
1                70% (311296 bytes)
2                15% (65536 bytes)
3                15% (65536 bytes)
WRR Configuration of ports with speed 1000Mbps:
Queue #       Ratios (* abs values)
-------       -------------------------------------
1                20 (5120 bytes)
2                80 (20480 bytes)
(*) Runtime information may differ from user configured setting
due to hardware granularity.
tamer (enable)

次 の 例では、WRR 重量が 1.のデフォルト値ではないことに注目して下さい。 ウエイトはキュー 2.のキュー 1 および 80 のための 20 という値に設定 されました。 この例は Catalyst 6000 にトラフィックの 2 GB を送信 するのにトラフィックジェネレータを使用します。 トラフィックのこの 2 GB はポート 1/1 を通って終了する必要があります。 ポート 1/1 がオーバースクライブされているので、多くのパケットは廃棄されます(1 Gbps)。 show mac コマンドにより、多くの出力廃棄があることが示されます。

tamer (enable) show mac 1/1

Port            Rcv-Unicast            Rcv-Multicast           Rcv-Broadcast
--------     --------------------   --------------------   --------------------
1/1                  0                     1239                     0

Port             Xmit-Unicast             Xmit-Multicast        Xmit-Broadcast
--------     --------------------     --------------------  --------------------
1/1             73193601                     421                     0

Port            Rcv-Octet                 Xmit-Octet
--------     --------------------    --------------------
1/1              761993                  100650803690

MAC          Dely-Exced         MTU-Exced         In-Discard         Out-Discard
--------    --------------   ----------------   ---------------   -----------------
1/1              0                 -                  0              120065264

Last-Time-Cleared
--------------------------
Fri Jan 12 2001, 17:37:43

廃棄されるパケットについて考えます。 提示されるトラフィックのパターンは、次のように分割されます。

  • IP 優先順位 0 の 1 Gb のトラフィック

  • IP 優先順位 4 の 250 Mb のトラフィック

  • IP 優先順位 5 の 250 Mb のトラフィック

  • IP 優先順位 6 の 250 Mb のトラフィック

  • IP 優先順位 7 の 250 Mb のトラフィック

CoS マッピングに従って、次のトラフィックが送信されます。

  • queue 1 へのしきい値 1 の 1 Gb のトラフィック

  • queue 1 へのしきい値 2 の 0 Mb のトラフィック

  • queue 2 へのしきい値 1 の 500 Mb のトラフィック

  • queue 2 へのしきい値 2 の 250 Mb のトラフィック

  • queue 3(完全優先キュー)への 250 Mb のトラフィック

スイッチでは、着信 IP 優先順位がスイッチで維持され、出力スケジューリングの CoS 値へのマッピングに使用されるように、受信されたトラフィックを信頼する必要があります。

CoS マッピングに対するデフォルト IP 優先順位は、IP 優先順位 = CoS になっています。

show qos stat 1/1 コマンドを発行して、廃棄されたパケットとおおよその割合を表示します。

  • この時点では、queue 3(CoS 5)で廃棄されるパケットはありません。

  • queue 1 でドロップされるパケットの 91.85 % は、CoS 0 のパケットです。

  • queue 2、しきい値 1 でドロップされるパケットの 8 % は、CoS 4 と 6 のパケットです。

  • queue 2、しきい値 2 でドロップされるパケットの 0.15 % は、CoS 7 のパケットです。

次の出力には、コマンドの使用法が説明されています。

tamer (enable) show qos stat 1/1

Tx port type of port 1/1 : 1p2q2t
Q3T1 statistics are covered by Q2T2.
Q #       Threshold #:Packets dropped
---      -------------------------------
1         1:110249298 pkts, 2:0 pkts
2         1:9752805 pkts, 2:297134 pkts
3         1:0 pkts
Rx port type of port 1/1 : 1p1q4t
Rx drop threshold counters are disabled for untrusted ports
Q #       Threshold #:Packets dropped
---     ---------------------------------
1         1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts
2         1:0 pkts

カウンタがクリアされた後で WRR の重み付けをデフォルト値に戻すと、queue 2 では以前に発生していた 8 % のパケット廃棄ではなく、1 % のパケット廃棄だけが発生します。

queue 1 のデフォルト値は 5 で、queue 2 のデフォルト値は 255 です。

tamer (enable) show qos stat 1/1

TX port type of port 1/1 : 1p2q2t
Q3T1 statistics are covered by Q2T2
Q #               Threshold #:Packets dropped
---             ----------------------------------
1                 1:2733942 pkts, 2:0 pkts
2                 1:28890 pkts, 2:6503 pkts
3                 1:0 pkts
Rx port type of port 1/1 : 1p1q4t
Rx drop threshold counters are disabled for untrusted ports
Q #               Threshold #:Packets dropped
---             ------------------------------------
1                  1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts
2                  1:0 pkts

出力スケジューリングを使用した遅延とジッタの削減

出力スケジューリングの監視と設定の確認」セクションの例では、出力ポートの加入過多が発生した場合に VoIP またはミッションクリティカルなトラフィックの廃棄を回避する、出力スケジューリングの実装の利点について説明されています。 加入過多は頻繁にではありませんが、正常なネットワーク、特にギガビット リンクで発生します。 通常、加入過多が発生するのは、ピーク時のトラフィック時間またはごく短時間内のトラフィックのバーストの間だけです。

加入過多がない場合でも、出力スケジューリングは QoS がエンドツーエンドで実装されたネットワークではきわめて有効です。 出力スケジューリングは、遅延とジッタの削減に役立ちます。 このセクションでは、出力スケジューリングが遅延およびジッタを減らす方法についての例を紹介しています。

遅延の削減

パケットの遅延は、送信待機中に各スイッチのバッファで「消失した」時間により増大されます。 たとえば、CoS 5 の小さい音声パケットが、大きいバックアップかファイル転送の間にポートから送られます。 出力ポートに QoS がなく、小さい音声パケットが 10 の大きい 1500 バイト パケットの後でキューに入ると仮定する場合、10 の大きいパケットを送信するのに必要なギガビット速度の時間を簡単に計算できます。

(10 ? 1500 ? 8) = 120,000 bits that are transmitted in 120 microseconds

このパケットがネットワークを通過する間に 8 つか 9 つのスイッチを経由する必要があるとすると、約 1 ミリ秒の遅延が生じる可能性があります。 この総量でカウントされているのは、ネットワークで経由するスイッチの出力キューでの遅延だけです。

同じ 10 の大きいパケットを、10 Mbps のインターフェイス(たとえば、IP 電話と PC が接続されている場合)でキューに入れる必要がある場合、もたらされる遅延は次のようになります。

(10 ? 1500 ? 8) = 120,000 bits that are transmitted in 12 ms

出力スケジューリングの実装により、CoS 5 の音声パケットが確実に完全優先キューに置かれるようになります。 この措置により、これらのパケットは確実に 5 未満の CoS のパケットよりも先に送信されるようになり、遅延が削減されます。

ジッタの削減

出力スケジューリング実装のもう一つの重要な利点は、ジッタの削減です。 ジッタとは、同じフロー内のパケットで見られる遅延のばらつきのことです。 図 8 のダイアグラムには、出力スケジューリングがジッタを削減できる仕組みについてのシナリオの例が示されています。

図 8

/image/gif/paws/10582/60h.gif

このシナリオでは、次のように、単一の出力ポートで送信する必要があるストリームが 2 つあります。

  • 10 Mbps イーサネット ポートで着信する 1 つの音声ストリーム

  • 1 Gbps イーサネット アップリンクで着信する 1 つの FTP ストリーム

どちらのストリームも、同じ出力ポートでスイッチから送信されます。 この例では、出力スケジューリングを使用しない場合に何が起こるかについて示されています。 すべての大きなデータ パケットは、2 つの音声パケットの間でインターリーブされる可能性があり、これにより同じストリームからの音声パケットの受信でジッタが生成されます。 スイッチから大きいデータ パケットが送信されると、パケット n とパケット n+1 の受信の間には比較的大きな遅延が伴います。 一方、n+1 と n+2 の間の遅延は無視できる程度です。 その結果、音声トラフィック ストリームのジッタが発生します。 完全優先キューを使用すると、この問題を容易に回避できます。 音声パケットの CoS 値が、完全優先キューにマッピングされるようにしてください。


関連情報


Document ID: 10582