
この章では、標準のQuality of Service(QoS;サービス品質)コマンドまたは自動QoSを使用してQoSを設定する方法について説明します。QoSを使用すると、特定のトラフィックをほかのトラフィックよりも優先的に処理できます。QoSを使用しない場合、Catalyst 3550ではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、またはスループットが保証されずに、パケットが送信されます。
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。
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ではどちらの値も使用できます。
class情報ごとに異なる方法でパケットを転送するには、インターネットにアクセスするすべてのスイッチおよびルータでclass情報を信頼します。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにclass情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。
パス上のスイッチおよびルータでは、class情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限することができます。DiffServアーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。
ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/送信トラフィックに必要な制御の細かさによって、難易度が変化します。
ここでは、QoSの処理手順およびその機能について説明します。
基本的なQoSモデルに、基本的なQoSモデルを示します。入力インターフェイスでのアクションには、トラフィックの分類、ポリシング、およびマーキングがあります。
出力インターフェイスのアクションには、キューイングおよびスケジューリングがあります。
分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoSがスイッチでグローバルなイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでQoSはグローバルなディセーブルになっているため、分類は実行されません。
着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。
非IPトラフィックの場合は、次の方法で分類することができます(分類フローチャートを参照)。
非IPトラフィックの場合、DSCPおよびIP precedenceを信頼するように設定する必要はありません。これらのいずれかの方法で設定されているポートに非IPトラフィックが着信した場合は、デフォルトのポートCoS値が割り当てられ、CoS/DSCPマップから内部DSCPが生成されます。
IPトラフィックの場合は、次の方法で分類することができます(分類フローチャートを参照)。
2つのQoS管理ドメインの境界上にあるポートの場合は、設定可能なDSCP/DSCP変換マップを使用し、DSCPを別の値に変更することができます。
ここで説明されているマップの詳細については、マッピング テーブルを参照してください。ポートの信頼状態に関する設定の詳細については、ポートの信頼状態による分類の設定を参照してください。
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グローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、ポリシー マップ コンフィギュレーション モードが開始されます。このモードでは、class、trust、または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は自動的にイネーブルになり、以前の設定に戻ります(以前に設定されていない場合は、デフォルト設定に戻ります)。
シスコにより実装された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イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
キューイングおよびスケジューリング プロセス中は出力キューを使用して、最小確保レベルとバッファ サイズを選択し、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グローバル コンフィギュレーション コマンドを使用します。
出力リンクの空いている帯域幅は、キュー間で分割されます。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(auto-QoS)を使用すると、既存のQoS機能を簡単に導入できます。自動QoSはネットワーク設計に関する前提条件を設定するもので、それによってスイッチは、デフォルトのQoS動作を使用せずにトラフィック フロー毎に優先順位を付け、適切に出力キューを使用できます(デフォルトで、QoSはディセーブルです。スイッチではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、単一キューでパケットを送信します)。
自動QoSをイネーブルにすると、トラフィック タイプと入力パケット ラベルに基づいてトラフィックを自動的に分類します。スイッチはこの分類結果を使って適切な出力キューを選択します。
自動QoSコマンドを使って、Cisco IP Phoneと接続しているポートを識別し、アップリンクを通じて信頼できるVoice over IP(VoIP)トラフィックを受信するポートを識別します。ここで自動QoSは次の機能を実行します。
ここでは、スイッチで自動QoSを設定する手順について説明します。
デフォルトでは、自動QoSはすべてのインターフェイスでディセーブルに設定されています。
自動QoSがイネーブルの場合、トラフィックの分類と出力キューの設定に入力パケット ラベルを使用します(トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、および出力キューを参照)。
|
STP BPDU1トラフィック |
|||||
|---|---|---|---|---|---|
出力キュー用の自動QoS設定に、生成された出力キューの自動QoS設定を示します。
最初のインターフェイスで自動QoS機能をイネーブルにすると、次の動作が自動的に発生します。
信頼境界機能の詳細については、信頼境界の設定によるポート セキュリティの確保を参照してください。
auto qos voip cisco-phoneまたはauto qos voip trustインターフェイス コンフィギュレーション コマンドを使用して自動QoSをイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的にQoS コンフィギュレーションを生成し、生成される自動QoS設定に示すコマンドをインターフェイスに適用します。
|
スイッチが標準QoSを自動的にイネーブルにし、CoS/DSCPマップ(着信パケット内のCoS値の、DSCP値へのマッピング)を設定します(トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、および出力キューを参照)。 |
|
|
10/100イーサネット ポートがある場合、スイッチは最小確保レベル 5、6、7、および8のバッファ サイズを自動的に設定します。 |
Switch(config)# mls qos min-reserve 5 170 Switch(config)# mls qos min-reserve 6 10 |
|
auto qos voip cisco-phoneコマンドを入力すると、スイッチは自動的に信頼境界機能をイネーブルにします。この機能は、CDPを使用してCisco IP Phoneの有無を検出するものです。 |
|
|
スイッチがインターフェイスでの出力キューの使用状況を割り当てます(出力キュー用の自動QoS設定を参照)。 スイッチは、出力緊急キューをイネーブルにし、WRRウェイトをキュー1およびキュー3に割り当てます(WRRキューの最低値は1です)。 |
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 min-reserve 1 5 Switch(config-if)# wrr-queue min-reserve 2 6 |
自動QoSがイネーブルの場合、auto qos voipインターフェイス コンフィギュレーション コマンドおよび生成された設定が、動作中の設定に追加されます。
|
インターフェイス コンフィギュレーション モードを開始し、Cisco IP Phoneに接続されているインターフェイス、またはネットワーク内部にある他のスイッチやルータに接続されているアップリンク インターフェイスを指定します。 |
||
自動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設定を表示するには、show auto qos [interface[interface-id]]イネーブルEXECコマンドを使用します。ユーザが変更した設定を表示するには、show running-configイネーブルEXECコマンドを使用します。show auto qosコマンドおよびshow running-configコマンド出力を比較してユーザが定義したQoS設定を識別できます。
自動QoSに影響するQoS設定に関する情報を表示するには、次のいずれかのコマンドを使用します。
これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。
ここでは、ネットワーク内で自動QoSを実装する方法について説明します(自動QoSを設定したネットワークの例を参照)。
自動QoSを設定したネットワークの例のインテリジェントな配線クローゼットには、拡張ソフトウェア イメージ(EI)が動作しているCatalyst 2950スイッチおよび Catalyst 3550スイッチが含まれます。この例では、VoIPトラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることを目的としています。これを実行するには、配線クローゼット内のQoSドメインのエッジにあるスイッチで自動QoSをイネーブルにします。
VoIPトラフィックをほかのすべてのトラフィックよりも優先させるために、QoSドメインのエッジにあるスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。
|
自動QoS用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動QoSがイネーブルになる際に自動的に生成されるQoS設定を表示します。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスが信頼のあるルータやスイッチに接続されていることを指定します。 |
||
|
このコマンドは、最初に適用された自動QoS設定を表示するもので、有効になったユーザによる変更は反映されません。 自動QoSに影響するQoS設定に関する情報については、自動QoS情報の表示を参照してください。 |
||
|
auto qos voipインターフェイス コンフィギュレーション コマンドと生成された自動QoS設定をコンフィギュレーション ファイルに保存します。 |
標準QoSを設定する前に、次の内容を完全に把握してください。
ここでは、スイッチで標準QoSを設定する手順について説明します。
QoSがディセーブルの場合の標準QoSのデフォルト設定に、QoSがディセーブルの場合の標準QoSのデフォルト設定を示します。
QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、trusted(信頼する)ポート、untrusted(信頼しない)ポートの概念はありません。
QoSがイネーブルの場合の標準QoSのデフォルト設定に、QoSがイネーブルの場合にそのまま使用できる標準QoSのデフォルト設定を示します。
デフォルトでは、すべてのポートの信頼状態は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にマッピングします。
ルーテッド ポートまたは仮想(論理)インターフェイスでは、ポート単位、VLAN単位のポリシングを設定することができません。トランクまたはスタティックアクセス ポートとして設定された入力ポートでのみ、サポートされます。
スイッチでは、VLAN単位のQoSまたはスイッチ全体でのVLAN QoSポリシングがサポートされません。
出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。
デフォルトでは、スイッチでQoSはディセーブルです。つまり、パケットの内容やサイズに関係なく、各パケットにベストエフォート型のサービスが提供されます。両方のテール廃棄スレッシュホールドがギガビット対応イーサネット ポートのキュー サイズの合計(100%)に設定されていると、すべてのCoS値は出力キュー1にマッピングされます。10/100イーサネット ポートでは、すべてのCoS値は出力キュー1にマッピングされます。出力キュー1には最小確保レベル1が使用され、最大100パケットを保持できます。バッファがいっぱいになると、パケットは廃棄されます。
|
インターフェイス コンフィギュレーション モードを開始し、複数のインターフェイス上でコマンドを実行します。 1つのコマンドでは、最大5つのインターフェイス範囲をカンマで区切って定義することができます。 範囲内のすべてのインターフェイスは同じタイプでなければなりません。つまり、すべてがファスト イーサネット ポートまたはギガビット イーサネット ポートです。 |
||
QoSをイネーブルにしたあとのデフォルトの設定については、QoSがディセーブルの場合の標準QoSのデフォルト設定を参照してください。
QoSをディセーブルにするには、no mls qosグローバル コンフィギュレーション コマンドを使用します。
ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。
QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoSドメイン内のスイッチごとにパケットを分類する必要がないため、QoSドメイン内のスイッチ ポートをtrustedポートの1つに設定できます。QoSドメイン内のポートの信頼状態に、ネットワーク トポロジーの例を示します。
ポートをuntrustedの状態に戻すには、no mls qos trustインターフェイス コンフィギュレーション コマンドを使用します。
デフォルトのCoS値を変更する方法については、インターフェイスのCoS値の設定を参照してください。CoS/DSCPマップを設定する方法については、CoS/DSCPマップの設定を参照してください。
QoSは、CoS値を信頼するポートおよび信頼しないポートで受信されたタグなしフレームに、mls qos cosインターフェイス コンフィギュレーション コマンドによって指定されたCoS値を割り当てます。
ポートのデフォルトのCoS値を定義したり、デフォルトのCoS値をポートのすべての着信パケットに割り当てるには、イネーブルEXECモードで次の手順を実行します。
デフォルト設定に戻すには、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)の存在を検出することにより、この問題を解決します。電話機が検出されなかった場合、信頼境界機能はスイッチ ポートの信頼設定をディセーブルにし、ハイプライオリティ キューの誤使用を防止します。
信頼境界機能をディセーブルにするには、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マップは無視されます。
パススルー モードをディセーブルにするには、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]インターフェイス コンフィギュレーション コマンドを設定すると、パススルー モードがディセーブルになります。
2つの異なるQoSドメインを管理していて、そのQoSドメイン間のIPトラフィックにQoS機能を実行する場合は、DSCPを信頼するようにドメインの境界に位置するスイッチ ポートを設定できます(別のQoSドメインとの境界ポートでのDSCP信頼状態を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、ほかのドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定することができます。
ポートでDSCPを信頼する状態に設定し、DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。両方のQoSドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。
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(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
通常の場合、QoSポリシーを設定するには、トラフィックをクラスに分類したり、これらのトラフィック クラスに適用されるポリシーを設定したり、ポリシーをインターフェイスに付加する必要があります。
基本的な情報については、分類およびポリシングおよびマーキングを参照してください。
IPトラフィックを分類するには、IP標準ACLまたはIP拡張ACLを使用します。非IPトラフィックを分類するには、レイヤ2 MAC ACLを使用します。
アクセス リストを削除するには、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
アクセス リストを削除するには、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
アクセス リストを削除するには、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モードで次の手順を実行します。
|
access-listaccess-list-number{deny |permit}source[source-wildcard] access-listaccess-list-number{deny |permit}protocolsource[source-wildcard]destination[destination-wildcard] {permit | deny} {hostsrc-MAC-addr mask |any |hostdst-MAC-addr |dst-MAC-addrmask} [typemask] |
IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。 詳細については、ACLによるトラフィックの分類を参照してください。 |
|
|
match {access-group acl-index-or-name |ip dscp dscp-list |ip precedence ip-precedence-list} |
各クラス マップで使用できる一致条件およびACLは、それぞれ1つのみです。
|
|
既存のクラス マップを削除するには、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
次に、DSCP値が10、11、12である着信トラフィックとの一致を調べる、class2という名前のクラス マップを作成する例を示します。
Switch(config)# class-map class2
Switch(config-cmap)# match ip dscp 10 11 12
次に、IP precedence値が5、6、7である着信トラフィックとの一致を調べる、class3という名前のクラス マップを作成する例を示します。
Switch(config)# class-map class3
Switch(config-cmap)# match ip precedence 5 6 7
特定のトラフィック フロー(またはクラス)をほかのすべてのトラフィックと区別して名前を付けるには、class-mapグローバル コンフィギュレーション コマンドを使用します。トラフィック フローをさらに分類するために、クラス マップが使用する一致基準を定義します。
ポート単位、VLAN単位のパケット分類を定義するには、次の注意事項に従ってください。
クラス マップを作成し、ポート単位、VLAN単位でトラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の手順を実行します。
既存のクラス マップを削除するには、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)# class-map match-all vlan_class
Switch(config-cmap)# match vlan 10 20-30 40
Switch(config-cmap)# match class-map dscp_class
ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスのCoS値、DSCP値、またはIP precedence値を信頼するアクション、トラフィック クラスに特定のCoS値、DSCP値、またはIP precedence値を設定するアクション、および一致した各トラフィック クラス(ポリサー)のトラフィック帯域幅の制限やトラフィックが不適合になったときの対処法(マーキング)を指定するアクションなどを指定できます。
各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。複数のインターフェイスおよび方向に、同じポリシー マップを適用できます。
|
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によるトラフィックの分類を参照してください。 |
|
|
必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、クラス マップによる物理ポート単位のトラフィック分類およびクラス マップによるポート単位、VLAN単位のトラフィック分類を参照してください。 |
||
|
(任意)ポリシー マップ内のポートのCoS値を定義します。このコマンドを入力すると、ステップ8のtrust dscpポリシー マップ コンフィギュレーション コマンド、およびステップ9のset cosnew-cos ポリシー マップ コンフィギュレーション コマンドを入力しなければなりません。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトで、ポリシー マップのクラス マップは定義されていません。 class-mapグローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドのclass-map-nameの位置に名前を指定します。 |
||
|
信頼状態を設定し、これによって内部DSCP値のソースとしてQoSで使用される値を選択します。 デフォルトで、ポートはtrustedになっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトはdscpになります。
詳細については、CoS/DSCPマップの設定を参照してください。 |
||
|
set {cosnew-cos |ip dscpnew-dscp |ip precedencenew-precedence} |
||
|
policerate-bps burst-byte [exceed-action{drop | policed-dscp-transmit}] |
入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定することができます。
|
|
|
service-policy {inputpolicy-map-name |output policy-map-name} |
特定のインターフェイスの入力または出力にポリシー マップを適用します。 各インターフェイスの方向ごとに、1つのポリシー マップのみを適用することができます。
次の要素を含むポリシー マップを出力インターフェイスに付加する場合、service-policyインターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。 |
|
既存のポリシー マップを削除するには、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)# 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)# 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)# policy-map ip104
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# set ip dscp 63
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)# 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)# class-map macclass1
Switch(config-cmap)# match access-group maclist1
Switch(config)# class-map macclass2
Switch(config-cmap)# match access-group maclist2
Switch(config)# policy-map macpolicy1
Switch(config-pmap)# class macclass1
Switch(config-pmap-c)# set ip dscp 63
Switch(config-pmap)# class macclass2
Switch(config-pmap-c)# set ip dscp 45
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)# 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)# policy-map policymap2
Switch(config-pmap)# class vlan_class
Switch(config-pmap-c)# police 80000 8000 exceed-action drop
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)# policy-map policymap1
Switch (config-pmap)# class class1
Switch (config-pmap-c)# trust dscp
Switch (config-pmap-c)# set cos 3
Switch (config)# interface gigabitethernet0/1
Switch(config-if)# service-policy input policymap1
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはインターフェイスに使用することはできません。
|
mls qos aggregate-police aggregate-policer-name rate-bps burst-byteexceed-action {drop |policed-dscp-transmit} |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定することができます。
|
|
|
必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、クラス マップによる物理ポート単位のトラフィック分類およびクラス マップによるポート単位、VLAN単位のトラフィック分類を参照してください。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 詳細については、ポリシー マップによるトラフィックの分類、ポリシング、およびマーキングを参照してください。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトで、ポリシー マップのクラス マップは定義されていません。 class-mapグローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドのclass-map-nameの位置に名前を指定します。 |
||
|
service-policy {inputpolicy-map-name |outputpolicy-map-name} |
特定のインターフェイスの入力または出力にポリシー マップを適用します。 各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。
次の要素を含むポリシー マップを出力インターフェイスに付加する場合、service-policyインターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致基準は、match ip dscpdscp-listクラス マップ コンフィギュレーション コマンドのみです。 |
|
指定された集約ポリサーをポリシー マップから削除するには、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)# class-map ipclass2
Switch(config-cmap)# match access-group 2
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)# class ipclass2
Switch(config-pmap-c)# set ip dscp 56
Switch(config-pmap-c)# police aggregate transmit1
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# service-policy input aggflow1
DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。複数のDSCP/DSCP変換マップを作成し、さまざまなギガビット対応イーサネット ポートに適用できます。ただし、10/100イーサネット ポートの場合は、12個のポートからなる1つのグループに対して、DSCP/DSCP変換マップを1つのみ付加することができます。
着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。
デフォルトのCoS/DSCPマップにデフォルトのCoS/DSCPマップを示します。
|
dscp1...dscp8を指定する場合は、CoS値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。指定できる範囲は0〜63です。 |
||
デフォルトのマップに戻すには、no mls qos map cos-dscpグローバル コンフィギュレーション コマンドを使用します。
次に、CoS/DSCPマップを変更して表示する例を示します。
Switch(config)# mls qos map cos-dscp 10 15 20 25 30 35 40 45
Switch# show mls qos maps cos-dscp
--------------------------------
着信パケットのIP precedence値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。
デフォルトのIP precedence/DSCPマップに、デフォルトのIP precedence/DSCPマップを示します。
これらの値がネットワークに適さない場合は、変更する必要があります。
IP precedence/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。
|
dscp1...dscp8を指定する場合は、IP precedence値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。指定できる範囲は0〜63です。 |
||
デフォルトのマップに戻すには、no mls qos map ip-prec-dscpグローバル コンフィギュレーション コマンドを使用します。
次に、IP precedence/DSCPマップを変更して表示する例を示します。
Switch(config)# mls qos map ip-prec-dscp 10 15 20 25 30 35 40 45
Switch# show mls qos maps ip-prec-dscp
--------------------------------
ポリシングおよびマーキング アクションによって得られる新しい値にDSCP値をマーク ダウンするには、ポリシング設定DSCPマップを使用します。
デフォルトのマップに戻すには、no mls qos map policed-dscpグローバル コンフィギュレーション コマンドを使用します。
次に、DSCP値50〜57を、マークダウンされるDSCP値0にマッピングする例を示します。
Switch(config)# mls qos map policed-dscp 50 51 52 53 54 55 56 57 to 0
Switch# show mls qos maps policed-dscp
---------------------------------------
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
4つの出力キューの1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。
デフォルトのDSCP/CoSマップにデフォルトのDSCP/CoSマップを示します。
デフォルトのマップに戻すには、no mls qos map dscp-cosグローバル コンフィギュレーション コマンドを使用します。
次にDSCP値0、8、16、24、32、40、48、50をCoS値0にマッピングする例を示します。
Switch(config)# mls qos map dscp-cos 0 8 16 24 32 40 48 50 to 0
Switch# show mls qos maps dscp-cos
---------------------------------------
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
DSCP/DSCP変換マップは、QoS管理ドメインの境界にあるポートに適用されます。2つのドメインで異なるDSCP定義が使用されている場合は、ほかのドメイン内での定義に合わせて、一連のDSCP値を変換するDSCP/DSCP変換マップを使用します。
デフォルトのマップに戻すには、no mls qos map dscp-mutationdscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP/DSCP変換マップを定義する例を示します。明示的に設定されていないすべてのエントリは変更されません(空のマップで指定された値のままです)。
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# show mls qos maps dscp-mutation mutation1
---------------------------------------
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
ここでは、ギガビット対応イーサネット ポートの出力キューを設定する方法について説明します。10/100イーサネット ポートの設定方法については、10/100イーサネット ポートの出力キューの設定を参照してください。
ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
いずれかの出力キューを選択するためのCoS入力値をマッピングするには、イネーブルEXECモードから始めて次の手順を実行します。
|
インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。 |
||
|
いずれかの出力キューを選択するためのCoS値をマッピングします。
|
||
デフォルトの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
デフォルトのウェイトに戻すには、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モードで次の手順を実行します。
|
インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。 |
||
|
wrr-queue threshold queue-id threshold-percentage1 threshold-percentage2 |
||
|
インターフェイス コンフィギュレーション モードを開始し、入力ギガビット対応イーサネット インターフェイスを指定します。 |
||
デフォルトのスレッシュホールドに戻すには、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)# 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はパケットを選択的に廃棄し、テール ドロップの機会を減らします。キューがいっぱいになるまで待機せず、早めに一部のパケットを廃棄することで、一度に多数のパケットが廃棄されなくなります。
DSCPが最初のスレッシュホールドに割り当てられているパケットは、パケット量が最初のスレッシュホールドを超えた場合、すべてランダムに廃棄されます。ただし、DSCPが2番めのスレッシュホールドに割り当てられているパケットは、2番めのスレッシュホールドを超えないかぎり、キューイングされて送信されます。各スレッシュホールドは、WREDがランダムなパケット廃棄を開始する時点を示します。デフォルトで、WREDはディセーブルです。
WREDスレッシュホールドを使用する場合は、テール廃棄スレッシュホールドを使用できません。その逆の場合も同様です。
ギガビット対応イーサネット ポートにWRED廃棄スレッシュホールド値を設定するには、イネーブルEXECモードで、次の手順を実行します。
|
インターフェイス コンフィギュレーション モードを開始し、出力ギガビット対応イーサネット インターフェイスを指定します。 |
||
|
wrr-queue random-detect max-thresholdqueue-id threshold-percentage1 threshold-percentage2 |
デフォルトでWREDはディセーブルになっており、スレッシュホールドは設定されていません。
|
|
|
インターフェイス コンフィギュレーション モードを開始し、入力ギガビット対応イーサネット インターフェイスを指定します。 |
||
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)# 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つのキューを処理しません。
出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。
各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。
デフォルトの帯域幅設定に戻すには、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イーサネット ポートの出力キューを設定する方法について説明します。ギガビット対応イーサネット ポートの設定方法については、ギガビット対応イーサネット ポートの出力キューの設定を参照してください。
ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
いずれかの出力キューを選択するためのCoS入力値をマッピングするには、イネーブルEXECモードから始めて次の手順を実行します。
|
いずれかの出力キューを選択するためのCoS値をマッピングします。
|
||
デフォルトの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イーサネット ポートの出力キューに最小確保レベルを割り当てることができます。
|
すべての10/100イーサネット ポートに対し、必要に応じて、最小確保レベルのバッファ サイズを設定します。 デフォルトでは、8個の最小確保レベルのバッファ サイズはすべて100パケットです。
このコマンドを入力すると、キューはハードウェア再設定中に一時的にシャットダウンし、このキューに新規に着信したパケットは廃棄されます。 |
||
|
デフォルトでは、キュー1に最小確保レベル1、キュー2に最小確保レベル2、キュー3に最小確保レベル3、キュー4に最小確保レベル4が選択されます。
|
||
デフォルトの最小確保バッファ サイズに戻すには、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つのキューを処理しません。
|
出力緊急キューをイネーブルにします。デフォルトではディセーブルになっています。 このコマンドを設定すると、WRRに使用されるキューが1つ少なくなるため、WRRウェイトが変わります。つまり、wrr-queue bandwidthコマンドのweight4が無視されます(比率計算から除外されます)。 |
||
出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。
各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。
デフォルトの帯域幅設定に戻すには、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情報を表示するためのコマンドに示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。
|
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値を生成するために使用されます。 |
ここでは、既存のネットワークおよびネットワークの変更計画に基づいて、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設定例のインテリジェントな配線クローゼットは、Catalyst 3550マルチレイヤ スイッチで構成されています。スイッチの1台は、IPアドレスが172.20.10.16であるビデオ サーバに接続されています。
この例での目的は、ビデオ トラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることです。そのためには、ビデオ トラフィックにDSCP値56を割り当てます。このトラフィックは緊急キュー(キュー4)に格納されます。このキューが空になるまでほかのキューは処理されません。適切なCoS値を設定することにより、CoS/出力キュー マップ内でキュー4が選択されます。
次の例では、ディストリビューション レイヤの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をイネーブルにして、各キューにスレッシュホールドを設定します。各キューに割り当てられる帯域幅を設定し、キューからパケットを廃棄する頻度を決定する必要があります。
All contents copyright (C) 1992--2004 Cisco Systems K.K.