Navbar-jp

Toolbar-jp

PDFGetAcro

QoSの設定

この章では、標準のQuality of Service(QoS;サービス品質)コマンドまたは自動QoSを使用してQoSを設定する方法について説明します。QoSを使用すると、特定のトラフィックをほかのトラフィックよりも優先的に処理できます。QoSを使用しない場合、Catalyst 3550ではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、またはスループットが保証されずに、パケットが送信されます。

この章で説明する内容は、次のとおりです。

QoSの概要

ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。

QoSを設定すると、特定のネットワーク トラフィックを選択し、相対的な重要度に応じてプライオリティを設定し、輻輳管理および輻輳回避技術を使用して、優先処理を行うことができます。ネットワークにQoSを実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効果的になります。

QoSは新たに普及しつつあるInternet Engineering Task Force(IETF)の規格であるDifferentiated Services(DiffServ)アーキテクチャに基づいて実装されています。DiffServアーキテクチャでは、ネットワークの入り口で各パケットが分類されます。この分類はInternet Protocol(IP)パケット ヘッダーに格納され、現在ほとんど使用されていないIP Type of Service(ToS;サービス タイプ)フィールドの6ビットを使用して、分類(class)情報が伝達されます。レイヤ2フレームに格納して分類を伝達することもできます。次に、レイヤ2フレームまたはレイヤ3パケット内のこれらの特殊ビットについて説明します。フレームおよびパケットのQoS分類ビットを参照してください。

レイヤ2のISL(スイッチ間リンク)フレーム ヘッダーには、下位3ビットでIEEE 802.1p Class of Service(CoS;サービス クラス)値を伝達する、1バイトのユーザ フィールドがあります。レイヤ2のISLトランクとして設定されたインターフェイスでは、すべてのトラフィックがISLフレームに収められます。

レイヤ2の802.1Qフレーム ヘッダーには、上位3ビット(別名ユーザ プライオリティ ビット)でCoS値を伝達する、2バイトのタグ制御情報フィールドがあります。レイヤ2の802.1Qトランクとして設定されたインターフェイスでは、ネイティブVLAN(仮想LAN)のトラフィックを除き、すべてのトラフィックが802.1Qフレームに収められます。

その他のフレーム タイプでは、レイヤ2のCoS値を伝達できません。

レイヤ2 CoS値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。

レイヤ3 IPパケットは、IP precedence値またはDifferentiated Services Code Point(DSCP)値のいずれかを伝達します。DSCP値はIP precedence値と下位互換性があるので、QoSではどちらの値も使用できます。

IP precedence値の範囲は0〜7です。

DSCP値の範囲は0〜63です。

フレームおよびパケットのQoS分類ビット

class情報ごとに異なる方法でパケットを転送するには、インターネットにアクセスするすべてのスイッチおよびルータでclass情報を信頼します。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにclass情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。

パス上のスイッチおよびルータでは、class情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限することができます。DiffServアーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。

ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/送信トラフィックに必要な制御の細かさによって、難易度が変化します。

ここでは、QoSの処理手順およびその機能について説明します。

基本的なQoSモデル

基本的なQoSモデルに、基本的なQoSモデルを示します。入力インターフェイスでのアクションには、トラフィックの分類、ポリシング、およびマーキングがあります。

出力インターフェイスのアクションには、キューイングおよびスケジューリングがあります。

  1. 基本的なQoSモデル

分類

分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoSがスイッチでグローバルなイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでQoSはグローバルなディセーブルになっているため、分類は実行されません。

着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。

非IPトラフィックの場合は、次の方法で分類することができます(分類フローチャートを参照)。

非IPトラフィックの場合、DSCPおよびIP precedenceを信頼するように設定する必要はありません。これらのいずれかの方法で設定されているポートに非IPトラフィックが着信した場合は、デフォルトのポートCoS値が割り当てられ、CoS/DSCPマップから内部DSCPが生成されます。

IPトラフィックの場合は、次の方法で分類することができます(分類フローチャートを参照)。

2つのQoS管理ドメインの境界上にあるポートの場合は、設定可能なDSCP/DSCP変換マップを使用し、DSCPを別の値に変更することができます。

ここで説明されているマップの詳細については、マッピング テーブルを参照してください。ポートの信頼状態に関する設定の詳細については、ポートの信頼状態による分類の設定を参照してください。

分類フローチャート

QoS ACLに基づく分類

IP標準、IP拡張、およびレイヤ2 MAC ACLを使用すると、同じ特性(class)を持つパケットのグループを定義できます。QoSコンテキストでは、ACEとセキュリティACLで、許可(permit)および拒否(deny)アクションの意味が異なります。

ACLを使用して定義されたトラフィック クラスには、ポリシーを付加できます。ポリシーにはアクションがそれぞれ指定された複数のクラスを含めることができます。ポリシーには、クラスを特定のグループとして分類する(たとえばDSCPを割り当てる)コマンドやクラスの速度制限をするコマンドが含まれます。このポリシーは、ポリシーが有効となる特定のポートに付加されます。

IPトラフィックを分類するIP ACLを実装するには、access-listグローバル コンフィギュレーション コマンドを使用します。非IPトラフィックを分類するレイヤ2 MAC ACLを実装するには、mac access-list extendedグローバル コンフィギュレーション コマンドを使用します。設定の詳細については、QoSポリシーの設定を参照してください。

クラス マップおよびポリシー マップに基づく分類

クラス マップは、特定のトラフィック フロー(またはクラス)をほかのすべてのトラフィックから区別し、名前を付けるメカニズムです。クラス マップでは、特定のトラフィック フローと比較してさらに分類するための基準が定義されます。この基準にはACLで定義されるアクセス グループとの一致処理、DSCPまたはIP precedence値の特定リストとの一致処理、または実際の基準(標準または拡張ACLと一致するなど)を定義する別のクラス マップに関連づけられた特定のVLAN IDリストとの一致処理を指定することができます。複数のタイプのトラフィックを分類する場合は、別のクラス マップを作成し、異なる名前を付けることができます。クラス マップの基準と一致したパケットは、ポリシー マップを使用してさらに分類することができます。

ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスのCoS、DSCP、またはIP precedence値を信頼するアクションやトラフィック クラスに特定のDSCPまたはIP precedence値を設定するアクション、またはトラフィック帯域幅の制限およびトラフィックが不適合な場合の対処方法を指定するアクションなどを指定できます。ポリシー マップを有効にする前に、ポリシー マップをインターフェイスに付加する必要があります。

クラス マップを作成するには、class-mapグローバル コンフィギュレーション コマンド、またはclassポリシー マップ コンフィギュレーション コマンドを使用します。マップが複数のポートで共有されている場合は、class-mapコマンドを使用する必要があります。class-mapコマンドを入力すると、クラス マップ コンフィギュレーション モードが開始されます。このモードではmatchクラス マップ コンフィギュレーション コマンドを使用し、トラフィックの一致条件を定義します。

ポリシー マップを作成して名前を付けるには、policy-mapグローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、ポリシー マップ コンフィギュレーション モードが開始されます。このモードでは、classtrust、またはsetポリシー マップ コンフィギュレーション コマンドおよびポリシー マップ クラス コンフィギュレーション コマンドを使用して、特定のトラフィック クラスに対して行うアクションを指定します。ポリシー マップを有効にするには、service-policyインターフェイス コンフィギュレーション コマンドを使用し、ポリシー マップをインターフェイスに付加します。

ポリシー マップには、ポリサーを定義するコマンド、トラフィックの帯域幅制限、および制限を超えた場合の対処法を含めることもできます。詳細については、ポリシングおよびマーキングを参照してください。

ポリシー マップには次の特長があります。

設定の詳細については、QoSポリシーの設定を参照してください。

ポリシングおよびマーキング

パケットを分類して内部DSCP値を割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます(ポリシングおよびマーキングのフローチャートを参照)。

ポリシングでは、トラフィックの帯域幅制限を指定するポリサーが作成されます。制限を超えるパケットは、「不適合」になります。各ポリサーによって、適合または不適合のパケットの処理方法が指定されます。これらのアクションはマーカーによって実行されます。パケットを変更しないで通過させるアクション、パケットを廃棄するアクション、設定可能なポリシング設定DSCPマップから取得された新しいDSCP値を使用してパケットをマークダウンするアクションなどが行われます。ポリシング設定DSCPマップの詳細については、マッピング テーブルを参照してください。

次のタイプのポリサーを作成することができます。

一致する各トラフィック クラスに、ポリサー内で指定された帯域幅制限が個別に適用されます。ポリシー マップ内でこのタイプのポリサーを設定するには、policeポリシー マップ コンフィギュレーション コマンドを使用します。

一致するすべてのトラフィック フローに、集約ポリサーで指定される帯域幅制限が累積的に適用されます。このタイプのポリサーを設定するには、police aggregateポリシー マップ コンフィギュレーション コマンドを使用し、ポリシー マップ内の集約ポリサー名を指定します。ポリサーの帯域幅制限を指定するには、mls qos aggregate-policerグローバル コンフィギュレーション コマンドを使用します。この方法で、集約ポリサーはポリシー マップ内にあるトラフィックの複数のクラスで共有されます。

ポリシングは、トークン バケット アルゴリズムを使用します。各フレームがスイッチに受信されると、バケットにトークンが追加されます。バケットは内部にホールがあり、平均トラフィック レートとしてビット/秒で指定されたレートで通過します。バケットにトークンが追加されるたびにスイッチはチェックを行いバケット内に十分なスペースがあるかどうかを確認します。十分なスペースがない場合は、不適合とマークされ、指定されたポリサーの対処方法がとられます(廃棄またはマークダウン)。

バケットが満たされる速度は、バケット深度(burst-byte)、トークンが削除される速度(rate-bps)、および平均速度を上回るバースト期間の関数です。バケットのサイズがバースト長に上限を課し、バックツーバックで送信できるフレーム数を決定します。バーストが短い場合、バケットはオーバーフローせず、トラフィック フローに対して何のアクションも行われません。ただし、バーストが短くレートが高い場合、バケットはオーバーフローし、そのバーストのフレームに対してポリシング アクションが取られます。

バケット深度(バケットがオーバーフローするまでに許容された最大バースト)は、policeポリシー マップ クラス コンフィギュレーション コマンドまたはmls qos aggregate-policerグローバル コンフィギュレーション コマンドのburst-byteオプションを使用して設定します。トークンがバケットから削除される速度(平均速度)は、policeポリシー マップ コンフィギュレーション コマンドまたはmls qos aggregate-policerグローバル コンフィギュレーション コマンドのrate-bpsオプションを使用して設定します。

ポリシングおよびポリサーを設定するときは、次の点に注意してください。

ポリシー マップおよびポリシング アクションを設定したあとで、service-policyインターフェイス コンフィギュレーション コマンドを使用し、入力または出力インターフェイスにポリシーを付加します。設定の詳細については、ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング、および集約ポリサーによるトラフィックの分類、ポリシング、およびマーキングを参照してください。

ポリシングおよびマーキングのフローチャート

マッピング テーブル

QoSの処理中は、すべてのトラフィック(非IPトラフィックを含む)のプライオリティは内部DSCP値で表されます。

DSCP信頼状態で設定された入力インターフェイスのDSCP値がQoSドメイン間で異なる場合は、2つのQoSドメインの境界上にあるインターフェイスに、設定可能なDSCP/DSCP変換マップを適用することができます。

CoS/DSCP、DSCP/CoS、およびIP precedence/DSCPマップのデフォルト値は、ネットワークによって適切でない場合もあります。

デフォルトのDSCP/DSCP変換マップおよびデフォルトのポリシング設定DSCPマップは空のマップです。これらのマップでは、着信したDSCP値が同じDSCP値にマッピングされます。特定のギガビット対応イーサネット ポートまたは10/100イーサネット ポートのグループに適用されるのは、DSCP/DSCP変換マップのみです。その他のすべてのマップはスイッチ全体に適用されます。

設定の詳細については、DSCPマップの設定を参照してください。

キューイングおよびスケジューリング

パケットのポリシングおよびマーキングのあとで、キューイングおよびスケジューリング プロセスが開始されます。ここでは次のプロセスについて説明します。

ギガビット対応ポートでのキューイングおよびスケジューリング

ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートに、ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。

ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャート

キューイングおよびスケジューリング プロセス中にギガビット対応イーサネット ポートで使用されるのは、輻輳管理の場合は出力キューとWRR、輻輳回避の場合はテール ドロップまたはWREDアルゴリズムです。

各ギガビット対応イーサネット ポートには4つの出力キューがあり、そのうちの1つが出力緊急キューとなります。各キューに割り当てられたバッファ スペースをウェイトの割合として設定するには、wrr-queue queue-limitインターフェイス コンフィギュレーション コマンドを使用します。キューごとに相対的に異なる値を指定すると、相対的に異なるキュー サイズが設定されます。キュー サイズの絶対値を表示するには、show mls qos interfaceinterface-idstatisticsイネーブルEXECコマンドを使用してFreeQ情報を調べます。

各キューに2つの廃棄スレッシュホールドを割り当ててから、DSCP/スレッシュホールド マップを使用してDSCPをスレッシュホールドにマッピングし、インターフェイス上でテール ドロップまたはWREDのいずれかをイネーブルにします。キュー サイズ、廃棄スレッシュホールド、テール ドロップまたはWREDアルゴリズム、およびDSCP/スレッシュホールド マップを組み合わせて使用すると、スレッシュホールドを超えた場合にいつ、どのパケットを廃棄するかを判別することができます。廃棄スレッシュホールドを設定するには、テール ドロップの場合はwrr-queue thresholdインターフェイス コンフィギュレーション コマンド、WREDの場合はwrr-queue random-detect max-thresholdインターフェイス コンフィギュレーション コマンドを使用します。いずれの場合も、DSCP値をスレッシュホールド(DSCP/スレッシュホールド マップ)にマッピングするには、wrr-queue dscp-mapインターフェイス コンフィギュレーション コマンドを使用します。詳細については、テール ドロップおよびWREDを参照してください。

出力リンクの空いている帯域幅は、キュー間で分割されます。WRRウェイト率に応じて処理されるようにキューを設定するには、wrr-queue bandwidthインターフェイス コンフィギュレーション コマンドを使用します。ウェイト率は、ほかのキューと比較した場合のキューの重要性(ウェイト)を表します。WRRスケジューリングは、各キューから順にパケットをいくつか送信することにより、ロー プライオリティのキューがハイ プライオリティのトラフィック伝送中に完全に無視されないようにします。送信されるパケットの数は、関連するキューの重要度に対応します。たとえば、あるキューのウェイトが3で、別のキューのウェイトが4である場合、第2のキューからパケットが4つ送信されるたびに、最初のキューからは3つのパケットが送信されます。このスケジューリングを使用することで、ロー プライオリティのキューは、ハイ プライオリティのキューが空にならなくてもパケットを送信できます。キューは、wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドによって出力キューにマッピング(CoS/出力キュー マップ)されたCoS値に応じて選択されます。

緊急キューがイネーブルになるまで、WRRでは4つのキューがすべて使用されます。緊急キューがイネーブルになると、4番めの帯域幅ウェイトが無視され、比率計算から除外されます。緊急キューは優先キューです。緊急キューが空になるまで、ほかのキューは処理されません。緊急キューをイネーブルにするには、priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。

ここで説明したコマンドを組み合わせると、特定のDSCPを持つパケットを特定のキューに格納してトラフィックのプライオリティを設定する、割り当てるキュー サイズを大きくする、特定のキューの処理回数を増やす、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整するといったことが可能になります。設定の詳細については、ギガビット対応イーサネット ポートの出力キューの設定を参照してください。

テール ドロップ

テール ドロップはギガビット対応イーサネット ポートのデフォルトの輻輳回避技術です。テール ドロップを使用した場合、スレッシュホールドを超えるまで、パケットはキューイングされます。特に、DSCPが最初のスレッシュホールドに割り当てられているパケットは、パケット量がスレッシュホールド以下にならないかぎりすべて廃棄されます。ただし、DSCPが2番めのスレッシュホールドに割り当てられているパケットは、2番めのスレッシュホールドを超えないかぎり、キューイングされて送信されます。

4つの出力キューに割り当てられた2つのテール廃棄スレッシュホールドを変更するには、wrr-queue thresholdインターフェイス コンフィギュレーション コマンドを使用します。各スレッシュホールド値は、キューに割り当てられたキュー ディスクリプタの総数の割合です。スレッシュホールド1およびスレッシュホールド2のデフォルトは100%です。

DSCP/スレッシュホールド マップを変更し、どのDSCPをどのスレッシュホールドIDにマッピングするかを決定するには、wrr-queue dscp-mapインターフェイス コンフィギュレーション コマンドを使用します。デフォルトでは、すべてのDSCPがスレッシュホールド1にマッピングされており、このスレッシュホールドを超えると、すべてのパケットが廃棄されます。

テール廃棄スレッシュホールドを使用する場合は、WREDを使用できません。その逆の場合も同様です。テール ドロップがディセーブルの場合、WREDは自動的にイネーブルになり、以前の設定に戻ります(以前に設定されていない場合は、デフォルト設定に戻ります)。

WRED

シスコにより実装されたRandom Early Detection(RED;ランダム早期検出)はWREDと呼ばれます。WREDはほかの輻輳回避技術と異なり、発生した輻輳を制御するのではなく、輻輳を予測して回避しようとします。

WREDはTransmission Control Protocol(TCP)輻輳制御を利用します。パケット送信を一時的に停止する必要がある場合、WREDはその目的をエンド ホストに指示することにより、平均キュー サイズを制御します。WREDは輻輳が激しくなる前にパケットをランダムに廃棄し、パケット送信元に伝送速度を下げるように要求します。パケット送信元でTCPが動作していることを前提に、すべてのパケットが宛先に到達するまで伝送速度を下げるようWREDは送信元に要求し、輻輳を解消します。

出力インターフェイスに輻輳の兆候が現れると、WREDはパケットを選択的に廃棄し、テール ドロップの機会を減らします。キューがいっぱいになるまで待機せず、早めに一部のパケットを廃棄することで、一度に多数のパケットが廃棄されなくなります。この方法により、WREDでは伝送回線をいつでも完全に使用することが可能となります。WREDでは、送信量の少ないユーザからよりも、送信量の多いユーザからのパケットが多数廃棄され、トラフィック生成量が最大である送信元は、生成量が少ない送信元に比べて速度が低下しやすくなります。

ギガビット対応イーサネット ポートでWREDをイネーブルにし、4つの出力キューに割り当てられる2つのスレッシュホールドを設定するには、wrr-queue random-detect max-thresholdインターフェイス コンフィギュレーション コマンドを使用します。各スレッシュホールドは、WREDがランダムなパケット廃棄を開始する時点を示します。スレッシュホールドを超えると、WREDはこのスレッシュホールドに割り当てられたパケットの廃棄をランダムに開始します。キューの上限に近づくにつれ、廃棄されるパケット数が増加します。キューの上限に達すると、そのスレッシュホールドに割り当てられたすべてのパケットが廃棄されます。デフォルトで、WREDはディセーブルです。

DSCP/スレッシュホールド マップを変更し、どのDSCPをどのスレッシュホールドIDにマッピングするかを決定するには、wrr-queue dscp-mapインターフェイス コンフィギュレーション コマンドを使用します。デフォルトでは、すべてのDSCPがスレッシュホールド1にマッピングされており、このスレッシュホールドを超えると、すべてのパケットがランダムに廃棄されます。

WREDスレッシュホールドを使用する場合は、テール ドロップを使用できません。その逆の場合も同様です。WREDがディセーブルの場合、テール ドロップは自動的にイネーブルになり、以前の設定に戻ります(以前に設定されていない場合は、デフォルトに戻ります)。

10/100イーサネット ポートでのキューイングおよびスケジューリング

10/100イーサネット ポートでのキューイングおよびスケジューリングに関するフローチャートに、10/100イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。

10/100イーサネット ポートでのキューイングおよびスケジューリングに関するフローチャート

キューイングおよびスケジューリング プロセス中は出力キューを使用して、最小確保レベルとバッファ サイズを選択し、WRRを使用して輻輳管理を行います。

各10/100イーサネット ポートには4つの出力キューがあり、そのうちの1つが出力緊急キューとなります。各キューでは8つの最小確保レベルのうちの1つを利用できます。各レベルには、パケットをキューイングするためのバッファ スペースが、デフォルトで100パケット分あります。最小確保レベルに指定されたバッファがいっぱいになると、バッファ スペースが空くまでパケットが廃棄されます。

10/100 イーサネット ポート キューの割り当て、最小確保レベル、およびバッファ サイズに、10/100イーサネット ポート キューの割り当て、最小確保レベル、およびバッファ サイズの例を示します。この図では、ポートごとに4つの出力キューがあり、それぞれに最小確保レベルが割り当てられています。たとえば、FastEthernet 0/1ポートの場合、最小確保レベル1にはキュー1、最小確保レベル3にはキュー2、最小確保レベル5にはキュー3、最小確保レベル7にはキュー4が割り当てられます。キューに最小確保レベルを割り当てるには、wrr-queue min-reserveインターフェイス コンフィギュレーション コマンドを使用します。

各最小確保レベルはバッファ サイズによって設定されます。図に示されているように、FastEthernet 0/1ポートのキュー4のバッファ サイズは70パケット、FastEthernet 0/2ポートのキュー4のバッファ サイズは80パケット、FastEthernet 0/3ポートのキュー4のバッファ サイズは40パケット、FastEthernet 0/4ポートのキュー4のバッファ サイズは80パケットです。バッファ サイズを設定するには、mls qos min-reserveグローバル コンフィギュレーション コマンドを使用します。

10/100 イーサネット ポート キューの割り当て、最小確保レベル、およびバッファ サイズ

出力リンクの空いている帯域幅は、キュー間で分割されます。WRRウェイト率に応じて処理されるようにキューを設定するには、wrr-queue bandwidthインターフェイス コンフィギュレーション コマンドを使用します。ウェイト率は、ほかのキューと比較した場合のキューの重要性(ウェイト)を表します。WRRスケジューリングは、各キューから順にパケットをいくつか送信することにより、ロー プライオリティのキューがハイ プライオリティのトラフィック伝送中に完全に無視されないようにします。送信されるパケットの数は、関連するキューの重要度に対応します。たとえば、あるキューのウェイトが3で、別のキューのウェイトが4である場合、2番めのキューからパケットが4つ送信されるたびに、最初のキューからは3つのパケットが送信されます。このスケジューリングを使用することで、ロー プライオリティのキューは、ハイ プライオリティのキューが空にならなくてもパケットを送信することができます。キューは、wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドによって出力キューにマッピング(CoS/出力キュー マップ)されたCoS値に応じて選択されます。

出力緊急キューがイネーブルになるまで、WRRでは4つのキューがすべて使用されます。緊急キューがイネーブルになると、4番めの帯域幅ウェイトが無視され、比率計算から除外されます。緊急キューは優先キューです。緊急キューが空になるまで、ほかのキューは処理されません。緊急キューをイネーブルにするには、priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。

ここで説明したコマンドを組み合わせると、特定のDSCPを持つパケットを特定のキューに格納してトラフィックのプライオリティを設定する、割り当てる最小確保バッファ サイズを大きくする、特定のキューの処理回数を増やすといったことが可能になります。設定の詳細については、10/100イーサネット ポートの出力キューの設定を参照してください。

パケットの変更

QoSを設定するために、パケットの分類、ポリシング、およびキューイングを行います。このプロセス中に、パケットが変更されることがあります。

自動QoSの設定

自動QoS(auto-QoS)を使用すると、既存のQoS機能を簡単に導入できます。自動QoSはネットワーク設計に関する前提条件を設定するもので、それによってスイッチは、デフォルトのQoS動作を使用せずにトラフィック フロー毎に優先順位を付け、適切に出力キューを使用できます(デフォルトで、QoSはディセーブルです。スイッチではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、単一キューでパケットを送信します)。

自動QoSをイネーブルにすると、トラフィック タイプと入力パケット ラベルに基づいてトラフィックを自動的に分類します。スイッチはこの分類結果を使って適切な出力キューを選択します。

自動QoSコマンドを使って、Cisco IP Phoneと接続しているポートを識別し、アップリンクを通じて信頼できるVoice over IP(VoIP)トラフィックを受信するポートを識別します。ここで自動QoSは次の機能を実行します。

ここでは、スイッチで自動QoSを設定する手順について説明します。

生成される自動QoS設定

デフォルトでは、自動QoSはすべてのインターフェイスでディセーブルに設定されています。

自動QoSがイネーブルの場合、トラフィックの分類と出力キューの設定に入力パケット ラベルを使用します(トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、および出力キューを参照)。

トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、および出力キュー

Cisco IP Phoneからのみの
VoIPデータ トラフィック

Cisco IP Phoneからのみの
VoIP制御
トラフィック

ルーティング プロトコル トラフィック

STP BPDU1トラフィック

その他の
すべての
トラフィック

入力DSCP

46

26

-

-

-

入力CoS

5

3

6

7

-

DiffServ

EF

AF31

-

-

-

割り当てDSCP

46

26

48

56

0

割り当てCoS

5

3

6

7

0

CoS/キュー マップ

5

3、6、7

0、1、2、4

出力キュー

緊急キュー

80% WRR

20% WRR

出力キュー用の自動QoS設定に、生成された出力キューの自動QoS設定を示します。

出力キュー用の自動QoS設定

出力キュー

キュー番号

CoS/
キュー マップ

キュー ウェイト

ギガビット対応ポート用のキュー サイズ

10/100
イーサネット ポートでの
(パケットの)キュー サイズ

緊急

4

5

-

-

26

80% WRR

3

3、6、7

80%

20%

65

20% WRR

1

0、1、2、4

20%

80%

170

最初のインターフェイスで自動QoS機能をイネーブルにすると、次の動作が自動的に発生します。

信頼境界機能の詳細については、信頼境界の設定によるポート セキュリティの確保を参照してください。

auto qos voip cisco-phoneまたはauto qos voip trustインターフェイス コンフィギュレーション コマンドを使用して自動QoSをイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的にQoS コンフィギュレーションを生成し、生成される自動QoS設定に示すコマンドをインターフェイスに適用します。

生成される自動QoS設定

説明

自動的に生成されるコマンド

スイッチが標準QoSを自動的にイネーブルにし、CoS/DSCPマップ(着信パケット内のCoS値の、DSCP値へのマッピング)を設定します(トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、および出力キューを参照)。

Switch(config)# mls qos

Switch(config)# mls qos map cos-dscp 0 8 16 26 32 46 48 56

10/100イーサネット ポートがある場合、スイッチは最小確保レベル 5、6、7、および8のバッファ サイズを自動的に設定します。

  • レベル5では170パケットを保持できます。
  • レベル6は使用されていません。
  • レベル7では65パケットを保持できます。
  • レベル8では26パケットを保持できます。

Switch(config)# mls qos min-reserve 5 170

Switch(config)# mls qos min-reserve 6 10

Switch(config)# mls qos min-reserve 7 65

Switch(config)# mls qos min-reserve 8 26

スイッチが、パケットで受信されるCoS値を信頼するように、インターフェイスの入力分類を自動的に設定します。

Switch(config-if)# mls qos trust cos

auto qos voip cisco-phoneコマンドを入力すると、スイッチは自動的に信頼境界機能をイネーブルにします。この機能は、CDPを使用してCisco IP Phoneの有無を検出するものです。

Switch(config-if)# mls qos trust device cisco-phone

スイッチがインターフェイスでの出力キューの使用状況を割り当てます(出力キュー用の自動QoS設定を参照)。

スイッチは、出力緊急キューをイネーブルにし、WRRウェイトをキュー1およびキュー3に割り当てます(WRRキューの最低値は1です)。

スイッチがCoS/出力キュー マッピングを設定します。

  • CoS値が0、1、2、および4の場合、キュー1が選択されます。
  • CoS値が3、6、および7の場合、キュー3が選択されます。
  • CoS 値が5の場合、キュー4(緊急キュー)が選択されます。

緊急キュー(キュー4)にはVoIPデータ トラフィックが含まれているので、キューは空になるまで処理されます。

Switch(config-if)# wrr-queue bandwidth 20 1 80 1

Switch(config-if)# nowrr-queue cos-map

Switch(config-if)# wrr-queue cos-map 1 0 1 2 4

Switch(config-if)# wrr-queue cos-map 3 3 6 7

Switch(config-if)# wrr-queue cos-map 4 5

Switch(config-if)# priority-queue out

ギガビット対応イーサネット ポートのみで、スイッチが自動的にWRR出力キューのサイズ比を設定します。

  • キュー1は80%です。
  • キュー3は20%です。
  • キュー4は緊急キューでサイズを割り当てません。

Switch(config-if)# wrr-queue queue-limit 80 1 20 1

10/100イーサネット ポートのみで、スイッチが自動的に出力キューの最小確保レベルを設定します。

  • キュー1に、最小確保レベル5が選択されます。
  • キュー2に、最小確保レベル6が選択されます。
  • キュー3に、最小確保レベル7が選択されます。
  • キュー4に、最小確保レベル8が選択されます。

Switch(config-if)# wrr-queue min-reserve 1 5

Switch(config-if)# wrr-queue min-reserve 2 6

Switch(config-if)# wrr-queue min-reserve 3 7

Switch(config-if)# wrr-queue min-reserve 4 8

自動QoSの設定上の影響

自動QoSがイネーブルの場合、auto qos voipインターフェイス コンフィギュレーション コマンドおよび生成された設定が、動作中の設定に追加されます。

設定時の注意事項

自動QoSの設定を開始する前に、次の点に注意してください。

VoIP用の自動QoSをイネーブルにする方法

VoIP用のQoSをQoSドメインでイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、Cisco IP Phoneに接続されているインターフェイス、またはネットワーク内部にある他のスイッチやルータに接続されているアップリンク インターフェイスを指定します。

auto qos voip{cisco-phone |trust}

自動QoSをイネーブルにします。

キーワードの意味は次のとおりです。

  • cisco-phoneインターフェイスがCisco IP Phoneに接続されている場合、着信パケットのQoSラベルは電話機が検出されたときのみ信頼されます。
  • trustアップリンク インターフェイスが信頼できるスイッチまたはルータに接続されていて、入力パケット内のVoIPトラフィック分類が信頼されます。

end

イネーブルEXECモードに戻ります。

show auto qos interfaceinterface-id

設定を確認します。

このコマンドは、最初に適用された自動QoS設定を表示するもので、有効になったユーザによる変更は反映されません。

自動QoSがイネーブルまたはディセーブルに設定されている場合に自動生成されるQoSコマンドを表示するには、自動QoSをイネーブルにする前にdebug autoqosイネーブルEXECコマンドを入力します。詳細については、debug autoqosコマンドの使用を参照してください。

インターフェイスで自動QoSをディセーブルにするには、no auto qos voipインターフェイス コンフィギュレーション コマンドを使用します。このコマンドを入力すると、スイッチは自動QoS設定をそのインターフェイスの標準QoSデフォルト設定に変更します。

スイッチで自動QoSをディセーブルにするには、no mls qosグローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、スイッチはすべてのインターフェイスのQoSをディセーブルにし、パススルー モードをイネーブルにします。

次の例では、FastEthernet 0/1インターフェイスに接続されているデバイスがCisco IP Phoneとして検出された場合に、自動QoSをイネーブルにして受信パケット内のQoSラベルを信頼する方法を示します。

Switch(config)# interface fastethernet0/1

Switch(config-if)# auto qos voip cisco-phone

次の例は、GigabitEthernet 0/1インターフェイスに接続されたスイッチやルータが信頼できるデバイスの場合に自動QoSをイネーブルにし、受信パケット内のQoSラベルを信用する方法を示します。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# auto qos voip trust

自動QoS情報の表示

初期自動QoS設定を表示するには、show auto qos [interface[interface-id]]イネーブルEXECコマンドを使用します。ユーザが変更した設定を表示するには、show running-configイネーブルEXECコマンドを使用します。show auto qosコマンドおよびshow running-configコマンド出力を比較してユーザが定義したQoS設定を識別できます。

自動QoSに影響するQoS設定に関する情報を表示するには、次のいずれかのコマンドを使用します。

これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。

自動QoS設定例

ここでは、ネットワーク内で自動QoSを実装する方法について説明します(自動QoSを設定したネットワークの例を参照)。

自動QoSを設定したネットワークの例

自動QoSを設定したネットワークの例のインテリジェントな配線クローゼットには、拡張ソフトウェア イメージ(EI)が動作しているCatalyst 2950スイッチおよび Catalyst 3550スイッチが含まれます。この例では、VoIPトラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることを目的としています。これを実行するには、配線クローゼット内のQoSドメインのエッジにあるスイッチで自動QoSをイネーブルにします。

VoIPトラフィックをほかのすべてのトラフィックよりも優先させるために、QoSドメインのエッジにあるスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

debug autoqos

自動QoS用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動QoSがイネーブルになる際に自動的に生成されるQoS設定を表示します。

configure terminal

グローバル コンフィギュレーション モードを開始します。

cdp enable

CDPをグローバルでイネーブルにします。デフォルトで、CDPはイネーブルに設定されます。

interface fastethernet0/3

インターフェイス コンフィギュレーション モードを開始します。

auto qos voipcisco-phone

インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。

着信パケット内のQoSラベルは、Cisco IP Phoneが検出された場合のみ信頼されます。

interface fastethernet0/5

インターフェイス コンフィギュレーション モードを開始します。

auto qos voipcisco-phone

インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。

interface fastethernet0/7

インターフェイス コンフィギュレーション モードを開始します。

auto qos voipcisco-phone

インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。

interface gigabitethernet0/1

インターフェイス コンフィギュレーション モードを開始します。

auto qos voip trust

インターフェイスで自動QoSをイネーブルにし、インターフェイスが信頼のあるルータやスイッチに接続されていることを指定します。

end

イネーブルEXECモードに戻ります。

show auto qos

設定を確認します。

このコマンドは、最初に適用された自動QoS設定を表示するもので、有効になったユーザによる変更は反映されません。

自動QoSに影響するQoS設定に関する情報については、自動QoS情報の表示を参照してください。

copy running-config startup-config

auto qos voipインターフェイス コンフィギュレーション コマンドと生成された自動QoS設定をコンフィギュレーション ファイルに保存します。

標準QoSの設定

標準QoSを設定する前に、次の内容を完全に把握してください。

ここでは、スイッチで標準QoSを設定する手順について説明します。

標準QoSのデフォルト設定

QoSがディセーブルの場合の標準QoSのデフォルト設定に、QoSがディセーブルの場合の標準QoSのデフォルト設定を示します。

QoSがディセーブルの場合の標準QoSのデフォルト設定

ポートタイプ

QoSステート

出力トラフィック(DSCP値およびCoS値)

キュー

キュー
ウェイト

テール廃棄
スレッシュ
ホールド

キューへのCoSマッピング

ギガビット対応イーサネット ポート

ディセーブル

通過

すべてのキュー
RAMがキュー1に割り当てられます(緊急キューはなし)。

-

100%、100%

WREDはディセーブルです。

すべてのCoS値がキュー1にマッピングされます。

10/100イーサネット ポート

ディセーブル

通過

8つの最小確保レベルのバッファ サイズはそれぞれ100パケットです。キューによりレベルが異なります。

-

-

すべてのCoS値がキュー1にマッピングされます。

QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、trusted(信頼する)ポート、untrusted(信頼しない)ポートの概念はありません。

QoSがイネーブルの場合の標準QoSのデフォルト設定に、QoSがイネーブルの場合にそのまま使用できる標準QoSのデフォルト設定を示します。

QoSがイネーブルの場合の標準QoSのデフォルト設定

ポートタイプ

QoSステート

出力
トラフィック(DSCP値およびCoS値)

キュー

キュー
ウェイト

テール廃棄
スレッシュホールド

キューへのCoSマッピング

ギガビット対応イーサネット ポート

イネーブル

(ポリシングなし)

DSCP=0

CoS=0

(0はベストエフォート型配信を意味します。)

4つのキューを使用できます(緊急キューはなし)。

各キューのウェイトは同じです。

100%、100%

WREDはディセーブルです。

0、1: キュー1

2、3: キュー2

4、5: キュー3

6、7: キュー4

10/100イーサネット ポート

イネーブル

(ポリシングなし)

DSCP=0

CoS=0

(0はベストエフォート型配信を意味します。)

8つの最小確保レベルのバッファ サイズはそれぞれ100パケットです。キューによりレベルが異なります。

各キューのウェイトは同じです。

-

0、1: キュー1

2、3: キュー2

4、5: キュー3

6、7: キュー4

デフォルトのポートCoS値は0です。

デフォルトでは、すべてのポートの信頼状態はuntrustedになっています。

ポリシー マップは設定されていません。

ポリサーは設定されていません。

デフォルトのCoS/DSCPマップについては、デフォルトのCoS/DSCPマップを参照してください。

デフォルトのIP precedence/DSCPマップについては、デフォルトのIP precedence/DSCPマップを参照してください。

デフォルトのDSCP/CoSマップについては、デフォルトのDSCP/CoSマップを参照してください。

デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする(マークダウンしない)空のマップです。

デフォルトのDSCP/スイッチ プライオリティ マップは、DSCP 0〜15をプライオリティ 0に、DSCP 16〜31をプライオリティ 1に、DSCP 32〜47をプライオリティ 2に、DSCP 48〜63をプライオリティ 3にマッピングします。

標準QoS設定時の注意事項

QoSの設定を開始する前に、次の点に注意してください。

ルーテッド ポートまたは仮想(論理)インターフェイスでは、ポート単位、VLAN単位のポリシングを設定することができません。トランクまたはスタティックアクセス ポートとして設定された入力ポートでのみ、サポートされます。

スイッチでは、VLAN単位のQoSまたはスイッチ全体でのVLAN QoSポリシングがサポートされません。

出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。

QoSをグローバルでイネーブルにする方法

デフォルトでは、スイッチでQoSはディセーブルです。つまり、パケットの内容やサイズに関係なく、各パケットにベストエフォート型のサービスが提供されます。両方のテール廃棄スレッシュホールドがギガビット対応イーサネット ポートのキュー サイズの合計(100%)に設定されていると、すべてのCoS値は出力キュー1にマッピングされます。10/100イーサネット ポートでは、すべてのCoS値は出力キュー1にマッピングされます。出力キュー1には最小確保レベル1が使用され、最大100パケットを保持できます。バッファがいっぱいになると、パケットは廃棄されます。

QoSをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

interface range port-range

インターフェイス コンフィギュレーション モードを開始し、複数のインターフェイス上でコマンドを実行します。

1つのコマンドでは、最大5つのインターフェイス範囲をカンマで区切って定義することができます。

範囲内のすべてのインターフェイスは同じタイプでなければなりません。つまり、すべてがファスト イーサネット ポートまたはギガビット イーサネット ポートです。

flowcontrol receive off

flowcontrol send off

すべてのインターフェイス上でフロー制御をディセーブルにします。

exit

グローバル コンフィギュレーション モードに戻ります。

mls qos

QoSをグローバルでイネーブルにします。

end

イネーブルEXECモードに戻ります。

show mls qos

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

QoSをイネーブルにしたあとのデフォルトの設定については、QoSがディセーブルの場合の標準QoSのデフォルト設定を参照してください。

QoSをディセーブルにするには、no mls qosグローバル コンフィギュレーション コマンドを使用します。

ポートの信頼状態による分類の設定

ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。

QoSドメイン内のポートの信頼状態の設定

QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoSドメイン内のスイッチごとにパケットを分類する必要がないため、QoSドメイン内のスイッチ ポートをtrustedポートの1つに設定できます。QoSドメイン内のポートの信頼状態に、ネットワーク トポロジーの例を示します。

QoSドメイン内のポートの信頼状態

受信するトラフィックの分類を信頼するようにポートを設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

QoSをグローバルでイネーブルにします。

interface interface-id

インターフェイス コンフィギュレーション モードを開始し、trustedにするインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

mls qos trust {cos |dscp |ip-precedence}

ポートの信頼状態を設定します。

デフォルトで、ポートはtrustedになっていません。

キーワードの意味は次のとおりです。

  • cos ― パケットのCoS値を使用して入力パケットを分類します。タグなしパケットの場合は、ポートのデフォルトのCoS値が使用されます。デフォルトのポートCoS値は0です。
  • dscp ― パケットのDSCP値を使用して入力パケットを分類します。非IPパケットについては、パケットがタグ付きの場合、パケットのCoS値が使用されます。タグなしの場合は、デフォルトのポートCoSが使用されます。CoS/DSCPマップを使用して、CoS値がDSCP値に内部的にマッピングされます。
  • ip-precedence ― パケットのIP precedence値を使用して入力パケットを分類します。非IPパケットについては、パケットがタグ付きの場合、パケットのCoS値が使用されます。タグなしの場合は、デフォルトのポートCoSが使用されます。CoS/DSCPマップを使用して、CoS値がDSCP値に内部的にマッピングされます。

ネットワークがイーサネットLAN、Catalyst 3500 XL、および2900 XLスイッチで構成され、2種類ほどのトラフィックしか存在しない場合は、cosキーワード設定を使用します。Catalyst 3500 XLスイッチおよび2900 XLスイッチで、CoSはノーマル プライオリティの送信キューおよびハイ プライオリティの送信キューを使用し、各送信ポートを設定します。

ネットワークにイーサネットLAN以外の要素が含まれ、ユーザが高度なQoS機能およびその実装に精通している場合は、dscpまたはip-precedenceキーワードを使用します。

end

イネーブルEXECモードに戻ります。

show mls qos interface

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

ポートをuntrustedの状態に戻すには、no mls qos trustインターフェイス コンフィギュレーション コマンドを使用します。

デフォルトのCoS値を変更する方法については、インターフェイスのCoS値の設定を参照してください。CoS/DSCPマップを設定する方法については、CoS/DSCPマップの設定を参照してください。

インターフェイスのCoS値の設定

QoSは、CoS値を信頼するポートおよび信頼しないポートで受信されたタグなしフレームに、mls qos cosインターフェイス コンフィギュレーション コマンドによって指定されたCoS値を割り当てます。

ポートのデフォルトのCoS値を定義したり、デフォルトのCoS値をポートのすべての着信パケットに割り当てるには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

QoSをグローバルでイネーブルにします。

interface interface-id

インターフェイス コンフィギュレーション モードを開始し、trustedにするインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

mls qos cos {default-cos |override}

ポートのデフォルトのCoS値を設定します。

  • default-cosを指定する場合は、ポートに割り当てるデフォルトのCoS値を指定します。ポートがCoSを信頼するように設定され、パケットがタグなしの場合は、デフォルトのCoS値がパケットのCoS値になります。指定できるCoSの範囲は0〜7で、デフォルトは0です。
  • overrideキーワードを使用し、着信パケットの設定済みの信頼状態を上書きし、デフォルトのポートCoS値をすべての着信パケットに適用します。デフォルトでは、CoSの上書きはディセーブルに設定されています。

特定ポートのすべての着信パケットのプライオリティをほかのポートから着信したパケットよりも高く、または低く設定する場合は、overrideキーワードを使用します。ポートがDSCP、CoS、またはIP precedenceを信頼するように設定されている場合も、このコマンドを実行すると設定済みの信頼状態が上書きされ、すべての着信CoS値に、このコマンドによって設定されたデフォルトのCoS値が割り当てられます。着信パケットがタグ付きの場合、パケットのCoS値は入力ポートでデフォルトのポートCoS値に変更されます。

end

イネーブルEXECモードに戻ります。

show mls qos interface

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、no mls qos cos {default-cos |override}インターフェイス コンフィギュレーション コマンドを使用します。

信頼境界の設定によるポート セキュリティの確保

通常のネットワークでは、シスコIP Phoneをスイッチ ポートに接続します(QoSドメイン内のポートの信頼状態を参照)。通常の場合、電話機からスイッチに送信されたトラフィックは、802.1Qヘッダーを使用するタグによってマークされます。このヘッダーにはVLAN情報、およびパケットの優先順位を決定するCoSの3ビットフィールドが格納されます。ほとんどのCisco IP Phone設定では、電話機からスイッチに送信されたトラフィックは信頼され、音声トラフィックのプライオリティがネットワーク内のほかのタイプのトラフィックよりも高くなります。mls qos trust cosインターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックのCoSラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定することができます。

場合によっては、IP PhoneにPCまたはワークステーションを接続することもできます。この場合は、switchport priority extend cosインターフェイス コンフィギュレーション コマンドを使用し、PCから受信したトラフィックのプライオリティよりも優先するように、スイッチCLIを通して電話機を設定できます。このコマンドを使用すると、PCがハイプライオリティのデータ キューを利用しないように設定することができます。

ただし、ユーザが電話機を省略してPCを直接スイッチに接続した場合、スイッチはPCによって生成されたCoSラベルを信頼し(信頼されたCoS設定のため)、ハイプライオリティ キューが誤って使用される可能性があります。信頼境界機能は、CDPを使用してスイッチ ポート上でCisco IP Phone(Cisco IP Phone 7910、7935、7940、7960)の存在を検出することにより、この問題を解決します。電話機が検出されなかった場合、信頼境界機能はスイッチ ポートの信頼設定をディセーブルにし、ハイプライオリティ キューの誤使用を防止します。

ポートの信頼境界をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

QoSをグローバルでイネーブルにします。

cdp run

CDPをグローバルでイネーブルにします。デフォルトで、CDPはイネーブルに設定されます。

interface interface-id

インターフェイス コンフィギュレーション モードを開始し、IP Phoneに接続されているインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

cdp enable

インターフェイス上でCDPをイネーブルにします。デフォルトで、CDPはイネーブルに設定されます。

mls qos trust cos

受信したトラフィックのCoS値を信頼するように、インターフェイスを設定します。デフォルトで、ポートはtrustedになっていません。

mls qos trust device cisco-phone

Cisco IP Phoneが信頼されたデバイスであることを指定します。

信頼境界および自動QoS(auto qos voipインターフェイス コンフィギュレーション コマンド)は相互に排他的なので、同時にイネーブルにできません。

end

イネーブルEXECモードに戻ります。

show mls qos interface

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

信頼境界機能をディセーブルにするには、no mls qos trust deviceインターフェイス コンフィギュレーション コマンドを使用します。

パススルー モードのイネーブル化

パススルー モードを使用すると、CoSおよびDSCPの設定を、両方の値を含むパケットから独立させることができます。mls qos trust [cos | dscp]インターフェイス コンフィギュレーション コマンドを使用しているときに変更されたほかの値(CoSまたはDSCP)が不要な場合は、パススルー モードを使用します。

Cisco Release 12.1(11)EA1以前のソフトウェア リリースで、DSCPを信頼するようにインターフェイスがデフォルトで設定されている場合、IPパケットのDSCPフィールドは変更されません。ただし、スイッチはDSCP/CoSマップに従って、パケットのCoS値を変更します。CoSを信頼するようにインターフェイスが設定されている場合、パケットのCoSフィールドは変更されません。ただし、パケットがIPパケットの場合は、CoS/DSCPマップに従ってDSCPが変更されます。

Cisco IOS Release 12.1(11)EA1以降では、インターフェイスにパススルー モードを設定することができます。インターフェイスはDSCPを信頼し、スイッチはCoS値を変更しないでパケットを送信します(DSCP/CoSマップは無視されます)。それ以外の場合、インターフェイスはCoSを信頼し、スイッチはDSCP値を変更せずにパケットを送信します。CoS/DSCPマップは無視されます。

インターフェイス上でパススルー モードをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

interface interface-id

インターフェイス コンフィギュレーション モードを開始し、パススルー モードをイネーブルにするインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

mls qos trust cos pass-through dscp

または

mls qos trust dscp pass-through cos

パススルー モードをイネーブルにします。インターフェイスは、着信パケットのCoS値を信頼するように設定されます。スイッチはDSCP値を変更しません。

または

パススルー モードをイネーブルにします。インターフェイスは、着信パケットのDSCP値を信頼するように設定されます。スイッチはCoS値を変更しません。

end

イネーブルEXECモードに戻ります。

show mls qos interface[interface-id]

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

パススルー モードをディセーブルにするには、no mls qos trust cos pass-through dscpまたはno mls qos trustdscp pass-through cosインターフェイス コンフィギュレーション コマンドを使用します。

mls qos trust [cos pass-through dscp |dscp pass-through cos]インターフェイス コンフィギュレーション コマンドを設定してから、mls qos trust [cos| dscp]インターフェイス コンフィギュレーション コマンドを設定すると、パススルー モードがディセーブルになります。

別のQoSドメインとの境界ポートでのDSCP信頼状態の設定

2つの異なるQoSドメインを管理していて、そのQoSドメイン間のIPトラフィックにQoS機能を実行する場合は、DSCPを信頼するようにドメインの境界に位置するスイッチ ポートを設定できます(別のQoSドメインとの境界ポートでのDSCP信頼状態を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、ほかのドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定することができます。

  1. 別のQoSドメインとの境界ポートでのDSCP信頼状態

ポートでDSCPを信頼する状態に設定し、DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。両方のQoSドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

mls qos mapdscp-mutation dscp-mutation-name in-dscp to out-dscp

DSCP/DSCP変換マップを変更します。

デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

  • dscp-mutation-nameを指定する場合は、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成することができます。
  • in-dscpを指定する場合は、最大8つのDSCP値をスペースで区切って入力します。次にtoキーワードを入力します。
  • out-dscpには、DSCP値を1つ入力します。

DSCPの範囲は0〜63です。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、trustedにするインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

mls qos trust dscp

DSCPを信頼する状態のポートとして、入力ポートを設定します。

mls qos dscp-mutationdscp-mutation-name

DSCPを信頼する状態の指定の入力ポートにマップを適用します。

複数のギガビット対応イーサネット ポートにマップを適用することができます。ただし、10/100イーサネット ポートの場合は、12個のポートからなる1つのグループに対して、DSCP/DSCP変換マップを1つのみ付加することができます。たとえば、
FastEthernet 0/1〜0/12ポート、FastEthernet 0/13〜0/24ポート、GigabitEthernet 0/1、GigabitEthernet 0/2はそれぞれが1つのグループです。グループ内のいずれかのポートに変換マップを適用すると、同じグループ内のすべてのポートが同じマップに自動的に設定されます。

end

イネーブルEXECモードに戻ります。

show mls qos maps dscp-mutation

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

DSCPを信頼しない状態にポートを戻すには、no mls qos trustインターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/DSCP変換マップ値に戻すには、no mls qos map dscp-mutationdscp-mutation-map-nameグローバル コンフィギュレーション コマンドを使用します。

次に、DSCPを信頼する状態にGigabitEthernet 0/2ポートを設定し、着信したDSCP値10〜13がDSCP値30にマッピングされるようにDSCP/DSCP変換マップ(gi0/2-mutation)を変更する例を示します。

Switch# configure terminal

Switch(config)# mls qos map dscp-mutation gi0/2-mutation 10 11 12 13 to 30

Switch(config)# interface gigabitethernet0/2

Switch(config-if)# mls qos trust dscp

Switch(config-if)# mls qos dscp-mutation gi0/2-mutation

Switch(config-if)# end

QoSポリシーの設定

通常の場合、QoSポリシーを設定するには、トラフィックをクラスに分類したり、これらのトラフィック クラスに適用されるポリシーを設定したり、ポリシーをインターフェイスに付加する必要があります。

基本的な情報については、分類およびポリシングおよびマーキングを参照してください。

ここでは、QoSポリシーの設定方法について説明します。

ACLによるトラフィックの分類

IPトラフィックを分類するには、IP標準ACLまたはIP拡張ACLを使用します。非IPトラフィックを分類するには、レイヤ2 MAC ACLを使用します。

IPトラフィック用のIP標準ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

access-listaccess-list-number {deny |permit}source [source-wildcard]

IP標準ACLを作成します。必要な回数だけこのコマンドを繰り返します。

  • access-list-numberを指定する場合は、アクセス リスト番号を入力します。指定できる範囲は1〜99および1300〜1999です。
  • 条件が一致した場合に特定のタイプのトラフィックを許可するには、permitキーワードを使用します。条件が一致した場合に特定のタイプのトラフィックを拒否するには、denyキーワードを使用します。
  • sourceを指定する場合は、パケットの送信元であるネットワークまたはホストを入力します。anyキーワードは0.0.0.0 255.255.255.255の短縮形として使用することができます。
  • (任意)source-wildcardを指定する場合は、送信元に適用するワイルドカード ビットをドット付き10進表記で入力します。無視するビット位置に1を配置します。
  • アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。

end

イネーブルEXECモードに戻ります。

show access-lists

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、no access-listaccess-list-numberグローバル コンフィギュレーション コマンドを使用します。

次に、指定された3つのネットワーク上のホストにのみアクセスを許可する例を示します。ワイルドカード ビットはネットワーク アドレスのホスト部分に適用されます。送信元アドレスがアクセス リストのステートメントと一致しないホストは拒否されます。

Switch(config)# access-list 1 permit 192.5.255.0 0.0.0.255

Switch(config)# access-list 1 permit 128.88.0.0 0.0.255.255

Switch(config)# access-list 1 permit 36.0.0.0 0.0.0.255

! (Note: all other access implicitly denied)

IPトラフィック用のIP拡張ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

access-listaccess-list-number {deny |permit}protocolsourcesource-wildcarddestinationdestination-wildcard

IP拡張ACLを作成します。必要な回数だけこのコマンドを繰り返します。

  • access-list-numberを指定する場合は、アクセス リスト番号を入力します。指定できる範囲は100〜199、および2000〜2699です。
  • 条件が一致した場合に特定のタイプのトラフィックを許可するには、permitキーワードを使用します。条件が一致した場合に特定のタイプのトラフィックを拒否するには、denyキーワードを使用します。
  • protocolを指定する場合は、IPプロトコルの名前または番号を入力します。使用可能なプロトコル キーワードのリストを表示するには、疑問符(?)を使用します。
  • sourceを指定する場合は、パケットの送信元であるネットワークまたはホストを入力します。ネットワークまたはホストを指定するには、ドット付き10進表記を使用したり、source 0.0.0.0 source-wildcard 255.255.255.255の短縮形としてanyキーワードを使用したり、source 0.0.0.0を表すhostキーワードを使用します。
  • source-wildcardを指定する場合は、無視するビット位置に1を入力します。ワイルドカードを指定するには、ドット付き10進表記を使用したり、source 0.0.0.0 source-wildcard
    255.255.255.255の短縮形としてanyキーワードを使用したり、source 0.0.0.0を表すhostキーワードを使用します。
  • destinationを指定する場合は、パケットの送信先となるネットワークまたはホストを入力します。destinationおよび
    destination-wildcard
    を指定するときのオプションは、sourceおよびsource-wildcardを指定する場合と同じです。
  • アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。

end

イネーブルEXECモードに戻ります。

show access-lists

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、no access-listaccess-list-numberグローバル コンフィギュレーション コマンドを使用します。

次に、任意の送信元から任意の宛先へのIPトラフィック(DSCP値は32)を許可するACLの作成例を示します。

Switch(config)# access-list 100 permit ip any any dscp 32

次に、10.1.1.1の送信元ホストから10.1.1.2の宛先ホストへのIPトラフィック(precedence値は5)を許可するACLの作成例を示します。

Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5

次に、任意の送信元から宛先グループ アドレス224.0.0.2へのPIMトラフィック(DSCP値は32)を許可するACLの作成例を示します。

Switch(config)# access-list 102 permit pim any 224.0.0.2 dscp 32

非IPトラフィック用のレイヤ2 MAC ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

mac access-list extendedname

リスト名を指定し、レイヤ2 MAC ACLを作成します。

このコマンドを入力すると、拡張MAC ACLコンフィギュレーション モードに変わります。

{permit | deny} {hostsrc-MAC-addr mask |any |hostdst-MAC-addr |dst-MAC-addrmask} [typemask]

条件が一致した場合に許可または拒否するトラフィック タイプを指定します。必要な回数だけコマンドを入力します。

  • src-MAC-addrを指定する場合は、パケットの送信元であるホストのMACアドレスを入力します。MACアドレスを指定するには、16進表記(H.H.H)を使用したり、source 0.0.0、source-wildcard 255.255.255の短縮形としてanyキーワードを使用したり、source 0.0.0を表すhostキーワードを使用します。
  • maskを指定する場合は、無視するビット位置に1を入力します。
  • dst-MAC-addrを指定する場合は、パケットの送信先となるホストのMACアドレスを入力します。MACアドレスを指定するには、16進表記(H.H.H)を使用したり、source 0.0.0、source-wildcard 255.255.255の短縮形としてanyキーワードを使用したり、source 0.0.0を表すhostキーワードを使用します。
  • (任意)typemaskを指定する場合は、Ethernet IIまたはSNAPでカプセル化されたパケットのEtherType番号を指定し、パケットのプロトコルを指定します。typeの範囲は0〜65535です。通常は16進数で指定します。maskを指定する場合は、一致を調べる前にEtherTypeに適用される無視(dont care)ビットを入力します。
  • アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。

end

イネーブルEXECモードに戻ります。

show access-lists [access-list-number |access-list-name]

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、no mac access-list extendedaccess-list-nameグローバル コンフィギュレーション コマンドを使用します。

次に、2つの許可(permit)ステートメントを含むレイヤ2のMAC ACLを作成する例を示します。最初のステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めのステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。

Switch(config)# mac access-list extended maclist1

Switch(config-ext-macl)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0

Switch(config-ext-macl)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp

! (Note: all other access implicitly denied)

クラス マップによる物理ポート単位のトラフィック分類

特定のトラフィック フロー(またはクラス)をほかのすべてのトラフィックと区別して名前を付けるには、class-mapグローバル コンフィギュレーション コマンドを使用します。クラス マップが、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。ACL、IP precedence値、DSCP値などの条件を一致(match)ステートメントに含めることができます。一致条件は、クラス マップ コンフィギュレーション モードで1つの一致ステートメントを入力することによって定義されます。

ポート単位の分類とVLAN単位の分類を両方同時に設定することはできません。

クラス マップを作成し、物理ポート単位でトラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

access-listaccess-list-number{deny |permit}source[source-wildcard]

または

access-listaccess-list-number{deny |permit}protocolsource[source-wildcard]destination[destination-wildcard]

または

mac access-list extendedname

{permit | deny} {hostsrc-MAC-addr mask |any |hostdst-MAC-addr |dst-MAC-addrmask} [typemask]

IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。

詳細については、ACLによるトラフィックの分類を参照してください。

  • アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。

class-map [match-all |match-any]class-map-name

クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトで、クラス マップは定義されていません。

  • (任意)このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、match-allキーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。
  • (任意)このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、match-anyキーワードを使用します。この場合は、1つまたは複数の一致条件と一致する必要があります。
  • class-map-nameを指定する場合は、クラス マップの名前を指定します。

match-allまたはmatch-anyのどちらのキーワードも指定しない場合、デフォルトはmatch-allです。

  • 各クラス マップで使用できるmatchコマンドは1つのみです。このため、match-allおよびmatch-anyキーワードを両方指定しても機能は変わりません。

match {access-group acl-index-or-name |ip dscp dscp-list |ip precedence ip-precedence-list}

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

各クラス マップで使用できる一致条件およびACLは、それぞれ1つのみです。

  • access-group acl-index-or-nameを指定する場合は、ステップ3で作成したACLの番号または名前を指定します。
  • ip dscp dscp-listを指定する場合は、着信パケットと比較するIP DSCP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0〜63です。
  • ip precedence ip-precedence-listを指定する場合は、着信パケットと比較するIP precedence値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0〜7です。
  • 出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。

end

イネーブルEXECモードに戻ります。

show class-map

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のクラス マップを削除するには、no class-map[match-all |match-any]class-map-nameグローバル コンフィギュレーション コマンドを使用します。一致条件を削除するには、
no match {access-group acl-index-or-name |ip dscp |ip precedence}クラス マップ コンフィギュレーション コマンドを使用します。

次に、class1という名前のクラス マップを設定する例を示します。class1にはアクセス リスト103という一致条件が1つ設定されています。このクラス マップによって、任意のホストから任意の宛先へのトラフィック(DSCP値は10)が許可されます。

Switch(config)# access-list 103 permit any any dscp 10

Switch(config)# class-map class1

Switch(config-cmap)# match access-group 103

Switch(config-cmap)# end

次に、DSCP値が10、11、12である着信トラフィックとの一致を調べる、class2という名前のクラス マップを作成する例を示します。

Switch(config)# class-map class2

Switch(config-cmap)# match ip dscp 10 11 12

Switch(config-cmap)# end

次に、IP precedence値が5、6、7である着信トラフィックとの一致を調べる、class3という名前のクラス マップを作成する例を示します。

Switch(config)# class-map class3

Switch(config-cmap)# match ip precedence 5 6 7

Switch(config-cmap)# end

クラス マップによるポート単位、VLAN単位のトラフィック分類

特定のトラフィック フロー(またはクラス)をほかのすべてのトラフィックと区別して名前を付けるには、class-mapグローバル コンフィギュレーション コマンドを使用します。トラフィック フローをさらに分類するために、クラス マップが使用する一致基準を定義します。

ポート単位、VLAN単位のパケット分類を定義するには、次の注意事項に従ってください。

クラス マップを作成し、ポート単位、VLAN単位でトラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

class-map match-anyclass-map-name

クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトで、クラス マップは定義されていません。

  • このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、match-anyキーワードを使用します。この場合は、1つまたは複数の一致条件と一致する必要があります。
  • class-map-nameを指定する場合は、クラス マップの名前を指定します。

match{access-group acl-index-or-name |ip dscp dscp-list |ip precedence ip-precedence-list}

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

  • access-group acl-index-or-nameを指定する場合は、ACLの番号または名前を指定します。
  • ip dscp dscp-listを指定する場合は、着信パケットと比較するIP DSCP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0〜63です。
  • ip precedence ip-precedence-listを指定する場合は、着信パケットと比較するIP precedence値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0〜7です。

exit

グローバル コンフィギュレーション モードに戻ります。

class-map match-allclass-map-name

クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトで、クラス マップは定義されていません。

  • このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、match-allキーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。
  • class-map-nameを指定する場合は、ステップ3で作成したクラス マップの名前を指定します。

matchvlanvlan-list

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

vlan-listには、着信パケットと比較するVLANリストを指定します。最大30のVLAN IDを入力できます。VLANの範囲を入力するのにハイフンを使用します。VLAN範囲は2つのVLAN IDと数えられます。各VLANを区切るには、スペースを使用します。指定できる範囲は1〜4094です。

入力できるmatch vlanコマンドは1つのみです。このコマンドは、match class-mapコマンドの前に入力します。

match class-mapclass-map-name

ステップ3で作成したクラス マップの名前を指定します。

end

イネーブルEXECモードに戻ります。

show class-map

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のクラス マップを削除するには、no class-map[match-all |match-any]class-map-nameグローバル コンフィギュレーション コマンドを使用します。一致条件を削除するには、
no match {access-group acl-index-or-name |ip dscp |ip precedence}クラス マップ コンフィギュレーション コマンドを使用します。

次に、IP DSCP 9と一致するという一致基準を持つ、dscp_classという名前のクラス マップを設定する例を示します。2番めのクラス マップ(vlan_class)は、VLAN 10、VLAN 20〜30、およびVLAN 40のトラフィックとクラス マップ(dscp_class)との一致を調べます。

Switch(config)# class-map match-any dscp_class

Switch(config-cmap)# match ip dscp 9

Switch(config-cmap)# exit

Switch(config)# class-map match-all vlan_class

Switch(config-cmap)# match vlan 10 20-30 40

Switch(config-cmap)# match class-map dscp_class

Switch(config-cmap)# exit

ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング

ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスのCoS値、DSCP値、またはIP precedence値を信頼するアクション、トラフィック クラスに特定のCoS値、DSCP値、またはIP precedence値を設定するアクション、および一致した各トラフィック クラス(ポリサー)のトラフィック帯域幅の制限やトラフィックが不適合になったときの対処法(マーキング)を指定するアクションなどを指定できます。

ポリシー マップには次の特性もあります。

各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。複数のインターフェイスおよび方向に、同じポリシー マップを適用できます。

ポリシー マップを作成するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

access-listaccess-list-number {deny |permit}source [source-wildcard]

または

access-listaccess-list-number {deny |permit}protocolsource [source-wildcard]destination [destination-wildcard]

または

mac access-list extendedaccess-list name

{permit | deny} {source-MAC-addr mask |any |host} {destination-MAC-addr mask |any |host} [ethertype]

IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。

詳細については、ACLによるトラフィックの分類を参照してください。

  • アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。

class-map [match-all |match-any]class-map-name

必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、クラス マップによる物理ポート単位のトラフィック分類およびクラス マップによるポート単位、VLAN単位のトラフィック分類を参照してください。

mls qos cos policy-map

(任意)ポリシー マップ内のポートのCoS値を定義します。このコマンドを入力すると、ステップ8のtrust dscpポリシー マップ コンフィギュレーション コマンド、およびステップ9のset cosnew-cos ポリシー マップ コンフィギュレーション コマンドを入力しなければなりません。

policy-map policy-map-name

ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。

デフォルトで、ポリシー マップは定義されていません。

ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。

class class-map-name

トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。

デフォルトで、ポリシー マップのクラス マップは定義されていません。

class-mapグローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドのclass-map-nameの位置に名前を指定します。

trust [cos |dscp |ip-precedence]

信頼状態を設定し、これによって内部DSCP値のソースとしてQoSで使用される値を選択します。

  • このコマンドとsetコマンドの両方を、同じポリシー マップ内で設定することはできません。trustコマンドを入力する場合は、ステップ7を省略してください。

デフォルトで、ポートはtrustedになっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトはdscpになります。

キーワードの意味は次のとおりです。

  • cos ―QoSは受信されたCoS値やデフォルトのポートCoS値、およびCoS/DSCPマップを使用して、内部DSCP値を取得します。
  • dscp ―QoSは入力パケットのDSCP値を使用して、内部DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用して内部DSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用して内部DSCP値を取得します。いずれの場合も、内部DSCP値はCoS/DSCPマップから取得されます。
  • mls qos cos policy-mapグローバル コンフィギュレーション コマンドを使用する場合、dscpキーワードを使用しなければなりません。
  • ip-precedence ―QoSは入力パケットのIP precedence値およびIP precedence/DSCPマップを使用して、内部DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用して内部DSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用して内部DSCP値を取得します。いずれの場合も、内部DSCP値はCoS/DSCPマップから取得されます。

詳細については、CoS/DSCPマップの設定を参照してください。

set {cosnew-cos |ip dscpnew-dscp |ip precedencenew-precedence}

パケットに新しい値を設定し、IPトラフィックを分類します。

  • cos new-cosを指定する場合は、分類されたトラフィックに割り当てる新しいCoS値を入力します。指定できる範囲は0〜7です。
  • mls qos cos policy-mapグローバル コンフィギュレーション コマンドを使用する場合、cosnew-cosキーワードを使用しなければなりません。
  • ip dscp new-dscpを指定する場合は、分類されたトラフィックに割り当てる新しいDSCP値を入力します。指定できる範囲は0〜63です。
  • ip precedence new-precedenceを指定する場合は、分類されたトラフィックに割り当てる新しいIP precedence値を入力します。指定できる範囲は0〜7です。

policerate-bps burst-byte [exceed-action{drop | policed-dscp-transmit}]

分類されたトラフィックのポリサーを定義します。

入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定することができます。

  • rate-bpsを指定する場合は、平均トラフィック速度をビット/秒単位で指定します。指定できる範囲は8000〜2000000000です。
  • burst-byteを指定する場合は、標準バースト サイズをバイト単位で指定します。指定できる範囲は8000〜512000000です。
  • コマンドライン ヘルプのストリングに示されている値の範囲は広範ですが、rate-bpsオプションに設定済みポート速度を超える値を指定したり、burst-byteオプションに2000000バイトを超える値を指定することはできません。制限値を超える値を入力すると、インターフェイスにポリシー マップを付加するときに拒否されます。
  • (任意)速度を超えた場合の対処方法を指定します。パケットを廃棄するには、exceed-action dropキーワードを使用します。(ポリシング設定DSCPマップを使用して)DSCP値をマーク ダウンし、パケットを送信するには、
    exceed-action policed-dscp-transmitキーワードを使用します。詳細については、ポリシング設定DSCPマップの設定を参照してください。

exit

ポリシー マップ コンフィギュレーション モードに戻ります。

exit

グローバル コンフィギュレーション モードに戻ります。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、ポリシー マップに付加するインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

service-policy {inputpolicy-map-name |output policy-map-name}

特定のインターフェイスの入力または出力にポリシー マップを適用します。

各インターフェイスの方向ごとに、1つのポリシー マップのみを適用することができます。

  • 指定されたポリシー マップをインターフェイスの入力に適用するには、input policy-map-nameを使用します。
  • 指定されたポリシー マップをインターフェイスの出力に適用するには、outputpolicy-map-nameを使用します。

次の要素を含むポリシー マップを出力インターフェイスに付加する場合、service-policyインターフェイス コンフィギュレーション コマンドを使用することはできません。

  • setまたはtrustポリシー マップ クラス コンフィギュレーション コマンド。これらのコマンドの代わりに、policeポリシー マップ クラス コンフィギュレーション コマンドを使用し、出力インターフェイスにDSCP値をマークダウン(削減)することができます。
  • ACL分類
  • ポート単位、VLAN単位の分類

出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。

ポート単位、VLAN単位のポリシングは、ルーテッド ポートまたは仮想(論理)インターフェイスでサポートされません。

end

イネーブルEXECモードに戻ります。

show policy-map [policy-map-name[classclass-name]]

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、no policy-map policy-map-nameグローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、no class class-map-nameポリシーマップ コンフィギュレーション コマンドを使用します。DSCP/CoSマップを使用してCoS値を定義するには、nomls qos cos policy-mapグローバル コンフィギュレーション コマンドを使用します。デフォルトの信頼状態に戻すには、no trust [cos | dscp | ip-precedence]ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられたCoS値、DSCP値、またはIP precedence値を削除するには、no set {cosnew-cos| ip dscp new-dscp | ip precedence new-precedence}ポリシーマップ コンフィギュレーション コマンドを使用します。既存のポリサーを削除するには、no police rate-bps burst-byte[exceed-action {drop| policed-dscp-transmit}]ポリシー マップ コンフィギュレーション コマンドを使用します。ポリシー マップとインターフェイスの関連づけを解除するには、no service-policy {input policy-map-name|output policy-map-name}インターフェイス コンフィギュレーション コマンドを使用します。

次に、ポリシー マップを作成し、入力インターフェイスに付加する例を示します。この設定の場合、IP標準ACLはネットワーク10.1.0.0からのトラフィックを許可します。この分類と一致するトラフィックの場合、着信パケットのDSCP値は信頼されます。一致したトラフィックが平均トラフィック速度(48000 bps)および標準バースト サイズ(8000バイト)を超えた場合、(ポリシング設定DSCPマップに基づいて)DSCPがマーク ダウンされて送信されます。

Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255

Switch(config)# class-map ipclass1

Switch(config-cmap)# match access-group 1

Switch(config-cmap)# exit

Switch(config)# policy-map flow1t

Switch(config-pmap)# class ipclass1

Switch(config-pmap-c)# trust dscp

Switch(config-pmap-c)# police 48000 8000 exceed-action policed-dscp-transmit

Switch(config-pmap-c)# exit

Switch(config-pmap)# exit

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# service-policy input flow1t

次に、ポリシー マップを作成し、入力インターフェイスに付加する例を示します。この設定の場合、IP拡張ACLは、任意のホストからホスト224.0.0.5への、IP precedence値が4であるTCPトラフィックを許可します。この分類と一致するトラフィックの場合、着信パケットのDSCP値は63に設定されます。

Switch(config)# access-list 104 permit tcp any host 224.0.0.5 precedence 4

Switch(config)# class-map ipclass1

Switch(config-cmap)# match access-group 104

Switch(config-cmap)# exit

Switch(config)# policy-map ip104

Switch(config-pmap)# class ipclass1

Switch(config-pmap-c)# set ip dscp 63

Switch(config-pmap-c)# exit

Switch(config-pmap)# exit

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# service-policy input ip104

次に、2つの許可ステートメントを持つレイヤ2 MAC ACLを作成し、入力インターフェイスに付加する例を示します。最初のステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めのステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。

Switch(config)# mac access-list extended maclist1

Switch(config-ext-mac)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0

Switch(config-ext-mac)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp

Switch(config-ext-mac)# exit

Switch(config)# mac access-list extended maclist2

Switch(config-ext-mac)# permit 0001.0000.0003 0.0.0 0002.0000.0003 0.0.0

Switch(config-ext-mac)# permit 0001.0000.0004 0.0.0 0002.0000.0004 0.0.0 aarp

Switch(config-ext-mac)# exit

Switch(config)# class-map macclass1

Switch(config-cmap)# match access-group maclist1

Switch(config-cmap)# exit

Switch(config)# class-map macclass2

Switch(config-cmap)# match access-group maclist2

Switch(config-cmap)# exit

Switch(config)# policy-map macpolicy1

Switch(config-pmap)# class macclass1

Switch(config-pmap-c)# set ip dscp 63

Switch(config-pmap-c)# exit

Switch(config-pmap)# class macclass2

Switch(config-pmap-c)# set ip dscp 45

Switch(config-pmap-c)# exit

Switch(config-pmap)# exit

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# mls qos trust cos

Switch(config-if)# service-policy input macpolicy1

次に、ポート単位、VLAN単位の分類を含むポリシー マップを作成し、入力インターフェイスに付加する例を示します。クラス マップ(vlan_class)は、VLAN 10、VLAN 20〜30、およびVLAN 40で受信された、IP DSCP 9を含むトラフィック(クラス マップdscp_classで定義)との一致を調べます。指定された平均トラフィック速度およびバースト サイズを超えるパケットは、廃棄されます。

Switch(config)# class-map match-any dscp_class

Switch(config-cmap)# match ip dscp 9

Switch(config-cmap)# exit

Switch(config)# class-map match-all vlan_class

Switch(config-cmap)# match vlan 10 20-30 40

Switch(config-cmap)# match class-map dscp_class

Switch(config-cmap)# exit

Switch(config)# policy-map policymap2

Switch(config-pmap)# class vlan_class

Switch(config-pmap-c)# police 80000 8000 exceed-action drop

Switch(config-pmap-c)# exit

Switch(config-pmap)# exit

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# service-policy input policymap2

次に、ポートのCoS値を定義するポリシー マップを作成し、入力インターフェイスに付加する例を示します。class1というクラス マップは、VLAN 10、VLAN 20〜30、およびVLAN 40で受信されたトラフィックとの一致を調べます。

Switch (config)# mls qos cos policy-map

Switch (config)# class-map match-all class1

Switch (config-cmap)# match vlan 10 20-30 40

Switch (config-cmap)# match class-map some_class

Switch (config-cmap)# exit

Switch (config)# policy-map policymap1

Switch (config-pmap)# class class1

Switch (config-pmap-c)# trust dscp

Switch (config-pmap-c)# set cos 3

Switch (config-pmap-c)# exit

Switch (config-pmap)# exit

Switch (config)# interface gigabitethernet0/1

Switch(config-if)# service-policy input policymap1

集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング

集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはインターフェイスに使用することはできません。

集約ポリサーを作成するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

mls qos aggregate-police aggregate-policer-name rate-bps burst-byteexceed-action {drop |policed-dscp-transmit}

同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。

デフォルトで、集約ポリサーは定義されていません。

入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定することができます。

  • aggregate-policer-nameを指定する場合は、集約ポリサーの名前を指定します。
  • rate-bpsを指定する場合は、平均トラフィック速度をビット/秒単位で指定します。指定できる範囲は8000〜2000000000 bpsです。
  • burst-byteを指定する場合は、標準バースト サイズをバイト単位で指定します。指定できる範囲は8000〜512000000バイトです。
  • コマンドライン ヘルプのストリングに示されている値の範囲は広範ですが、rate-bpsオプションに設定済みポート速度を超える値を指定したり、burst-byteオプションに2000000バイトを超える値を指定することはできません。制限値を超える値を入力すると、インターフェイスにポリシー マップを付加するときに拒否されます。
  • (任意)速度を超えた場合の対処方法を指定します。パケットを廃棄するには、exceed-action dropキーワードを使用します。(ポリシング設定DSCPマップを使用して)DSCP値をマーク ダウンし、パケットを送信するには、
    exceed-action policed-dscp-transmitキーワードを使用します。詳細については、ポリシング設定DSCPマップの設定を参照してください。

class-map [match-all |match-any]class-map-name

必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、クラス マップによる物理ポート単位のトラフィック分類およびクラス マップによるポート単位、VLAN単位のトラフィック分類を参照してください。

policy-map policy-map-name

ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。

詳細については、ポリシー マップによるトラフィックの分類、ポリシング、およびマーキングを参照してください。

class class-map-name

トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。

デフォルトで、ポリシー マップのクラス マップは定義されていません。

class-mapグローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドのclass-map-nameの位置に名前を指定します。

police aggregateaggregate-policer-name

同じポリシー マップの複数のクラスに集約ポリサーを適用します。

aggregate-policer-nameを指定する場合は、ステップ3で指定された名前を入力します。

exit

グローバル コンフィギュレーション モードに戻ります。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、ポリシー マップに付加するインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

service-policy {inputpolicy-map-name |outputpolicy-map-name}

特定のインターフェイスの入力または出力にポリシー マップを適用します。

各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。

  • 指定されたポリシー マップをインターフェイスの入力に適用するには、input policy-map-nameを使用します。
  • 指定されたポリシー マップをインターフェイスの出力に適用するには、outputpolicy-map-nameを使用します。

次の要素を含むポリシー マップを出力インターフェイスに付加する場合、service-policyインターフェイス コンフィギュレーション コマンドを使用することはできません。

  • setまたはtrustポリシー マップ クラス コンフィギュレーション コマンド。これらのコマンドの代わりに、policeポリシー マップ クラス コンフィギュレーション コマンドを使用し、出力インターフェイスにDSCP値をマークダウンすることができます。
  • ACL分類
  • ポート単位、VLAN単位の分類

出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。

ポート単位、VLAN単位のポリシングは、ルーテッド ポートまたは仮想(論理)インターフェイスでサポートされません。

end

イネーブルEXECモードに戻ります。

show mls qos aggregate-policer[aggregate-policer-name]

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

指定された集約ポリサーをポリシー マップから削除するには、no police aggregateaggregate- policer-nameポリシー マップ コンフィギュレーション モードを使用します。集約ポリサーおよびそのパラメータを削除するには、no mls qos aggregate-policeraggregate-policer-nameグローバル コンフィギュレーション コマンドを使用します。

次に、集約ポリサーを作成し、ポリシー マップ内の複数のクラスに付加する例を示します。この設定で、IP ACLはネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィックを許可します。ネットワーク10.1.0.0からのトラフィックの場合、着信パケットのDSCPは信頼されます。ホスト11.3.1.1からのトラフィックの場合、パケットのDSCPは56に変更されます。ネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィック速度には、ポリシーが設定されます。トラフィックが平均速度(48000 bps)および標準バースト サイズ(8000バイト)を超えた場合、(ポリシング設定DSCPマップに基づいて)DSCPがマーク ダウンされて転送されます。ポリシー マップは入力インターフェイスに付加されます。

Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255

Switch(config)# access-list 2 permit 11.3.1.1

Switch(config)# mls qos aggregate-police transmit1 48000 8000 exceed-action policed-dscp-transmit

Switch(config)# class-map ipclass1

Switch(config-cmap)# match access-group 1

Switch(config-cmap)# exit

Switch(config)# class-map ipclass2

Switch(config-cmap)# match access-group 2

Switch(config-cmap)# exit

Switch(config)# policy-map aggflow1

Switch(config-pmap)# class ipclass1

Switch(config-pmap-c)# trust dscp

Switch(config-pmap-c)# police aggregate transmit1

Switch(config-pmap-c)# exit

Switch(config-pmap)# class ipclass2

Switch(config-pmap-c)# set ip dscp 56

Switch(config-pmap-c)# police aggregate transmit1

Switch(config-pmap-c)# exit

Switch(config-pmap)# exit

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# service-policy input aggflow1

Switch(config-if)# exit

DSCPマップの設定

ここでは、DSCPマップを設定する手順について説明します。

DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。複数のDSCP/DSCP変換マップを作成し、さまざまなギガビット対応イーサネット ポートに適用できます。ただし、10/100イーサネット ポートの場合は、12個のポートからなる1つのグループに対して、DSCP/DSCP変換マップを1つのみ付加することができます。

CoS/DSCPマップの設定

着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。

デフォルトのCoS/DSCPマップにデフォルトのCoS/DSCPマップを示します。

デフォルトのCoS/DSCPマップ

CoS値

0

1

2

3

4

5

6

7

DSCP値

0

8

16

24

32

40

48

56

これらの値がネットワークに適さない場合は、変更する必要があります。

CoS/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos map cos-dscp dscp1...dscp8

CoS/DSCPマップを変更します。

dscp1...dscp8を指定する場合は、CoS値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。指定できる範囲は0〜63です。

end

イネーブルEXECモードに戻ります。

show mls qos maps cos-dscp

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、no mls qos map cos-dscpグローバル コンフィギュレーション コマンドを使用します。

次に、CoS/DSCPマップを変更して表示する例を示します。

Switch# configure terminal

Switch(config)# mls qos map cos-dscp 10 15 20 25 30 35 40 45

Switch(config)# end

Switch# show mls qos maps cos-dscp

Cos-dscp map:

cos: 0 1 2 3 4 5 6 7

--------------------------------

dscp: 10 15 20 25 30 35 40 45

IP precedence/DSCPマップの設定

着信パケットのIP precedence値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。

デフォルトのIP precedence/DSCPマップに、デフォルトのIP precedence/DSCPマップを示します。

デフォルトのIP precedence/DSCPマップ

IP precedence値

0

1

2

3

4

5

6

7

DSCP値

0

8

16

24

32

40

48

56

これらの値がネットワークに適さない場合は、変更する必要があります。

IP precedence/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos mapip-prec-dscp dscp1...dscp8

IP precedence/DSCPマップを変更します。

dscp1...dscp8を指定する場合は、IP precedence値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。指定できる範囲は0〜63です。

end

イネーブルEXECモードに戻ります。

show mls qos maps ip-prec-dscp

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、no mls qos map ip-prec-dscpグローバル コンフィギュレーション コマンドを使用します。

次に、IP precedence/DSCPマップを変更して表示する例を示します。

Switch# configure terminal

Switch(config)# mls qos map ip-prec-dscp 10 15 20 25 30 35 40 45

Switch(config)# end

Switch# show mls qos maps ip-prec-dscp

IpPrecedence-dscp map:

ipprec: 0 1 2 3 4 5 6 7

--------------------------------

dscp: 10 15 20 25 30 35 40 45

ポリシング設定DSCPマップの設定

ポリシングおよびマーキング アクションによって得られる新しい値にDSCP値をマーク ダウンするには、ポリシング設定DSCPマップを使用します。

デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

ポリシング設定DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos mappoliced-dscp dscp-list to mark-down-dscp

ポリシング設定DSCPマップを変更します。

  • dscp-listを指定する場合は、最大8つのDSCP値をスペースで区切って入力します。次にtoキーワードを入力します。
  • mark-down-dscpを指定する場合は、対応するポリシング設定(マーク ダウンされる)DSCP値を入力します。

指定できる範囲は0〜63です。

end

イネーブルEXECモードに戻ります。

show mls qos maps policed-dscp

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、no mls qos map policed-dscpグローバル コンフィギュレーション コマンドを使用します。

次に、DSCP値50〜57を、マークダウンされるDSCP値0にマッピングする例を示します。

Switch# configure terminal

Switch(config)# mls qos map policed-dscp 50 51 52 53 54 55 56 57 to 0

Switch(config)# end

Switch# show mls qos maps policed-dscp

Policed-dscp map:

d1 : d2 0 1 2 3 4 5 6 7 8 9

---------------------------------------

0 : 00 01 02 03 04 05 06 07 08 09

1 : 10 11 12 13 14 15 16 17 18 19

2 : 20 21 22 23 24 25 26 27 28 29

3 : 30 31 32 33 34 35 36 37 38 39

4 : 40 41 42 43 44 45 46 47 48 49

5 : 00 00 00 00 00 00 00 00 58 59

6 : 60 61 62 63

DSCP/CoSマップの設定

4つの出力キューの1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。

デフォルトのDSCP/CoSマップにデフォルトのDSCP/CoSマップを示します。

デフォルトのDSCP/CoSマップ

DSCP値

0〜7

8〜15

16〜23

24〜31

32〜39

40〜47

48〜55

56〜63

CoS値

0

1

2

3

4

5

6

7

これらの値がネットワークに適さない場合は、変更する必要があります。

DSCP/CoSマップを変更するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos map dscp-cos dscp-list to cos

DSCP/CoSマップを変更します。

  • dscp-listを指定する場合は、最大8つのDSCP値をスペースで区切って入力します。次にtoキーワードを入力します。指定できる範囲は0〜63です。
  • cosを指定する場合は、DSCP値に対応するCoS値を入力します。指定できる範囲は0〜7です。

end

イネーブルEXECモードに戻ります。

show mls qos maps dscp-to-cos

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、no mls qos map dscp-cosグローバル コンフィギュレーション コマンドを使用します。

次にDSCP値0、8、16、24、32、40、48、50をCoS値0にマッピングする例を示します。

Switch# configure terminal

Switch(config)# mls qos map dscp-cos 0 8 16 24 32 40 48 50 to 0

Switch(config)# end

Switch# show mls qos maps dscp-cos

Dscp-cos map:

d1 : d2 0 1 2 3 4 5 6 7 8 9

---------------------------------------

0 : 00 00 00 00 00 00 00 00 00 01

1 : 01 01 01 01 01 01 00 02 02 02

2 : 02 02 02 02 00 03 03 03 03 03

3 : 03 03 00 04 04 04 04 04 04 04

4 : 00 05 05 05 05 05 05 05 00 06

5 : 00 06 06 06 06 06 07 07 07 07

6 : 07 07 07 07

DSCP/DSCP変換マップの設定

DSCP/DSCP変換マップは、QoS管理ドメインの境界にあるポートに適用されます。2つのドメインで異なるDSCP定義が使用されている場合は、ほかのドメイン内での定義に合わせて、一連のDSCP値を変換するDSCP/DSCP変換マップを使用します。

デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos mapdscp-mutation dscp-mutation-name in-dscp to out-dscp

DSCP/DSCP変換マップを変更します。

  • dscp-mutation-nameを指定する場合は、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成することができます。
  • in-dscpを指定する場合は、最大8つのDSCP値をスペースで区切って入力します。次にtoキーワードを入力します。
  • out-dscpには、DSCP値を1つ入力します。

指定できる範囲は0〜63です。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、マップに付加するインターフェイスを指定します。

有効なインターフェイスは物理インターフェイスなどです。

mls qos trust dscp

DSCPを信頼する状態のポートとして、入力ポートを設定します。

mls qos dscp-mutationdscp-mutation-name

DSCPを信頼する状態の指定の入力ポートにマップを適用します。

dscp-mutation-nameを指定する場合は、ステップ2で指定された変換マップ名を入力します。

複数のギガビット対応イーサネット ポートにマップを適用することができます。ただし、10/100イーサネット ポートの場合は、12個のポートからなる1つのグループに対して、DSCP/DSCP変換マップを1つのみ付加することができます。たとえば、FastEthernet 0/1〜0/12ポート、FastEthernet 0/13〜0/24ポート、GigabitEthernet 0/1ポート、GigabitEthernet 0/2ポートはそれぞれが1つのグループです。グループ内のいずれかのポートに変換マップを適用すると、同じグループ内のすべてのポートが同じマップに自動的に設定されます。

end

イネーブルEXECモードに戻ります。

show mls qos maps dscp-mutation

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、no mls qos map dscp-mutationdscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP/DSCP変換マップを定義する例を示します。明示的に設定されていないすべてのエントリは変更されません(空のマップで指定された値のままです)。

Switch# configure terminal

Switch(config)# mls qos map dscp-mutation mutation1 1 2 3 4 5 6 7 to 0

Switch(config)# mls qos map dscp-mutation mutation1 8 9 10 11 12 13 to 10

Switch(config)# mls qos map dscp-mutation mutation1 20 21 22 to 20

Switch(config)# mls qos map dscp-mutation mutation1 30 31 32 33 34 to 30

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# mls qos trust dscp

Switch(config-if)# mls qos dscp-mutation mutation1

Switch(config-if)# end

Switch# show mls qos maps dscp-mutation mutation1

Dscp-dscp mutation map:

mutation1:

d1 : d2 0 1 2 3 4 5 6 7 8 9

---------------------------------------

0 : 00 00 00 00 00 00 00 00 10 10

1 : 10 10 10 10 14 15 16 17 18 19

2 : 20 20 20 23 24 25 26 27 28 29

3 : 30 30 30 30 30 35 36 37 38 39

4 : 40 41 42 43 44 45 46 47 48 49

5 : 50 51 52 53 54 55 56 57 58 59

6 : 60 61 62 63

ギガビット対応イーサネット ポートの出力キューの設定

ここでは、ギガビット対応イーサネット ポートの出力キューを設定する方法について説明します。10/100イーサネット ポートの設定方法については、10/100イーサネット ポートの出力キューの設定を参照してください。

ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。

ここでは次の設定情報について説明します。

出力キューを選択するためのCoS値のマッピング

いずれかの出力キューを選択するためのCoS入力値をマッピングするには、イネーブルEXECモードから始めて次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue cos-map queue-idcos1 ... cos8

いずれかの出力キューを選択するためのCoS値をマッピングします。

デフォルトのマップの値は次のとおりです。

CoS値が0、1の場合は、キュー1が選択されます。

CoS値が2、3の場合は、キュー2が選択されます。

CoS値が4、5の場合は、キュー3が選択されます。

CoS値が6、7の場合は、キュー4が選択されます。

  • queue-idを指定する場合は、出力キューのIDを指定します。IDの範囲は1〜4です。キュー4は緊急キューとして設定できます。詳細については、出力緊急キューの設定を参照してください。
  • cos1 ... cos8を指定する場合は、キューを選択するためのCoS値を指定します。最大8つのCoS値を入力、各値はスペースで区切ります。指定できる範囲は0〜7です。

end

イネーブルEXECモードに戻ります。

show mls qos interface queueing

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのCoS/出力キュー マップに戻すには、no wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドを使用します。

次に、CoS値6および7をキュー1に、CoS値4および5をキュー2に、CoS値2および3をキュー3に、0および1をキュー4にマッピングする例を示します。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# wrr-queue cos-map 1 6 7

Switch(config-if)# wrr-queue cos-map 2 4 5

Switch(config-if)# wrr-queue cos-map 3 2 3

Switch(config-if)# wrr-queue cos-map 4 0 1

出力キューのサイズ比の設定

出力キューのサイズ比を設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue queue-limitweight1 weight2 weight3 weight4

出力キューのサイズ比を設定します。

デフォルトのウェイトは25です(バッファ サイズの1/4が各キューに割り当てられます)。

weight1weight2weight3weight4を指定する場合は、1〜100のウェイトを指定します。各値はスペースで区切ります。

キューごとに相対的に異なる値を指定すると、相対的に異なるキュー サイズが設定されます。

このコマンドを入力すると、キューはハードウェア再設定中に一時的にシャットダウンし、このキューに新規に着信したパケットは廃棄されます。

end

イネーブルEXECモードに戻ります。

show mls qos interface buffers

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのウェイトに戻すには、no wrr-queue queue-limitインターフェイス コンフィギュレーション コマンドを使用します。

次に、4つのキューのサイズ比を設定する例を示します。各キューに割り当てられているサイズ比は、キュー1、2、3、4に対してそれぞれ1/10、2/10、3/10、4/10です(キュー4のサイズはキュー1の4倍、キュー2の2倍、キュー3の1.33倍です)。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# wrr-queue queue-limit 1 2 3 4

テール廃棄スレッシュホールドの設定

テール ドロップはギガビット対応イーサネット ポートのデフォルトの輻輳回避技術です。テール ドロップを使用した場合、スレッシュホールドを超えるまで、パケットはキューイングされます。たとえば、DSCPが最初のスレッシュホールドに割り当てられているパケットは、スレッシュホールド以下の値に戻るまですべて廃棄されます。ただし、DSCPが2番めのスレッシュホールドに割り当てられているパケットは、2番めのスレッシュホールドを超えないかぎり、キューイングされて送信されます。

DSCP/スレッシュホールド マップを変更し、どのDSCPをどのスレッシュホールドIDにマッピングするかを決定するには、wrr-queue dscp-mapインターフェイス コンフィギュレーション コマンドを使用します。デフォルトでは、すべてのDSCPがスレッシュホールド1にマッピングされており、このスレッシュホールドを超えると、すべてのパケットが廃棄されます。

テール廃棄スレッシュホールドを使用する場合は、WREDを使用できません。その逆の場合も同様です。

ギガビット対応イーサネット ポートにテール廃棄スレッシュホールド値を設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue threshold queue-id threshold-percentage1 threshold-percentage2

各出力キューにテール廃棄スレッシュホールドを設定します。

スレッシュホールド1および2のデフォルトのスレッシュホールドは100%です。

  • queue-idを指定する場合は、出力キューのIDを指定します。指定できる範囲は1〜4です。
  • threshold-percentage1 threshold-percentage2を指定する場合は、テール廃棄スレッシュホールド値を指定します。各値はスペースで区切ります。指定できる範囲は1〜100です。

exit

グローバル コンフィギュレーション モードに戻ります。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、入力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue dscp-map threshold-id dscp1 ... dscp8

DSCP値を出力キューのテール廃棄スレッシュホールドにマッピングします。

デフォルトでは、すべてのDSCP値がスレッシュホールド1にマッピングされます。

  • threshold-idを指定する場合は、キューのスレッシュホールドIDを指定します。指定できる範囲は1〜2です。
  • dscp1 ... dscp8を指定する場合は、スレッシュホールドIDにマッピングするDSCP値を指定します。コマンドごとに最大8つのDSCP値を入力し、各値はスペースで区切ります。指定できる範囲は0〜63です。

end

イネーブルEXECモードに戻ります。

show running-config

または

show mls qos interfaceinterface-idqueueing

DSCP/スレッシュホールド マップを確認します。

show mls qos interface buffers

スレッシュホールドを確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのスレッシュホールドに戻すには、no wrr-queue threshold queue-idインターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/スレッシュホールド マップに戻すには、no wrr-queue dscp-map [threshold-id]インターフェイス コンフィギュレーション コマンドを使用します。

次に、出力インターフェイス(GigabitEthernet 0/1)のキュー1のテール廃棄スレッシュホールドを10%と100%、キュー2を40%と100%、キュー3を60%と100%、キュー4を80%と100%に設定する例を示します。着信パケットのDSCPを信頼し、DSCP 0、8、16、24、32、40、48、56をスレッシュホールド1に、DSCP 10、20、30、40、50、60をスレッシュホールド2にマッピングするように、入力インターフェイス(ギガビット イーサネット0/2)を設定する例を示します。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# switchport mode access

Switch(config-if)# wrr-queue threshold 1 10 100

Switch(config-if)# wrr-queue threshold 2 40 100

Switch(config-if)# wrr-queue threshold 3 60 100

Switch(config-if)# wrr-queue threshold 4 80 100

Switch(config-if)# exit

Switch(config)# interface gigabitethernet0/2

Switch(config-if)# mls qos trust dscp

Switch(config-if)# wrr-queue dscp-map 1 0 8 16 24 32 40 48 56

Switch(config-if)# wrr-queue dscp-map 2 10 20 30 40 50 60

このように設定すると、キュー1が10%以上満たされた場合、DSCPが0、8、16、24、32、40、48、56のパケットは廃棄されます。キュー2が40%以上、キュー3が60%以上、キュー4が80%以上満たされた場合も、同じパケットが廃棄されます。2番めのスレッシュホールド(100%)を超えた場合、すべてのキューはDSCPが10、20、30、40、50、60のパケットを廃棄します。

WRED廃棄スレッシュホールドの設定

出力インターフェイスに輻輳の兆候が現れると、WREDはパケットを選択的に廃棄し、テール ドロップの機会を減らします。キューがいっぱいになるまで待機せず、早めに一部のパケットを廃棄することで、一度に多数のパケットが廃棄されなくなります。

DSCPが最初のスレッシュホールドに割り当てられているパケットは、パケット量が最初のスレッシュホールドを超えた場合、すべてランダムに廃棄されます。ただし、DSCPが2番めのスレッシュホールドに割り当てられているパケットは、2番めのスレッシュホールドを超えないかぎり、キューイングされて送信されます。各スレッシュホールドは、WREDがランダムなパケット廃棄を開始する時点を示します。デフォルトで、WREDはディセーブルです。

WREDスレッシュホールドを使用する場合は、テール廃棄スレッシュホールドを使用できません。その逆の場合も同様です。

ギガビット対応イーサネット ポートにWRED廃棄スレッシュホールド値を設定するには、イネーブルEXECモードで、次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue random-detect max-thresholdqueue-id threshold-percentage1 threshold-percentage2

各出力キューにWRED廃棄スレッシュホールドを設定します。

デフォルトでWREDはディセーブルになっており、スレッシュホールドは設定されていません。

  • queue-idを指定する場合は、出力キューのIDを指定します。IDの範囲は1〜4です。キュー4は緊急キューとして設定できます。詳細については、出力緊急キューの設定を参照してください。
  • threshold-percentage1 threshold-percentage2を指定する場合は、スレッシュホールド値を指定します。各値はスペースで区切ります。指定できる範囲は1〜100です。

exit

グローバル コンフィギュレーション モードに戻ります。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、入力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue dscp-map threshold-id dscp1 ... dscp8

DSCP値を出力キューのWRED廃棄スレッシュホールドにマッピングします。

デフォルトでは、すべてのDSCP値がスレッシュホールド1にマッピングされます。

  • threshold-idを指定する場合は、キューのスレッシュホールドIDを指定します。指定できる範囲は1〜2です。
  • dscp1 ... dscp8を指定する場合は、スレッシュホールドIDにマッピングするDSCP値を指定します。コマンドごとに最大8つのDSCP値を入力し、各値はスペースで区切ります。指定できる範囲は0〜63です。

show running-config

または

show mls qos interface interface-idqueueing

DSCP/スレッシュホールド マップを確認します。

show mls qos interface buffers

スレッシュホールドを確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

WREDをディセーブルにするには、no wrr-queue random-detect max-threshold queue-idインターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/スレッシュホールド マップに戻すには、no wrr-queue dscp-map [threshold-id]インターフェイス コンフィギュレーション コマンドを使用します。

次に、出力インターフェイス(GigabitEthernet 0/1)のキュー1のWRED廃棄スレッシュホールドを50%と100%、キュー2を70%と100%、キュー3を50%と100%、キュー4を70%と100%に設定する例を示します。着信パケットのDSCPを信頼し、DSCP 0、8、16、24、32、40、48、56をスレッシュホールド1に、DSCP 10、20、30、40、50、60をスレッシュホールド2にマッピングするように、入力インターフェイス(GigabitEthernet 0/2)を設定する例を示します。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# wrr-queue random-detect max-threshold 1 50 100

Switch(config-if)# wrr-queue random-detect max-threshold 2 70 100

Switch(config-if)# wrr-queue random-detect max-threshold 3 50 100

Switch(config-if)# wrr-queue random-detect max-threshold 4 70 100

Switch(config-if)# exit

Switch(config)# interface gigabitethernet0/2

Switch(config-if)# mls qos trust dscp

Switch(config-if)# wrr-queue dscp-map 1 0 8 16 24 32 40 48 56

Switch(config-if)# wrr-queue dscp-map 2 10 20 30 40 50 60

このように設定すると、キュー1およびキュー3が50%以上満たされた場合、DSCPが0、8、16、24、32、40、48、56のパケットはランダムに廃棄されます。キュー2およびキュー4が70%以上満たされた場合も、同じパケットがランダムに廃棄されます。2番めのスレッシュホールド(100%)を超えた場合、すべてのキューはDSCPが10、20、30、40、50、60のパケットをランダムに廃棄します。

出力緊急キューの設定

特定のパケットをほかのすべてのパケットよりも優先させるには、これらのパケットを出力緊急キューにキューイングします。WRRはこのキューが空になるまで、ほかの3つのキューを処理しません。

出力緊急キューをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

priority-queue out

出力緊急キューをイネーブルにします。デフォルトではディセーブルになっています。

このコマンドを設定すると、WRRに使用されるキューが1つ少なくなるため、WRRウェイトおよびキューのサイズ比が変わります。つまり、wrr-queue bandwidthコマンドのweight4が無視されます(比率計算から除外されます)。

end

イネーブルEXECモードに戻ります。

show running-config

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。

出力キュー間の帯域幅の割り当て

各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。

各キューに帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。

wrr-queue bandwidthweight1 weight2 weight3 weight4

出力キューにWRRウェイトを割り当てます。

デフォルトでは、すべてのウェイトが25に設定されています(各キューに帯域幅の1/4が割り当てられています)。

weight1 weight2 weight3 weight4を指定する場合は、WRRスケジューラがパケットを廃棄する頻度を決定する比率を入力します。各値はスペースで区切ります。指定できる範囲は1〜65536です。

緊急キュー(キュー4)がイネーブルになるまで、WRRでは4つのキューがすべて使用されます。緊急キューがイネーブルになると、weight4が無視されます(比率計算から除外されます)。緊急キューは優先キューです。緊急キューが空になるまで、他のキューは処理されません。

ウェイトを1に指定すると、そのキューには最小限の帯域幅が割り当てられます。

キューに帯域幅を割り当てないようにするには、 wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドを使用して、そのキューの使用可能な帯域幅を残りのキューで使用します。

end

イネーブルEXECモードに戻ります。

show mls qos interface queueing

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの帯域幅設定に戻すには、no wrr-queue bandwidthインターフェイス コンフィギュレーション コマンドを使用します。

次に、出力キューで動作するWRRスケジューラのウェイト比を設定する例を示します。次の例では、4つのキューが使用されます(緊急キューはありません)。各キューに割り当てられている帯域幅の比率は、1/(1+2+3+4)、2/(1+2+3+4)、3/(1+2+3+4)、4/(1+2+3+4)、つまり、キュー1、2、3、4に対してそれぞれ1/10、1/5、3/10、2/5です。

Switch(config)# interface gigabitethernet0/1

Switch(config-if)# wrr-queue bandwidth 1 2 3 4

10/100イーサネット ポートの出力キューの設定

ここでは、10/100イーサネット ポートの出力キューを設定する方法について説明します。ギガビット対応イーサネット ポートの設定方法については、ギガビット対応イーサネット ポートの出力キューの設定を参照してください。

ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。

ここでは次の設定情報について説明します。

出力キューを選択するためのCoS値のマッピング

いずれかの出力キューを選択するためのCoS入力値をマッピングするには、イネーブルEXECモードから始めて次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力10/100イーサネット インターフェイスを指定します。

wrr-queue cos-map queue-idcos1 ... cos8

いずれかの出力キューを選択するためのCoS値をマッピングします。

デフォルト マップの値は次のとおりです。

CoS値が0、1の場合は、キュー1が選択されます。

CoS値が2、3の場合は、キュー2が選択されます。

CoS値が4、5の場合は、キュー3が選択されます。

CoS値が6、7の場合は、キュー4が選択されます。

  • queue-idを指定する場合は、出力キューのIDを指定します。IDの範囲は1〜4で、キュー4は緊急キューに設定することができます。詳細については、出力緊急キューの設定を参照してください。
  • cos1 ... cos8を指定する場合は、キューを選択するためのCoS値を指定します。最大8つのCoS値を入力、各値はスペースで区切ります。指定できる範囲は0〜7です。

end

イネーブルEXECモードに戻ります。

show mls qos interface queueing

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのCoS/出力キュー マップに戻すには、no wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドを使用します。

次に、CoS値6および7をキュー1に、CoS値4および5をキュー2に、CoS値2および3をキュー3に、0および1をキュー4にマッピングする例を示します。

Switch(config)# interface fastethernet0/1

Switch(config-if)# wrr-queue cos-map 1 6 7

Switch(config-if)# wrr-queue cos-map 2 4 5

Switch(config-if)# wrr-queue cos-map 3 2 3

Switch(config-if)# wrr-queue cos-map 4 0 1

最小確保レベルの設定

すべての10/100イーサネット ポートに最小確保レベルのバッファ サイズを設定し、10/100イーサネット ポートの出力キューに最小確保レベルを割り当てることができます。

出力キューのサイズを設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

mls qos min-reservemin-reserve-level min-reserve-buffersize

すべての10/100イーサネット ポートに対し、必要に応じて、最小確保レベルのバッファ サイズを設定します。

デフォルトでは、8個の最小確保レベルのバッファ サイズはすべて100パケットです。

  • min-reserve-levelを指定する場合は、最小確保レベル番号を指定します。指定できる範囲は1〜8です。
  • min-reserve-buffersizeを指定する場合は、バッファ サイズを指定します。指定できる範囲は10〜170です。

このコマンドを入力すると、キューはハードウェア再設定中に一時的にシャットダウンし、このキューに新規に着信したパケットは廃棄されます。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力10/100イーサネット インターフェイスを指定します。

wrr-queue min-reserve queue-id min-reserve-level

特定の出力キューに最小確保レベル番号を割り当てます。

デフォルトでは、キュー1に最小確保レベル1、キュー2に最小確保レベル2、キュー3に最小確保レベル3、キュー4に最小確保レベル4が選択されます。

  • queue-idを指定する場合は、出力キューのIDを指定します。IDの範囲は1〜4で、キュー4は緊急キューに設定することができます。詳細については、出力緊急キューの設定を参照してください。
  • min-reserve-levelを指定する場合は、ステップ3で設定した最小確保レベル番号を指定します。

end

イネーブルEXECモードに戻ります。

show mls qos interface buffers

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの最小確保バッファ サイズに戻すには、no mls qos min-reservemin-reserve-levelグローバル コンフィギュレーション コマンドを使用します。最小確保レベルのキュー選択をデフォルトに戻すには、no wrr-queue min-reservequeue-idインターフェイス コンフィギュレーション コマンドを使用します。

次に、最小確保レベル5を20パケットに設定し、最小確保レベル5をFastEthernet 0/1インターフェイスの出力キュー1に割り当てる例を示します。

Switch(config)# mls qos min-reserve 5 20

Switch(config)# interface fastethernet0/1

Switch(config-if)# wrr-queue min-reserve 1 5

出力緊急キューの設定

特定のパケットをほかのすべてのパケットよりも優先させるには、これらのパケットを出力緊急キューにキューイングします。WRRはこのキューが空になるまで、ほかの3つのキューを処理しません。

出力緊急キューをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力10/100イーサネット インターフェイスを指定します。

priority-queue out

出力緊急キューをイネーブルにします。デフォルトではディセーブルになっています。

このコマンドを設定すると、WRRに使用されるキューが1つ少なくなるため、WRRウェイトが変わります。つまり、wrr-queue bandwidthコマンドのweight4が無視されます(比率計算から除外されます)。

end

イネーブルEXECモードに戻ります。

show running-config

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。

出力キュー間の帯域幅の割り当て

各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。

各キューに帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interfaceinterface-id

インターフェイス コンフィギュレーション モードを開始し、出力10/100イーサネット インターフェイスを指定します。

wrr-queue bandwidthweight1 weight2 weight3 weight4

出力キューにWRRウェイトを割り当てます。

デフォルトでは、すべてのウェイトが25に設定されています(各キューに帯域幅の1/4が割り当てられています)。

weight1 weight2 weight3 weight4を指定する場合は、WRRスケジューラがパケットを廃棄する頻度を決定する比率を入力します。各値はスペースで区切ります。指定できる範囲は1〜65536です。

緊急キュー(キュー4)がイネーブルになるまで、WRRでは4つのキューがすべて使用されます。緊急キューがイネーブルになると、weight4が無視されます(比率計算から除外されます)。緊急キューは優先キューです。緊急キューが空になるまで、ほかのキューは処理されません。

ウェイトを1に指定すると、そのキューには最小限の帯域幅が割り当てられます。

キューに帯域幅を割り当てないようにするには、 wrr-queue cos-mapインターフェイス コンフィギュレーション コマンドを使用して、使用可能な帯域幅を残りのキューで使用します。

end

イネーブルEXECモードに戻ります。

show mls qos interface queueing

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの帯域幅設定に戻すには、no wrr-queue bandwidthインターフェイス コンフィギュレーション コマンドを使用します。

次に、出力キューで動作するWRRスケジューラのウェイト比を設定する例を示します。次の例では、4つのキューが使用されます(緊急キューはありません)。各キューに割り当てられている帯域幅の比率は、1/(1+2+3+4)、2/(1+2+3+4)、3/(1+2+3+4)、4/(1+2+3+4)、つまり、キュー1、2、3、4に対してそれぞれ1/10、2/10、3/10、4/10です。

Switch(config)# interface fastethernet0/1

Switch(config-if)# wrr-queue bandwidth 1 2 3 4

標準QoS情報の表示

標準QoS情報を表示するには、標準QoS情報を表示するためのコマンドに示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。

標準QoS情報を表示するためのコマンド

コマンド

説明

show class-map [class-map-name]

トラフィックを分類するための一致条件を定義するQoSクラス マップを表示します。

show mls qos aggregate-policer[aggregate-policer-name]

集約ポリサーの設定を表示します。

show mls qos interface [interface-id] [buffers |policers |queueing |statistics]

出力キューの設定およびCoS/出力キュー マップ、ポリサーが設定されているインターフェイス、入出力統計情報(廃棄されたバイト数を含む)など、インターフェイス レベルのQoS情報を表示します。2

show mls qos maps[cos-dscp |dscp-cos |dscp-mutation|ip-prec-dscp |policed-dscp]

QoSマッピング情報を表示します。マップは、トラフィックのプライオリティを表す内部DSCP値を生成するために使用されます。

show policy-map[policy-map-name[classclass-map-name]

着信トラフィックの分類基準を定義するQoSポリシー マップを表示します。

標準QoSの設定例

ここでは、既存のネットワークおよびネットワークの変更計画に基づいて、QoS機能をすばやく実装するためのQoS移行パスについて説明します(ネットワークのQoS設定例を参照)。具体的な内容は次のとおりです。

ネットワークのQoS設定例

既存の配線クローゼットのQoS設定

ネットワークのQoS設定例に示された既存の配線クローゼットは、Catalyst 3500 XLおよびCatalyst 2900 XLスイッチで構成されています。これらのスイッチでは、QoSベースのIEEE 802.1p CoS値をサポートするCisco IOSリリース12.0(5)XP以降が稼働しています。QoSによる分類では、各フレームにプライオリティを示すCoS値を割り当て、プライオリティの高いトラフィックを優先させます。

Catalyst 3500 XLおよびCatalyst 2900 XLスイッチの入力ポートでタグなし(ネイティブ)イーサネット フレームを分類するには、ポートごとにデフォルトのCoSプライオリティを設定します(switchport priority defaultdefault-priority-idインターフェイス コンフィギュレーション コマンドを使用)。タグ情報のあるISLまたはIEEE 802.1Qフレームには、ヘッダー フレームのプライオリティ値が使用されます。Catalyst 3524-PWR XLおよびCatalyst 3548 XLスイッチの場合、このプライオリティ値をデフォルト値で上書きするには、switchport priority default overrideインターフェイス コンフィギュレーション コマンドを使用します。Catalyst 3500 XL、Catalyst 2950、および上書き機能を備えていないその他のCatalyst 2900 XLモデルの場合、ディストリビューション レイヤのCatalyst 3550-12Tスイッチを使用して802.1p CoS値を上書きするには、mls qos cos overrideインターフェイス コンフィギュレーション コマンドを使用します。

Catalyst 3500 XLおよびCatalyst 2900 XLスイッチの場合、CoSはフレーム タグまたはポート情報に基づき、ノーマルプライオリティの送信キューおよびハイプライオリティの送信キューを持つ各出力ポートを設定します。ノーマルプライオリティ キュー内のフレームは、ハイプライオリティ キューのフレームの後に転送されます。802.1p CoS値が0〜3であるフレームはノーマルプライオリティの送信キューに格納され、CoS値が4〜7のフレームは緊急(ハイプライオリティ)キューに格納されます。

インテリジェントな配線クローゼットのQoS設定

ネットワークのQoS設定例のインテリジェントな配線クローゼットは、Catalyst 3550マルチレイヤ スイッチで構成されています。スイッチの1台は、IPアドレスが172.20.10.16であるビデオ サーバに接続されています。

この例での目的は、ビデオ トラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることです。そのためには、ビデオ トラフィックにDSCP値56を割り当てます。このトラフィックは緊急キュー(キュー4)に格納されます。このキューが空になるまでほかのキューは処理されません。適切なCoS値を設定することにより、CoS/出力キュー マップ内でキュー4が選択されます。

ビデオ パケットをほかのすべてのトラフィックよりも優先させるには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

access-list 1 permit 172.20.10.16

IP標準ACLを定義し、IPアドレスが172.20.10.16のビデオ サーバからのトラフィックを許可します。

class-map videoclass

videoclassという名前のクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

match access-group 1

アクセス リスト1で指定されたトラフィックを比較する一致条件を定義します。

exit

グローバル コンフィギュレーション モードに戻ります。

policy-map videopolicy

videopolicyという名前のポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。

class videoclass

処理対象となるクラスを指定し、ポリシー マップ クラス コンフィギュレーション モードを開始します。

set ip dscp 56

ACL 1と一致するトラフィックに対して、着信パケットのDSCPを56に設定します。

police 5000000 2000000 exceed-action drop

5 Mbpsの平均トラフィック速度、2 MBのバースト サイズを超えるトラフィックを廃棄するように、分類されたビデオ トラフィックのポリサーを定義します。

exit

ポリシー マップ コンフィギュレーション モードに戻ります。

exit

グローバル コンフィギュレーション モードに戻ります。

interface gigabitethernet0/1

インターフェイス コンフィギュレーション モードを開始し、入力インターフェイスを指定します。

service-policy input videopolicy

入力インターフェイスにポリシーを適用します。

exit

グローバル コンフィギュレーション モードに戻ります。

interface gigabitethernet0/2

インターフェイス コンフィギュレーション モードを開始し、(キューを設定する)出力インターフェイスを指定します。

priority-queue out

緊急キューをイネーブルにします。

wrr-queue cos-map 4 6 7

CoS値が6および7の場合にキュー4が選択されるように(デフォルト設定)、CoS/出力キュー マップを設定します。

デフォルトのDSCP/CoSマップのDSCP値56〜63はCoS値7にマッピングされているため、DSCP値が56で一致したトラフィックはプライオリティ キューであるキュー4に格納されます。

end

イネーブルEXECモードに戻ります。

show class-map videoclass

show policy-map videopolicy

show mls qos maps [cos-dscp | dscp-cos]

show mls qos interface queueing

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

ディストリビューション レイヤのQoS設定

次の例では、ディストリビューション レイヤのCatalyst 3550-12Gマルチレイヤ スイッチの設定手順を示します(ネットワークのQoS設定例を参照)。分類はネットワークのエッジにあるスイッチで実行されるため、ディストリビューション レイヤのスイッチで行われる分類ステップは少なくなります。

既存の配線クローゼットに接続した場合、マルチレイヤ スイッチのGigabitEthernet 0/1インターフェイスは、受信したCoS値を信頼するように設定されます。この状況では、マルチレイヤ スイッチのデフォルトのCoS/DSCPマップを使用できます。デフォルトのマップ設定の詳細については、CoS/DSCPマップの設定を参照してください。

インテリジェントな配線クローゼットに接続した場合、マルチレイヤ スイッチのGigabitEthernet 0/2インターフェイスは、受信したDSCP値を信頼するように設定されます。出力インターフェイス上でWREDが輻輳回避制御を行えるように、この入力インターフェイスでDSCP/スレッシュホールド マップも設定する必要があります。デフォルトでは、すべてのDSCP値がスレッシュホールド1にマッピングされます。

デフォルト設定のスイッチ マップをいくつか設定する必要があります。設定の目的は、DSCP値56を持つパケットのみが緊急キュー(キュー4)に送信されるようにすることです。デフォルトのCoS/出力キュー マップでも行えますが、その場合は、DSCP値57〜63がCoS 5にマッピングされるように、DSCP/CoSマップを設定する必要があります。

出力インターフェイスであるGigabitEthernet 0/5インターフェイスでは、wrr-queue bandwidthインターフェイス コンフィギュレーション コマンドを使用し、WRRウェイトを設定する必要があります。WREDをイネーブルにして、各キューにスレッシュホールドを設定します。各キューに割り当てられる帯域幅を設定し、キューからパケットを廃棄する頻度を決定する必要があります。

ディストリビューション レイヤのマルチレイヤ スイッチを設定するには、イネーブルEXECモードで次の手順を実行します。

コマンド

説明

configure terminal

グローバル コンフィギュレーション モードを開始します。

mls qos

スイッチでQoSをイネーブルにします。

interface gigabitethernet0/1

インターフェイス コンフィギュレーション モードを開始し、既存の配線クローゼットに接続する入力インターフェイスを指定します。

mls qos trust cos

パケットのCoS値を使用し、このポートの着信パケットを分類します。

switchport mode trunk

このポートをトランク ポートとして設定します。

exit

グローバル コンフィギュレーション モードに戻ります。

interface gigabitethernet0/2

インターフェイス コンフィギュレーション モードを開始し、インテリジェントな配線クローゼットに接続する入力インターフェイスを指定します。

mls qos trust dscp

パケットのDSCP値を信頼し、このポートの着信パケットを分類します。

wrr-queue dscp-map threshold-id dscp1 ... dscp8

入力DSCP値を出力キューのWREDスレッシュホールドにマッピングします。

デフォルトのDSCP/スレッシュホールド マップでは、すべてのDSCP値がスレッシュホールド1にマッピングされます。

  • threshold-idを指定する場合は、キューのスレッシュホールドIDを指定します。指定できる範囲は1〜2です。
  • dscp1 ... dscp8を指定する場合は、スレッシュホールドIDにマッピングするDSCP値を指定します。コマンドごとに最大8つのDSCP値を入力し、各値はスペースで区切ります。DSCPの範囲は0〜63です。

switchport mode trunk

このポートをトランク ポートとして設定します。

exit

グローバル コンフィギュレーション モードに戻ります。

mls qos map dscp-cos dscp-listtocos

DSCP/CoSマップを変更します。DSCP/CoSマップでは、最大8個のDSCP値をスペースで区切って入力します。

たとえば、DSCP値57〜63をCoS 5にマッピングする場合は、次のように入力します。

mls qos map dscp-cos 57 58 59 60 61 62 63 to 5

interface gigabitethernet0/5

インターフェイス コンフィギュレーション モードを開始し、設定する出力インターフェイスを指定します。

priority-queue out

緊急キューをイネーブルにします。

wrr-queue bandwidthweight1 weight2 weight3 weight4

出力キューにWRRウェイトを設定し、キューからパケットを廃棄する頻度を決定します。各値はスペースで区切ります。ウェイトの範囲は0〜65536です。

次の入力例では、キュー4がほかのキューよりも処理回数が多くなるように、ウェイトを設定します。

wrr-queue bandwidth 1 2 3 4

緊急キューがイネーブルであるため、比率の計算には最初の3つのウェイトのみが使用されます。

wrr-queue random-detect max-threshold queue-id threshold-percentage1 threshold-percentage2

WREDをイネーブルにして、ギガビット対応イーサネット ポートの出力キューに2つのWREDスレッシュホールド値を割り当てます。

  • queue-idを指定する場合は、1〜4を使用します。
  • threshold-percentage1 threshold-percentage2を指定する場合、指定範囲は1〜100%です。

スレッシュホールドを設定するには、次の例のように入力します。

wrr-queue random-detect max-threshold 1 20 100

wrr-queue random-detect max-threshold 2 40 100

wrr-queue random-detect max-threshold 3 60 100

wrr-queue random-detect max-threshold 4 80 100

end

イネーブルEXECモードに戻ります。

show mls qos interface

および

show interfaces

設定を確認します。

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。


1.

BPDU = Bridge Protocol Data Unit(ブリッジ プロトコル データ ユニット)

2.

バイトまたはパケットの統計情報をハードウェアで収集する、最大16個のDSCP値を定義するには、mls qos monitor {bytes | dscpdscp1 ... dscp8 | packets}インターフェイス コンフィギュレーション コマンドおよびshow mls qos interface statisticsイネーブルEXECコマンドを使用します。

Toolbar-jp

All contents copyright (C) 1992--2004 Cisco Systems K.K.