この章では、標準のQuality of Service(QoS;サービス品質)コマンドまたは自動QoSを使用してQoSを設定する方法について説明します。QoSを使用すると、特定のトラフィック タイプをほかのトラフィック タイプよりも優先的に処理できます。QoSを使用しない場合、Catalyst 3550ではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、またはスループットが保証されずに、パケットが送信されます。
スイッチは、モジュラーQoS CLI(コマンドライン インターフェイス)(MQC)コマンドの一部をサポートしています。MQCコマンドの詳細については、次のURLで「Modular Quality of Service Command Line Interface Overview」を参照してください。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fqos_c/fqcprt8/qcfmdcli.htm#89799
QoSの概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。
QoSを設定すると、特定のネットワーク トラフィックを選択し、相対的な重要度に応じてプライオリティを設定し、輻輳管理および輻輳回避技術を使用して、優先処理を行うことができます。ネットワークにQoSを実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効果的になります。
QoSは新たに普及しつつあるInternet Engineering Task Force(IETF)の規格であるDiffServアーキテクチャに基づいて実装されています。DiffServアーキテクチャでは、ネットワークの入り口で各パケットが分類されます。この分類はIPパケット ヘッダーに格納され、現在ほとんど使用されていないIP Type of Service(ToS;サービス タイプ)フィールドの6ビットを使用して、分類( クラス )情報が伝達されます。レイヤ2フレームに格納して分類を伝達することもできます。次に、レイヤ2フレームまたはレイヤ3パケット内のこれらの特殊ビットについて説明します。 図29-1 を参照してください。
レイヤ2のISL(スイッチ間リンク)フレーム ヘッダーには、下位3ビットでIEEE 802.1p Class of Service(CoS;サービス クラス)値を伝達する、1バイトのユーザ フィールドがあります。レイヤ2のISLトランクとして設定されたインターフェイスでは、すべてのトラフィックがISLフレームに収められます。
レイヤ2のIEEE 802.1Qフレーム ヘッダーには、上位3ビット(別名ユーザ プライオリティ ビット)でCoS値を伝達する、2バイトのタグ制御情報フィールドがあります。レイヤ2のIEEE 802.1Qトランクとして設定されたインターフェイスでは、ネイティブVLAN(仮想LAN)のトラフィックを除き、すべてのトラフィックがIEEE 802.1Qフレームに収められます。
その他のフレーム タイプでは、レイヤ2のCoS値を伝達できません。
レイヤ2 CoS値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
レイヤ3 IPパケットは、IP precedence値またはDifferentiated Services Code Point(DSCP)値のいずれかを伝達します。DSCP値はIP precedence値と下位互換性があるので、QoSではどちらの値も使用できます。
図29-1 フレームおよびパケットのQoS分類ビット
クラス情報ごとに異なる方法でパケットを転送するには、インターネットにアクセスするすべてのスイッチおよびルータでクラス情報を信頼します。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにクラス情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。
パス上のスイッチおよびルータでは、クラス情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限できます。DiffServアーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。
ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/送信トラフィックに必要な制御の細かさによって、難易度が変化します。
ここでは、QoSの処理手順およびその機能について説明します。
基本的なQoSモデル
図29-2 に、基本的なQoSモデルを示します。入力インターフェイスでのアクションには、トラフィックの分類、ポリシング、およびマーキングがあります。
- 分類では、トラフィックの種類を区別します。分類プロセスを実行するとパケットに内部DSCPが生成されます。生成されると、このパケットに対して実行されるすべてのQoSアクションは、この内部DSCPで識別されます。詳細については、 分類 を参照してください。
- ポリシングでは、内部DSCPを設定済みポリサーと比較してパケットの適合、不適合を判別し、ポリサーは、トラフィック フローで消費される帯域幅を制限します。この判別結果はマーカーに渡されます。詳細については、 ポリシングおよびマーキング を参照してください。
- マーキングでは、ポリサーおよびパケットが不適合である場合の対処法に関する設定情報を評価します。また、パケットに関する処理内容(変更しないでパケットを通過させるか、パケットにDSCP値をマークダウンするか、またはパケットを廃棄するか)を決定します。詳細については、 ポリシングおよびマーキング を参照してください。
出力インターフェイスのアクションには、キューイングおよびスケジューリングがあります。
- キューイングの場合は内部DSCPが評価され、4つの出力キューのいずれにパケットを格納するかが決まります。DSCP値はCoS値にマッピングされ、これによってキューの1つが選択されます。詳細については、 マッピング テーブル を参照してください。
- スケジューリングでは、設定されたWeighted Round Robin(WRR;重み付きラウンドロビン)のウェイトおよびスレッシュホールドに基づいて、4つの出力キューを処理します。キューの1つを緊急キューとして使用できます。緊急キューが空になるまで、ほかのキューは処理されません。輻輳回避技術には、ギガビット対応イーサネット ポートで行われるテール ドロップとWeighted Random Early Detection(WRED;重み付きランダム早期検出)、10/100イーサネット ポートで行われるテール ドロップ(スレッシュホールドは1つのみ)があります。詳細については、 キューイングおよびスケジューリング を参照してください。
図29-2 基本的なQoSモデル
分類
分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoSがスイッチでグローバルなイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでQoSはグローバルなディセーブルになっているため、分類は実行されません。
着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。
非IPトラフィックの場合は、次の方法で分類できます( 図29-3 を参照)。
- ポートのデフォルト値を使用します。フレーム内にCoS値が格納されていない場合、スイッチは着信フレームにデフォルトのポートCoS値を割り当てます。次に、スイッチは設定可能なCoS/DSCPマップを使用し、内部DSCP値を生成します。スイッチは、内部DSCP値を使用して、トラフィックのプライオリティを表すCoS値を生成します。
- 着信フレーム内のCoS値を信頼します(CoSを信頼するようにポートを設定します)。次に、スイッチは設定可能なCoS/DSCPマップを使用し、内部DSCP値を生成します。レイヤ2のISLフレーム ヘッダーの場合、CoS値は1バイトのユーザ フィールドの下位3ビットに格納されて伝達されます。レイヤ2のIEEE 802.1Qフレーム ヘッダーの場合、CoS値はタグ制御情報フィールドの上位3ビットに格納されて伝達されます。CoS値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
- 非IPトラフィックの場合、DSCPおよびIP precedenceを信頼するように設定する必要はありません。これらのいずれかの方法で設定されているポートに非IPトラフィックが着信した場合は、デフォルトのポートCoS値が割り当てられ、CoS/DSCPマップから内部DSCPが生成されます。
- 設定されたレイヤ2のMAC(メディア アクセス制御)Access Control List(ACL;アクセス制御リスト)に基づいて分類します。レイヤ2のMAC ACLでは、MAC送信元アドレス、MAC宛先アドレス、およびEtherTypeフィールドを調べることができます。ACLが設定されていない場合、パケットにはベストエフォート型トラフィックを意味するデフォルトのDSCP値(0)が割り当てられます。ACLが設定されている場合は、ポリシー マップによって指定されたDSCPが着信フレームに割り当てられます。
IPトラフィックの場合は、次の方法で分類できます( 図29-3 を参照)。
- 着信パケットのIP DSCPを信頼して(DSCPを信頼するようにポートを設定して)、パケットに同じDSCPを割り当てます(このDSCPは内部で使用)。IETFでは、1バイトのToSフィールドの上位6ビットがDSCPとして定義されています。特定のDSCP値で表されるプライオリティは設定可能です。DSCP値の範囲は0〜63です。
2つのQoS管理ドメインの境界上にあるポートの場合は、設定可能なDSCP/DSCP変換マップを使用し、DSCPを別の値に変更できます。
- 着信パケットのIP precedenceを信頼し(IP precedenceを信頼するようにポートを設定し)、設定可能なIP precedence/DSCPマップを使用してDSCPを生成します。IPv 4仕様では、1バイトのToSフィールドの上位3ビットがIP precedenceとして定義されています。IP precedence値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
- 着信パケット内にCoS値が存在する場合はこれを信頼し、CoS/DSCPマップを使用してDSCPを生成します。
- 設定されたIP標準、またはIPヘッダーの各フィールドを調べる拡張ACLに基づいて、分類を実行します。ACLが設定されていない場合、パケットにはベストエフォート型トラフィックを意味するデフォルトのDSCP値(0)が割り当てられます。ACLが設定されている場合は、ポリシー マップによって指定されたDSCPが着信フレームに割り当てられます。
ここで説明されているマップの詳細については、 マッピング テーブル を参照してください。ポートの信頼状態に関する設定の詳細については、 ポートの信頼状態による分類の設定 を参照してください。
図29-3 分類フローチャート
QoS ACLに基づく分類
IP標準、IP拡張、およびレイヤ2 MAC ACLを使用すると、同じ特性(クラス)を持つパケットのグループを定義できます。QoSコンテキストでは、ACEとセキュリティACLで、許可(permit)および拒否(deny)アクションの意味が異なります。
- 許可アクションと一致した場合は(原則的には最初の一致)、指定されたQoS関連のアクションが実行されます。
- 拒否アクションと一致した場合は、処理中のACLが省略され、次のACLが処理されます。
- すべてのACEを調べても許可アクションとの一致が見つからなかった場合は、パケットに関するQoS処理が行われず、ベストエフォート型サービスがパケットに対して行われます。
- インターフェイスに複数のACLが設定されている場合、許可アクションを含む最初のACLとパケットの一致が見つかるとそれ以降の検索処理は中止され、QoS処理が開始されます。
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値を割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます( 図29-4 を参照)。
ポリシングでは、トラフィックの帯域幅制限を指定するポリサーが作成されます。制限を超えるパケットは、「 不適合 」になります。各ポリサーによって、適合または不適合のパケットの処理方法が指定されます。これらのアクションはマーカーによって実行されます。パケットを変更しないで通過させるアクション、パケットを廃棄するアクション、設定可能なポリシング設定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 オプションを使用して設定します。
ポリシングおよびポリサーを設定するときは、次の点に注意してください。
- デフォルトで、ポリサーは設定されていません。
- ポリサーは物理ポートに基づいて、またはポート単位、VLAN単位でのみ設定できます(指定されたポートに対して、VLAN単位でトラフィックの帯域幅制限を指定します)。ポート単位、VLAN単位のポリシングは、ルーテッド ポートまたは仮想(論理)インターフェイスでサポートされません。トランクまたはスタティックアクセス ポートとして設定された入力ポートでのみ、サポートされます。
- 1つのパケットには、方向ごとに1つのポリサーのみを適用できます。
- 設定できるのは平均速度および確定されたバースト パラメータのみです。
- ポリシングは入力インターフェイスおよび出力インターフェイスで実行できます。
- − ギガビット対応イーサネット ポートでは、128個のポリサーがサポートされています。
- − 入力10/100イーサネット ポートでは、8個のポリサーがサポートされています。
- − すべての出力ポートでは、8個のポリサーがサポートされています。
- − 入力ポリサーには個別ポリサーまたは集約ポリサーを使用できます。
- QoSが設定されたインターフェイスでは、そのインターフェイスを通じて受信されるすべてのトラフィックに対し、インターフェイスに付加されたポリシー マップによる分類、ポリシング、およびマーキングが行われます。QoSが設定されたトランクインターフェイスでは、そのインターフェイスを通じて受信される すべての VLAN内トラフィックに対し、インターフェイスに付加されたポリシー マップによる分類、ポリシング、およびマーキングが行われます。
ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy インターフェイス コンフィギュレーション コマンドを使用し、入力または出力インターフェイスにポリシーを付加します。設定の詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング 、および 集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング を参照してください。
図29-4 ポリシングおよびマーキングのフローチャート
マッピング テーブル
QoSの処理中は、すべてのトラフィック(非IPトラフィックを含む)のプライオリティは内部DSCP値で表されます。
- 分類中にQoSは設定可能なマッピング テーブルを使用し、受信されたCoSまたはIP precedence(3ビット)値から内部DSCP(6ビット値)を取得します。これらのマップには、CoS/DSCPマップやIP precedence/DSCPマップなどがあります。
DSCP信頼状態で設定された入力インターフェイスのDSCP値がQoSドメイン間で異なる場合は、2つのQoSドメインの境界上にあるインターフェイスに、設定可能なDSCP/DSCP変換マップを適用できます。
- ポリシング中に、QoSはIPパケットまたは非IPパケットに別のDSCP値を割り当てることができます(パケットが不適合で、マークダウンされるDSCP値がポリサーによって指定されている場合)。この設定可能なマップをポリシング設定DSCPマップと呼びます。
- トラフィックがスケジューリング段階に到達する前に、QoSは設定可能なDSCP/CoSマップを使用し、内部DSCP値からCoSを取得します。CoS/出力キュー マップのCoS値によって、出力処理に使用される出力キューが4つの中から1つ選択されます。
CoS/DSCP、DSCP/CoS、およびIP precedence/DSCPマップのデフォルト値は、ネットワークによって適切でない場合もあります。
デフォルトのDSCP/DSCP変換マップおよびデフォルトのポリシング設定DSCPマップは空のマップです。これらのマップでは、着信したDSCP値が同じDSCP値にマッピングされます。特定のギガビット対応イーサネット ポートまたは10/100イーサネット ポートのグループに適用されるのは、DSCP/DSCP変換マップのみです。その他のすべてのマップはスイッチ全体に適用されます。
設定の詳細については、 DSCPマップの設定 を参照してください。
キューイングおよびスケジューリング
パケットのポリシングおよびマーキングのあとで、キューイングおよびスケジューリング プロセスが開始されます。ここでは次のプロセスについて説明します。
ギガビット対応ポートでのキューイングおよびスケジューリング
図29-5 に、ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
図29-5 ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャート
キューイングおよびスケジューリング プロセス中にギガビット対応イーサネット ポートで使用されるのは、輻輳管理の場合は出力キューとWRR、輻輳回避の場合はテール ドロップまたはWREDアルゴリズムです。
各ギガビット対応イーサネット ポートには4つの出力キューがあり、そのうちの1つが出力緊急キューとなります。各キューに割り当てられたバッファ スペースをウェイトの割合として設定するには、 wrr-queue queue-limit インターフェイス コンフィギュレーション コマンドを使用します。キューごとに相対的に異なる値を指定すると、相対的に異なるキュー サイズが設定されます。キュー サイズの絶対値を表示するには、 show mls qos interface interface-id statistics イネーブル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は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イーサネット ポートでのキューイングおよびスケジューリング
図29-6 に、10/100イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
図29-6 10/100イーサネット ポートでのキューイングおよびスケジューリングに関するフローチャート
キューイングおよびスケジューリング プロセス中は出力キューを使用して、最小確保レベルとバッファ サイズを選択し、WRRを使用して輻輳管理を行います。
各10/100イーサネット ポートには4つの出力キューがあり、そのうちの1つが出力緊急キューとなります。各キューでは8つの最小確保レベルのうちの1つを利用できます。各レベルには、パケットをキューイングするためのバッファ スペースが、デフォルトで100パケット分あります。最小確保レベルに指定されたバッファがいっぱいになると、バッファ スペースが空くまでパケットが廃棄されます。
図29-7 に、10/100イーサネット ポート キューの割り当て、最小確保レベル、およびバッファ サイズの例を示します。この図では、ポートごとに4つの出力キューがあり、それぞれに最小確保レベルが割り当てられています。たとえば、FastEthernet 0/1ポートの場合、最小確保レベル1にはキュー1、最小確保レベル3にはキュー2、最小確保レベル5にはキュー3、最小確保レベル7にはキュー4が割り当てられます。キューに最小確保レベルを割り当てるには、 wrr-queue min-reserve インターフェイス コンフィギュレーション コマンドを使用します。
各最小確保レベルはバッファ サイズによって設定されます。図に示されているように、FastEthernetポート1のキュー4のバッファ サイズは70パケット、FastEthernetポート2のキュー4のバッファ サイズは80パケット、FastEthernetポート3のキュー4のバッファ サイズは40パケット、FastEthernetポート4のキュー4のバッファ サイズは80パケットです。バッファ サイズを設定するには、 mls qos min-reserve グローバル コンフィギュレーション コマンドを使用します。
図29-7 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を設定するために、パケットの分類、ポリシング、およびキューイングを行います。このプロセス中に、パケットが変更されることがあります。
- IPパケットの場合は、分類中にDSCPがパケットに割り当てられます。ただし、この時点でパケットは変更されません。割り当てられたDSCPの情報のみがパケットに格納されて伝達されます。このように処理されるのは、QoSの分類およびACL検索が同時に行われ、パケットを拒否およびロギングするようにACLから指示されることがあるためです。この場合、パケットは元のDSCPが格納された状態でCPUに転送され、そこで再度ACLソフトウェアによって処理されます。ただし、ルートの検索は分類されたDSCPに基づいて行われます。
- 非IPパケットの場合は、分類中に内部DSCPがパケットに割り当てられます。ただし、非IPパケットにはDSCPがないため、上書きは行われません。その代わり、パケットがISLまたはIEEE 802.1Qトランク ポートのいずれかを経由して送信されている場合は、内部DSCPがCoSに変換され、キューイングやスケジューリングを決定するため、およびタグにCoSプライオリティ値を書き込むために使用されます。CoSプライオリティはタグに書き込まれるため、IEEE 802.1pプライオリティを使用するCatalyst 3500シリーズXLスイッチはCatalyst 3500スイッチのQoS機能と相互運用できます。
- ポリシング中は、IPパケットおよび非IPパケットに別のDSCPを割り当てることができます(これらのパケットが不適合で、ポリサーがDSCPのマークダウンを指定している場合)。IPパケットの場合は、このあとの処理でパケットが変更されます。非IPパケットの場合は、DSCPがCoSに変換され、キューイングおよびスケジューリングの決定に使用されます。
自動QoSの設定
自動QoSを使用すると、既存のQoS機能を簡単に導入できます。自動QoSはネットワーク設計に関する前提条件を設定するもので、それによってスイッチは、デフォルトのQoS動作を使用せずにトラフィック フローごとに優先順位を付け、適切に出力キューを使用できます(デフォルトで、QoSはディセーブルです。スイッチではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、単一キューでパケットを送信します)。
自動QoSをイネーブルにすると、トラフィック タイプと入力パケット ラベルに基づいてトラフィックを自動的に分類します。スイッチはこの分類結果を使って適切な出力キューを選択します。
自動QoSコマンドを使用して、Cisco IP PhoneおよびCisco SoftPhoneアプリケーションが動作しているデバイスと接続しているポートを識別します。また、アップリンクを介して信頼できるトラフィックを受信するポートも識別します。ここで自動QoSは次の機能を実行します。
ここでは、スイッチで自動QoSを設定する手順について説明します。
生成される自動QoS設定
デフォルトでは、自動QoSはすべてのインターフェイスでディセーブルに設定されています。
自動QoSがイネーブルの場合、トラフィックの分類と出力キューの設定に入力パケット ラベルを使用します( 表29-1 を参照)。
|
VoIP
1
データ |
STP BPDU
2
|
||||||
|---|---|---|---|---|---|---|---|
表29-2 に、生成された出力キューの自動QoS設定を示します。
最初のインターフェイスで自動QoS機能をイネーブルにすると、次の動作が自動的に発生します。
- QoSがグローバルにイネーブルになります( mls qos グローバル コンフィギュレーション コマンド)。
- Cisco IP Phoneと接続しているネットワークのエッジにあるポートで、 auto qos voip cisco-phone インターフェイス コンフィギュレーション コマンドを入力すると、スイッチは信頼境界機能をイネーブルにします。スイッチは、Cisco Discovery Protocol(CDP)を使用してCisco IP Phoneの有無を検出します。Cisco IP Phoneを検出すると、パケットで受信されるQoSラベルを信頼するようにインターフェイスの入力分類が設定されます。Cisco IP Phoneがない場合、パケットで受信されるQoSラベルを信頼しないようにインターフェイスの入力分類が設定されます。スイッチは、 表29-2 の設定に応じたポートに基づいて、出力キューを設定します。
- Cisco SoftPhoneを実行しているデバイスと接続しているネットワークのエッジにあるポートで、 auto qos voip cisco-softphone インターフェイス コンフィギュレーション コマンドを入力すると、スイッチはポリシングを使用してパケットが適合か不適合かを判別し、パケットに対する処理を特定します。パケットにDSCP値24、26、または46が保有されていないか、もしくはパケットが不適合の場合、スイッチはDSCP値を0に変更します。スイッチは、 表29-2 の設定に応じたポートに基づいて出力キューを設定します。
- ネットワーク内部に接続されたポートで auto qos voip trust インターフェイス コンフィギュレーション コマンドを入力すると、スイッチは、入力パケット(トラフィックはすでに他のエッジ デバイスで分類されていることが前提です)内の、非ルーテッド ポートのCoS値またはルーテッド ポートのDSCP値を信頼します。スイッチは、 表29-2 の設定に応じたポートに基づいて、出力キューを設定します。
信頼境界機能の詳細については、 信頼境界の設定によるポート セキュリティの確保 を参照してください。
auto qos voip cisco-phone 、 auto qos voip cisco-softphone または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動QoSをイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的にQoS コンフィギュレーションを生成し、 表29-3 に示すコマンドをインターフェイスに適用します。
|
スイッチが標準QoSを自動的にイネーブルにし、CoS/DSCPマップ(着信パケット内のCoS値の、DSCP値へのマッピング)を設定します( 表29-1トラフィック タイプ、パケット ラベル、および出力キュー を参照)。 |
|
|
10/100イーサネット ポートがある場合、スイッチは最小確保レベル5、6、7、および8のバッファ サイズを自動的に設定します。 |
Switch(config)# mls qos min-reserve 5 170 Switch(config)# mls qos min-reserve 6 85 |
|
auto qos voip trust コマンドを入力した場合、スイッチは自動的に入力分類を設定して、非ルーテッド ポートのパケットで受信したCoS値、またはルーテッド ポートのパケットで受信したDSCP値を信頼するようにします。 |
|
|
auto qos voip cisco-phone コマンドを入力すると、スイッチは自動的に信頼境界機能をイネーブルにします。この機能は、CDPを使用してCisco IP Phoneの有無を検出するものです。 |
|
|
auto qos voip cisco-softphone コマンドを入力した場合、スイッチは自動的にクラス マップおよびポリシー マップを作成します。 |
Switch(config)# mls qos map policed-dscp 24 26 46 to 0 Switch(config)# class-map match-all AutoQoS-VoIP-RTP-Trust Switch(config-cmap)# match ip dscp 46 Switch(config)# class-map match-all AutoQoS-VoIP-Control-Trust Switch(config-cmap)# match ip dscp 24 26 Switch(config)# policy-map AutoQoS-Police-SoftPhone Switch(config-pmap)# class AutoQoS-VoIP-RTP-Trust Switch(config-pmap-c)# set dscp 46 Switch(config-pmap-c)# police 320000 8000 exceed-action policed-dscp-transmit Switch(config-pmap)# class AutoQoS-VoIP-Control-Trust Switch(config-pmap-c)# set dscp 24 Switch(config-pmap-c)# police 32000 8000 exceed-action policed-dscp-transmit |
|
クラス マップおよびポリシー マップを作成したあと、スイッチは自動的に AutoQoS-Police-SoftPhone という名前のポリシー マップを自動QoSの入力インターフェイスに適用します(Cisco SoftPhone機能はイネーブル)。 |
Switch(config-if)# service-policy input AutoQoS-Police-SoftPhone |
|
スイッチがインターフェイスでの出力キューの使用状況を割り当てます( 表29-2出力キュー用の自動QoS設定 を参照)。 スイッチは出力緊急キューをイネーブルにして、WRRウェイトをキュー1、2、および3に割り当てます(WRRキューで一番低い値は1です。キューのWRRウェイトに0が設定されている場合、そのキューは緊急キューです。) |
Switch(config-if)# wrr-queue bandwidth 10 20 70 1 Switch(config-if)# no wrr-queue cos-map Switch(config-if)# wrr-queue cos-map 1 0 1 Switch(config-if)# wrr-queue cos-map 2 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の設定上の影響
自動QoSがイネーブルの場合、 auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された設定が、実行コンフィギュレーションに追加されます。
スイッチは自動QoS生成のコマンドを、CLIから入力されたコマンドのように適用します。既存のユーザ設定は、生成コマンドの適用を失敗させるか、または生成コマンドによって上書きされる可能性があります。これらは警告なしに実行されます。生成されたコマンドがすべて正常に適用された場合、上書きされていないユーザ入力の設定は、実行コンフィギュレーションに残ります。上書きされたユーザ入力の設定は、現行の設定をメモリに保存しないでスイッチをリロードすることで復旧させることができます。生成されたコマンドが適用に失敗した場合、以前の実行コンフィギュレーションに戻ります。
設定時の注意事項
- Cisco IOS Release 12.1(20)EA2より前のリリースでは、自動QoSは、非ルーテッド ポートのCisco IP PhoneのVoIP用にのみスイッチを設定します。
- Cisco IOS Release 12.1(20)EA2以降では、自動QoSは、非ルーテッドおよびルーテッド ポートのCisco IP PhoneのVoIP用にスイッチを設定します。また、自動QoSは、Cisco SoftPhoneアプリケーションが動作するデバイスのVoIP用にスイッチを設定します。
- 自動QoSのデフォルト設定を利用するには、自動QoSをイネーブルにしてから他のQoSコマンドを設定する必要があります。必要であれば、QoS設定をきめ細かく調整できますが、自動QoSコマンド設定が完了したあとに実行することを推奨します。詳細については、 自動QoSの設定上の影響 を参照してください。
- 自動QoSがイネーブルになったあと、名前に AutoQoS を含むポリシー マップを修正、または同名を含むポリサーを集約しないでください。ポリシー マップを修正、またはポリサーを集約するには、そのコピーを作成し、コピーしたポリシー マップまたはポリサーに手を加えてください。生成されたものの代わりに新規のポリシー マップを使用するには、生成されたポリシー マップをインターフェイスから削除し、新しいポリシー マップをインターフェイスに適用してください。
- スタティック アクセス、ダイナミック アクセス、音声VLANアクセス、およびトランク ポートで自動QoSをイネーブルにできます。
- デフォルトでは、CDPはすべてのインターフェイスでイネーブルに設定されています。自動QoSを適切に機能させるには、CDPをディセーブルにしないでください。
- ルーテッド ポートのCisco IP Phoneで自動QoSをイネーブルにした場合、IP PhoneにはスタティックIPアドレスを割り当てる必要があります。
- このリリースでは、Cisco IP SoftPhoneバージョン1.3(3)以降のみがサポートされます。
- 接続されたデバイスは、Cisco CallManagerバージョン4以降を使用する必要があります。
旧ソフトウェア リリースからのアップグレード
Cisco IOS Release 12.2(20)EA2では、自動QoSに関する実装が旧リリースから変更されました。生成された自動QoS設定は変更され、Cisco SoftPhoneサポート機能が追加されました。またさらに、ルーテッド ポートのCisco IP Phoneサポート機能が追加されました。
自動QoSが設定済みのスイッチで、Cisco IOS Release 12.2(20)EA2より前のリリースをスイッチが実行しており、さらにCisco IOS Release 12.2(20)EA2以降にアップグレードする場合、コンフィギュレーション ファイルは新しい設定を保有していないため、自動QoSは動作しません。コンフィギュレーション ファイルの自動QoSの設定をアップグレードするには、次の手順に従ってください。
- 1. Cisco IOS Release 12.2(20)EA2以降にスイッチをアップグレードします。
- 2. 自動QoSがイネーブルのすべてのポートで自動QoSをディセーブルにします。
- 3. no コマンドを使用して、すべてのグローバル自動QoS設定ををデフォルト値に戻します。
- 4. ステップ2で、自動QoSをディセーブルにしていたポートの自動QoSを再度イネーブルにします。次に、前回の自動QoSと同じ設定をポートに適用します。
VoIP用の自動QoSをイネーブルにする方法
VoIP用の自動QoSをQoSドメインでイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
自動QoSがイネーブルまたはディセーブルに設定されている場合に自動生成されるQoSコマンドを表示するには、自動QoSをイネーブルにする前に debug auto qos イネーブルEXECコマンドを入力します。詳細については、 debug auto qosコマンドの使用 を参照してください。
インターフェイスで自動QoSをディセーブルにするには、no auto qos voipインターフェイス コンフィギュレーション コマンドを使用します。このコマンドを入力すると、スイッチは自動QoS設定をそのインターフェイスの標準QoSデフォルト設定に変更します。
スイッチで自動QoSをディセーブルにするには、no mls qosグローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、スイッチはすべてのインターフェイスのQoSをディセーブルにし、パススルー モードをイネーブルにします。
次の例では、インターフェイスに接続されているデバイスがCisco IP Phoneとして検出された場合に、自動QoSをイネーブルにして受信パケット内のQoSラベルを信頼する方法を示します。
Switch(config)# interface fastethernet0/1
Switch(config-if)# auto qos voip cisco-phone
次の例は、インターフェイスに接続されたスイッチやルータが信頼できるデバイスの場合に自動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設定に関する情報を表示するには、次のいずれかのコマンドを使用します。
- show mls qos
- show mls qos maps cos-dscp
- show mls qos interface [ interface-id ] [ buffers | queueing ]
これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。
自動QoSの設定例
ここでは、ネットワーク内で自動QoSを実装する方法について説明します( 図29-8 を参照)。QoSのパフォーマンスを最適化するには、ネットワーク内のすべてのデバイスで自動QoSをイネーブルにする必要があります。
図29-8 自動QoSを設定したネットワークの例
図29-8 のインテリジェントな配線クローゼットは、EIが動作しているCatalyst 2950スイッチおよびCatalyst 3550スイッチで構成されています。この例では、VoIPトラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることを目的としています。これを実行するには、配線クローゼット内のQoSドメインのエッジにあるスイッチで自動QoSをイネーブルにします。
VoIPトラフィックをほかのすべてのトラフィックよりも優先させるために、QoSドメインのエッジにあるスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。
|
自動QoS用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動QoSがイネーブルになる際に自動的に生成されるQoS設定を表示します。 |
||
|
Cisco IP Phoneに接続されたスイッチ ポートを指定して、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスがCisco IP Phoneに接続されていることを指定します。 |
||
|
信頼できるスイッチまたはルータに接続していると確認できるスイッチ ポートを指定して、インターフェイス コンフィギュレーション モードを開始します。 図29-8 を参照してください。 |
||
|
インターフェイスで自動QoSをイネーブルにし、インターフェイスが信頼されるルータやスイッチに接続されていることを指定します。 |
||
|
このコマンドは、自動QoSがイネーブルだったインターフェイスのQoSコマンドを表示します。 show running-config イネーブルEXECコマンドを使用すると、自動QoS設定およびユーザの修正部分を表示できます。 自動QoSに影響を受けるQoS設定に関する情報については、「自動QoS情報の表示」(p.28-23)を参照してください。 |
||
|
auto qos voip インターフェイス コンフィギュレーション コマンドと生成された自動QoS設定をコンフィギュレーション ファイルに保存します。 |
標準QoSの設定
標準QoSを設定する前に、次の内容をすべて理解してください。
- 使用するアプリケーションのタイプおよびネットワークのトラフィック パターン
- トラフィックの特徴およびネットワークの要求。トラフィック バーストの有無。音声およびビデオ ストリーム用に帯域幅を確保する必要性
- 帯域要件およびネットワーク速度
- ネットワークで輻輳が発生する場所
ここでは、スイッチで標準QoSを設定する手順について説明します。
- 標準QoSのデフォルト設定
- 標準QoS設定時の注意事項
- QoSをグローバルでイネーブルにする方法
- ポートの信頼状態による分類の設定
- QoSポリシーの設定
- DSCPマップの設定
- ギガビット対応イーサネット ポートの出力キューの設定
- 10/100イーサネット ポートの出力キューの設定
標準QoSのデフォルト設定
表29-4 に、QoSがディセーブルの場合の標準QoSのデフォルト設定を示します。
QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、信頼されるポート、信頼されないポートの概念はありません。
表29-5 に、QoSがイネーブルの場合にそのまま使用できる標準QoSのデフォルト設定を示します。
デフォルトでは、すべてのポートの信頼状態は信頼されない状態になっています。
デフォルトのCoS/DSCPマップについては、 表29-6 を参照してください。
デフォルトのIP precedence/DSCPマップについては、 表29-7 を参照してください。
デフォルトのDSCP/CoSマップについては、 表29-8 を参照してください。
デフォルトの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をイネーブルにする前に、すべてのポートでIEEE 802.3xフロー制御をディセーブルにする必要があります。そのためには、 flowcontrol receive off および flowcontrol send off インターフェイス コンフィギュレーション コマンドを使用します。
QoS:ensure flow-control on all interfaces are OFF for proper operation.
- スイッチにEtherChannelポートが設定されている場合は、EtherChannelを構成する各物理ポートでQoSの分類、ポリシング、マッピング、およびキューイングを設定する必要があります。EtherChannelのすべてのポートで、QoS設定を統一するかどうかを決定します。
- トラフィックは入力物理ポートに基づいて、または入力ポート単位、VLAN単位で分類できます。スイッチ仮想インターフェイス レベルでは、トラフィックを分類できません。
- クラス マップごとに1つのACL、および1つの match クラス マップ コンフィギュレーション コマンドのみを使用できます。ACLには、フィールドをパケットの内容と比較するコマンド(ACE)を複数個設定できます。
- ポート単位、VLAN単位でトラフィックを分類する場合は、 class-map グローバル コンフィギュレーション コマンドに match-all キーワードを指定して使用する必要があります。詳細については、 クラス マップによるポート単位、VLAN単位のトラフィック分類 を参照してください。
- スイッチにはVLANラベルが256個しかなく(いくつかはデフォルト用に常に内部で使用されます)、VLANマップとポート単位、VLAN単位のポリシングで、これらのラベルが共用されます。クラス マップ内で多数のVLANが使用されている場合に、これらのVLAN上で複数のACLアクションを実行したり、複数のVLANマップを適用すると、使用可能なVLANラベルが不足することがあります。その結果、TCAMエントリがプログラムされず、機能が動作しなくなります。このQoS機能で使用されるVLANラベル数を表示するには、 show tcam qos tcam-id port-labels vlan-labels イネーブルEXECコマンドを使用します。
- 設定されたIP拡張ACLとIPフラグメントを比較して、QoSを実行することはできません。IPフラグメントはベストエフォート型として送信されます。IPフラグメントはIPヘッダー内のフィールドで指定されます。
- 設定されたIP拡張ACLとIPオプションを比較して、QoSを実行できます。これらのパケットはCPUに送信され、ソフトウェアによって処理されます。IPオプションはIPヘッダー内のフィールドで指定されます。
- 入力または出力物理ポート上で、ポリサーを設定できます。ポート単位、VLAN単位でポリサーを設定できるのは、入力ポート上のみです(指定されたポートに対して、VLAN単位でトラフィックの帯域幅制限を指定します)。スイッチ仮想インターフェイス レベルではポリシングできません。
ルーテッド ポートまたは仮想(論理)インターフェイスでは、ポート単位、VLAN単位のポリシングを設定できません。トランクまたはスタティックアクセス ポートとして設定された入力ポートでのみ、サポートされます。
スイッチでは、VLAN単位のQoSまたはスイッチ全体でのVLAN QoSポリシングがサポートされません。
- 出力インターフェイスに付加されたポリシー マップには、 match ip dscp dscp-list クラス マップ コンフィギュレーション コマンドのみを使用します。
- ポート信頼状態を使用し( mls qos trust [ cos | dscp | ip-precedence ]など)、かつ、インターフェイス上で同時にポリシー マップを使用して( service-policy input policy-map-name など)、トラフィックを分類することはできません。これらのコマンドを同時に使用することはできません。最後に設定されたコマンドによって、以前の設定が上書きされます。
- 次の要素を含むポリシー マップを出力インターフェイスに付加する場合、 service-policy インターフェイス コンフィギュレーション コマンドを使用することはできません。
- − set または trust ポリシー マップ クラス コンフィギュレーション コマンド。これらのコマンドの代わりに、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用し、出力インターフェイスにDSCP値をマークダウンできます。
- − ACL分類
- − ポート単位、VLAN単位の分類
出力インターフェイスに付加できるポリシー マップの一致基準は、 match ip dscp dscp-list クラス マップ コンフィギュレーション コマンドのみです。
- 同じポリシー マップ内の複数のトラフィック クラスで共有される集約ポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはインターフェイスに使用することはできません。
- すべての入力QoS処理アクションは、スイッチが受信する制御トラフィック(スパニングツリーBPDUおよびルーティング アップデート パケットなど)に適用されます。
- トンネル ポートで、レイヤ3のQoS ACLとレイヤ3の情報に関連したその他のQoS機能、MACベースのQoSはサポートされません。トランク ポートにレイヤ3のQoS ACLを適用した場合、このACLはトンネル ポートを含むVLANには機能しません。
- 着信トラフィックの分類情報を表示するのに、 show policy-map interface イネーブルEXECコマンドを使用しないでください。 interface キーワードはサポートされていないので、表示されている統計情報は無視してください。代わりに、 mls qos monitor dscp dscp1 ... dscp8 インターフェイス コンフィギュレーション コマンドを使用してモニタするDSCPを指定し、そのあと show mls qos interface interface-id statistics イネーブルEXECコマンドを使用してください。これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。
QoSをグローバルでイネーブルにする方法
デフォルトでは、スイッチでQoSはディセーブルです。つまり、パケットの内容やサイズに関係なく、各パケットにベストエフォート型のサービスが提供されます。両方のテール廃棄スレッシュホールドがギガビット対応イーサネット ポートのキュー サイズの合計(100%)に設定されていると、すべてのCoS値は出力キュー1にマッピングされます。10/100イーサネット ポートでは、すべてのCoS値は出力キュー1にマッピングされます。出力キュー1には最小確保レベル1が使用され、最大100パケットを保持できます。バッファがいっぱいになると、パケットは廃棄されます。
QoSをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
インターフェイス コンフィギュレーション モードを開始し、複数のインターフェイス上でコマンドを実行します。 1つのコマンドでは、最大5つのインターフェイス範囲をカンマで区切って定義できます。 範囲内のすべてのインターフェイスは同じタイプでなければなりません。つまり、すべてがファスト イーサネット ポートまたはギガビット イーサネット ポートです。 |
||
QoSをイネーブルにしたあとのデフォルトの設定については、 表29-4 を参照してください。
QoSをディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
ポートの信頼状態による分類の設定
ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。
- QoSドメイン内のポートの信頼状態の設定
- インターフェイスのCoS値の設定
- 信頼境界の設定によるポート セキュリティの確保
- パススルー モードのイネーブル化
- 別のQoSドメインとの境界ポートでのDSCP信頼状態の設定
QoSドメイン内のポートの信頼状態の設定
QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoSドメイン内のスイッチごとにパケットを分類する必要がないため、QoSドメイン内のスイッチ ポートを信頼されるポートの1つに設定できます。 図29-9 に、ネットワーク トポロジーの例を示します。
図29-9 QoSドメイン内のポートの信頼状態
受信するトラフィックの分類を信頼するようにポートを設定するには、イネーブルEXECモードで次の手順を実行します。
ポートを信頼されない状態に戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。
デフォルトのCoS値を変更する方法については、 インターフェイスのCoS値の設定 を参照してください。CoS/DSCPマップを設定する方法については、 CoS/DSCPマップの設定 を参照してください。
インターフェイスのCoS値の設定
QoSは、CoS値を信頼するポートおよび信頼しないポートで受信されたタグなしフレームに、 mls qos cos インターフェイス コンフィギュレーション コマンドによって指定されたCoS値を割り当てます。
ポートのデフォルトのCoS値を定義したり、デフォルトのCoS値をポートのすべての着信パケットに割り当てるには、イネーブルEXECモードで次の手順を実行します。
デフォルト設定に戻すには、no mls qos cos { default-cos | override } インターフェイス コンフィギュレーション コマンドを使用します。
信頼境界の設定によるポート セキュリティの確保
通常のネットワークでは、Cisco IP Phoneをスイッチ ポートに接続し( 図29-9QoSドメイン内のポートの信頼状態 を参照)、電話の背面から出力されるデータ パケットを生成するデバイスをカスケード接続します。Cisco IP Phoneは、音声パケットのCoSレベルをハイ プライオリティ(CoS = 5)にし、さらにデータ パケットのCoSレベルをロー プライオリティ(CoS = 0)にすることで、共有データ リンクの音質を保証します。通常の場合、電話機からスイッチに送信されたトラフィックは、IEEE 802.1Qヘッダーを使用するタグによってマーキングされます。このヘッダーにはVLAN情報、およびパケットのプライオリティを決定するCoSの3ビットフィールドが格納されます。
ほとんどのCisco IP Phone設定では、電話機からスイッチに送信されたトラフィックは信頼され、音声トラフィックのプライオリティがネットワーク内のほかのタイプのトラフィックよりも高くなります。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックのCoSラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定できます。 mls qos trust dscp インターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックのDSCPラベルを信頼するように、電話機の接続先であるルーテッド ポートを設定できます。
信頼できる設定にしてあると、ユーザが電話機を省略してPCをスイッチに直接接続した場合、信頼境界機能により、ハイプライオリティ キューの誤用を防ぐこともできます。信頼境界がないと、PCによって生成されたCoSラベルは、スイッチによって信頼されます(信頼されたCoS設定のため)。一方、信頼境界機能はCDPを使用して、スイッチ ポート上にあるCisco IP Phone(Cisco IP Phone 7910、7935、7940、および7960など)の有無を検出します。電話機が検出されなかった場合、信頼境界機能はスイッチ ポートの信頼設定をディセーブルにし、ハイプライオリティ キューの誤使用を防止します。信頼境界機能は、PCおよびCisco IP Phoneがスイッチとつながるハブに接続されている場合は、効果がありませんので注意してください。
場合によっては、Cisco IP Phoneに接続されたPCがハイプライオリティ データ キューを利用することを制限できます。 switchport priority extend cos インターフェイス コンフィギュレーション コマンドを使用し、PCから受信したトラフィックのプライオリティよりも優先するように、スイッチCLIを通して電話機を設定できます。
ポートの信頼境界をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
スイッチ ポートを設定して、Cisco IP Phoneから受信したトラフィックのCoS値を信頼するようにします。 |
||
|
Cisco IP Phoneが信頼されるデバイスであることを指定します。 信頼境界および自動QoS( auto qos voip インターフェイス コンフィギュレーション コマンド)は相互に排他的なので、同時にイネーブルにできません。 |
||
信頼境界機能をディセーブルにするには、 no mls qos trust device インターフェイス コンフィギュレーション コマンドを使用します。
パススルー モードのイネーブル化
パススルー モードを使用すると、CoSおよびDSCPの設定を、両方の値を含むパケットから独立させることができます。 mls qos trust [ cos | dscp ]インターフェイス コンフィギュレーション コマンドを使用しているときに変更されたほかの値(CoSまたはDSCP)が不要な場合は、パススルー モードを使用します。
Cisco IOS 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モードで次の手順を実行します。
パススルー モードをディセーブルにするには、 no mls qos trust cos pass-through dscp または no mls qos trust dscp 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を信頼するようにドメインの境界に位置するスイッチ ポートを設定できます( 図29-10 を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、ほかのドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定できます。
図29-10 別のQoSドメインとの境界ポートでのDSCP信頼状態
ポートでDSCPを信頼する状態に設定し、DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。両方のQoSドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。
DSCPを信頼しない状態にポートを戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/DSCP変換マップ値に戻すには、 no mls qos map dscp-mutation dscp-mutation-map-name グローバル コンフィギュレーション コマンドを使用します。
次に、DSCPを信頼する状態にインターフェイスを設定し、着信した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ポリシーの設定
通常の場合、QoSポリシーを設定するには、トラフィックをクラスに分類したり、これらのトラフィック クラスに適用されるポリシーを設定したり、ポリシーをインターフェイスに付加する必要があります。
基本的な情報については、 分類 および ポリシングおよびマーキング を参照してください。
- ACLによるトラフィックの分類
- クラス マップによる物理ポート単位のトラフィック分類
- クラス マップによるポート単位、VLAN単位のトラフィック分類
- ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング
- 集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
ACLによるトラフィックの分類
IPトラフィックを分類するには、IP標準ACLまたはIP拡張ACLを使用します。非IPトラフィックを分類するには、レイヤ2 MAC ACLを使用します。
IPトラフィック用のIP標準ACLを作成するには、イネーブルEXECモードで次の手順を実行します。
アクセス リストを削除するには、 no access-list access-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モードで次の手順を実行します。
アクセス リストを削除するには、 no access-list access-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モードで次の手順を実行します。
アクセス リストを削除するには、 no mac access-list extended access-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-list access-list-number { deny | permit } source [ source-wildcard ] access-list access-list-number { deny | permit } protocol source [ source-wildcard ] destination [ destination-wildcard ] { permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。 詳細については、 ACLによるトラフィックの分類 を参照してください。
|
|
|
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。
match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。
|
||
|
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
クラス マップによるポート単位、VLAN単位のトラフィック分類
特定のトラフィック フロー(またはクラス)をほかのすべてのトラフィックと区別して名前を付けるには、 class-map グローバル コンフィギュレーション コマンドを使用します。トラフィック フローをさらに分類するために、クラス マップが使用する一致基準を定義します。
ポート単位、VLAN単位のパケット分類を定義するには、次の注意事項に従ってください。
- match-all キーワードを指定し、 class-map グローバル コンフィギュレーション コマンドを使用する必要があります。
- ポート単位、VLAN単位の分類はポート単位の機能で、冗長リンクでは機能しません。トランクまたはスタティックアクセス ポートとして設定された入力ポートでのみ、サポートされます。
- クラス マップには、次の順序で2つの match コマンドを設定する必要があります。 match vlan vlan-list クラスマップ コンフィギュレーション コマンドを1つ、そして match class-map class-map-name クラスマップ コンフィギュレーション コマンドを1つです。 match class-map class-map-name コマンド内で指定するクラス マップは事前に定義しておく必要があります。このクラス マップに match vlan vlan-list コマンドおよび match class-map class-map-name コマンドを含めることはできません。
- ポート単位の分類とVLAN単位の分類を両方同時に設定することはできません。 match vlan vlan-list コマンドを設定すると、クラス マップはポート単位、VLAN単位になります。ポート単位およびVLAN単位のクラス マップを両方含むポリシー マップを設定してインターフェイスに適用すると、ポリシー マップがスイッチによって拒否されます。
- ポート単位、VLAN単位の分類では、一致しないVLANはデフォルトのクラスと同じように処理されます。つまり、一致したVLANクラスが使用した残りの帯域幅を、一致しないVLANが共有します。このデフォルト クラス動作を変更できません。必要であれば、VLANマップ フィルタを使用してこれらのVLANをブロックします。
- ポリシー マップ内で、 match vlan vlan-list コマンドを使用する場合は、ほかのすべてのクラス マップで match vlan vlan-list コマンドを使用する必要があります。
- VLANリストを変更する場合は、最初に no match vlan vlan-list コマンドおよび no match class-map class-map-name コマンドを使用し、クラス マップの以前の設定を削除します。次にクラス マップを再設定し、新しい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〜VLAN 30、および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つのポリシー マップのみを適用できます。複数のインターフェイスおよび方向に、同じポリシー マップを適用できます。
- mls qos map ip-prec-dscp dscp1...dscp8グローバル コンフィギュレーション コマンドを使用してIP precedence/DSCPマップを設定する場合、その設定は、IP precedence値を信頼するように設定された入力インターフェイス上のパケットにのみ影響を与えます。ポリシー マップでは、 set ip precedence new-precedence ポリシーマップ クラス コンフィギュレーション コマンドを使用してパケットIP precedence値に新規の値を設定する場合、出力DSCP値はIP precedence/DSCPマップから影響を受けません。出力DSCP値を入力値とは異なるようにしたい場合、 set dscp new-dscp ポリシーマップ クラス コンフィギュレーション コマンドを使用します。
- policy-map グローバル コンフィギュレーション コマンドで定義したポリシー マップをインターフェイスの出力に適用したり、またポリシー マップとインターフェイスの関連付けを削除したりすると、インターフェイスはダウンします。インターフェイスを再度イネーブルにするには、 shutdown とそれに続く no shutdown インターフェイス コンフィギュレーション コマンドを使用します。
ポリシー マップを作成するには、イネーブルEXECモードで次の手順を実行します。
|
access-list access-list-number { deny | permit } source [ source-wildcard ] access-list access-list-number { deny | permit } protocol source [ source-wildcard ] destination [ destination-wildcard ] mac access-list extended access-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 cos new-cos ポリシー マップ コンフィギュレーション コマンドを入力しなければなりません。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトで、ポリシー マップのクラス マップは定義されていません。 class-map グローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドの class-map-name の位置に名前を指定します。 |
||
|
信頼状態を設定し、これによって内部DSCP値のソースとしてQoSで使用される値を選択します。
デフォルトで、ポートは信頼される状態になっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトはdscpになります。
詳細については、 CoS/DSCPマップの設定 を参照してください。 |
||
|
set { cos new-cos | dscp new-dscp | ip precedence new-precedence } |
|
|
|
police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }] |
入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定できます。
|
|
|
service-policy { input policy-map-name | output policy-map-name } |
特定のインターフェイスの入力または出力にポリシー マップを適用します。 各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。
次の要素を含むポリシー マップを出力インターフェイスに付加する場合、 service-policy インターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致条件は、 match ip dscp dscp-list クラス マップ コンフィギュレーション コマンドのみです。 |
|
既存のポリシー マップを削除するには、no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、no class class-map-name ポリシーマップ コンフィギュレーション コマンドを使用します。DSCP/CoSマップを使用してCoS値を定義するには、 no mls qos cos policy-map グローバル コンフィギュレーション コマンドを使用します。デフォルトの信頼状態に戻すには、no trust [cos | dscp | ip-precedence]ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられたCoS値、DSCP値、またはIP precedence値を削除するには、 no set { cos new-cos | 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 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 dscp 63
Switch(config-pmap)# class macclass2
Switch(config-pmap-c)# set 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〜VLAN 30、および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
集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはインターフェイスに使用することはできません。
集約ポリサーを作成するには、イネーブルEXECモードで次の手順を実行します。
|
mls qos aggregate-police aggregate-policer-name rate-bps burst-byte exceed-action { drop | policed-dscp-transmit } |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 入力ギガビット対応イーサネット ポートには最大128個、入力10/100イーサネット ポートには最大8個、出力ポートには最大8個のポリサーを設定できます。
|
|
|
必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、 クラス マップによる物理ポート単位のトラフィック分類 および クラス マップによるポート単位、VLAN単位のトラフィック分類 を参照してください。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング を参照してください。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトで、ポリシー マップのクラス マップは定義されていません。 class-map グローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドの class-map-name の位置に名前を指定します。 |
||
|
service-policy { input policy-map-name | output policy-map-name } |
特定のインターフェイスの入力または出力にポリシー マップを適用します。 各インターフェイスの方向ごとに、1つのポリシー マップのみを適用できます。
次の要素を含むポリシー マップを出力インターフェイスに付加する場合、 service-policy インターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致条件は、 match ip dscp dscp-list クラス マップ コンフィギュレーション コマンドのみです。 |
|
指定された集約ポリサーをポリシー マップから削除するには、 no police aggregate aggregate-policer-name ポリシー マップ コンフィギュレーション モードを使用します。集約ポリサーおよびそのパラメータを削除するには、 no mls qos aggregate-policer aggregate-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 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/DSCP変換マップを作成し、さまざまなギガビット対応イーサネット ポートに適用できます。ただし、10/100イーサネット ポートの場合は、12個のポートからなる1つのグループに対して、DSCP/DSCP変換マップを1つのみ付加できます。
CoS/DSCPマップの設定
着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。
表29-6 にデフォルトのCoS/DSCPマップを示します。
これらの値がネットワークに適さない場合は、変更する必要があります。
CoS/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。
|
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/DSCPマップの設定
着信パケットのIP precedence値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。
表29-7 に、デフォルトの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値をマークダウンするには、ポリシング設定DSCPマップを使用します。
デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。
ポリシング設定DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。
デフォルトのマップに戻すには、 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
DSCP/CoSマップの設定
4つの出力キューの1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。
表29-8 にデフォルトのDSCP/CoSマップを示します。
これらの値がネットワークに適さない場合は、変更する必要があります。
DSCP/CoSマップを変更するには、イネーブルEXECモードで次の手順を実行します。
デフォルトのマップに戻すには、 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変換マップの設定
DSCP/DSCP変換マップは、QoS管理ドメインの境界にあるポートに適用されます。2つのドメインで異なるDSCP定義が使用されている場合は、ほかのドメイン内での定義に合わせて、一連のDSCP値を変換するDSCP/DSCP変換マップを使用します。
デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。
DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。
デフォルトのマップに戻すには、 no mls qos map dscp-mutation dscp-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値を使用)
- 各キューに割り当てる使用可能なバッファ スペース(上限)
- 各キューに適用する廃棄スレッシュホールド、および各スレッシュホールドにマッピングするDSCP値
- いずれかのキューを緊急(ハイプライオリティ)出力キューにするかどうか
- 各キューに割り当てる使用可能な帯域幅
- 出力キューを選択するためのCoS値のマッピング
- 出力キューのサイズ比の設定
- テール廃棄スレッシュホールドの設定
- WRED廃棄スレッシュホールドの設定
- 出力緊急キューの設定
- 出力キュー間の帯域幅の割り当て
出力キューを選択するためのCoS値のマッピング
いずれかの出力キューを選択するための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
出力キューのサイズ比の設定
出力キューのサイズ比を設定するには、イネーブルEXECモードで次の手順を実行します。
デフォルトのウェイトに戻すには、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ポート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にマッピングするように、入力インターフェイス(GigabitEthernetポート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廃棄スレッシュホールドの設定
出力インターフェイスに輻輳の兆候が現れると、WREDはパケットを選択的に廃棄し、テール ドロップの機会を減らします。キューがいっぱいになるまで待機せず、早めに一部のパケットを廃棄することで、一度に多数のパケットが廃棄されなくなります。
DSCPが最初のスレッシュホールドに割り当てられているパケットは、パケット量が最初のスレッシュホールドを超えた場合、すべてランダムに廃棄されます。ただし、DSCPが2番めのスレッシュホールドに割り当てられているパケットは、2番めのスレッシュホールドを超えないかぎり、キューイングされて送信されます。各スレッシュホールドは、WREDがランダムなパケット廃棄を開始する時点を示します。デフォルトで、WREDはディセーブルです。
WREDスレッシュホールドを使用する場合は、テール廃棄スレッシュホールドを使用できません。その逆の場合も同様です。
ギガビット対応イーサネット ポートにWRED廃棄スレッシュホールド値を設定するには、イネーブルEXECモードで、次の手順を実行します。
|
出力ギガビット対応イーサネット インターフェイスを指定して、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
wrr-queue random-detect max-threshold queue-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ポート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ポート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つのキューを処理しません。
出力緊急キューをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。
出力キュー間の帯域幅の割り当て
各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。
各キューに帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。
デフォルトの帯域幅設定に戻すには、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値のマッピング
いずれかの出力キューを選択するためのCoS入力値をマッピングするには、イネーブルEXECモードで次の手順を実行します。
|
出力イーサネット インターフェイス(10/100)を指定して、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
いずれかの出力キューを選択するための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イーサネット ポートの出力キューに最小確保レベルを割り当てることができます。
出力キューのサイズを設定するには、イネーブルEXECモードで次の手順を実行します。
|
mls qos min-reserve min-reserve-level min-reserve-buffersize |
すべての10/100イーサネット ポートに対し、必要に応じて、最小確保レベルのバッファ サイズを設定します。 デフォルトでは、8個の最小確保レベルのバッファ サイズはすべて100パケットです。
このコマンドを入力すると、キューはハードウェア再設定中に一時的にシャットダウンし、このキューに新規に着信したパケットは廃棄されます。 |
|
|
出力イーサネット インターフェイス(10/100)を指定して、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
デフォルトでは、キュー1に最小確保レベル1、キュー2に最小確保レベル2、キュー3に最小確保レベル3、キュー4に最小確保レベル4が選択されます。
|
||
デフォルトの最小確保バッファ サイズに戻すには、 no mls qos min-reserve min-reserve-level グローバル コンフィギュレーション コマンドを使用します。最小確保レベルのキュー選択をデフォルトに戻すには、 no wrr-queue min-reserve queue-id インターフェイス コンフィギュレーション コマンドを使用します。
次に、最小確保レベル5を20パケットに設定し、最小確保レベル5をインターフェイスの出力キュー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モードで次の手順を実行します。
出力緊急キューをディセーブルにするには、no priority-queue outインターフェイス コンフィギュレーション コマンドを使用します。
出力キュー間の帯域幅の割り当て
各キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、WRRスケジューラが各キューからパケットを廃棄する頻度の比率です。
各キューに帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。
デフォルトの帯域幅設定に戻すには、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情報を表示するには、 表29-9 に示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。
|
show mls qos interface [ interface-id ] [ buffers | policers | queueing | statistics ] |
出力キューの設定およびCoS/出力キュー マップ、ポリサーが設定されているインターフェイス、入出力統計情報(廃棄されたバイト数を含む)など、インターフェイス レベルのQoS情報を表示します。 3 |
|
show mls qos maps [ cos-dscp | dscp-cos | dscp-mutation | ip-prec-dscp | policed-dscp ] |
QoSマッピング情報を表示します。マップは、トラフィックのプライオリティを表す内部DSCP値を生成するために使用されます。 |
標準QoSの設定例
ここでは、既存のネットワークおよびネットワークの変更計画に基づいて、QoS機能をすばやく実装するためのQoS移行パスについて説明します( 図29-11 を参照)。具体的な内容は次のとおりです。
図29-11 ネットワークのQoS設定例
既存の配線クローゼットのQoS設定
図29-11 に、例として、Catalyst 3500 XLおよび2900 XLスイッチの既存の配線クローゼットを示します。これらのスイッチでは、QoSベースのIEEE 802.1p CoS値をサポートするCisco IOSリリース12.0(5)XP以降が稼働しています。QoSによる分類では、各フレームにプライオリティを示すCoS値を割り当て、プライオリティの高いトラフィックを優先させます。
Catalyst 3500 XLおよびCatalyst 2900 XLスイッチの入力ポートでタグなし(ネイティブ)イーサネット フレームを分類するには、ポートごとにデフォルトのCoSプライオリティを設定します( switchport priority default default-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スイッチを使用してIEEE 802.1p CoS値を上書きするには、 mls qos cos override インターフェイス コンフィギュレーション コマンドを使用します。
Catalyst 3500 XLおよびCatalyst 2900 XLスイッチの場合、CoSはフレーム タグまたはポート情報に基づき、ノーマルプライオリティの送信キューおよびハイプライオリティの送信キューを持つ各出力ポートを設定します。ノーマルプライオリティ キュー内のフレームは、ハイプライオリティ キューのフレームのあとに転送されます。IEEE 802.1p CoS値が0〜3であるフレームはノーマルプライオリティの送信キューに格納され、CoS値が4〜7のフレームは緊急(ハイプライオリティ)キューに格納されます。
インテリジェントな配線クローゼットのQoS設定
図29-11 に、例として、Catalyst 3550マルチレイヤ スイッチのインテリジェントな配線クローゼットを示します。スイッチの1台は、IPアドレスが172.20.10.16であるビデオ サーバに接続されています。
この例での目的は、ビデオ トラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることです。そのためには、ビデオ トラフィックにDSCP値56を割り当てます。このトラフィックは緊急キュー(キュー4)に格納されます。このキューが空になるまでほかのキューは処理されません。適切なCoS値を設定することにより、CoS/出力キュー マップ内でキュー4が選択されます。
ビデオ パケットをほかのすべてのトラフィックよりも優先させるには、イネーブルEXECモードで次の手順を実行します。
ディストリビューション レイヤのQoS設定
図29-11 に、例として、ディストリビューション レイヤ スイッチ(Catalyst 3550スイッチ)を示します。この例では、ディストリビューション レイヤ スイッチの設定手順に重点を置いています。分類はネットワークのエッジにあるスイッチで実行されるため、ディストリビューション レイヤのスイッチで行われる分類ステップは少なくなります。
既存の配線クローゼットに接続した場合、ディストリビューション レイヤ スイッチの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モードで次の手順を実行します。
