QoS の概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。したがって、すべてのトラフィックに等しいプライオリティが与えられ、正しいタイミングで配信される可能性も同じです。輻輳が発生した場合に、廃棄される可能性についても、すべてのトラフィックで同じです。
QoS 機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてそのトラフィックに優先度を指定し、輻輳管理および輻輳回避技術を使用して、優先処理を実行できます。ネットワークに QoS を実装すると、ネットワーク パフォーマンスがさらに予測しやすくなり、帯域幅をより効率的に利用できるようになります。
QoS は、Internet Engineering Task Force(IETF)の新しい規格であるDifferentiated Services(DiffServ)アーキテクチャに基づいて実装されます。このアーキテクチャでは、ネットワークに入るときに各パケットを分類することが規定されています。
この分類は IP パケット ヘッダーに格納され、推奨されない IP Type of Service(ToS; サービス タイプ)フィールドの 6 ビットを使用して、分類( クラス )情報として伝達されます。分類情報をレイヤ 2 フレームでも伝達できます。レイヤ 2 フレームまたはレイヤ 3 パケットのこれらの特殊なビットについて、次に説明します(図29-1を参照)。
• レイヤ 2 フレームのプライオリティ ビット
レイヤ 2 の ISL(スイッチ間リンク)フレーム ヘッダーには、下位 3 ビットで IEEE 802.1p Class of Service(CoS; サービス クラス)値を伝達する 1 バイトのユーザ フィールドがあります。レイヤ 2 ISL トランクとして設定されたポートでは、すべてのトラフィックが ISL フレームに収められます。
レイヤ 2 802.1Q フレーム ヘッダーには、2 バイトのタグ制御情報フィールドがあり、上位 3 ビット(ユーザ プライオリティ ビット)で CoS 値が伝達されます。レイヤ 2 802.1Q トランクとして設定されたポートでは、ネイティブ VLAN(仮想 LAN)のトラフィックを除くすべてのトラフィックが 802.1Q フレームに収められます。
他のフレーム タイプでレイヤ 2 CoS 値を伝達することはできません。
レイヤ 2 CoS 値の範囲は、0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
• レイヤ 3 パケットのプライオリティ ビット
レイヤ 3 IP パケットは、IP precedence 値または Differentiated Services Code Point(DSCP)値のいずれかを伝送できます。DSCP 値は IP precedence 値と下位互換性があるので、QoS ではどちらの値も使用できます。
IP precedence 値の範囲は 0 ~ 7 です。
DSCP 値の範囲は 0 ~ 63 です。
(注) IPv6 QoS はこのリリースでサポートされていません。
図29-1 フレームおよびパケットにおける QoS 分類レイヤ
インターネットにアクセスするすべてのスイッチおよびルータはクラス情報に基づいて、同じクラス情報が与えられているパケットは同じ扱いで転送を処理し、異なるクラス情報のパケットはそれぞれ異なる扱いをします。パケットのクラス情報は、設定されているポリシー、パケットの詳細な検証、またはその両方に基づいて、エンド ホストが割り当てるか、または伝送中にスイッチまたはルータで割り当てることができます。パケットの詳細な検証は、コア スイッチおよびルータの負荷が重くならないように、ネットワークのエッジ付近で行います。
パス上のスイッチおよびルータは、クラス情報を使用して、個々のトラフィック クラスに割り当てるリソースの容量を制限できます。DiffServ アーキテクチャでトラフィックを処理するときの、各装置の動作をホップ単位動作といいます。パス上のすべての装置に一貫性のあるホップ単位動作をさせることによって、エンドツーエンドの QoS ソリューションを構築できます。
ネットワーク上で QoS を実装する作業は、インターネットワーキング装置が提供する QoS 機能、ネットワークのトラフィック タイプおよびパターン、さらには着信および発信トラフィックに求める制御のきめ細かさによって、簡単にも複雑にもなります。
QoS の基本モデル
QoS を実装するには、スイッチ上でパケットまたはフローを相互に区別し(分類)、パケットがスイッチを通過するときに所定の QoS を指定するラベルを割り当て、設定されたリソース使用率制限にパケットを適合させ(ポリシングおよびマーキング)、リソース競合が発生する状況に応じて異なる処理(キューイングおよびスケジューリング)を行う必要があります。また、スイッチから送信されたトラフィックが特定のトラフィック プロファイルを満たすようにする必要もあります(シェーピング)。
図29-2に、QoS の基本モデルを示します。入力ポートでのアクションには、トラフィックの分類、ポリシング、マーキング、キューイング、およびスケジューリングがあります。
• パケットと QoS ラベルを関連付けて、パケットごとに異なるパスを分類します。スイッチはパケット内の CoS または DSCP を QoS ラベルにマッピングして、トラフィックのタイプを区別します。生成された QoS ラベルは、このパケットでこれ以降に実行されるすべての QoS アクションを識別します。詳細については、「分類」を参照してください。
• ポリシングでは、着信トラフィックのレートを設定済みポリサーと比較して、パケットが適合か不適合かを判別します。ポリサーは、トラフィック フローで消費される帯域幅を制限します。その判別結果がマーカーに渡されます。詳細については、「ポリシングおよびマーキング」を参照してください。
• マーキングでは、パケットが不適合の場合の対処法に関して、ポリサーおよび設定情報を検討し、パケットの扱い(パケットを変更しないで通過させるか、パケットの QoS ラベルをマークダウンするか、またはパケットを廃棄するか)を決定します。詳細については、「ポリシングおよびマーキング」を参照してください。
• キューイングでは、QoS ラベルおよび対応する DSCP または CoS 値を評価して、パケットを 2 つの入力キューのどちらに格納するかを選択します。キューイングは、輻輳回避メカニズムである Weighted Tail-Drop(WTD)アルゴリズムによって拡張されます。スレッシュホールドを超過している場合、パケットは廃棄されます。詳細については、「キューイングおよびスケジューリングの概要」を参照してください。
• スケジューリングでは、設定されている Shaped Round Robin(SRR; シェイプド ラウンド ロビン)の重みに基づいて、キューを処理します。入力キューの 1 つがプライオリティ キューです。共有が設定されている場合、SRR はプライオリティ キューを処理してから他のキューを処理します。詳細については、「SRR のシェーピングおよび共有」を参照してください。
出力ポートでのアクションには、キューイングおよびスケジューリングがあります。
• キューイングでは、QoS パケット ラベルおよび対応する DSCP または CoS 値を評価して、4 つの出力キューのどれを使用するかを選択します。複数の受信ポートが 1 つの出力ポートに同時にデータを送信すると輻輳が発生することがあるため、WTD を使用してトラフィック クラスを区別し、QoS ラベルに基づいてパケットにさまざまなスレッシュホールドを適用します。スレッシュホールドを超過している場合、パケットは廃棄されます。詳細については、「キューイングおよびスケジューリングの概要」を参照してください。
• スケジューリングでは、設定されている SRR の共有重みまたはシェーピング重みに基づいて、4 つの出力キューを処理します。キューの 1 つ(キュー 1)は、他のキューの処理前に空になるまで処理される緊急キューにすることができます。
図29-2 QoS の基本モデル
分類
分類とは、パケットのフィールドを検証して、トラフィックのタイプを区別するプロセスです。QoS がスイッチ上でグローバルにイネーブルになっている場合のみ、分類はイネーブルです。デフォルトでは、QoS はグローバルにディセーブルになっているため、分類は実行されません。
分類中に、スイッチは検索処理を実行し、パケットに QoS ラベルを割り当てます。QoS ラベルは、パケットに対して実行するすべての QoS アクション、およびパケットの送信元キューを識別します。
QoS ラベルは、パケット内の DSCP または CoS 値に基づいて、パケットに実行されるキューイングおよびスケジューリング アクションを決定します。QoS ラベルは信頼設定およびパケット タイプに従ってマッピングされます(分類フローチャートを参照)。
着信トラフィックの分類に、フレームまたはパケットのどのフィールドを使用するかは、ユーザ側で指定します。非 IP トラフィックには、次の分類オプションを使用できます(図29-3を参照)。
• 着信フレームの CoS 値を信頼します(ポートが CoS を信頼するように設定します)。次に、設定可能な CoS/DSCP マップを使用して、パケットの DSCP 値を生成します。レイヤ 2 の ISL フレーム ヘッダーは、1 バイトのユーザ フィールドの下位 3 ビットで CoS 値を伝達します。レイヤ 2 802.1Q フレームのヘッダーは、タグ制御情報フィールドの上位 3 ビットで CoS 値を伝達します。CoS 値の範囲は、0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
• 着信フレームの DSCP または IP precedence 値を信頼します。これらの設定は、非 IP トラフィックの場合は無意味です。これらのいずれかの方法で設定されているポートに非 IP トラフィックが着信した場合は、CoS 値が割り当てられ、CoS/DSCP マップから内部 DSCP 値が生成されます。スイッチは内部 DSCP 値を使用して、トラフィックのプライオリティを表示する CoS 値を生成します。
• 設定されたレイヤ 2 の MAC(メディア アクセス制御)Access Control List(ACL; アクセス制御リスト)に基づいて分類を実行します。レイヤ 2 の MAC ACL は、MAC 送信元アドレス、MAC 宛先アドレス、およびその他のフィールドを調べることができます。ACL が設定されていない場合、パケットには DSCP および CoS 値として 0 が割り当てられ、トラフィックがベストエフォート型であることを意味します。ACL が設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられる DSCP または CoS 値が指定されます。
IP トラフィックには、次の分類オプションを使用できます(図29-3を参照)。
• 着信パケットの 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 値を生成します。IP バージョン 4 仕様では、1 バイトの ToS フィールドの上位 3 ビットが IP precedence として定義されています。IP precedence 値の範囲は 0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
• 着信パケットに CoS 値がある場合には、その CoS 値を信頼し、CoS/DSCP マップを使用してパケットの DSCP 値を生成します。CoS 値が存在しない場合は、デフォルトのポート CoS 値を使用します。
• 設定された IP 標準 ACL または IP 拡張 ACL(IP ヘッダーの各フィールドを調べる)に基づいて、分類を実行します。ACL が設定されていない場合、パケットには DSCP および CoS 値として 0 が割り当てられ、トラフィックがベストエフォート型であることを意味します。ACL が設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられる DSCP または CoS 値が指定されます。
ここで説明されているマップの詳細については、「マッピング テーブル」を参照してください。ポートの信頼状態の設定情報については、「ポートの信頼状態による分類の設定」を参照してください。
分類されたパケットは、ポリシング、マーキング、および入力キューイングとスケジューリングの各段階に送られます。
図29-3 分類フローチャート
QoS ACL に基づく分類
IP 標準 ACL、IP 拡張 ACL、またはレイヤ 2 MAC ACL を使用すると、同じ特性を備えたパケット グループ(クラス)を定義できます。QoS のコンテキストでは、Access Control Entry(ACE; アクセス制御エントリ)の許可および拒否アクションの意味が、セキュリティ ACL の場合とは異なります。
• 許可アクションとの一致が検出されると(最初の一致の原則)、指定の QoS 関連アクションが実行されます。
• 拒否アクションと一致した場合は、処理中の ACL がスキップされ、次の ACL が処理されます。
• 許可アクションとの一致が検出されないまま、すべての ACE の検証が終了した場合、そのパケットでは QoS 処理は実行されず、ベストエフォート型サービスが実行されます。
• ポートに複数の ACL が設定されている場合に、許可アクションを含む最初の ACL とパケットの一致が見つかると、それ以降の検索処理は中止され、QoS 処理が開始されます。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙の拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
ACL でトラフィック クラスを定義したあとで、そのトラフィック クラスにポリシーを結合できます。ポリシーにはそれぞれにアクションを指定した複数のクラスを含めることができます。ポリシーには、特定の集約としてクラスを分類する(DSCP を割り当てるなど)コマンドまたはクラスのレート制限を実施するコマンドを含めることができます。このポリシーを特定のポートに結合すると、そのポートでポリシーが有効になります。
IP ACL を実装して IP トラフィックを分類する場合は、 access-list グローバル コンフィギュレーション コマンドを使用します。レイヤ 2 MAC ACL を実装して非 IP トラフィックを分類する場合は、 mac access-list extended グローバル コンフィギュレーション コマンドを使用します。設定情報については、「QoS ポリシーの設定」を参照してください。
クラス マップおよびポリシー マップに基づく分類
クラス マップは、特定のトラフィック フロー(またはクラス)に名前を付けて、他のすべてのトラフィックと区別するためのメカニズムです。クラス マップでは、さらに細かく分類するために、特定のトラフィック フローと照合する条件を定義します。この条件には、ACL で定義されたアクセス グループとの照合、または DSCP 値や IP precedence 値の特定のリストとの照合を含めることができます。複数のトラフィック タイプを分類する場合は、別のクラス マップを作成し、異なる名前を使用できます。パケットをクラス マップ条件と照合したあとで、ポリシー マップを使用してさらに分類します。
ポリシー マップでは、作用対象のトラフィック クラスを指定します。トラフィック クラスの CoS、DSCP、または IP precedence 値を信頼するアクションや、トラフィック クラスに特定の DSCP または IP precedence 値を設定するアクション、またはトラフィック帯域幅の制限やトラフィックが不適合な場合の対処法を指定するアクションなどを指定できます。ポリシー マップを効率的に機能させるには、ポートにポリシー マップを結合しなければなりません。
クラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドまたは class ポリシー マップ コンフィギュレーション コマンドを使用します。多数のポート間でマップを共有する場合には、 class-map コマンドを使用する必要があります。 class-map コマンドを入力すると、クラス マップ コンフィギュレーション モードが開始されます。このモードで、 match クラス マップ コンフィギュレーション コマンドを使用して、トラフィックの一致条件を定義します。
ポリシー マップは、 policy-map グローバル コンフィギュレーション コマンドを使用して作成し、名前を付けます。このコマンドを入力すると、ポリシー マップ コンフィギュレーション モードが開始されます。このモードでは、 class 、 trust 、または set ポリシー マップ コンフィギュレーション コマンドおよびポリシー マップ クラス コンフィギュレーション コマンドを使用して、特定のトラフィック クラスに対して実行するアクションを指定します。
ポリシー マップには、ポリサー、トラフィックの帯域幅限度、および限度を超えた場合のアクションを定義する police および police aggregate ポリシー マップ クラス コンフィギュレーション コマンドを含めることもできます。
ポリシー マップをイネーブルにするには、 service-policy インターフェイス コンフィギュレーション コマンドを使用してポートにマップを結合します。
詳細については、「ポリシングおよびマーキング」を参照してください。設定情報については、「QoS ポリシーの設定」を参照してください。
ポリシングおよびマーキング
パケットを分類して、DSCP ベースまたは CoS ベースの QoS ラベルを割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます(図29-4を参照)。
ポリシングには、トラフィックの帯域幅限度を指定するポリサーの作成が伴います。この限度を超えたパケットは、 不適合 パケットです。各ポリサーはパケットごとに、パケットが適合か不適合かを判別し、パケットに対するアクションを指定します。これらのアクションはマーカーによって実行されます。パケットを変更しないで通過させるアクション、パケットを廃棄するアクション、またはパケットに割り当てられた DSCP 値を変更(マークダウン)してパケットの通過を許可するアクションなどがあります。設定可能なポリシング済み DSCP マップを使用すると、パケットに新しい DSCP ベース QoS ラベルが設定されます。ポリシング済み DSCP マップの詳細については、「マッピング テーブル」を参照してください。マークダウンされたパケットは、元の QoS ラベルと同じキューを使用して、フロー内のパケットの順番が崩れないようにします。
(注) すべてのトラフィックは、ブリッジングされるかルーティングされるかに関係なく、ポリサーの影響を受けます(ポリサーが設定されている場合)。その結果、ブリッジングされたパケットは、ポリシングまたはマーキングが行われたときに廃棄されたり、DSCP または CoS フィールドが変更されたりすることがあります。
物理ポート上でポリシングを設定できます。物理ポートのポリシング設定の詳細については、「物理ポートのポリシング」を参照してください。
ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、入力ポートにポリシーを統合します。詳細については、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」および「集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング」を参照してください。
物理ポートのポリシング
物理ポートのポリシー マップでは、次のポリサー タイプを作成できます。
• 個々のQoS はポリサーに指定された帯域幅限度を、一致したトラフィック クラスごとに別々に適用します。このタイプのポリサーは、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用して、ポリシー マップの中で設定します。
• 集約 QoS はポリサーで指定された帯域幅限度を、一致したすべてのトラフィック フローに累積的に適用します。このタイプのポリサーは、 police aggregate ポリシー マップ クラス コンフィギュレーション コマンドを使用して、ポリシー マップ内で集約ポリサー名を指定することにより設定します。ポリサーの帯域幅限度を指定するには、 mls qos aggregate-policer グローバル コンフィギュレーション コマンドを使用します。このようにして、集約ポリサーはポリシー マップ内にある複数のトラフィック クラスで共有されます。
ポリシングは、トークン バケット アルゴリズムを使用します。各フレームがスイッチに着信すると、バケットにトークンが追加されます。バケットにはホールがあり、平均トラフィック レートとして指定されたレート(ビット/秒)で送信されます。バケットにトークンが追加されるたびに、スイッチは、バケット内に十分なスペースがあるかを確認します。十分なスペースがなければ、パケットは不適合とマーキングされ、指定されたポリサー アクション(廃棄またはマークダウン)が実行されます。
バケットが満たされる速度は、バケット深度(burst-byte)、トークンが削除されるレート(rate-bps)、および平均速度を上回るバースト期間によって決まります。バケットのサイズによってバースト長に上限が設定され、バックツーバックで送信できるフレーム数が制限されます。バースト期間が短い場合、バケットはオーバーフローせず、トラフィック フローに何のアクションも実行されません。ただし、バースト期間が長く、レートが高い場合、バケットはオーバーフローし、そのバーストのフレームに対してポリシング アクションが実行されます。
バケット深度(バケットがオーバーフローするまでに許容される最大バースト)を設定するには、 police ポリシーマップ クラス コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの burst-byte オプションを使用します。トークンがバケットから削除される速度(平均速度)を設定するには、 police ポリシーマップ クラス コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの rate-bps オプションを使用します。
次のタイプのポリシー マップが設定されると、図29-4のようなポリシングおよびマーキングのプロセスが実行されます。
図29-4 物理ポートのポリシングおよびマーキング フローチャート
マッピング テーブル
QoS を処理している間、すべてのトラフィック(非 IP トラフィックを含む)のプライオリティは、分類段階で取得された DSCP または CoS 値に基づいて、QoS ラベルで表されます。
• 分類中に、QoS は設定可能なマッピング テーブルを使用して、受信された CoS、DSCP、または IP precedence 値から対応する DSCP または CoS 値を取得します。これらのマップには、CoS/DSCP マップや IP precedence/DSCP マップなどがあります。これらのマップを設定するには、 mls qos map cos-dscp および mls qos map ip-prec-dscp グローバル コンフィギュレーション コマンドを使用します。
DSCP 信頼状態で設定された入力ポートの DSCP 値が QoS ドメイン間で異なる場合は、2 つの QoS ドメイン間の境界にあるポートに、設定可能な DSCP/DSCP 変換マップを適用できます。このマップを設定するには、 mls qos map dscp-mutation グローバル コンフィギュレーション コマンドを使用します。
• ポリシング中に、QoS は IP パケットまたは非 IP パケットに別の DSCP 値を割り当てることができます(パケットが不適合で、マークダウン値がポリサーによって指定されている場合)。この設定可能なマップは、ポリシング済み DSCP マップといいます。このマップを設定するには、 mls qos map policed-dscp グローバル コンフィギュレーション コマンドを使用します。
• トラフィックがスケジューリング段階に達する前に、QoS は QoS ラベルに従って、入力および出力キューにパケットを格納します。QoS ラベルはパケット内の DSCP または CoS 値に基づいており、DSCP 入力/出力キュー スレッシュホールド マップまたは CoS 入力/出力キュー スレッシュホールド マップを使用してキューを選択します。これらのマップを設定するには、 mls qos srr-queue { input | output } dscp-map および mls qos srr-queue { input | output } cos-map グローバル コンフィギュレーション コマンドを使用します。
CoS/DSCP、DSCP/CoS、および IP precedence/DSCP マップのデフォルト値は、使用しているネットワークに適する場合と適さない場合があります。
デフォルトの DSCP/DSCP 変換マップおよびデフォルトのポリシング済み DSCP マップは、空のマップです。これらのマップでは、着信した DSCP 値が同じ DSCP 値にマッピングされます。 DSCP/DSCP 変換マップは、特定のポートに適用できる唯一のマップです。その他のすべてのマップはスイッチ全体に適用されます。
設定情報については、「DSCP マップの設定」を参照してください。
DSCP および CoS 入力キュー スレッシュホールド マップの詳細については、「入力キューでのキューイングおよびスケジューリング」を参照してください。DSCP および CoS 出力キュー スレッシュホールド マップの詳細については、「出力キューでのキューイングおよびスケジューリング」を参照してください。
キューイングおよびスケジューリングの概要
スイッチは特定のポイントにキューを配置し、輻輳防止に役立てます(図29-5を参照)。
図29-5 入力および出力キューの位置
すべてのポートの着信帯域幅の合計が内部リングの帯域幅を超えることがあるため、入力キューはパケットの分類、ポリシング、およびマーキングのあと、パケットがスイッチ ファブリックに転送される前の段階に配置されています。複数の入力ポートが 1 つの出力ポートに同時にパケットを送信して、輻輳が発生することがあるため、発信キューは内部リングのあとに配置されています。
WTD
入力キューと出力キューは両方とも、WTD と呼ばれるテールドロップ輻輳回避メカニズムの拡張バージョンを使用します。WTD はキュー長を管理したり、トラフィック分類ごとに廃棄優先順位を設定したりするために実装されています。
フレームが特定のキューにキューイングされると、WTD はフレームに割り当てられた QoS ラベルを使用して、それぞれ異なるスレッシュホールドを適用します。この QoS ラベルのスレッシュホールドを超えると( 宛先キューの空きスペースがフレーム サイズより小さくなると) 、フレームは廃棄されます。
図29-6に、サイズが 1000 フレームであるキューでの WTD の動作例を示します。廃棄割合は次のように設定されています。40%(400フレーム)、60%(600フレーム)、および100%(1000フレーム)です。これらのパーセントは、40% スレッシュホールドの場合は最大 400 フレーム、60% スレッシュホールドの場合は最大 600 フレーム、100% スレッシュホールドの場合は最大 1000 フレームをキューイングできるという意味です。
この例では、CoS 値 6 および 7 は他の CoS 値よりも重要度が高く、100% 廃棄スレッシュホールドに割り当てられます(キューフル ステート)。CoS 値 4 および 5 は 60% スレッシュホールドに、CoS 値 0 ~ 3 は 40% スレッシュホールドに割り当てられます。
600 個のフレームが格納されているキューに、新しいフレームが着信したとします。このフレームの CoS 値は 4 および 5 で、60% のスレッシュホールドが適用されます。このフレームがキューに追加されると、スレッシュホールドを超過するため、フレームは廃棄されます。
図29-6 WTD およびキューの動作
詳細については、「入力キューへの DSCP または CoS 値のマッピングおよび WTD スレッシュホールドの設定」、「出力キューセットに対するバッファ スペースの割り当ておよび WTD スレッシュホールドの設定」、および「出力キューおよびスレッシュホールド ID への DSCP または CoS 値のマッピング」を参照してください。
SRR のシェーピングおよび共有
入力キューと出力キューは両方とも SRR で処理され、SRR によってパケットの送信レートが制御されます。入力キューでは、SRR によってパケットが内部リングに送信されます。出力キューでは、SRR によってパケットが出力ポートに送信されます。
出力キューでは、SRR を共有またはシェーピング用に設定できます。ただし、入力キューでは共有がデフォルト モードであり、これ以外のモードはサポートされていません。
シェーピング モードでは、出力キューの帯域幅割合が保証され、この値にレートが制限されます。シェーピングされたトラフィックの場合は、リンクがアイドルの場合も、割り当てを超える帯域幅は使用されません。シェーピングを使用すると、時間あたりのトラフィック フローがより均一になり、バースト トラフィックの最高時と最低時を削減します。シェーピングの場合は、各重みの絶対値を使用して、キューに使用可能な帯域幅が計算されます。
共有モードでは、各キューは設定された重みに従って帯域幅を共有します。帯域幅に対してはこのレベルが保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、共有できます。共有の場合、キューからパケットを取り出す頻度は重みの比率によって制御されます。重みの絶対値は関係ありません。
詳細については、「入力キュー間の帯域幅の割り当て」、「出力キューでの SRR シェーピング重みの設定」、および「出力キューでの SRR 共有重みの設定」を参照してください。
入力キューでのキューイングおよびスケジューリング
図29-7に、入力ポートのキューイングおよびスケジューリング フローチャートを示します。
図29-7 入力ポートのキューイングおよびスケジューリング フローチャート
(注) 共有が設定されている場合、SRR はプライオリティ キューを処理してから、他のキューを処理します。
スイッチは、共有モードの SRR によってのみ処理される、設定可能な入力キューを 2 つサポートしています。 表29-1 にこれらのキューの説明を示します。
表29-1 入力キューのタイプ
|
|
標準 |
標準プライオリティとみなされるユーザ トラフィック。各フローを区別するために、3 つの異なるスレッシュホールドを設定できます。 mls qos srr-queue input threshold 、 mls qos srr-queue input dscp-map 、および mls qos srr-queue input cos-map グローバル コンフィギュレーション コマンドを使用できます。 |
緊急 |
Differentiated Services(DF)緊急転送または音声トラフィックなどのハイプライオリティ ユーザ トラフィック。このトラフィックに必要な帯域幅は、 mls qos srr-queue input priority-queue グローバル コンフィギュレーション コマンドを使用して、合計トラフィックの割合として設定できます。緊急キューには帯域幅が保証されています。 |
キューおよびスレッシュホールドにスイッチを通過する各パケットを割り当てます。特に、入力キューには DSCP または CoS 値、スレッシュホールド ID には DSCP または CoS 値をそれぞれマッピングします。 mls qos srr-queue input dscp-map queue queue-id { dscp1...dscp8 | threshold threshold-id dscp1...dscp8 } 、または mls qos srr-queue input cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。DSCP 入力キュー スレッシュホールド マップおよび CoS 入力キュー スレッシュホールド マップを表示するには、 show mls qos maps イネーブル EXEC コマンドを使用します。
WTD スレッシュホールド
キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには 3 つの廃棄スレッシュホールドがあります。そのうちの 2 つは設定可能( 明示的 )な WTD スレッシュホールドで、もう 1 つはキューフル ステートに設定済みの設定不可能( 暗示的 )なスレッシュホールドです。入力キューに 2 つの明示的 WTD スレッシュホールドの割合(スレッシュホールド ID 1 および ID 2 用)を割り当てるには、 mls qos srr-queue input threshold queue-id threshold-percentage1 threshold-percentage2 グローバル コンフィギュレーション コマンドを使用します。各スレッシュホールド値は、キューに割り当てられたバッファの合計値に対する割合です。スレッシュホールド ID 3 の廃棄スレッシュホールドは、キューフル ステートに設定済みで、変更できません。WTD の仕組みの詳細については、「WTD」を参照してください。
バッファおよび帯域幅の割り当て
2 つのキュー間の入力バッファを分割する比率を定義する(スペース量を割り当てる)には、 mls qos srr-queue input buffers percentage1 percentage2 グローバル コンフィギュレーション コマンドを使用します。バッファ割り当てと帯域幅割り当てを組み合わせることにより、パケットが廃棄される前にバッファに格納して送信できるデータ量が制御されます。帯域幅をパーセントとして割り当てるには、 mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドを使用します。重みの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。
プライオリティ キューイング
特定の入力キューをプライオリティ キューとして設定するには、 mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドを使用します。プライオリティ キュー は、内部リングの負荷にかかわらず帯域幅の一部が保証されているため、確実な配信を必要とするトラフィック(音声など)に使用する必要があります。
SRR は、 mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードの指定に従って、設定済みの重み用のプライオリティ キューを処理します。次に、SRR は mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定された重みに従い、残りの帯域幅を両方の入力キューと共有し、キューを処理します。
ここに記載されたコマンドを組み合わせると、特定の DSCP または CoS を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューをより頻繁に処理したり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定できます。設定情報については、「入力キューの特性の設定」を参照してください。
出力キューでのキューイングおよびスケジューリング
図29-8に、出力ポートのキューイングおよびスケジューリング フローチャートを示します。
(注) 緊急キューがイネーブルの場合、SRR によって空になるまで処理されてから、他の 3 つのキューが処理されます。
図29-8 出力ポートのキューイングおよびスケジューリング フローチャート
各ポートは、そのうち 1 つ(キュー 1)を出力緊急キューにできる、4 つの出力キューをサポートしています。これらのキューはキューセットに割り当てられます。スイッチに存在するすべてのトラフィックは、パケットに割り当てられた QoS ラベルに基づいて、これらの 4 つのキューのいずれかを通過し、スレッシュホールドの影響を受けます。
図29-9に出力キュー バッファを示します。バッファ スペースは共通プールと専用プールからなります。スイッチはバッファ割り当て方式を使用して、出力キューごとに最小バッファ サイズを確保します。これにより、いずれかのキューまたはポートがすべてのバッファを消費して、その他のキューのバッファが不足することがなくなり、要求元のキューにバッファ スペースを割り当てるかどうかが制御されます。スイッチは、目的のキューが確保された量(限度内)を超えるバッファを消費していないかどうか、最大バッファ(限度超)をすべて消費しているかどうか、および共通プールが空である(空きバッファなし)か、または空でない(空きバッファあり)かを検出します。キューが限度を超えていない場合、スイッチは専用プールまたは共通プール(空でない場合)からバッファ スペースを割り当てます。共通プールに空きバッファがない場合、またはキューが限度を超えている場合は、フレームが廃棄されます。
図29-9 出力キューのバッファ割り当て
バッファおよびメモリの割り当て
バッファのアベイラビリティの保証、廃棄スレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold グローバル コンフィギュレーション コマンドを使用します。各スレッシュホールド値はキューに割り当てられたメモリの割合です。この値を指定するには、 mls qos queue-set output qset-id buffers allocation1 ... allocation4 グローバル コンフィギュレーション コマンドを使用します。 割り当てられたすべてのバッファの合計が専用プールになります。残りのバッファは共通プールの一部になります。
バッファ割り当てを行うと、ハイプライオリティ トラフィックを確実にバッファに格納できます。たとえば、バッファ スペースが 400 の場合、バッファ スペースの 70% をキュー 1 に割り当てて、10% をキュー 2 ~ 4 に割り当てることができます。キュー 1 には 280 のバッファが割り当てられ、キュー 2 ~ 4 にはそれぞれ 40 バッファが割り当てられます。
割り当てられたバッファをキューセット内の特定のキュー用に確保するよう保証できます。たとえば、キュー用として 100 バッファがある場合、50%(50 バッファ)を確保できます。残りの 50 バッファは共通プールに戻されます。また、最大スレッシュホールドを設定することにより、いっぱいになったキューが確保量を超えるバッファを取得できるようにすることもできます。共通プールが空でない場合、必要なバッファを共通プールから割り当てることができます。
WTD スレッシュホールド
スイッチを通過する各パケットをキューおよびスレッシュホールドに割り当てることができます。特に、出力キューには DSCP または CoS 値、スレッシュホールド ID には DSCP または CoS 値をそれぞれマッピングします。 mls qos srr-queue output dscp-map queue queue-id { dscp1...dscp8 | threshold threshold-id dscp1...dscp8 } 、または mls qos srr-queue output cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。DSCP 出力キュー スレッシュホールド マップおよび CoS 出力キュー スレッシュホールド マップを表示するには、 show mls qos maps イネーブル EXEC コマンドを使用します。
キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには 3 つの廃棄スレッシュホールドがあります。そのうちの 2 つは設定可能( 明示的 )な WTD スレッシュホールドで、もう 1 つはキューフル ステートに設定済みの設定不可能( 暗示的 )なスレッシュホールドです。スレッシュホール ドID 1 および ID 2 用の 2 つの WTD スレッシュホールド割合を割り当てます。スレッシュホールド ID 3 の廃棄スレッシュホールドは、キューフル ステートに設定されていて、変更できません。WTD の仕組みの詳細については、「WTD」を参照してください。
シェーピング モードまたは共有モード
SRR は、シェーピング モードまたは共有モードでキューセットを処理します。キューセットにポートをマッピングするには、 queue-set qset-id インターフェイス コンフィギュレーション コマンドを使用します。ポートに共有重みまたはシェーピング重みを割り当てるには、 srr-queue bandwidth share weight1 weight2 weight3 weight4 または srr-queue bandwidth shape weight1 weight2 weight3 weight4 インターフェイス コンフィギュレーション コマンドを使用します。シェーピングと共有の違いについては、「SRR のシェーピングおよび共有」を参照してください。
バッファ割り当てと SRR 重み比率を組み合わせることにより、パケットが廃棄される前にバッファに格納して送信できるデータ量が制御されます。重みの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。
緊急キューがイネーブルでないかぎり、4 つのキューはすべて SRR に参加し、この場合、1 番めの帯域幅重みは無視されて比率計算に使用されません。緊急キューはプライオリティ キューであり、処理されて空になってから、他のキューが処理されます。緊急キューをイネーブルにするには、 priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。
ここに記載されたコマンドを組み合わせると、特定の DSCP または CoS を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューをより頻繁に処理したり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定できます。設定情報については、「出力キューの特性の設定」を参照してください。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
パケットの変更
QoS を設定するには、パケットの分類、ポリシング、キューイングを行います。このプロセス中に、次のようにパケットが変更されることがあります。
• IP パケットおよび非 IP パケットの分類では、受信パケットの DSCP または CoS に基づいて、パケットに QoS ラベルが割り当てられます。ただし、この段階ではパケットは変更されません。割り当てられた DSCP または CoS 値の指定のみがパケットとともに伝達されます。これは、QoS の分類および転送検索が並行して発生するためです。パケットを元の DSCP のままCPUに転送し、CPU でソフトウェアによる再処理を行うことができます。
• ポリシング中は、IP および非 IP パケットに別の DSCP を割り当てることができます(これらのパケットが不適合で、ポリサーがマークダウン DSCP を指定している場合)。この場合も、パケット内の DSCP は変更されず、マークダウン値の指定がパケットとともに伝達されます。IP パケットの場合は、このあとの段階でパケットが変更されます。非 IP パケットの場合は、DSCP が CoS に変換され、キューイングおよびスケジューリングの決定に使用されます。
• フレームに割り当てられた QoS ラベル、および選択された変換マップに応じて、フレームの DSCP および CoS 値が書き換えられます。変換マップが設定されておらず、着信フレームの DSCP を信頼するようにポートが設定されている場合、フレーム内の DSCP 値は変更されないで、DSCP/CoS マップに従って CoS が書き換えられます。着信フレームの CoS を信頼するようにポートが設定されていて、着信フレームが IP パケットの場合、フレーム内の CoS 値は変更されないで、CoS/DSCP マップに従って DSCP が変更されることがあります。
入力変換が行われると、選択された新しい DSCP 値に応じて DSCP が書き換えられます。ポリシー マップの設定アクションによっても、DSCP が書き換えられます。
自動 QoS の設定
自動 QoS 機能を使用して、既存の QoS 機能の配置を容易にできます。自動 QoS では、ネットワーク設計について前提条件を設定し、その結果スイッチは、デフォルトの QoS 動作を使用せずに、各トラフィック フローについて優先度を指定して入力および出力キューを適切に使用できるようになります(デフォルトで自動 QoS はディセーブルになっています。したがって、スイッチはパケットの内容やサイズに関係なく、各パケットにベストエフォート型のサービスを提供し、単一キューからパケットを送信します)。
自動 QoS をイネーブルにすると、トラフィック タイプおよび入力パケット ラベルに基づいてトラフィックを自動的に分類します。スイッチは分類した結果を使用して適切な出力キューを選択します。
自動QoSコマンドを使用して Cisco IP Phone、および Cisco SoftPhone アプリケーションを実行する装置に接続するポートを指定します。また、アップリンクを介して信頼のおけるトラフィックを受信するポートを指定します。自動 QoS は以下の機能を実行します。
• Cisco IP Phone の有無の検出
• QoS 分類の設定
• 出力キューの設定
ここでは、次の設定情報について説明します。
• 「生成される自動 QoS 設定」
• 「コンフィギュレーションにおける自動 QoS の影響」
• 「自動 QoS 設定時の注意事項」
• 「VoIP 用自動 QoS のイネーブル化」
• 「自動 QoS 設定例」
生成される自動 QoS 設定
デフォルトでは、自動 QoS はすべてのポートでディセーブルです。
自動 QoS がイネーブルの場合、入力パケット ラベルを使用してトラフィックを分類し、パケット ラベルを割り当て、入力および出力キューを設定します( 表29-2 を参照)。
表29-2 トラフィック タイプ、パケット ラベル、キュー
|
|
|
|
|
|
|
DSCP |
46 |
24、26 |
48 |
56 |
34 |
- |
CoS |
5 |
3 |
6 |
7 |
4 |
- |
CoS/入力キュー マップ |
2、3、4、5、6、7 (キュー 2) |
0、1 (キュー 1) |
CoS/出力キュー マップ |
5 (キュー 1) |
3、6、7 (キュー 2) |
4 (キュー 3) |
2 (キュー 3) |
0、1 (キュー 4) |
表29-3 に、入力キューに対して生成される自動 QoS 設定を示します。
表29-3 入力キューの自動 QoS 設定
|
|
|
|
|
SRR 共有 |
1 |
0、1 |
81% |
67% |
プライオリティ |
2 |
2、3、4、5、6、7 |
19% |
33% |
表29-4 に、出力キューに対して生成される自動 QoS 設定を示します。
表29-4 出力キューの自動 QoS 設定
|
|
|
|
ギガビット対応
ポートのキュー
(バッファ)サイズ
|
10/100 イーサネット ポートのキュー
(バッファ)サイズ
|
プライオリティ(シェーピング) |
1 |
5 |
10% |
16% |
10% |
SRR 共有 |
2 |
3、6、7 |
10% |
6% |
10% |
SRR 共有 |
3 |
2、4 |
60% |
17% |
26% |
SRR 共有 |
4 |
0、1 |
20% |
61% |
54% |
自動 QoS 機能を最初のポートでイネーブルにすると、以下の動作が自動的に発生します。
• QoS は、グローバルにイネーブル( mls qos グローバル コンフィギュレーション コマンド)になり、他のグローバル コンフィギュレーション コマンドが追加されます。
• auto qos voip cisco-phone インターフェイス コンフィギュレーション コマンドを Cisco IP Phone が接続されたネットワーク エッジにあるポートに入力すると、スイッチは信頼境界機能をイネーブルにします。スイッチは、Cisco Discovery Protocol(CDP)を使用して Cisco IP Phone の有無を検出します。Cisco IP Phone が検出されたら、ポートの入力分類がパケットで受信される QoS ラベルを信頼するように設定されます。Cisco IP Phone が検出されない場合、インターフェイスの入力分類がパケットで受信される QoS ラベルを信頼しないように設定されます。スイッチは、 表29-3 および 表29-4 の設定に従ってポート上の入力および出力キューを設定します。
• auto qos voip cisco-softphone インターフェイス コンフィギュレーション コマンドを、Cisco SoftPhone を稼働する装置に接続されたネットワークのエッジのポートに入力すると、スイッチはポリシングを使用して、パケットがプロファイルの内部または外部にいるかを判断し、パケット上のアクションを指定します。パケットに 24、26、または 46 の DSCP 値がない場合、またはパケットがプロファイル外部にいる場合、スイッチは DSCP 値を 0 に変更します。スイッチは 表29-3 および 表29-4 の設定に従って、ポート上で入出力キューを設定します。
• auto qos voip trust インターフェイス コンフィギュレーション コマンドをネットワーク内部に接続されたポートに入力すると、スイッチは入力パケットにある非ルーティング ポートの CoS 値を信頼します(トラフィックがすでに他のエッジ デバイスで分類済みであることが前提です)。スイッチは、 表29-3 および 表29-4 の設定に従ってポート上の入力および出力キューを設定します。
信頼境界機能の詳細については、「ポート セキュリティを確保するための信頼境界機能の設定」を参照してください。
auto qos voip cisco-phone 、 auto qos voip cisco-softphone 、または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動 QoS をイネーブルにする場合、スイッチはトラフィック タイプおよび入力パケット ラベルに応じて自動的に QoS 設定を生成し、 表29-5 にリストされているコマンドをポートに適用します。
表29-5 生成される自動 QoS 設定
|
|
スイッチが自動的に標準 QoS をイネーブルにして Cos/DSCP マップ(着信パケットの CoS 値の DSCP 値へのマッピング)を設定します。 |
Switch(config)#
mls qos map cos-dscp 0 8 16 26 32 46 48 56
|
スイッチが、自動的に CoS 値を入力キューおよびスレッシュホールド ID にマッピングします。 |
Switch(config)#
no mls qos srr-queue input cos-map
Switch(config)#
mls qos srr-queue input cos-map queue 1 threshold 3 0
Switch(config)#
mls qos srr-queue input cos-map queue 1 threshold 2 1
Switch(config)#
mls qos srr-queue input cos-map queue 2 threshold 1 2
Switch(config)#
mls qos srr-queue input cos-map queue 2 threshold 2 4 6 7
Switch(config)#
mls qos srr-queue input cos-map queue 2 threshold 3 3 5
|
スイッチが、自動的に CoS 値を出力キューおよびスレッシュホールド ID にマッピングします。 |
Switch(config)#
no mls qos srr-queue output cos-map
Switch(config)#
mls qos srr-queue output cos-map queue 1 threshold 3 5
Switch(config)#
mls qos srr-queue output cos-map queue 2 threshold 3 3 6 7
Switch(config)#
mls qos srr-queue output cos-map queue 3 threshold 3 2 4
Switch(config)#
mls qos srr-queue output cos-map queue 4 threshold 2 1
Switch(config)#
mls qos srr-queue output cos-map queue 4 threshold 3 0
|
スイッチが、自動的に DSCP 値を入力キューおよびスレッシュホールド ID にマッピングします。 |
Switch(config)#
no mls qos srr-queue input dscp-map
Switch(config)#
mls qos srr-queue input dscp-map queue 1 threshold 2 9 10 11 12 13 14 15
Switch(config)#
mls qos srr-queue input dscp-map queue 1 threshold 3 0 1 2 3 4 5 6 7
Switch(config)#
mls qos srr-queue input dscp-map queue 1 threshold 3 32
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 1 16 17 18 19 20 21 22 23
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 2 33 34 35 36 37 38 39 48
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 2 49 50 51 52 53 54 55 56
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 2 57 58 59 60 61 62 63
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
Switch(config)#
mls qos srr-queue input dscp-map queue 2 threshold 3 40 41 42 43 44 45 46 47
|
スイッチが、自動的に DSCP 値を出力キューおよびスレッシュホールド ID にマッピングします。 |
Switch(config)#
no mls qos srr-queue output dscp-map
Switch(config)#
mls qos srr-queue output dscp-map queue 1 threshold 3 40 41 42 43 44 45 46 47
Switch(config)#
mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
Switch(config)#
mls qos srr-queue output dscp-map queue 2 threshold 3 48 49 50 51 52 53 54 55
Switch(config)#
mls qos srr-queue output dscp-map queue 2 threshold 3 56 57 58 59 60 61 62 63
Switch(config)#
mls qos srr-queue output dscp-map queue 3 threshold 3 16 17 18 19 20 21 22 23
Switch(config)#
mls qos srr-queue output dscp-map queue 3 threshold 3 32 33 34 35 36 37 38 39
Switch(config)#
mls qos srr-queue output dscp-map queue 4 threshold 1 8
Switch(config)#
mls qos srr-queue output dscp-map queue 4 threshold 2 9 10 11 12 13 14 15
Switch(config)#
mls qos srr-queue output dscp-map queue 4 threshold 3 0 1 2 3 4 5 6 7
|
スイッチが自動的に入力キューを設定します。キュー 2 がプライオリティ キューでキュー 1 が共有モードです。また、スイッチは、入力キューの帯域幅とバッファ サイズも設定します。 |
Switch(config)#
no mls qos srr-queue input priority-queue 1
Switch(config)#
no mls qos srr-queue input priority-queue 2
Switch(config)#
mls qos srr-queue input bandwidth 90 10
Switch(config)#
mls qos srr-queue input threshold 1 8 16
Switch(config)#
mls qos srr-queue input threshold 2 34 66
Switch(config)#
mls qos srr-queue input buffers 67 33
|
スイッチが自動的に出力キューのバッファ サイズを設定します。ポートにマッピングされた出力キューの帯域幅と SRR モード(シェーピングまたは共有)を設定します。 |
Switch(config)#
mls qos queue-set output 1 threshold 1 138 138 92 138
Switch(config)#
mls qos queue-set output 1 threshold 2 138 138 92 400
Switch(config)#
mls qos queue-set output 1 threshold 3 36 77 100 318
Switch(config)#
mls qos queue-set output 1 threshold 4 20 50 67 400
Switch(config)#
mls qos queue-set output 2 threshold 1 149 149 100 149
Switch(config)#
mls qos queue-set output 2 threshold 2 118 118 100 235
Switch(config)#
mls qos queue-set output 2 threshold 3 41 68 100 272
Switch(config)#
mls qos queue-set output 2 threshold 4 42 72 100 242
Switch(config)#
mls qos queue-set output 1 buffers 10 10 26 54
Switch(config)#
mls qos queue-set output 2 buffers 16 6 17 61
Switch(config-if)#
srr-queue bandwidth shape 10 0 0 0
Switch(config-if)#
srr-queue bandwidth share 10 10 60 20
|
auto qos voip trust コマンドを入力すると、スイッチが、非ルーテッド ポート上のパケットで受信された CoS 値を信頼するように( mls qos trust cos コマンドにより)、自動的に入力分類を設定します。 |
Switch(config-if)#
mls qos trust cos
Switch(config-if)#
mls qos trust dscp
|
auto qos voip cisco-phone コマンドを入力すると、スイッチが自動的に信頼境界機能をイネーブルにし、CDP を使用して Cisco IP Phone の有無を検出します。 |
Switch(config-if)#
mls qos trust device cisco-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 ef
Switch(config)#
class-map match-all AutoQoS-VoIP-Control-Trust
Switch(config-cmap)#
match ip dscp cs3 af31
Switch(config)#
policy-map AutoQoS-Police-SoftPhone
Switch(config-pmap)#
class AutoQoS-VoIP-RTP-Trust
Switch(config-pmap-c)#
set dscp ef
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 cs3
Switch(config-pmap-c)#
police 32000 8000 exceed-action policed-dscp-transmit
|
クラス マップとポリシー マップを作成すると、スイッチは自動的にポリシー マップ(別名 AutoQoS-Police-SoftPhone )を、Cisco SoftPhone 機能を備えた自動 QoS がイネーブルである入力インターフェイスに適用します。 |
Switch(config-if)#
service-policy input AutoQoS-Police-SoftPhone
|
コンフィギュレーションにおける自動 QoS の影響
自動 QoS がイネーブルになると、 auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された設定が実行コンフィギュレーションに追加されます。
スイッチは、自動 QoS が生成したコマンドを、CLI(コマンドライン インターフェイス) から入力したように適用します。既存のユーザ設定により、生成コマンドのアプリケーションに障害が発生したり、生成コマンドによってユーザ設定が上書きされたりする可能性があります。これらの動作は警告なしに発生します。すべての生成コマンドが正常に適用された場合、上書きされていないユーザ入力設定が実行コンフィギュレーションに残ります。上書きされたユーザ入力設定は、現在の設定をメモリに保存することなく、スイッチをリロードすることで取得できます。生成コマンドが適用されなかった場合、以前の実行コンフィギュレーションが復元されます。
自動 QoS 設定時の注意事項
自動 QoS を設定する前に、次の事項を確認してください。
• 自動 QoS を使用すると、ルーティングされたポートおよびルーティングされていないポートで、Cisco IP Phone を備えた VoIP のためにスイッチを設定できます。また、自動 QoS は Cisco SoftPhone アプリケーションを稼働する装置の VoIP 用にスイッチを設定します。
(注) Cisco SoftPhone を稼働する装置が非ルーテッド ポートまたはルーテッド ポートに接続されている場合、スイッチはポート単位でCisco SoftPhone アプリケーション 1 つのみをサポートします。
• 自動 QoS のデフォルト設定を利用する場合、他の QoS コマンドを実行する前に自動 QoS をイネーブルにする必要があります。必要に応じて QoS 設定を微調整できますが、自動 QoS が完了したあとにのみ調整することを推奨します。詳細については、「コンフィギュレーションにおける自動 QoS の影響」を参照してください。
• 自動 QoS をイネーブルにしたら、名前に AutoQoS が含まれているポリシー マップまたは集約ポリサーを変更しないでください。ポリシー マップまたは集約ポリサーを変更する必要がある場合、これらをコピーしてから、コピーしたポリシー マップまたは集約ポリサーを変更してください。生成したポリシー マップではなくこの新しいポリシー マップを使用するには、生成したポリシー マップをインターフェイスから削除し、新しいポリシー マップをインターフェイスに適用します。
• 自動 QoS は、スタティック アクセス、ダイナミックアクセス、音声 VLAN アクセス、およびトランク ポートでイネーブルにできます。
• デフォルトでは、CDP 機能はすべてのポート上でイネーブルです。自動 QoS が適切に動作するために、CDP をディセーブルにしないでください。
• ルーテッド ポートで Cisco IP Phone の自動 QoS をイネーブルにすると、スタティック IP アドレスを IP Phone に割り当てます。
• このリリースは、Cisco IP SoftPhone Version 1.3(3) 以降のみをサポートします。
• 接続した装置は、Cisco Call Manager バージョン 4 以降を使用する必要があります。
VoIP 用自動 QoS のイネーブル化
QoS ドメイン内で VoIP 用の自動 QoS をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
Cisco IP Phone に接続されたポート、Cisco SoftPhone 機能を実行する装置に接続されたポート、またはネットワーク内部の信頼性のある他のスイッチやルータに接続されたアップリンク ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
auto qos voip { cisco-phone | cisco-softphone | trust } |
自動 QoS をイネーブルにします。 キーワードの意味は次のとおりです。 • cisco-phone ― ポートが Cisco IP Phone に接続されている場合、着信パケットの QoS ラベルは電話が検出された場合のみ信頼されます。 • cisco-softphone ― ポートが Cisco SoftPhone 機能を実行する装置に接続されています。 • trust ― アップリンク ポートが信頼性のあるスイッチまたはルータに接続されていて、入力パケットの VoIP トラフィック分類が信頼されています。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show auto qos interface interface-id |
設定を確認します。 このコマンドは、自動 QoS がイネーブルであるインターフェイス上の自動 QoS コマンドを表示します。自動 QoS 設定およびユーザの変更を表示するには、 show running-config イネーブル EXEC コマンドを使用します。 |
自動 QoS のイネーブルまたはディセーブル時に自動的に生成された QoS コマンドを表示するには、自動 QoS をイネーブルにする 前 に、 debug auto qos イネーブル EXEC コマンドを入力します。詳細については、このリリースに対応するコマンド リファレンスにある debug autoqos コマンドの項を参照してください。
ポートで自動 QoS をディセーブルにするには、no auto qos voip インターフェイス コンフィギュレーション コマンドを使用します。このポート用に自動 QoS が生成したインターフェイス コンフィギュレーション コマンドのみが削除されます。これが自動 QoS をイネーブルにしている最後のポートの場合に、 no auto qos voip コマンドを入力すると、自動 QoS 生成グローバル コンフィギュレーション コマンドが残っていても、(グローバル コンフィギュレーションによって他のポートのトラフィックを中断しないように)自動 QoS はディセーブルであるとみなされます。
自動 QoS 生成グローバル コンフィギュレーション コマンドをディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。QoS がディセーブルになると、パケット(パケットの CoS 値、DSCP 値、および IP precedence 値)は変更されないため、trusted(信頼性のある)ポート、または untrusted(信頼性のない)ポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。
次に、ポートに接続されたスイッチまたはルータが信頼性のあるデバイスである場合に、自動 QoS をイネーブルにして着信パケットで受信された QoS ラベルを信頼する例を示します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# auto qos voip trust
自動 QoS 設定例
ここでは、自動 QoS をネットワークに実装する方法について説明します(図29-10を参照)。QoS パフォーマンスを最適にするには、ネットワーク内部の装置すべてで自動 QoS をイネーブルにします。
図29-10 ネットワークでの自動 QoS の設定例
図29-10に、VoIP トラフィックが他のすべてのトラフィックに優先するネットワークを示します。QoS ドメインの端にある配線クローゼットのスイッチで、自動 QoS がイネーブルとなっています。
(注) 自動 QoS コマンドを入力する前に標準 QoS コマンドを設定しないでください。QoS 設定を微調整できますが、自動 QoS が完了したあとにのみ調整することを推奨します。
QoS ドメインのエッジにあるスイッチで VoIP トラフィックを他のトラフィックより優先させるように設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
debug auto qos |
自動 QoS のデバッグをイネーブルにします。デバッグをイネーブルにすると、スイッチは、自動 QoS がイネーブルである場合に自動的に生成される QoS 設定を表示します。 |
ステップ 2 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
cdp enable |
CDP をグローバルにイネーブルにします。デフォルトではイネーブルに設定されています。 |
ステップ 4 |
interface interface-id |
Cisco IP Phone に接続するスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 5 |
auto qos voip cisco-phone |
ポート上で自動 QoS をイネーブルにし、そのポートが Cisco IP Phone に接続されていることを指定します。 着信パケットの QoS ラベルは、Cisco IP Phone が検出された場合のみ信頼されます。 |
ステップ 6 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
|
Cisco IP Phone に接続されているポートの数だけ、ステップ 4 ~ 6 を繰り返します。 |
ステップ 8 |
interface interface-id |
信頼性のあるスイッチまたはルータに接続していると認識されるスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。図29-10を参照してください。 |
ステップ 9 |
auto qos voip trust |
ポート上で自動 QoS をイネーブルにし、そのポートが信頼性のあるルータまたはスイッチに接続されていることを指定します。 |
ステップ 10 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 11 |
show auto qos |
設定を確認します。 このコマンドは、自動 QoS がイネーブルであるインターフェイス上の自動 QoS コマンドを表示します。自動 QoS 設定およびユーザの変更を表示するには、 show running-config イネーブル EXEC コマンドを使用します。 自動 QoS によって影響される QoS 設定の詳細については、「自動 QoS 情報の表示」(p.28-30)を参照してください。 |
ステップ 12 |
copy running-config startup-config |
auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された自動 QoS 設定をコンフィギュレーション ファイル内に保存します。 |
標準 QoS の設定
標準 QoS を設定する前に、次の事項を十分に理解しておく必要があります。
• 使用するアプリケーションのタイプおよびネットワークのトラフィック パターン
• トラフィックの特性およびネットワークのニーズ。バースト性の高いトラフィックかどうかの判別。音声およびビデオ ストリーム用の帯域幅確保の必要性
• ネットワークの帯域幅要件および速度
• ネットワーク上の輻輳発生箇所
ここでは、次の設定情報について説明します。
• 「標準 QoS のデフォルト設定」
• 「標準 QoS 設定時の注意事項」
• 「QoS のグローバルなイネーブル化」(必須)
• 「ポートの信頼状態による分類の設定」(任意)
• 「ポートの信頼状態による分類の設定」(必須)
• 「QoS ポリシーの設定」(必須)
• 「DSCP マップの設定」(任意、DSCP/DSCP 変換マップまたはポリシング済み DSCP マップを使用する必要がない場合)
• 「入力キューの特性の設定」(任意)
• 「出力キューの特性の設定」(任意)
標準 QoS のデフォルト設定
QoS はディセーブルに設定されています。パケット(パケットの CoS 値、DSCP 値、および IP precedence 値)は変更されないため、trusted(信頼性のある)ポート、または untrusted(信頼性のない)ポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。
mls qos グローバル コンフィギュレーション コマンドを使用して QoS をイネーブルにし、その他のすべての QoS 設定がデフォルトである場合、トラフィックはポリシングを伴わないベストエフォート型として分類されます(DSCP および CoS 値は 0 に設定されます)。ポリシー マップは設定されません。デフォルトでは、すべてのポートの信頼状態は untrusted です。入力および出力キューのデフォルト設定については、「入力キューのデフォルト設定」および「出力キューのデフォルト設定」を参照してください。
入力キューのデフォルト設定
表29-6 に、QoS がイネーブルの場合の入力キューのデフォルト設定を示します。
表29-6 入力キューのデフォルト設定
|
|
|
バッファ割り当て |
90% |
10% |
帯域幅割り当て |
4 |
4 |
プライオリティ キューの帯域幅 |
0 |
10 |
WTD 廃棄スレッシュホールド 1 |
100% |
100% |
WTD 廃棄スレッシュホールド 2 |
100% |
100% |
表29-7 に、QoS がイネーブルの場合のデフォルトの CoS 入力キュー スレッシュホールド マップを示します。
表29-7 デフォルトの CoS 入力キュー スレッシュホールド マップ
|
|
0 ~ 4 |
1-1 |
5 |
2-1 |
6、7 |
1-1 |
表29-8 に、QoS がイネーブルの場合のデフォルトの DSCP 入力キュー スレッシュホールド マップを示します。
表29-8 デフォルトの DSCP 入力キュー スレッシュホールド マップ
|
|
0 ~ 39 |
1-1 |
40 ~ 47 |
2-1 |
48 ~ 63 |
1-1 |
出力キューのデフォルト設定
表29-9 に、QoS がイネーブルの場合における、各キューセットの出力キューのデフォルト設定を示します。すべてのポートはキューセット 1 にマッピングされます。ポートの帯域幅限度は 100% に設定され、レートは制限されません。
表29-9 出力キューのデフォルト設定
|
|
|
|
|
バッファ割り当て |
25% |
25% |
25% |
25% |
WTD 廃棄スレッシュホールド 1 |
100% |
200% |
100% |
100% |
WTD 廃棄スレッシュホールド 2 |
100% |
200% |
100% |
100% |
専用スレッシュホールド |
50% |
50% |
50% |
50% |
最大スレッシュホールド |
400% |
400% |
400% |
400% |
SRR シェーピング重み(絶対) |
25 |
0 |
0 |
0 |
SRR 共有重み |
25 |
25 |
25 |
25 |
表29-10 に、QoS がイネーブルの場合のデフォルトの CoS 出力キュー スレッシュホールド マップを示します。
表29-10 デフォルトの CoS 出力キュー スレッシュホールド マップ
|
|
0、1 |
2-1 |
2、3 |
3-1 |
4 |
4-1 |
5 |
1-1 |
6、7 |
4-1 |
表29-11 に、QoS がイネーブルの場合のデフォルトの DSCP 出力キュー スレッシュホールド マップを示します。
表29-11 デフォルトの DSCP 出力キュー スレッシュホールド マップ
|
|
0 ~ 15 |
2-1 |
16 ~ 31 |
3-1 |
32 ~ 39 |
4-1 |
40 ~ 47 |
1-1 |
48 ~ 63 |
4-1 |
マッピング テーブルのデフォルト設定
デフォルトの CoS/DSCP マップは、表29-12のとおりです。
デフォルトの IP precedence/DSCP マップは、表29-13のとおりです。
デフォルトの DSCP/CoS マップは、表29-14のとおりです。
デフォルトの DSCP/DSCP 変換マップは、着信 DSCP 値を同じ DSCP 値にマッピングする空のマップです。
デフォルトのポリシング済み DSCP マップは、着信 DSCP 値を同じ DSCP 値にマッピングする(マークダウンしない)空のマップです。
QoS ACL の注意事項
ACL で QoS を設定する際の注意事項は次のとおりです。
• 分類のために QoS ACL を使用する場合、sdm prefer qos グローバル コンフィギュレーション コマンドを使用して QoS テンプレートに Switch Database Management(SDM)機能を設定できます。SDM は、最大数の ACE をサポートするようシステム リソースを設定します。SDM テンプレートの詳細については、「SDM テンプレートの設定」を参照してください。
• IP フラグメントと設定されている IP 拡張 ACL を照合することによって、QoS を実施することはできません。IP フラグメントはベストエフォート型として送信されます。IP フラグメントは IP ヘッダーのフィールドで示されます。
• 1 つのクラス マップごとに使用できる ACL は 1 つだけ、使用できる match クラスマップ コンフィギュレーション コマンドは 1 つだけです。ACL には、フィールドとパケットの内容を照合する ACE を複数指定できます。
ポリシングの注意事項
ポリシングの注意事項を次に示します。
• 複数の物理ポートを制御するポート ASIC 装置は、256 のポリサー(255 のポリサーと 1 つの no ポリサー)をサポートしています。各ポートでサポートされているポリサーの最大数は 64 です。ポリサーはソフトウェアの要求に応じて割り当てられ、ハードウェアおよび ASIC の限度によって制約されます。ポートごとにポリサーを確保することはできません。ポートがいずれかのポリサーに割り当てられる保証はありません。
• 入力ポートでは 1 つのパケットに適用できるポリサーは 1 つだけです。設定できるのは、平均速度パラメータおよび認定バースト パラメータだけです。
• ポリシング レートの設定は、1 Mbps 単位で増減が可能です。1 Mbps 未満のポリシング レートを設定しようとすると、正しい値を入力するように指示するプロンプトが表示されます。
• QoS 対応として設定されているポートを介して受信したすべてのトラフィックは、そのポートに結合されたポリシー マップに基づいて分類、ポリシング、およびマーキングが行われます。QoS 対応として設定されているトランク ポートの場合、ポートを介して受信したすべての VLAN のトラフィックは、そのポートに結合されたポリシー マップに基づいて分類、ポリシング、およびマーキングが行われます。
• スイッチ上で EtherChannel ポートが設定されている場合、EtherChannel を形成する個々の物理ポートに QoS の分類、ポリシング、マッピング、およびキューイングを設定する必要があります。また、QoS の設定を EtherChannel のすべてのポートで照合するかどうかを決定する必要があります。
一般的な QoS の注意事項
一般的な QoS の注意事項を次に示します。
• QoS を設定できるのは物理ポートのみです。VLAN と Switch Virtual Interface(SVI; スイッチ仮想インターフェイス)のレベルでは QoS はサポートされていません。
• スイッチで受信された制御トラフィック(スパニングツリー Bridge Protocol Data Unit[BPDU; ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、入力 QoS 処理がすべて行われます。
• キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。
QoS のグローバルなイネーブル化
デフォルトでは、QoS はスイッチ上でディセーブルに設定されています。
QoS をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は必須です。
QoS をディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
QoS ドメイン内のポートの信頼状態の設定
QoS ドメインに入るパケットは、QoS ドメインのエッジで分類されます。パケットがエッジで分類されると、QoS ドメイン内の各スイッチでパケットを分類する必要がないので、QoS ドメイン内のスイッチ ポートをいずれか 1 つの信頼状態に設定できます。図29-11に、ネットワーク トポロジーの例を示します。
図29-11 QoS ドメイン内のポートの信頼状態
ポートが受信したトラフィックの分類を信頼するようにポートを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 3 |
mls qos trust [ cos | dscp | ip-precedence ] |
ポートの信頼状態を設定します。 デフォルトでは、ポートは trusted ではありません。キーワードを指定しない場合、デフォルトは dscp です。 キーワードの意味は次のとおりです。 • cos ― パケットの CoS 値を使用して入力パケットを分類します。タグなしパケットの場合は、ポートのデフォルトの CoS 値が使用されます。デフォルトのポート CoS 値は 0 です。 • dscp ― パケットの DSCP 値を使用して入力パケットを分類します。非 IP パケットでは、パケットがタグ付きの場合、パケットの CoS 値が使用されます。パケットがタグなしの場合は、デフォルトのポート CoS が使用されます。スイッチは、内部で CoS/DSCP マップを使用して CoS 値を DSCP 値にマッピングします。 • ip-precedence ― パケットの IP precedence 値を使用して入力パケットを分類します。 非 IP パケットでは、パケットがタグ付きの場合、パケットの CoS 値が使用されます。パケットがタグなしの場合は、デフォルトのポート CoS が使用されます。スイッチは、内部で CoS/DSCP マップを使用して CoS 値を DSCP 値にマッピングします。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
untrusted ステートにポートを戻す場合は、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。
デフォルトの CoS 値を変更する方法については、「インターフェイスの CoS 値の設定」を参照してください。CoS/DSCP マップを設定する方法については、「CoS/DSCP マップの設定」を参照してください。
インターフェイスの CoS 値の設定
QoS は、trusted ポートおよび untrusted ポートで受信したタグなしフレームに、 mls qos cos インターフェイス コンフィギュレーション コマンドで指定された CoS 値を割り当てます。
デフォルトのポート CoS 値を定義する場合、またはポート上のすべての着信パケットにデフォルトの CoS 値を割り当てる場合には、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
設定するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 3 |
mls qos cos { default-cos | override } |
デフォルトのポート CoS 値を設定します。 • default-cos には、ポートに割り当てるデフォルトの CoS 値を指定します。パケットがタグなしの場合、デフォルトの CoS 値がパケットの CoS 値になります。CoS 値に指定できる範囲は 0 ~ 7 です。デフォルト値は 0 です。 • 着信パケットにすでに設定されている信頼状態を変更し、すべての着信パケットにデフォルトのポート CoS 値を適用する場合は、 override キーワードを使用します。デフォルトでは、CoS の上書きはディセーブルに設定されています。 特定のポートに届くすべての着信パケットに、他のポートからのパケットより高い、または低いプライオリティを与える場合には、 override キーワードを使用します。ポートがすでに DSCP、CoS、または IP precedence を信頼するように設定されている場合でも、設定済みの信頼状態がこのコマンドによって上書き変更され、すべての着信 CoS 値にこのコマンドで設定されたデフォルトの CoS 値が割り当てられます。着信パケットがタグ付きの場合、入力ポートで、ポートのデフォルト CoS を使用してパケットの CoS 値が変更されます。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻す場合は、 no mls qos cos { default-cos | override } インターフェイス コンフィギュレーション コマンドを使用します。
ポート セキュリティを確保するための信頼境界機能の設定
一般的なネットワークでは、Cisco IP Phone をスイッチ ポートに接続して(QoS ドメイン内のポートの信頼状態を参照)、電話の背後からデータ パケットを生成する装置をカスケードします。Cisco IP Phone では、音声パケット CoS レベルをハイ プライオリティ(CoS=5)にマーキングし、データ パケットをロー プライオリティ(CoS=0)にマーキングすることで、共有データ リンクを通して音声品質を保証しています。電話からスイッチに送信されたトラフィックは通常 802.1Q ヘッダーを使用するタグでマーキングされています。ヘッダーには VLAN 情報およびパケットのプライオリティになる CoS の 3 ビット フィールドが含まれています。
ほとんどの Cisco IP Phone 設定では、電話からスイッチへ送信されるトラフィックは、音声トラフィックがネットワーク内の他のタイプのトラフィックに対して適切にプライオリティ付けがされていることを保証するように信頼されています。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用して、ポートで受信されるすべてのトラフィックの CoS ラベルを信頼するように、電話が接続されているスイッチ ポートを設定します。 mls qos trust dscp インターフェイス コンフィギュレーション コマンドを使用して、ポートで受信されるすべてのトラフィックの DSCP ラベルを信頼するように、電話が接続されているルーテッド ポートを設定します。
信頼設定により、ユーザが電話をバイパスして PC を直接スイッチに接続する場合に、ハイ プライオリティ キューの誤使用を避けるのにも信頼境界機能を使用できます。信頼境界機能を使用しないと、(信頼性のある CoS 設定により)PC が生成した 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 モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
cdp run |
CDP をグローバルにイネーブルにします。デフォルトでは、CDP がイネーブルに設定されています。 |
ステップ 3 |
interface interface-id |
Cisco IP Phone に接続するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 4 |
cdp enable |
ポート上で CDP をイネーブルに設定します。デフォルトでは、CDP がイネーブルに設定されています。 |
ステップ 5 |
mls qos trust cos mls qos trust dscp |
Cisco IP Phone から受信したトラフィックの CoS 値を信頼するようにスイッチ ポートを設定します。 または Cisco IP Phone から受信したトラフィックのDSCP値を信頼するようにルーテッド ポートを設定します。 デフォルトでは、ポートは trusted ではありません。 |
ステップ 6 |
mls qos trust device cisco-phone |
Cisco IP Phone が信頼性のあるデバイスであることを指定します。 信頼境界機能と自動 QoS( auto qos voip インターフェイス コンフィギュレーション コマンド)を同時にイネーブルにはできません。両者は相互に排他的です。 |
ステップ 7 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 8 |
show mls qos interface |
設定を確認します。 |
ステップ 9 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
信頼境界機能をディセーブルにするには、 no mls qos trust device インターフェイス コンフィギュレーション コマンドを使用します。
DSCP トランスペアレント モードのイネーブル化
スイッチでは、トランスペアレントな DSCP 機能がサポートされています。この機能は発信パケットの DSCP フィールドのみに作用します。トランスペアレントな DSCP 機能のデフォルト設定はディセーブルです。スイッチは着信パケットの DSCP フィールドを変更します。発信パケットの DSCP フィールドは、ポートの信頼設定、ポリシングとマーキング、および DSCP/DSCP 変換マップを含め、QoS 設定によって異なります。
no mls qos rewrite ip dscp コマンドを用いてトランスペアレントな DSCP 機能をイネーブルにした場合、スイッチは着信パケットの DSCP フィールドを変更しません。そのため、発信パケットの DSCP フィールドの内容はパケットの着信時と同じです。
トランスペアレントな DSCP 設定にかかわらず、スイッチはパケット内部の DSCP 値を変更し、トラフィックのプライオリティを提示する CoS 値を生成します。また、スイッチは内部の DSCP 値を使用して、出力キューおよびスレッシュホールドも選択します。
イネーブル EXEC モードを開始して、トランスペアレントな DSCP 機能をスイッチでイネーブルにするには、次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
QoS をグローバルにイネーブルにします。 |
ステップ 3 |
no mls qos rewrite ip dscp |
トランスペアレントな DSCP 機能をイネーブルにします。スイッチが IP パケットの DSCP フィールドを変更しないよう設定されます。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface [ interface-id ] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
トランスペアレントな DSCP 機能をディセーブルにして、信頼設定または ACL に基づいてスイッチに DSCP 値を変更させる設定にするには、 mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを使用します。
no mls qos グローバル コンフィギュレーション コマンドで、QoS をディセーブルにした場合、CoS および DSCP 値は変更されません(デフォルトの QoS 設定)。
no mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを入力してトランスペアレントな DSCP 機能をイネーブルにし、 mls qos trust [ cos | dscp ] インターフェイス コンフィギュレーション コマンドを入力した場合、トランスペアレントな DSCP 機能はイネーブルのまま変更されません。
別の QoS ドメインとの境界ポートでの DSCP 信頼状態の設定
2 つの異なる QoS ドメインを管理しているときに、その QoS ドメイン間の IP トラフィックに QoS 機能を実装する場合は、ドメインの境界に位置するスイッチ ポートを DSCP trusted ステートに設定できます(図29-12を参照)。それにより、受信ポートでは DSCP trusted 値をそのまま使用し、QoS の分類手順が省略されます。2 つのドメインで異なる DSCP 値が使用されている場合は、他のドメイン内での定義に一致するように一連の DSCP 値を変換する DSCP/DSCP 変換マップを設定できます。
図29-12 別の QoS ドメインとの境界ポートの DSCP 信頼状態
ポート上に DSCP trusted ステートを設定して、DSCP/DSCP 変換マップを変更するには、イネーブル EXEC モードで次の手順を実行します。両方の QoS ドメインに一貫した方法でマッピングするには、両方のドメイン内のポート上で次の手順を実行する必要があります。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp |
DSCP/DSCP 変換マップを変更します。 デフォルトの DSCP/DSCP 変換マップは、着信 DSCP 値を同じ DSCP 値にマッピングする空のマップです。 • dscp-mutation-name には、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成できます。 • in-dscp には、最大 8 つの DSCP 値をスペースで区切って入力します。さらに、 to キーワードを入力します。 • out-dscp には、DSCP 値を 1 つ入力します。 DSCP の範囲は 0 ~ 63 です。 |
ステップ 3 |
interface interface-id |
信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 4 |
mls qos trust dscp |
DSCP trusted ポートとして入力ポートを設定します。デフォルトでは、ポートは trusted ではありません。 |
ステップ 5 |
mls qos dscp-mutation dscp-mutation-name |
指定された DSCP trusted 入力ポートにマップを適用します。 dscp-mutation-name には、ステップ 2 で作成した変換マップ名を指定します。 1 つの入力ポートに複数の DSCP/DSCP 変換マップを設定できます。 |
ステップ 6 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 7 |
show mls qos maps dscp-mutation |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
ポートを trusted 以外のステートに戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。デフォルトの DSCP/DSCP 変換マップ値に戻すには、 no mls qos map dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、ポートを DSCP trusted ステートに設定して、着信 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
ACL によるトラフィックの分類
IP 標準 ACL または IP 拡張 ACL を使用することによって、IP トラフィックを分類できます。非 IP トラフィックは、レイヤ 2 MAC ACL を使用することによって分類できます。
IP トラフィック用に IP 標準 ACL を作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
IP 標準 ACL を作成し、必要な回数だけコマンドを繰り返します。 • access-list-number には、アクセス リスト番号を入力します。有効範囲は 1 ~ 99 および 1300 ~ 1999 です。 • permit キーワードを使用すると、条件が一致した場合に特定のトラフィック タイプを許可します。 deny キーワードを使用すると、条件が一致した場合に特定のトラフィック タイプを拒否します。 • source には、パケットの送信元となるネットワークまたはホストを指定します。 any キーワードは 0.0.0.0 255.255.255.255 の省略形として使用できます。 • (任意) source-wildcard には、source に適用されるワイルドカード ビットをドット付き 10 進表記で入力します。無視するビット位置には1を入れます。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙の拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
|
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show access-lists |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
アクセス リストを削除するには、 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 モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
access-list access-list-number { deny | permit } protocol source source-wildcard destination destination-wildcard |
IP 拡張 ACL を作成し、必要な回数だけコマンドを繰り返します。 • access-list-number には、アクセス リスト番号を入力します。有効範囲は 100 ~ 199 および 2000 ~ 2699 です。 • permit キーワードを使用すると、条件が一致した場合に特定のトラフィック タイプを許可します。 deny キーワードを使用すると、条件が一致した場合に特定のトラフィック タイプを拒否します。 • protocol には、IP プロトコルの名前または番号を入力します。疑問符(?)を使用すると、使用できるプロトコル キーワードのリストが表示されます。 • source には、パケットの送信元となるネットワークまたはホストを指定します。指定するには、ドット付き 10 進表記を使用するか、 source 0.0.0.0 source-wildcard 255.255.255.255 の省略形として any キーワードを使用するか、 source 0.0.0.0 を表すキーワードとして host を使用します。 • source-wildcard では、無視するビット位置に 1 を入力することによって、ワイルドカード ビットを指定します。ワイルドカードを指定するには、ドット付き 10 進表記を使用するか、 source 0.0.0.0 source-wildcard 255.255.255.255 の省略形として any キーワードを使用するか、 source 0.0.0.0 を表すキーワードとして host を使用します。 • destination には、パケットの宛先となるネットワークまたはホストを指定します。 destination および destination-wildcard には、 source および source-wildcard での説明と同じオプションを使用できます。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙の拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
|
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show access-lists |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。
次に、任意の送信元から、DSCP 値が 32 に設定されている任意の宛先への IP トラフィックを許可する 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 モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mac access-list extended name |
リスト名を指定し、レイヤ 2 MAC ACL を作成します。 このコマンドを入力すると、拡張 MAC ACL コンフィギュレーション モードに切り替わります。 |
ステップ 3 |
{ permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
条件が一致した場合に許可または拒否するトラフィック タイプを指定します。必要な回数だけコマンドを入力します。 • src-MAC-addr には、パケットの送信元となるホストの MAC アドレスを指定します。MAC アドレスを指定するには、16 進形式(H.H.H)を使用するか、 source 0.0.0、 source-wildcard ffff.ffff.ffff の省略形として any キーワードを使用するか、 source 0.0.0 を表すキーワードとして host を使用します。 • mask では、無視するビット位置に 1 を入力することによって、ワイルドカード ビットを指定します。 • dst-MAC-addr には、パケットの宛先となるホストの MAC アドレスを指定します。MAC アドレスを指定するには、16 進形式(H.H.H)を使用するか、 source 0.0.0、 source-wildcard ffff.ffff.ffff の省略形として any キーワードを使用するか、 source 0.0.0 を表すキーワードとして host を使用します。 • (任意) type mask には、Ethernet II または SNAP でカプセル化されたパケットの Ethertype 番号を指定して、パケットのプロトコルを識別します。 type の範囲は 0 ~ 65535 です。通常は 16 進数で指定します。 mask には、一致をテストする前に Ethertype に適用される 無視(don’t care) ビットを入力します。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙の拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
|
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show access-lists [ access-list-number | access-list-name ] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
アクセス リストを削除するには、 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 グローバル コンフィギュレーション コマンドを使用します。クラス マップでは、さらに細かく分類するために、特定のトラフィック フローと照合する条件を定義します。match ステートメントには、ACL、IP precedence 値、DSCP 値などの条件を指定できます。一致条件は、クラス マップ コンフィギュレーション モードの中で match ステートメントを 1 つ入力することによって定義します。
(注) class ポリシー マップ コンフィギュレーション コマンドを使用することによって、ポリシー マップの作成時にクラス マップを作成することもできます。詳細については、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」を参照してください。
クラス マップを作成し、トラフィックを分類するための一致条件を定義するには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
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 name { permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
IP トラフィック用の IP 標準または IP 拡張 ACL、または非 IP トラフィック用のレイヤ 2 MAC ACL を作成し、必要な回数だけコマンドを繰り返します。 詳細については、「ACL によるトラフィックの分類」を参照してください。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙の拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
|
ステップ 3 |
class-map [ match-all | match-any ] class-map-name |
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。 デフォルトでは、クラス マップは定義されていません。 • (任意)このクラス マップ配下のすべての一致ステートメントの論理 AND を実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。 • (任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。この場合は、1 つまたは複数の一致条件と一致する必要があります。 • class-map-name には、クラス マップ名を指定します。 match-all と match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。
(注) クラス マップごとにサポートされる match コマンドは 1 つだけなので、match-all でも match-any でもキーワードの機能は変わりません。
|
ステップ 4 |
match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list } |
トラフィックを分類するための一致条件を定義します。 デフォルトでは、一致条件は定義されていません。 クラス マップごとにサポートされる一致条件は 1 つだけです。また、クラス マップごとにサポートされる ACL は 1 つだけです。 • access-group acl-index-or-name には、ステップ 2 で作成した ACL の番号または名前を指定します。 • ip dscp dscp-list には、着信パケットと照合する IP DSCP 値を 8 つまで入力します。各値はスペースで区切ります。指定できる範囲は 0 ~ 63 です。 • ip precedence ip-precedence-list には、着信パケットと照合する IP precedence 値を 8 つまで入力します。各値はスペースで区切ります。指定できる範囲は 0 ~ 7 です。 |
ステップ 5 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 6 |
show class-map |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、 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
ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング
作用対象となるトラフィック クラスを指定するポリシー マップを、物理ポート上に設定できます。トラフィック クラスの CoS 値、DSCP 値、または IP precedence 値を信頼するアクション、トラフィック クラスに特定の DSCP 値または IP precedence 値を設定するアクション、および一致する各トラフィック クラスにトラフィック帯域幅限度を指定するアクション(ポリサー)や、トラフィックが不適合な場合の対処法を指定するアクション(マーキング)などを指定できます。
ポリシー マップには、次の特性もあります。
• 1 つのポリシー マップに、それぞれ異なる一致条件とポリサーを指定した複数のクラス ステートメントを指定できます。
• 1 つのポートから受信されたトラフィック タイプごとに、別々のポリシー マップ クラスを設定できます。
• ポリシー マップの信頼状態およびポートの信頼状態は互いに排他的であり、最後に設定された方が有効となります。
物理ポートでポリシー マップを設定する場合には、次の注意事項に従ってください。
• 入力ポートごとに付加できるポリシー マップは、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 ポリシー マップ クラス コンフィギュレーション コマンドを使用します。
• set ip dscp コマンドを入力する、または使用した場合、このコマンドはスイッチによってそのコンフィギュレーション内で set dscp コマンドに変更されます。
• Cisco IOS Release 12.2(25)SED 以降では、 set ip precedence または set precedence コマンドを使用してパケットの IP precedence 値を新しい値に設定しなおすことができます。この設定は、スイッチ設定では、 set ip precedence として表示されます。
イネーブル EXEC モードを開始して、ポリシー マップを作成するには、次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
class-map [ match-all | match-any ] class-map-name |
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。 デフォルトでは、クラス マップは定義されていません。 • (任意)このクラス マップ配下のすべての一致ステートメントの論理 AND を実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。 • (任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。この場合は、1 つまたは複数の一致条件と一致する必要があります。 • class-map-name には、クラス マップ名を指定します。 match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。
(注) クラス マップごとにサポートされる match コマンドは 1 つだけなので、match-all でも match-any でもキーワードの機能は変わりません。
|
ステップ 3 |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 デフォルトでは、ポリシー マップは定義されていません。 ポリシー マップのデフォルトの動作では、パケットが IP パケットの場合は DSCP が 0 に、パケットがタグ付きの場合は CoS が 0 に設定されます。ポリシングは実行されません。 |
ステップ 4 |
class class-map-name |
トラフィックの分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトでは、ポリシー マップ クラス マップは定義されていません。 すでに class-map グローバル コンフィギュレーション コマンドを使用してトラフィック クラスが定義されている場合は、このコマンドで class-map-name にその名前を指定します。 |
ステップ 5 |
trust [ cos | dscp | ip-precedence ] |
CoS ベースまたは DSCP ベースの QoS ラベルを生成するために QoS が使用する信頼状態を設定します。
(注) このコマンドと set コマンドは、同じポリシー マップ内で相互に排他的になります。trust コマンドを入力する場合は、ステップ 6 へ進んでください。
デフォルトでは、ポートは trusted ではありません。このコマンドを入力するときにキーワードを指定しない場合、デフォルトは dscp になります。 キーワードの意味は次のとおりです。 • cos ― QoS は受信した CoS 値やデフォルトのポート CoS 値、および CoS/DSCP マップを使用して、DSCP 値を抽出します。 • dscp ― QoS は入力パケットの DSCP 値を使用して、DSCP 値を抽出します。タグ付きの非 IP パケットの場合、QoS は受信した CoS 値を使用して DSCP 値を抽出します。タグなしの非 IP パケットの場合、QoS はデフォルトのポート CoS 値を使用して DSCP 値を抽出します。いずれの場合も、DSCP 値は CoS/DSCP マップから抽出されます。 • ip-precedence ― QoS は入力パケットの IP precedence 値および IP precedence/DSCP マップを使用して、DSCP 値を抽出します。タグ付きの非 IP パケットの場合、QoS は受信した CoS 値を使用して DSCP 値を抽出します。タグなしの非 IP パケットの場合、QoS はデフォルトのポート CoS 値を使用して DSCP 値を抽出します。いずれの場合も、DSCP 値は CoS/DSCP マップから抽出されます。 詳細については、「CoS/DSCP マップの設定」を参照してください。 |
ステップ 6 |
set { dscp new-dscp | ip precedence new-precedence } |
パケットに新しい値を設定することによって、IP トラフィックを分類します。 • dscp new-dscp には、分類されたトラフィックに割り当てる新しい DSCP 値を入力します。指定できる範囲は 0 ~ 63 です。 • ip precedence new-precedence には、分類されたトラフィックに割り当てる新しい IP precedence 値を入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 7 |
police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }] |
分類したトラフィックにポリサーを定義します。 デフォルトでは、ポリサーは定義されていません。サポートされているポリサー数については、「標準 QoS 設定時の注意事項」を参照してください。 • rate-bps には、平均トラフィック レートをビット/秒(bps)で指定します。設定できる範囲は、1000000 ~ 1000000000 です。ポリシング レートの設定は、1 Mbps 単位で増減が可能です。1 Mbps 未満のポリシング レートを設定しようとすると、正しい値を入力するように指示するプロンプトが表示されます。 • burst-byte には、標準バースト サイズをバイト数で指定します。指定できる範囲は 8000 ~ 1000000 です。 • (任意)速度を超過した場合に実行するアクションを指定します。パケットを廃棄する場合は、 exceed-action drop キーワードを使用します。(ポリシング済み DSCP マップを使用して)DSCP 値をマークダウンし、パケットを送信するには、 exceed-action policed-dscp-transmit キーワードを使用します。詳細については、「ポリシング済み DSCP マップの設定」を参照してください。 |
ステップ 8 |
exit |
ポリシー マップ コンフィギュレーション モードに戻ります。 |
ステップ 9 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 10 |
interface interface-id |
ポリシー マップを適用するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 11 |
service-policy input policy-map-name |
ポリシーマップ名を指定し、入力ポートに適用します。 サポートされるポリシー マップは、入力ポートごとに 1 つだけです。 |
ステップ 12 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 13 |
show policy-map [ policy-map-name [ class class-map-name ]] |
設定を確認します。 |
ステップ 14 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、 no class class-map-name ポリシー マップ コンフィギュレーション コマンドを使用します。untrusted ステートに戻るには、 no trust ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられた DSCP または IP precedence 値を削除するには、 no set { 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 インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポリシー マップを作成し、入力ポートに結合する例を示します。この設定では、IP 標準 ACL でネットワーク 10.1.0.0 からのトラフィックを許可します。この分類にトラフィックが一致した場合、着信パケットの DSCP 値が信頼されます。一致したトラフィックが平均トラフィック レート(48000 bps)、および標準バースト サイズ(8000 バイト)を超過している場合は、(ポリシング済み DSCP マップに基づいて)DSCP はマークダウンされて、送信されます。
Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255
Switch(config)# class-map ipclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# policy-map flow1t
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 1000000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# service-policy input flow1t
次に、2 つの許可ステートメントを指定してレイヤ 2 MAC ACL を作成し、入力ポートに結合する例を示します。最初の許可ステートメントでは、MAC アドレスが 0001.0000.0001 であるホストから、MAC アドレスが 0002.0000.0001 であるホストへのトラフィックが許可されます。2 番めの許可ステートメントでは、MAC アドレスが 0001.0000.0002 であるホストから、MAC アドレスが 0002.0000.0002 であるホストへの、Ethertype が XNS-IDP のトラフィックのみが許可されます。
Switch(config)# mac access-list extended maclist1
Switch(config-ext-mac)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
Switch(config-ext-mac)# exit
Switch(config)# mac access-list extended maclist2
Switch(config-ext-mac)# permit 0001.0000.0003 0.0.0 0002.0000.0003 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0004 0.0.0 0002.0000.0004 0.0.0 aarp
Switch(config-ext-mac)# exit
Switch(config)# class-map macclass1
Switch(config-cmap)# match access-group maclist1
Switch(config-cmap)# exit
Switch(config)# policy-map macpolicy1
Switch(config-pmap)# class macclass1
Switch(config-pmap-c)# set dscp 63
Switch(config-pmap-c)# exit
Switch(config-pmap)# class macclass2 maclist2
Switch(config-pmap-c)# set dscp 45
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# mls qos trust cos
Switch(config-if)# service-policy input macpolicy1
集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、異なるポリシーマップまたはポート間で集約ポリサーを使用することはできません。
集約ポリサーを作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos aggregate-policer aggregate-policer-name rate-bps burst-byte exceed-action { drop | policed-dscp-transmit } |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 デフォルトでは、集約ポリサーは定義されていません。サポートされているポリサー数については、「標準 QoS 設定時の注意事項」を参照してください。 • aggregate-policer-name には、集約ポリサーの名前を指定します。 • rate-bps には、平均トラフィック レートをビット/秒(bps)で指定します。設定できる範囲は、1000000 ~ 1000000000 です。ポリシング レートの設定は、1 Mbps 単位で増減が可能です。1 Mbps 未満のポリシング レートを設定しようとすると、正しい値を入力するように指示するプロンプトが表示されます。 • burst-byte には、標準バースト サイズをバイト数で指定します。指定できる範囲は 8000 ~ 1000000 です。 • 速度を超過した場合に実行するアクションを指定します。パケットを廃棄する場合は、 exceed-action drop キーワードを使用します。(ポリシング済み DSCP マップを使用して)DSCP 値をマークダウンし、パケットを送信するには、 exceed-action policed-dscp-transmit キーワードを使用します。詳細については、「ポリシング済み DSCP マップの設定」を参照してください。 |
ステップ 3 |
class-map [ match-all | match-any ] class-map-name |
必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、「クラス マップによるトラフィックの分類」を参照してください。 |
ステップ 4 |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 詳細については、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」を参照してください。 |
ステップ 5 |
class class-map-name |
トラフィックの分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 詳細については、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」を参照してください。 |
ステップ 6 |
police aggregate aggregate-policer-name |
同じポリシー マップ内の複数のクラスに集約ポリサーを適用します。 aggregate-policer-name には、ステップ 2 で指定した名前を入力します。 |
ステップ 7 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 8 |
interface interface-id |
ポリシー マップを適用するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 9 |
service-policy input policy-map-name |
ポリシーマップ名を指定し、入力ポートに適用します。 サポートされるポリシー マップは、入力ポートごとに 1 つだけです。 |
ステップ 10 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 11 |
show mls qos aggregate-policer [ aggregate-policer-name ] |
設定を確認します。 |
ステップ 12 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
指定された集約ポリサーをポリシー マップから削除するには、 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-cmap)# exit
Switch(config)# class-map ipclass2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map aggflow1
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class ipclass2
Switch(config-pmap-c)# set dscp 56
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# service-policy input aggflow1
CoS/DSCP マップの設定
CoS/DSCP マップを使用して、着信パケットの CoS 値を、QoS がトラフィックのプライオリティを表すために内部使用する DSCP 値にマッピングします。
表29-12 に、デフォルトの CoS/DSCP マップを示します。
表29-12 デフォルトの CoS/DSCP マップ
|
|
0 |
0 |
1 |
8 |
2 |
16 |
3 |
24 |
4 |
32 |
5 |
40 |
6 |
48 |
7 |
56 |
これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。
CoS/DSCP マップを変更するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map cos-dscp dscp1...dscp8 |
CoS/DSCP マップを変更します。 dscp1...dscp8 には、CoS 値 0 ~ 7 に対応する 8 つの DSCP 値を入力します。各 DSCP 値はスペースで区切ります。 DSCP の範囲は 0 ~ 63 です。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps cos-dscp |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトのマップに戻すには、 no mls qos 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
--------------------------------
dscp: 10 15 20 25 30 35 40 45
IP precedence/DSCP マップの設定
着信パケットの IP precedence 値を、QoS がトラフィックのプライオリティを表すために内部使用する DSCP 値にマッピングするには、IP precedence/DSCP マップを使用します。
表29-13 に、デフォルトの IP precedence/DSCP マップを示します。
表29-13 デフォルトの IP precedence/DSCP マップ
|
|
0 |
0 |
1 |
8 |
2 |
16 |
3 |
24 |
4 |
32 |
5 |
40 |
6 |
48 |
7 |
56 |
これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。
IP precedence/DSCP マップを変更するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map ip-prec-dscp dscp1...dscp8 |
IP precedence/DSCP マップを変更します。 dscp1...dscp8 には、IP precedence 値 0 ~ 7 に対応する 8 つの DSCP 値を入力します。各 DSCP 値はスペースで区切ります。 DSCP の範囲は 0 ~ 63 です。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps ip-prec-dscp |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトのマップに戻すには、 no mls qos 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: 10 15 20 25 30 35 40 45
ポリシング済み DSCP マップの設定
ポリシングおよびマーキング アクションによって得られる新しい値に DSCP 値をマークダウンするには、ポリシング済み DSCP マップを使用します。
デフォルトのポリシング済み DSCP マップは、着信 DSCP 値を同じ DSCP 値にマッピングする空のマップです。
ポリシング済み DSCP マップを変更するには、イネーブ ルEXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map policed-dscp dscp-list to mark-down-dscp |
ポリシング済み DSCP マップを変更します。 • dscp-list には、最大 8 つの DSCP 値をスペースで区切って入力します。さらに、 to キーワードを入力します。 • mark-down-dscp には、対応するポリシング済み(マークダウンされる)DSCP 値を入力します。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps policed-dscp |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトのマップに戻すには、 no mls qos 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
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 01 02 03 04 05 06 07 08 09
1 : 10 11 12 13 14 15 16 17 18 19
2 : 20 21 22 23 24 25 26 27 28 29
3 : 30 31 32 33 34 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 00 00 00 00 00 00 00 00 58 59
(注) このポリシング済み DSCP マップでは、マークダウンされる DSCP 値が表形式で示されています。d1 カラムは元の DSCP の最上位桁、d2 行は元の DSCP の最下位桁を示します。d1 と d2 の交点にある値が、マークダウンされる値です。たとえば、元の DSCP 値が 53 の場合、マークダウンされる DSCP 値は 0 です。
DSCP/CoS マップの設定
4 つの出力キューのうち 1 つを選択するために使用される CoS 値を生成するには、DSCP/CoS マップを使用します。
表29-14 に、デフォルトの DSCP/CoS マップを示します。
表29-14 デフォルトの DSCP/CoS マップ
|
|
0 ~ 7 |
0 |
8 ~ 15 |
1 |
16 ~ 23 |
2 |
24 ~ 31 |
3 |
32 ~ 39 |
4 |
40 ~ 47 |
5 |
48 ~ 55 |
6 |
56 ~ 63 |
7 |
これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。
DSCP/CoS マップを変更するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map dscp-cos dscp-list to cos |
DSCP/CoS マップを変更します。 • dscp-list には、最大 8 つの DSCP 値をスペースで区切って入力します。さらに、 to キーワードを入力します。 • cos には、DSCP 値と対応する CoS 値を入力します。 DSCP の範囲は 0 ~ 63、CoS の範囲は 0 ~ 7 です。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps dscp-to-cos |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトのマップに戻すには、 no mls qos 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
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 00 01
1 : 01 01 01 01 01 01 00 02 02 02
2 : 02 02 02 02 00 03 03 03 03 03
3 : 03 03 00 04 04 04 04 04 04 04
4 : 00 05 05 05 05 05 05 05 00 06
5 : 00 06 06 06 06 06 07 07 07 07
(注) 上記の DSCP/CoS マップでは、CoS 値が表形式で示されています。d1 カラムは DSCP の最上位桁、d2 行は DSCP の最下位桁を示します。d1 と d2 の交点にある値が CoS 値です。たとえば、この DSCP/CoS マップでは、DSCP 値が 08 の場合、対応する CoS 値は 0 です。
DSCP/DSCP 変換マップの設定
2 つの QoS ドメインで異なる DSCP 定義が使用されている場合は、一方のドメインの一連の DSCP 値を変換して、もう一方のドメインの定義に一致させる DSCP/DSCP 変換マップを使用します。DSCP/DSCP 変換マップは、QoS 管理ドメインの境界にある受信ポート適用します(入力変換)。
入力変換により、パケットの DSCP 値が新しい DSCP 値で上書きされ、QoS はこの新しい値を使用してパケットを処理します。スイッチは新しい DSCP 値を使用して、ポートからパケットを送信します。
1 つの入力ポートに複数の DSCP/DSCP 変換マップを設定できます。デフォルトの DSCP/DSCP 変換マップは、着信 DSCP 値を同じ DSCP 値にマッピングする空のマップです。
DSCP/DSCP 変換マップを変更するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp |
DSCP/DSCP 変換マップを変更します。 • dscp-mutation-name には、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成できます。 • in-dscp には、最大 8 つの DSCP 値をスペースで区切って入力します。さらに、 to キーワードを入力します。 • out-dscp には、DSCP 値を 1 つ入力します。 DSCP の範囲は 0 ~ 63 です。 |
ステップ 3 |
interface interface-id |
マップを適用するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスとして、物理ポートも指定できます。 |
ステップ 4 |
mls qos trust dscp |
DSCP trusted ポートとして入力ポートを設定します。デフォルトでは、ポートは trusted ではありません。 |
ステップ 5 |
mls qos dscp-mutation dscp-mutation-name |
指定された DSCP trusted 入力ポートにマップを適用します。 dscp-mutation-name には、ステップ 2 で指定した変換マップ名を入力します。 |
ステップ 6 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 7 |
show mls qos maps dscp-mutation |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトのマップに戻すには、 no mls qos 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
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 10 10
1 : 10 10 10 10 14 15 16 17 18 19
2 : 20 20 20 23 24 25 26 27 28 29
3 : 30 30 30 30 30 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 50 51 52 53 54 55 56 57 58 59
(注) 上記の DSCP/DSCP 変換マップでは、変換される値が表形式で示されています。d1 列は元の DSCP の最上位桁、d2 カラムは元の DSCP の最下位桁を示します。d1 と d2 の交点の値が、変換される値です。たとえば、DSCP 値が 12 の場合、対応する変換される値は 10 です。
入力キューへの DSCP または CoS 値のマッピングおよび WTD スレッシュホールドの設定
トラフィックにプライオリティを設定するには、特定の DSCP または CoS を持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。
DSCP または CoS 値を入力キューにマッピングして、WTD スレッシュホールドを設定するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input dscp-map queue queue-id threshold threshold-id dscp1...dscp8 または mls qos srr-queue input cos-map queue queue-id threshold threshold-id cos1...cos8 |
DSCP または CoS 値を入力キューおよびスレッシュホールド ID にマッピングします。 デフォルトでは、DSCP 値 0 ~ 39 および 48 ~ 63 はキュー 1 およびスレッシュホールド 1 にマッピングされます。DSCP 値 40 ~ 47 はキュー 2 およびスレッシュホールド 1 にマッピングされます。 デフォルトでは、CoS 値 0 ~ 4、6、および 7 はキュー 1 およびスレッシュホールド 1 にマッピングされます。CoS 値 5 はキュー 2 およびスレッシュホールド 1 にマッピングされます。 • queue-id に指定できる範囲は、1 ~ 2 です。 • threshold-id の範囲は、1 ~ 3 です。スレッシュホールド 3 の廃棄スレッシュホールドの割合は定義済みであり、キューフル ステートに設定されます。 • dscp1...dscp8 には、最大 8 つの値をスペースで区切って入力します。指定できる範囲は 0 ~ 63 です。 • cos1...cos8 には、最大 8 つの値をスペースで区切って入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 3 |
mls qos srr-queue input threshold queue-id threshold-percentage1 threshold-percentage2 |
入力キューに 2 つの WTD スレッシュホールドの割合(スレッシュホールド 1 および 2 用)を割り当てます。デフォルトでは、両方のスレッシュホールドが 100% に設定されています。 • queue-id に指定できる範囲は、1 ~ 2 です。 • threshold-percentage1 threshold-percentage2 の範囲は、1 ~ 100 です。各値はスペースで区切ります。 各スレッシュホールド値は、キューに割り当てられたキュー記述子の総数の割合です。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos maps |
設定を確認します。 DSCP 入力キュー スレッシュホールド マップは、表形式で表示されます。d1 カラムは DSCP 値の最上位桁、d2 行は DSCP 値の最下位桁を示します。d1 および d2 値の交点がキュー ID およびスレッシュホールド ID です。たとえば、キュー 2 およびスレッシュホールド 1(02-01)のようになります。 CoS 入力キュー スレッシュホールド マップでは、先頭行に CoS 値、2 番めの行に対応するキュー ID およびスレッシュホールド ID が示されます。たとえば、キュー 2 およびスレッシュホールド 2(2-2)のようになります。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの CoS 入力キュー スレッシュホールド マップまたはデフォルトの DSCP 入力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue input cos-map 、または no mls qos srr-queue input dscp-map グローバル コンフィギュレーション コマンドを使用します。デフォルトの WTD スレッシュホールドの割合に戻すには、 no mls qos srr-queue input threshold queue-id グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP 値 0 ~ 6 を、入力キュー 1 およびスレッシュホールド 1(廃棄スレッシュホールドが 50%)にマッピングする例を示します。DSCP 値 20 ~ 26 は、入力キュー 1 およびスレッシュホールド 2(廃棄スレッシュホールドが 70%)にマッピングされます。
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 1 0 1 2 3 4 5 6
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 2 20 21 22 23 24 25 26
Switch(config)# mls qos srr-queue input threshold 1 50 70
この例では、50% の WTD スレッシュホールドが DSCP 値(0 ~ 6)に割り当てられており、70% の WTD スレッシュホールドが割り当てられた DSCP 値(20 ~ 26)よりも先に廃棄されます。
入力キュー間のバッファ スペースの割り当て
2 つのキュー間で入力バッファを分割する比率を定義します(スペース量を割り当てます)。バッファ割り当てと帯域幅割り当てにより、パケットが廃棄される前にバッファに格納できるデータ量が制御されます。
入力キュー間にバッファを割り当てるには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input buffers percentage1 percentage2 |
入力キュー間にバッファを割り当てます。 デフォルトでは、バッファの 90% がキュー 1 に、残りの 10% がキュー 2 に割り当てられます。 percentage1 percentage2 の範囲は、0 ~ 100 です。各値はスペースで区切ります。 キューが着信バースト トラフィックをすべて処理できるように、バッファを割り当てる必要があります。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos interface buffer または show mls qos input-queue |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no mls qos srr-queue input buffers グローバル コンフィギュレーション コマンドを使用します。
次に、バッファ スペースの 60% を入力キュー 1 に、40% を入力キュー 2 に割り当てる例を示します。
Switch(config)# mls qos srr-queue input buffers 60 40
入力キュー間の帯域幅の割り当て
入力キュー間に割り当てられる使用可能な帯域幅の量を指定する必要があります。重みの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。帯域幅割り当てとバッファ割り当てにより、パケットが廃棄される前にバッファに格納できるデータ量を制御できます。入力キューで SRR が動作するのは、共有モードの場合のみです。
入力キュー間に帯域幅を割り当てるには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input bandwidth weight1 weight2 |
入力キューに共有ラウンド ロビン重みを割り当てます。 weight1 および weight2 のデフォルト設定は 4 です(帯域幅の 1/2 が 2 つのキューで等しく共有されます)。 weight1 および weight2 の範囲は、1 ~ 100 です。各値はスペースで区切ります。 SRR は、 mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードの指定に従って、設定済みの重み用のプライオリティ キューを処理します。次に、SRR は mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定された重みに従い、残りの帯域幅を両方の入力キューと共有し、キューを処理します。詳細については、「入力プライオリティ キューの設定」を参照してください。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos interface queueing または show mls qos input-queue |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no mls qos srr-queue input bandwidth グローバル コンフィギュレーション コマンドを使用します。
次に、キューに入力帯域幅を割り当てる例を示します。プライオリティ キューはディセーブルです。キュー 1 に割り当てられた共有帯域幅の比率は 25/(25+75)、キュー 2 の比率は 75/(25+75) です。
Switch(config)# mls qos srr-queue input priority-queue 2 bandwidth 0
Switch(config)# mls qos srr-queue input bandwidth 25 75
入力プライオリティ キューの設定
プライオリティ キューは、迅速な処理が必要なトラフィック(遅延およびジッタを最小に抑える必要のある音声トラフィックなど)にのみ使用します。
プライオリティ キューは、オーバーサブスクライブ リングに激しいネットワーク トラフィックが発生している状況で(バックプレーンが伝達できるトラフィックよりも多くのトラフィックが発生し、キューがいっぱいになって、フレームが廃棄されている場合)、遅延およびジッタを軽減するように帯域幅の一部が保証されています。
SRR は、 mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードの指定に従って、設定済みの重み用のプライオリティ キューを処理します。次に、SRR は mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定された重みに従い、残りの帯域幅を両方の入力キューと共有し、キューを処理します。
プライオリティ キューを設定するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input priority-queue queue-id bandwidth weight |
キューをプライオリティ キューとして割り当て、内部リングが輻輳している場合にリングの帯域幅を保証します。 デフォルトのプライオリティ キューはキュー 2 です。このキューには帯域幅の 10% が割り当てられています。 • queue-id に指定できる範囲は、1 ~ 2 です。 • bandwidth weight には、内部リングの帯域幅に対するパーセントを割り当てます。指定できる範囲は 0 ~ 40 です。値が大きい場合はリング全体に影響が及び、パフォーマンスが低下することがあるため、保証できる帯域幅の量は制限されています。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos interface queueing または show mls qos input-queue |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルト設定に戻すには、 no mls qos srr-queue input priority-queue queue-id グローバル コンフィギュレーション コマンドを使用します。プライオリティ キューイングをディセーブルにするには、帯域幅の重みを 0 に設定します。たとえば、 mls qos srr-queue input priority-queue queue-id bandwidth 0 を入力します。
次に、キューに入力帯域幅を割り当てる例を示します。キュー 1 は、帯域幅の 10% が割り当てられているプライオリティ キューです。キュー 1 および 2 に割り当てられている帯域幅比率は 4/(4+4) です。SRR は、10% の帯域幅が設定されたキュー 1(プライオリティ キュー)を最初に処理します。次に、SRR は残りの 90% の帯域幅をキュー 1 と 2 にそれぞれ 45% ずつ割り当てて、各キューで等しく共有します。
Switch(config)# mls qos srr-queue input priority-queue 1 bandwidth 10
Switch(config)# mls qos srr-queue input bandwidth 4 4
設定時の注意事項
緊急キューをイネーブルにする、または SRR の重みに基づいて出力キューを処理する場合は、次の注意事項に従ってください。
• 出力緊急キューがイネーブルの場合、キュー 1 に対応する SRR シェーピング重みおよび共有重みは上書きされます。
• 出力緊急キューがディセーブルで、SRR シェーピング重みおよび共有重みが設定されている場合、シェーピング モードはキュー 1 の共有モードを無効にし、SRR はこのキューをシェーピング モードで処理します。
• 出力緊急キューがディセーブルで、SRR シェーピング重みが設定されていない場合、SRR はこのキューを共有モードで処理します。
出力キューセットに対するバッファ スペースの割り当ておよび WTD スレッシュホールドの設定
バッファのアベイラビリティの保証、WTD スレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold グローバル コンフィギュレーション コマンドを使用します。
各スレッシュホールド値はキューに割り当てられたメモリの割合です。この値を指定するには、 mls qos queue-set output qset-id buffers allocation1 ... allocation4 グローバル コンフィギュレーション コマンドを使用します。キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
メモリ割り当てを設定し、キューセットのスレッシュホールドを廃棄するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos queue-set output qset-id buffers allocation1 ... allocation4 |
キューセットにバッファを割り当てます。 デフォルトでは、すべての割り当て値は 4 つのキューに均等にマッピングされます(25、25、25、25)。各キューにはバッファ スペースの 1/4 が割り当てられます。 • qset-id には、キューセットの ID を入力します。有効範囲は 1 ~ 2 です。各ポートはキューセットに属し、キューセットでは、ポートごとに 4 つの出力キューの特性がすべて定義されます。 • allocation1 ... allocation4 には、キューセット内のキューごとに 1 つずつ、合計 4 つのパーセントを指定します。 allocation1 、 allocation3 、 allocation4 の場合、使用可能な範囲は 0 ~ 99 です。 allocation2 の場合、使用可能な範囲は 1 ~ 100 です(CPU バッファを含む)。 トラフィックの重要性に従ってバッファを割り当てます。たとえば、プライオリティが最も高いトラフィックを格納するキューに、大きな割合のバッファを割り当てます。 |
ステップ 3 |
mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold |
WTD スレッシュホールドを設定し、バッファのアベイラビリティを保証し、キューセット(ポートごとに 4 つの出力キュー)の最大メモリ割り当てを設定します。 デフォルトでは、キュー 1、3、および 4 の WTD スレッシュホールドは 100% に設定されています。キュー 2 の WTD スレッシュホールドは 200% に設定されています。キュー 1、2、3、および 4 の専用スレッシュホールドは 50% に設定されています。すべてのキューの最大スレッシュホールドは 400% に設定されています。 • qset-id には、ステップ 2 で指定したキューセットの ID を入力します。指定できる範囲は 1 ~ 2 です。 • queue-id には、コマンドの実行対象となるキューセット内の特定のキューを入力します。指定できる範囲は 1 ~ 4 です。 • drop-threshold1 drop-threshold2 には、キューの割り当てメモリの割合として表される 2 つの WTD スレッシュホールドを指定します。指定できる範囲は 1 ~ 400% です。 • reserved-threshold には、割り当てメモリの割合として表されるキューに保証(確保)されるメモリ サイズを入力します。指定できる範囲は 1 ~ 100% です。 • maximum-threshold を指定すると、いっぱいになったキューが確保量を超えるバッファを取得できるようになります。この値は、共通プールが空でない場合に、パケットが廃棄されるまでキューが使用できるメモリの最大値です。指定できる範囲は 1 ~ 400% です。 |
ステップ 4 |
interface interface-id |
発信トラフィックのポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 5 |
queue-set qset-id |
キューセットにポートをマッピングします。 qset-id には、ステップ 2 で指定したキューセットの ID を入力します。指定できる範囲は 1 ~ 2 です。デフォルトは 1 です。 |
ステップ 6 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 7 |
show mls qos interface [ interface-id ] buffers |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no mls qos queue-set output qset-id buffers グローバル コンフィギュレーション コマンドを使用します。デフォルトの WTD スレッシュホールドの割合に戻すには、 no mls qos queue-set output qset-id threshold [ queue-id ] グローバル コンフィギュレーション コマンドを使用します。
次に、ポートをキューセット 2 にマッピングする例を示します。出力キュー 1 にはバッファ スペースの 40%、出力キュー 2、3、および 4 には 20% が割り当てられます。キュー 2 の廃棄スレッシュホールドは割り当てメモリの 40 および 60% に設定され、割り当てメモリの 100% が保証(確保)され、パケットが廃棄されるまでこのキューが使用できる最大メモリが 200% に設定されます。
Switch(config)# mls qos queue-set output 2 buffers 40 20 20 20
Switch(config)# mls qos queue-set output 2 threshold 2 40 60 100 200
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# queue-set 2
出力キューおよびスレッシュホールド ID への DSCP または CoS 値のマッピング
トラフィックにプライオリティを設定するには、特定の DSCP または CoS を持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
DSCP または CoS 値を出力キューおよびスレッシュホールド ID にマッピングするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue output dscp-map queue queue-id threshold threshold-id dscp1...dscp8 または mls qos srr-queue output cos-map queue queue-id threshold threshold-id cos1...cos8 |
DSCP または CoS 値を出力キューおよびスレッシュホールド ID にマッピングします。 デフォルトでは、DSCP 値 0 ~ 15 はキュー 2 およびスレッシュホールド 1 に、DSCP 値 16 ~ 31 はキュー 3 およびスレッシュホールド 1 に、DSCP 値 32 ~ 39 および 48 ~ 63 はキュー 4 およびスレッシュホールド 1 に、DSCP 値 40 ~ 47 はキュー 1 およびスレッシュホールド 1 にマッピングされます。 デフォルトでは、CoS 値 0 および 1 はキュー 2 およびスレッシュホールド 1 に、CoS 値 2 および 3 はキュー 3 およびスレッシュホールド 1 に、CoS 値 4、6、および 7 はキュー 4 およびスレッシュホールド 1 に、CoS 値 5 はキュー 1 およびスレッシュホールド 1 にマッピングされます。 • queue-id に指定できる範囲は、1 ~ 4 です。 • threshold-id の範囲は、1 ~ 3 です。スレッシュホールド 3 の廃棄スレッシュホールドの割合は定義済みであり、キューフル ステートに設定されます。 • dscp1...dscp 8 には、最大 8 つの値をスペースで区切って入力します。指定できる範囲は 0 ~ 63 です。 • cos1...cos8 には、最大 8 つの値をスペースで区切って入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps |
設定を確認します。 DSCP 出力キュー スレッシュホールド マップは、表形式で表示されます。d1 カラムは DSCP 値の最上位桁、d2 行は DSCP 値の最下位桁を示します。d1 および d2 値の交点がキュー ID およびスレッシュホールド ID です。たとえば、キュー 2 およびスレッシュホールド 1(02-01)のようになります。 CoS 出力キュー スレッシュホールド マップでは、先頭行に CoS 値、2 番めの行に対応するキュー ID およびスレッシュホールド ID が示されます。たとえば、キュー 2 およびスレッシュホールド 2(2-2)のようになります。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの DSCP 出力キュー スレッシュホールド マップまたはデフォルトの CoS 出力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue output dscp-map または no mls qos srr-queue output cos-map グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP 値 10 および 11 を出力キュー 1 およびスレッシュホールド 2 にマッピングする例を示します。
Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 2 10 11
出力キューでの SRR シェーピング重みの設定
各キューに割り当てられる使用可能な帯域幅の量を指定できます。重みの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。
出力キューにシェーピング重み、共有重み、またはその両方を設定できます。バースト性のあるトラフィックを平滑化したり、出力をより滑らかにしたりするには、シェーピングを使用します。シェーピング重みの詳細については、 「SRR のシェーピングおよび共有」を参照してください。共有重みの詳細については、「出力キューでの SRR 共有重みの設定」を参照してください。
ポートにマッピングされた 4 つの出力キューにシェーピング重みを割り当てて、帯域幅のシェーピングをイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
発信トラフィックのポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
srr-queue bandwidth shape weight1 weight2 weight3 weight4 |
出力キューに SRR 重みを割り当てます。 デフォルトでは、weight1 は 25に、weight2、weight3、および weight4 は 0 に設定されています。これらのキューは共有モードです。 weight1 weight2 weight3 weight4 には、シェーピングされるポートの割合を制御する重みを入力します。このキューのシェーピング帯域幅は、インバース比率(1/ weight )によって制御されます。各値はスペースで区切ります。指定できる範囲は 0 ~ 65535 です。 重み 0 を設定した場合は、対応するキューが共有モードで動作します。 srr-queue bandwidth shape コマンドで指定された重みは無視されます。 srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドで各キューに指定された重みが有効になります。シェーピングおよび共有の両方に対して同じキューセットのキューを設定した場合は、必ず番号が最も小さいキューにシェーピングを設定してください。 シェーピング モードは共有モードより優先されます。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface interface-id queueing |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no srr-queue bandwidth shape インターフェイス コンフィギュレーション コマンドを使用します。
次に、キュー 1 に帯域幅のシェーピングを設定する例を示します。キュー 2、3、および 4 の重み比率は 0 に設定されているため、これらのキューは共有モードで動作します。キュー 1 の帯域幅の重みは 1/8(12.5%)です。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth shape 8 0 0 0
出力キューでの SRR 共有重みの設定
共有モードでは、各キューは設定された重みに従って帯域幅を共有します。帯域幅に対してはこのレベルが保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、共有ができます。共有の場合、キューからパケットを取り出す頻度は重みの比率によって制御されます。重みの絶対値は関係ありません。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
ポートにマッピングされた 4 つの出力キューに共有重みを割り当てて、帯域幅の共有をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
発信トラフィックのポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
srr-queue bandwidth share weight1 weight2 weight3 weight4 |
出力キューに SRR 重みを割り当てます。 デフォルトでは、4 つの重みがすべて 25 です(各キューに帯域幅の 1/4 が割り当てられています)。 weight1 weight2 weight3 weight4 には、SRR スケジューラがパケットを送信する頻度の比率を制御する重みを入力します。各値はスペースで区切ります。指定できる範囲は 1 ~ 255 です。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface interface-id queueing |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドを使用します。
次に、出力ポートで稼働している SRR スケジューラの重み比率を設定する例を示します。4 つのキューが使用され、共有モードで各キューに割り当てられる帯域幅の比率は、キュー 1、2、3、および 4 に対して 1/(1+2+3+4)、2/(1+2+3+4)、3/(1+2+3+4)、および 4/(1+2+3+4) になります(それぞれ、10、20、30、および 40%)。つまり、キュー 4 の帯域幅はキュー 1 の 4 倍、キュー 2 の 2 倍、キュー 3 の約 1.3 倍です。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth share 1 2 3 4
出力緊急キューの設定
特定のパケットに対して他のパケットより高いプライオリティを付与するには、出力緊急キューにキューイングします。SRR は、このキューが空になるまで処理してから他のキューを処理します。
出力緊急キューをイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
スイッチ上で QoS をイネーブルにします。 |
ステップ 3 |
interface interface-id |
出力ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 4 |
priority-queue out |
デフォルトでディセーブルに設定されている出力緊急キューをイネーブルにします。 このコマンドを設定すると、SRR に参加するキューは 1 つ少なくなるため、SRR 重みおよびキュー サイズの比率が影響を受けます。つまり、 srr-queue bandwidth shape または srr-queue bandwidth share コマンドの weight1 が無視されます(比率計算に使用されません)。 |
ステップ 5 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
出力緊急キューをディセーブルにするには、 no priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。
次に、SRR 重みが設定されている場合に出力緊急キューをイネーブルにする例を示します。出力緊急キューは、設定済みの SRR 重みよりも優先されます。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth shape 25 0 0 0
Switch(config-if)# srr-queue bandwidth share 30 20 25 25
Switch(config-if)# priority-queue out
出力インターフェイスの帯域幅の制限
出力ポートの帯域幅は制限できます。たとえば、カスタマーが高速リンクの一部しか費用を負担しない場合は、帯域幅をその量に制限できます。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
出力ポートの帯域幅を制限するには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
レートを制限するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
srr-queue bandwidth limit weight1 |
ポートの上限となるポート速度の割合を指定します。指定できる範囲は 10 ~ 90 です。 デフォルトでは、ポートのレートは制限されず、100% に設定されています。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface [ interface-id ] queueing |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルにエントリを保存します。 |
デフォルトの設定に戻すには、 no srr-queue bandwidth limit インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポートの帯域幅を 80% に制限する例を示します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth limit 80
このコマンドを 80% に設定すると、ポートは該当期間の 20% はアイドルになります。回線レートは接続速度の 80%(800 Mbps)に低下します。ハードウェアは 6 を増分値として回線レートを調整するため、これらの値は正確ではありません。