スイッチ : Cisco Nexus 7000 シリーズ スイッチ

Nexus 7000 シリーズ スイッチ QoS コンフィギュレーション例

2013 年 9 月 3 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2014 年 1 月 30 日) | 英語版 (2013 年 5 月 29 日) | フィードバック

概要

このドキュメントでは、分類とキューイングの達成方法を簡素にする、Cisco Nexus 7000 シリーズ スイッチでのサービス品質(QoS)機能のコンフィギュレーション例を示します。

前提条件

要件

この設定を行う前に、次の要件が満たされていることを確認します。

  • Nexus 7000 シリーズ スイッチのコンフィギュレーションの基本的な知識がある

  • QoS の基本的な知識がある

使用するコンポーネント

このドキュメントの情報は、Nexus 7000 シリーズ スイッチに基づくものです。

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

表記法

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

概要

多くの導入環境では、Nexus 7000 スイッチのデフォルト QoS パラメータで十分です。ただし、カスタム ポリシーの作成に必要となる、制限事項とコンフィギュレーションの詳細について理解する必要があります。

Nexus 7000 M シリーズのラインカードでは、次の 2 つの側面を考慮する必要があります。

  • キューイング ポリシー

  • QoS ポリシー

キューイングはハードウェアで実行され、Modular QoS CLI(MQC)キューイング ポリシーを使用して設定されます。QoS ポリシーは、トラフィックのマーキングやポリシングに使用され、その他のシスコ プラットフォームにおいて標準 QoS ポリシーとして厳密な形式で MQC ポリシーによって使用されます。たとえば、アクセス リストを使用して、ポリシーマップが対応するクラスマップでトラフィックを分類し、トラフィックの設定やポリシングを行います。

現在、M シリーズ モジュールでは、サービス クラス(CoS)の値に厳密に基づいてキューイングが実行されます。このため、CoS 値が導き出される方法をまず理解する必要があります。CoS 値がスイッチに入力するトラフィックおよび残すトラフィックを理解した後で、キューイング コンフィギュレーションに集中し、さまざまなトラフィック タイプで目的の QoS を取得できます。

サービス クラスの動作

ルーテッド ユニキャスト トラフィックの場合は、Differentiated Services Code Point(DSCP)の値の最上位 3 ビットから CoS 値が導き出されます。ブリッジド ユニキャスト トラフィックの場合、CoS 値は、802.1q ヘッダーで受信した CoS 値からコピーされます。L2 アクセス リンクでは、トランク ヘッダーがないことに注意してください。このため、トラフィックがアクセス ポートで受信されてブリッジされる場合、そのトラフィックは CoS 0 でスイッチを出ます。DSCP 値は変更されませんが、パケットは望ましい優先度を取得しないことがあります。CoS 値または DSCP 値を手動で設定する QoS ポリシーにより、ポリシーマップで CoS 値を手動で設定できます。

マルチキャストの動作も理解することが重要です。ルーテッド マルチキャスト トラフィックは、ルーテッド ユニキャスト トラフィックと同じ方法で CoS 値を導き出します。ブリッジド マルチキャスト トラフィックの場合、動作は L3 の状態によって決まります。マルチキャスト グループに L3 の状態がない場合、CoS はブリッジド ユニキャスト トラフィックと同じ方法で導き出されます。マルチキャスト グループに L3 の状態がある場合、CoS はルーテッド ユニキャスト トラフィックと同じ方法で導き出されます。トラフィックを受信する VLAN のスイッチ仮想インターフェイス(SVI)の希薄モードで Protocol Independent Multicast(PIM)を有効にすると、マルチキャストが見られたときに S,G エントリが作成されます。

まとめると、トラフィック タイプごとの CoS の動作は次のようになります。

トラフィック タイプ CoS の動作
ルーテッド ユニキャスト ToS の 3-MSB からコピー
ブリッジド ユニキャスト 変更なし
ルーテッド マルチキャスト ToS の 3-MSB からコピー
グループに L3 状態があるブリッジド マルチキャスト ToS の 3-MSB からコピー
グループに L3 状態がないブリッジド マルチキャスト 変更なし

アクセス リンクの CoS の動作の変更

トラフィックをアクセス ポート(Eth8/1)で受信して VLAN にブリッジする例を検討してみましょう。デフォルトでは、ブリッジド ユニキャスト トラフィックの CoS 値は変更されません。トラフィックがアクセス ポートに到着すると、デフォルトの CoS 値の 0 が割り当てられます。この例の場合、プライオリティ トラフィック(DSCP 46)はアクセス ポートで受信され、DSCP 値が変更なし、CoS 値が 0 の状態でスイッチを出ます。このため、パケットは適切な優先度を取得しません。

: 分かりやすくするために、CoS ヘッダーを示しています。E8/1 はアクセス ポートなので、CoS 値は 0 です。パケット フローは左から右です。

回避策として、入力ポートで CoS 値を手動で設定する QoS ポリシーを作成することが考えられます。

この例では、DSCP 46 のパケットのみで CoS 値が更新されます。適切な CoS 値を確保するために複数の DSCP 値が必要となる場合は、クラスマップおよびポリシーマップのアクションをさらに定義する必要があります。

代替オプションとして、アクション 「default copy」でテーブルマップを使用することが挙げられます。テーブルマップでは、現在の DSCP 値に基づいて DSCP をリセットできます。たとえば、DSCP 値が 40 のトラフィックを受信し、DSCP 値 46 に再マーキングする必要がある場合は、アクション 「from 40 to 46」でテーブル マップを使用できます。

テーブルマップでは、アクション 「default copy」を含めて、DSCP 値を元の値に設定することもできます。これは、分類が「match dscp ef」、 アクションが 「set dscp ef」のポリシーマップを作成することと同じです。 論理的に DSCP 値は変更されませんが、アクション 「set dscp」では、CoS 値が新しい DSCP 値の 3-MSB に暗黙的に設定されます。

このため、CoS 値を DSCP 値の 3-MSB に常に更新する必要がある場合は、単一アクション 「default copy」でテーブルマップを使用します。

 

出力キュー選択とスケジュール

CoS 値が導き出されたら、グローバル キューイング クラスマップを操作して、キューに対する CoS のマッピングに影響を与えることができます。このクラスマップはグローバルであり、その特定キューイング タイプのすべての Virtual Device Context(VDC)ですべてのモジュールに影響します。たとえば、M108 モジュールと M132 モジュールの次のデフォルト キューイング クラスマップを検討してみましょう(1p7q4t)。

class-map type queuing match-any 1p7q4t-out-pq1
  Description: Classifier for egress priority queue of type 1p7q4t
  match cos 5-7

class-map type queuing match-any 1p7q4t-out-q2
  Description: Classifier for egress queue 2 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q3
  Description: Classifier for egress queue 3 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q4
  Description: Classifier for egress queue 4 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q5
  Description: Classifier for egress queue 5 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q6
  Description: Classifier for egress queue 6 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q7
  Description: Classifier for egress queue 7 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q-default
  Description: Classifier for egress default queue of type 1p7q4t
  match cos 0-4

デフォルトでは、CoS 0-4 がデフォルト キューに、CoS 5-7 がプライオリティ キューにマッピングされます。これは、同じキューイング タイプのデフォルト キューイング ポリシーと密接に関連します。

policy-map type queuing default-out-policy 
  class type queuing out-pq1
    priority level 1
    queue-limit percent 16
  class type queuing out-q2
    queue-limit percent 1
  class type queuing out-q3
    queue-limit percent 1
  class type queuing out-q-default
    queue-limit percent 82
    bandwidth remaining percent 25

プライオリティ キューは「priority」であり、キュー制限は 16 % です。デフォルト キューのキュー制限は 82 % であり、デフォルト帯域幅は残りの部分となります。使用されないその他のキューには、キュー制限 1 % が割り当てられます。q4、q5、q6 はデフォルト キューイング ポリシーで表現されていないため、キュー制限はさらに小さくなり、帯域幅はハードウェアでプログラムされます。

カスタム キューイング ポリシーの作成

カスタム キューイング ポリシーを作成するには、次の手順を実行します。

  1. 目的のキュー制限と帯域幅割り当てでカスタム キュー ポリシーを作成します。
  2. グローバル キューイング クラスマップを変更し、必要な CoS をキュー マッピングに作成します。
  3. 新しいキューイング ポリシーを適切なインターフェイスに適用します。

M132 モジュールの例を検討してみましょう。これは 1p7q4t キューイング アーキテクチャであり、8 個すべての CoS 値は別個のキューにマッピングされます。出力には、カスタム キューイング ポリシー、およびグローバル キューイング クラスマップの変更が表示されます。

policy-map type queuing 10G_POLICY
  class type queuing 1p7q4t-out-pq1
    priority level 1
    queue-limit percent 10
  class type queuing 1p7q4t-out-q2
    queue-limit percent 10
    bandwidth remaining percent 10
  class type queuing 1p7q4t-out-q3
    queue-limit percent 5
    bandwidth remaining percent 5
  class type queuing 1p7q4t-out-q4
    queue-limit percent 5
    bandwidth remaining percent 5
  class type queuing 1p7q4t-out-q5
    queue-limit percent 10
    bandwidth remaining percent 20
  class type queuing 1p7q4t-out-q6
    queue-limit percent 5
    bandwidth remaining percent 10
  class type queuing 1p7q4t-out-q7
    queue-limit percent 5
    bandwidth remaining percent 10
  class type queuing 1p7q4t-out-q-default
    queue-limit percent 50
    bandwidth remaining percent 40
! voice
class-map type queuing match-any 1p7q4t-out-pq1
  match cos 5
! scavenger
class-map type queuing match-any 1p7q4t-out-q2
  match cos 1
! transactional
class-map type queuing match-any 1p7q4t-out-q3
  match cos 2
! call signaling
class-map type queuing match-any 1p7q4t-out-q4
  match cos 3
! video
class-map type queuing match-any 1p7q4t-out-q5
  match cos 4
! routing
class-map type queuing match-any 1p7q4t-out-q6
  match cos 6
! management
class-map type queuing match-any 1p7q4t-out-q7
  match cos 7
! best effort
class-map type queuing match-any 1p7q4t-out-q-default
  match cos 0

最後の手順では、カスタム キューイング ポリシーをそれぞれの 1p7q4t インターフェイスに適用します。

interface Ethernet8/1

service-policy type queuing output 10G_POLICY

警告

デフォルト キューイング ポリシーでは、CoS 0-4 がデフォルト キューに、CoS 5-7 がプライオリティ キューにマッピングされることが想定されます。このため、キュー q3、q4、q5、q6、q7 のキュー制限は極端に小さくなります。 show queuing interface コマンドを入力すると、ハードウェアで設定されて適用されている現在のキューサイズと帯域幅を確認できます。

前項のポリシー例を検討してみましょう。それぞれの CoS 値は特定のキューにマッピングされます。例の最後では、カスタム キューイング ポリシーが Eth8/1 に適用されます。別の 1p7q4t インターフェイス(Eth6/1)があり、デフォルト キューイング ポリシーが残っているとします。

N7k# 
show queuing interface e6/1

<some output omitted>

   Configured queue-limit ratios
      queue-limit ratios:     78[1p7q4t-out-q-default] 1[1p7q4t-out-q2] 1[1p7q4t-out-q3]       
      *1[1p7q4t-out-q4] *1[1p7q4t-out-q5] *1[1p7q4t-out-q6] *1[1p7q4t-out-q7] 16[1p7q4t-out-pq1]   

* means unused queue with mandatory minimum queue-limit



  Thresholds:
     COS   Queue                      Threshold Type     Min    Max
     ______________________________________________________________
      0    1p7q4t-out-q-default           DT             100    100
      1    1p7q4t-out-q2                  DT             100    100
      2    1p7q4t-out-q3                  DT             100    100
      3    1p7q4t-out-q4                  DT             100    100
      4    1p7q4t-out-q5                  DT             100    100
      5    1p7q4t-out-pq1                 DT             100    100
      6    1p7q4t-out-q6                  DT             100    100
      7    1p7q4t-out-q7                  DT             100    100

上の出力から、キュー q2 と q3 のキュー制限は 1 % であり、q4、q5、q6、q7 のキュー制限は *1 % であることが分かります。これは最低必須キュー制限です(言い換えると、1 % より大幅に小さくなります)。また、CoS 値 1-4 と 6-7 では、この非常に小さいキューが利用されることが分かります。小さいキューサイズではすぐに出力廃棄が発生し、ネットワーク パフォーマンスが低下することがあります。デフォルト トラフィックの CoS 0 がいずれかの小さいキューにマッピングされた場合、これはさらに 悪化します。

まとめると、カスタム キューイング ポリシーを作成してグローバル キューイング クラスマップを変更する場合は、同じキューイング タイプを共有するシャーシのすべてのインターフェイスにカスタム キューイング ポリシーを適用することが重要です。

役に立つ drop コマンドは次のとおりです。

  • show policy-map interface ex/y
  • show system internal queueing stat interface ex/y

関連情報


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 113556