この章では、標準の Quality of Service(QoS; サービス品質)コマンドまたは自動 QoS を使用して QoS を設定する方法について説明します。QoS を使用すると、特定のトラフィック タイプをほかのトラフィック タイプよりも優先的に処理できます。QoS を使用しない場合、Catalyst 3550ではパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、またはスループットが保証されずに、パケットが送信されます。
- ・ QoS の概要
- ・ 自動 QoS の設定
- ・ 自動 QoS 情報の表示
- ・ 自動 QoS の設定例
- ・ 標準 QoS の設定
- ・ 標準 QoS 情報の表示
- ・ 標準 QoS の設定例
スイッチは、モジュラ 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 パケット内のこれらの特殊ビットについて説明します。 図30-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ではどちらの値も使用できます。
図30-1 フレームおよびパケットの QoS 分類ビット
クラス情報ごとに異なる方法でパケットを転送するには、インターネットにアクセスするすべてのスイッチおよびルータでクラス情報を信頼します。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにクラス情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。
パス上のスイッチおよびルータでは、クラス情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限できます。DiffServ アーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。
ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/送信トラフィックに必要な制御の細かさによって、難易度が変化します。
ここでは、QoS の処理手順およびその機能について説明します。
- ・ 基本的な QoS モデル
- ・ 分類
- ・ ポリシングおよびマーキング
- ・ マッピング テーブル
- ・ キューイングおよびスケジューリング
- ・ パケットの変更
基本的な QoS モデル
図30-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つのみ)があります。詳細については、 キューイングおよびスケジューリング を参照してください。
図30-2 基本的な QoS モデル
分類
分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoSがスイッチでグローバルなイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでQoSはグローバルなディセーブルになっているため、分類は実行されません。
着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。
非 IP トラフィックの場合は、次の方法で分類できます( 図30-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 トラフィックの場合は、次の方法で分類できます( 図30-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が着信フレームに割り当てられます。
ここで説明されているマップの詳細については、 マッピング テーブル を参照してください。ポートの信頼状態に関する設定の詳細については、 ポートの信頼状態による分類の設定 を参照してください。
図30-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 値を割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます( 図30-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 方向ごとに1つのポリサーのみを適用できます。
- ・ 設定できるのは平均速度および確定されたバースト パラメータのみです。
- ・ ポリシングは入力インターフェイスおよび出力インターフェイスで実行できます。
- − ギガビット対応イーサネット ポートでは、128 のポリサーがサポートされています。
- − 入力10/100イーサネット ポートでは、8 つのポリサーがサポートされています。
- − すべての出力ポートでは、8 つのポリサーがサポートされています。
- − 入力ポリサーには個別ポリサーまたは集約ポリサーを使用できます。
- ・ QoSが設定されたインターフェイスでは、そのインターフェイスを通じて受信されるすべてのトラフィックに対し、インターフェイスに付加されたポリシー マップによる分類、ポリシング、およびマーキングが行われます。QoS が設定されたトランクインターフェイスでは、そのインターフェイスを通じて受信される すべての VLAN 内トラフィックに対し、インターフェイスに付加されたポリシー マップによる分類、ポリシング、およびマーキングが行われます。
ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy インターフェイス コンフィギュレーション コマンドを使用し、入力または出力インターフェイスにポリシーを付加します。設定の詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング 、および 集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング を参照してください。
図30-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 マップの設定 を参照してください。
キューイングおよびスケジューリング
パケットのポリシングおよびマーキングのあとで、キューイングおよびスケジューリング プロセスが開始されます。ここでは次のプロセスについて説明します。
ギガビット対応ポートでのキューイングおよびスケジューリング
図30-5 に、ギガビット対応イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
図30-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 イーサネット ポートでのキューイングおよびスケジューリング
図30-6 に、10/100 イーサネット ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
図30-6 10/100 イーサネット ポートでのキューイングおよびスケジューリングに関するフローチャート
キューイングおよびスケジューリング プロセス中は出力キューを使用して、最小確保レベルとバッファ サイズを選択し、WRR を使用して輻輳管理を行います。
各10/100イーサネット ポートには4つの出力キューがあり、そのうちの1つが出力緊急キューとなります。各キューでは8つの最小確保レベルのうちの1つを利用できます。各レベルには、パケットをキューイングするためのバッファ スペースが、デフォルトで100パケット分あります。最小確保レベルに指定されたバッファがいっぱいになると、バッファ スペースが空くまでパケットが廃棄されます。
図30-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
グローバル コンフィギュレーション コマンドを使用します。
図30-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 がイネーブルの場合、トラフィックの分類と出力キューの設定に入力パケット ラベルを使用します( 表30-1 を参照)。
|
VoIP
1
データ |
STP BPDU 2 トラフィック |
||||||
|---|---|---|---|---|---|---|---|
表30-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 ラベルを信頼しないようにインターフェイスの入力分類が設定されます。スイッチは、 表30-2 の設定に応じたポートに基づいて、出力キューを設定します。
- ・ Cisco SoftPhone を実行しているデバイスと接続しているネットワークのエッジにあるポートで、 auto qos voip cisco-softphone インターフェイス コンフィギュレーション コマンドを入力すると、スイッチはポリシングを使用してパケットが適合か不適合かを判別し、パケットに対する処理を特定します。パケットに DSCP 値 24、26、または 46 が保有されていないか、もしくはパケットが不適合の場合、スイッチは DSCP 値を 0 に変更します。スイッチは、 表30-2 の設定に応じたポートに基づいて出力キューを設定します。
- ・ ネットワーク内部に接続されたポートで auto qos voip trust インターフェイス コンフィギュレーション コマンドを入力すると、スイッチは、入力パケット(トラフィックはすでに他のエッジ デバイスで分類されていることが前提です)内の、非ルーテッド ポートの CoS 値またはルーテッド ポートの DSCP 値を信頼します。スイッチは、 表30-2 の設定に応じたポートに基づいて、出力キューを設定します。
信頼境界機能の詳細については、 信頼境界の設定によるポート セキュリティの確保 を参照してください。
auto qos voip cisco-phone 、 auto qos voip cisco-softphone または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動 QoS をイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的に QoS コンフィギュレーションを生成し、 表30-3 に示すコマンドをインターフェイスに適用します。
|
スイッチが標準 QoS を自動的にイネーブルにし、CoS/DSCP マップ(着信パケット内の CoS 値の、DSCP 値へのマッピング)を設定します( 表30-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 |
|
スイッチがインターフェイスでの出力キューの使用状況を割り当てます( 表30-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 を実装する方法について説明します( 図30-8 を参照)。QoS のパフォーマンスを最適化するには、ネットワーク内のすべてのデバイスで自動 QoS をイネーブルにする必要があります。
図30-8 自動 QoS を設定したネットワークの例
図30-8 のインテリジェントな配線クローゼットは、EI が動作している Catalyst 2950 スイッチおよび Catalyst 3550 スイッチで構成されています。この例では、VoIP トラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることを目的としています。これを実行するには、配線クローゼット内の QoS ドメインのエッジにあるスイッチで自動 QoS をイネーブルにします。
VoIP トラフィックをほかのすべてのトラフィックよりも優先させるために、QoS ドメインのエッジにあるスイッチを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
自動 QoS 用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動 QoS がイネーブルになる際に自動的に生成される QoS 設定を表示します。 |
||
|
Cisco IP Phone に接続されたスイッチ ポートを指定して、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
インターフェイスで自動 QoS をイネーブルにし、インターフェイスが Cisco IP Phone に接続されていることを指定します。 |
||
|
信頼できるスイッチまたはルータに接続していると確認できるスイッチ ポートを指定して、インターフェイス コンフィギュレーション モードを開始します。 図30-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 のデフォルト設定
表30-4 に、QoS がディセーブルの場合の標準 QoS のデフォルト設定を示します。
QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、信頼されるポート、信頼されないポートの概念はありません。
表30-5 に、QoS がイネーブルの場合にそのまま使用できる標準 QoS のデフォルト設定を示します。
デフォルトでは、すべてのポートの信頼状態は信頼されない状態になっています。
デフォルトの CoS/DSCP マップについては、 表30-6 を参照してください。
デフォルトの IP precedence/DSCP マップについては、 表30-7 を参照してください。
デフォルトの DSCP/CoS マップについては、 表30-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 インターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致条件は、 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 をイネーブルにしたあとのデフォルトの設定については、 表30-4 を参照してください。
QoS をディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
ポートの信頼状態による分類の設定
ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。
- ・ QoS ドメイン内のポートの信頼状態の設定
- ・ インターフェイスの CoS 値の設定
- ・ 信頼境界の設定によるポート セキュリティの確保
- ・ パススルー モードのイネーブル化
- ・ 別の QoS ドメインとの境界ポートでの DSCP 信頼状態の設定
QoS ドメイン内のポートの信頼状態の設定
QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoS ドメイン内のスイッチごとにパケットを分類する必要がないため、QoS ドメイン内のスイッチ ポートを信頼されるポートの 1 つに設定できます。 図30-9 に、ネットワーク トポロジーの例を示します。
図30-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 をスイッチ ポートに接続し( 図30-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モードで次の手順を実行します。
信頼境界機能をディセーブルにするには、 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 を信頼するようにドメインの境界に位置するスイッチ ポートを設定できます( 図30-10 を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、ほかのドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定できます。
図30-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 〜 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 つのポリシー マップのみを適用できます。複数のインターフェイスおよび方向に、同じポリシー マップを適用できます。
- ・ 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 |
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 〜 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
集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはインターフェイスに使用することはできません。
集約ポリサーを作成するには、イネーブル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 インターフェイス コンフィギュレーション コマンドを使用することはできません。
出力インターフェイスに付加できるポリシー マップの一致条件は、 |
|
指定された集約ポリサーをポリシー マップから削除するには、
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 マップを設定する手順について説明します。
- ・ CoS/DSCP マップの設定
- ・ IP precedence/DSCP マップの設定
- ・ ポリシング設定 DSCP マップの設定
- ・ DSCP/CoS マップの設定
- ・ DSCP/DSCP 変換マップの設定
DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。複数のDSCP/DSCP変換マップを作成し、さまざまなギガビット対応イーサネット ポートに適用できます。ただし、10/100イーサネット ポートの場合は、12 のポートで構成される 1 つのグループに対して、DSCP/DSCP変換マップを1つのみ付加できます。
CoS/DSCP マップの設定
着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。
表30-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マップを使用します。
表30-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マップを使用します。
表30-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、2/10、3/1、4/10 です。
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 情報を表示するには、 表30-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 移行パスについて説明します( 図30-11 を参照)。具体的な内容は次のとおりです。
図30-11 ネットワークの QoS 設定例
既存の配線クローゼットの QoS 設定
図30-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 設定
図30-11 に、例として、Catalyst 3550 マルチレイヤ スイッチのインテリジェントな配線クローゼットを示します。スイッチの1 台 は、IPアドレスが172.20.10.16であるビデオ サーバに接続されています。
この例での目的は、ビデオ トラフィックのプライオリティをほかのすべてのトラフィックよりも優先させることです。そのためには、ビデオ トラフィックにDSCP値56を割り当てます。このトラフィックは緊急キュー(キュー4)に格納されます。このキューが空になるまでほかのキューは処理されません。適切なCoS値を設定することにより、CoS/出力キュー マップ内でキュー4が選択されます。
ビデオ パケットをほかのすべてのトラフィックよりも優先させるには、イネーブルEXECモードで次の手順を実行します。
ディストリビューション レイヤの QoS 設定
図30-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モードで次の手順を実行します。
