CBQoS (Class Based Quality of Service) は、IOS 12.4(4)T 以上の一部であり、Cisco の機能セットです。 この情報は、SNMP を使って取得され、適用されているQoS ポリシーおよび企業ネットワーク内のクラスベースのトラフィックパターンに関する情報を提供します。
ネットワークはベストエフォートでの配信を基本として機能します。 その中では、全てのトラフィックは、同じ優先度と、配信される等しい可能性を有しています。 結果的に過密状態にあるとき、全てのトラフィックは等しく捨てられる可能性を有しています。 QoS は、ネットワークトラフィックを選択し、相対的な重要性にしたがって優先順位を決め、優先度でインデックス付けした取扱いを提供するために、過密回避を使います。 CBQoS は、ネットワークトラフィックにより用いられる帯域幅に制限を設けることもできます。 CBQoS は、ネットワークパフォーマンスをより予測可能とし、帯域幅をより有効的にすることができます。 ネットワーク管理者は、CBQoS ポリシーを実装し、ビジネスクリティカルなアプリケーションが、ネットワーク上で最高優先度を享受することを保証します。 CBQoS は、使っているリンク上で適用されるポリシーおよび様々なクラスのトラフィックでのトラフィックパターンに、掘り下げた可視性を与えます。 前ポリシー、後ポリシーおよび、キューイングステータスとともに、異なるトラフィッククラスでのドロップにより、QoS 設定の有効性を評価することができます。 トラフィッククラスの生成
ルーター上でのポリシー設定
まず、CBQoS はルーター上で手作業で有効化する必要があります。 トラフィックポリシーは、企業タイプとそのビジネス要件に依存します(大容量音声トラフィック、大容量ドキュメント転送、大容量ストリーミングビデオトラフィックなど)。 ポリシー(分類)は、クラスマップおよびポリシーマップに基づいて実行することが可能です。 クラスマップは、特定のトラフィック(あるいはクラス)を識別し、名前付けするために用いる機構です。
クラスマップは、特定のトラフィックフローに対して適合し、さらに分類するために用いられる基準を定義します。 基準は、ACL により定義されるアクセスグループの適合、あるいはDSCP やIP 優先権値の特定の一覧の適合を含むことができます。 分類したいトラフィックのタイプがひとつ以上ある場合、別のクラスマップを生成し、異なる名称を用いることができます。 ひとつのパケットが、クラスマップ基準に対して適合された後、QoS アクションをポリシーマップを介して指定することができます。 ポリシーマップは、トラフィッククラスに関してQoS アクションを指定します。 アクションは、トラフィッククラスにおけるCoS あるいはDSCP の値の信任、トラフィッククラスにおける特定DSCP あるいはIP 優先権値の設定、あるいは、トラフィック帯域幅制限や、トラフィックがプロファイル外にあるときに取るアクションの指定を含みます。 ポリシーマップを有効にできる前に、それをインターフェースに付加する必要があります。
パケットが分類され、それに対して割り当てられた内部的なDSCP 値 を持った後、ポリシー付けし、マーク付けする処理がなされる必要があります。 ポリシー付けは、トラフィックに関して帯域を指定するポリシーの生成を含みます。 限界を越えたパケットは、プロファイル外にあるか、規定外です。 各ポリサーは、プロファイル外のパケットに関して取るアクションを指定します。 マーカーにより実行される、これらのアクションは、修正なしでのパケット通過、パケットのドロップ、設定可能なポリシー付けDSCP マップから取得される新規DSCP 値を持つパケットのマーキングを含みます。
ルーターからのポリシー詳細のフェッチング
QoS 設定タブの下で、ポリシーを適用されたインターフェースが、ルーター名および特定の入力側および出力側のポリシーとともに表示されます。 NetFlow Analyzer が、各ルーターレベルで適用されるポリシーを認識するのを容易にするため、アイコンをクリックします。 これにより、Read コミュニティおよびポートの詳細とともに、全てのルーターの一覧のある新規ウィンドウが呼び出されます。 "ステータスの確認"あるいは"全てのステータスの確認"をクリックすることで、個々のインターフェースについてルーターからポリシー詳細をフェッチすることが可能です。
ポリシー詳細がルーターからフェッチされると、以下のメッセージが表示されます。 "更新されたポリシー詳細" ポリシーが何も見つからない場合は、"利用可能ではありません"メッセージが表示されます。
N
ルーター上でポリシーを設定し、ポリシー詳細をフェッチングした後、ポーリングを開始することができます。 "インターフェースの修正"ボタンをクリックし、ポーリングが実施されるインターフェースを選択/非選択します。 ポーリングパラメーター、すなわち、ポーリング間隔およびタイムアウトを修正することも可能です。 ポーリング間隔は、5、10、15、25、30、60 の中から任意の値を取ることができます。 タイムアウトは、5、10、15 の中から任意の値を取ることができます。 ポーリングを実施する必要のあるインターフェースの一覧を選択/非選択し、ポーリングパラメーターを設定した後に、"更新"をクリックして、ポーリングアクションを開始します。
トラフィッククラスを生成するために、class-map コマンドを使います。 class-map コマンドの文法は、以下のようになります。
class-map [match-any | match-all] class-nameno class-map [match-any | match-all] class-name
match-all および match-any はキーワードです。
match-all およびmatch-any キーワードは、1つ以上の適合基準がトラフィッククラス内に設定されている場合にのみ、指定する必要があります。
match-all キーワードは、トラフィッククラス中の適合基準の全てが、指定されたトラフィッククラス内でパケットが配置されるように満たされる必要のあるとき、用いられます。
match-anyキーワードは、トラフィッククラス中の適合基準のひとつが、指定されたトラフィッククラス内でパケットが配置されるように満たされる必要のあるとき、用いられます。
match-all キーワードとmatch-any キーワードのどちらも指定されていない場合、トラフィッククラスが、match-all キーワードと調和する方法で振舞います。
match not コマンドについて
match not コマンドは、適合基準として用いるために特定の適合パラメーターを識別するというよりはむしろ、パケットがクラスのメンバーとして分類されるのを防ぐ適合基準を指定するのに使われます。 例えば、match not qos-group 6 コマンドがトラフィッククラスを設定する間に問題となった場合、QoS group 6 は、成功適合基準と考えられない唯一のQoS グループ値となります。 他の全てのQoS group 値は、成功適合基準になり得ます。
処理
適合基準を包含するトラフィッククラスを生成するには、class-map コマンドを用いてトラフィッククラス名を指定します。 次いで、ひとつ以上のmatch コマンドを用いて、適切な適合基準を指定します。 指定する基準に適合するパケットは、トラフィッククラス中に置かれます。
以下の手順で、いくつかのmatch コマンドが一覧表示されます。 特定の利用可能なmatch コマンドは、プラットフォームおよびCisco IOS リリースにより変わります。 利用可能なmatch コマンドに関しては、お使いのプラットフォームやCisco IOS リリースに関するCisco IOS コマンドリファレンスを参照ください。 |
|
コマンドあるいはアクション |
目的 |
手順 1 |
Router> enable |
特権EXEC モードを有効にします。 |
手順2 |
Router # configure terminal |
global configuration モードを入力します。 |
手順 3 |
Router(config)# class-map [match-all | match-any] class-name |
クラスマップとともに用いられるクラスを生成し、class-map configuration モードを入力します。 クラスマップは、指定されたクラスに対してパケットを適合するのに用いられます。
メモ: match-all キーワードは、全ての適合基準が満たされる必要があることを指定します。 match-any キーワードは、適合基準のうちのひとつが満たされる必要があることを指定します。 |
|
以下のひとつ以上のmatch コマンドを適用可能として用います。 |
|
手順 4 |
Router(config-cmap)# match access-group {access-group | name access-group-name |
(オプション)指定されたアクセス制御リスト(ACL)に基づき、クラスマップ用の適合基準を設定します。
メモ: メモ:access-list コマンドのオプションlog キーワードで設定されたアクセスリストは、トラフィッククラスを設定した際にはサポートされません。 |
手順 5 |
Router(config-cmap)# match any |
(オプション)全てのパケットに関して成功適合基準であるクラスマップに関して、適合基準を設定します。 |
手順 6 |
Router config-cmap)# match class-map class-name |
(オプション)(お互いの間でネストしているトラフィッククラス[ネストされたクラスマップ]に関して)適合基準として使用されるトラフィッククラスの名称を指定します。 |
手順 7 |
Router(config-cmap)# match cos cos-number |
(オプション)レイヤー2 のサービスのクラス(CoS) マーキングに基づくパケットに適合させます。 |
手順 8 |
Router(config-cmap)# match destination-address mac address |
(オプション)適合基準として宛先メディアアクセス制御(MAC) アドレスを用います。 |
手順 9 |
Router(config-cmap)# match discard-class class-number |
(オプション)一定の廃棄クラスのパケットに適合させます。 |
手順 10 |
Router(config-cmap)# match [ip] dscp dscp-value [dscp-value dscp-value dscp-value dscp-value dscp-value dscp-value dscp-value] |
(オプション)特定のIP で区別されたサービスコードポイント(DSCP) 値を適合基準として識別します。 8 つのDSCP 値までひとつの適合ステートメントに含むことができます。 |
手順 11 |
Router(config-cmap)# match field protocol protocol-field {eq [mask] | neq [mask] | gt | lt | range range | regex string} value [next next-protocol] |
(オプション)プロトコルヘッダ記述ファイル(PHDFs) で定義されるフィールドに基づいて、クラスマップに関して適合基準を設定します。 |
手順 12 |
Router(config-cmap)# match fr-dlci dlci-number |
(オプション)クラスマップ中の適合基準としてフレームリレーデータリンク接続識別子(DLCI) 数を指定します。 |
手順 13 |
Router(config-cmap)# match input-interface interface-name |
(オプション)適合基準として指定された入力インターフェースを用いるためクラスマップを設定します。 |
手順 14 |
Router(config-cmap)# match ip rtp starting-port-number port-range |
(オプション)適合基準としてリアルタイムプロトコル(RTP)プロトコルポートを用いるためクラスマップを設定します。 |
手順 15 |
Router(config-cmap)# match mpls experimental mpls-values |
(オプション)適合基準としてマルチプロトコルラベルスイッチング(MPLS) 実験(EXP) フィールドの指定された値を用いるため、クラスマップを設定します。 |
手順 16 |
Router(config-cmap)# match mpls experimental topmost values |
(オプション)最上位ラベルでのMPLS EXP 値を適合させます。 |
手順 17 |
Router(config-cmap)# match not match-criteria |
(オプション)不成功適合基準として用いるための単一適合基準値を指定します。 |
手順18 |
Router(config-cmap)# match packet length max maximum-length-value [min minimum-length-value] | min minimum-length-value [max maximum-length-value]} |
(オプション)クラスマップ中で適合基準としてIP ヘッダ中のレイヤー3 のパケット長を指定します。 |
手順19 |
Router(config-cmap)# match port-type {routed | switched} |
{routed | switched} (オプション)クラスマップに関してポートタイプに基づいてトラフィックに適合させます。 |
手順 20 |
Router(config-cmap)# match [ip] precedence precedence-value [precedence-value precedence-value precedence-value] |
(オプション)適合基準としてIP 優先権値を識別します。 |
手順 21 |
Router(config-cmap)# match protocol protocol-name |
(オプション)指定されたプロトコルに基づいてクラスマップに関して適合基準を設定します。
メモ: NBAR にとって既知のプロトコルによってトラフィックに適合させるためのネットワークベースアプリケーション認識(NBAR) を設定するのに用いられる、分離したmatch protocol (NBAR) コマンドがあります。 |
手順 22 |
Router(config-cmap)# match protocol citrix [app application-name-string] [ica-tag ica-tag-value] |
(オプション)Citrix トラフィックを適合させるため、NBAR を設定します。 |
手順 23 |
Router(config-cmap)# match protocol fasttrack file-transfer "regular-expression" |
(オプション)FastTrack ピア・ツー・ピアトラフィックを適合させるため、NBAR を設定します。 |
手順 24 |
Router(config-cmap)# match protocol gnutella file-transfer "regular-expression" |
(オプション)Gnutella ピア・ツー・ピアトラフィックを適合させるため、NBAR を設定します。 |
手順 25 |
Router(config-cmap)# match protocol http [url url-string | host hostname-string | mime MIME-type | c-header-field c-header-field-string | s-header-field s-header-field-string] |
(オプション)URL、ホスト、多目的インターネットメール拡張(MIME) タイプ、あるいはHTTP パケットヘッダにおけるフィールドにより、ハイパーテキスト転送プロトコル(HTTP) トラフィックに適合させるため、NBAR を設定します。 |
手順 26 |
Router(config-cmap)# match protocol rtp [audio | video | payload-type payload-string] |
(オプション)リアルタイム転送プロトコル(RTP) トラフィックを適合させるため、NBAR を設定します。 |
手順 27 |
Router(config-cmap)# match qos-groupqos-group-value |
qos-group-value (オプション)適合基準として特定のQoS グループ値を識別します。 |
手順 28 |
Router(config-cmap)# match source-address mac address-destination |
(オプション)適合基準として送信元MAC アドレスを用います。 |
手順 29 |
Router(config-cmap)# match start {l2-start | l3-start} offset number size number {eq | neq | gt | lt | range range | regex string} {value [value2] | [string]} |
(オプション)データグラムヘッダ(レイヤー2)あるいはネットワークヘッダ(レイヤー3)に基づいて、クラスマップに関する適合基準を設定します。 |
手順 30 |
Router(config-cmap)# match tag {tag-name} |
(オプション)適合基準としてタグタイプを指定します。 |
手順 31 |
Route(config-cmap)# exit |
(オプション)class-map configuration モードから出ます。 |
トラフィックポリシー(ときどき、ポリシーマップとしても参照されます)を設定するため、policy-map コマンドを用います。 policy-map コマンドにより、トラフィックポリシー名を指定することができ、policy-map configuration モードに入ることができます(トラフィックポリシー付けかトラフィックシェーピングのようなQoS 機能を有効化するための前提条件)。 トラフィックポリシーをトラフィッククラスに関連付けます。
トラフィッククラスとトラフィックポリシーを関連付ける。
policy-mapコマンドを用いた後、classコマンドを用いて、トラフィッククラス("トラフィッククラスの生成" セクションで生成された)をトラフィックポリシーと関連付けます。
class command の文法が以下のようになります。
class class-name
no class class-name
class-name 引数に関して、 トラフィッククラス("トラフィッククラスの生成" セクションの手順 3)を生成するためにclass-map コマンドを用いたときに生成されたクラスの名称を用います。
class コマンドを入力した後、自動的にpolicy-map class configuration モードにいます。 policy-map class configuration モードは、特定のQoS 機能を有効化するために用いられるモードです。
処理
トラフィックポリシー(あるいはポリシーマップ)を生成し、ひとつ以上のQoS 機能を有効化するため、以下の手順を実行します。
このプロシージャは、ひとつ以上のQoS 機能を有効化するために用いることのできる多くのコマンドを一覧表示します。 例えば、Class-Based Weighted Fair Queuing (CBWFQ)を有効にするために、bandwidth コマンドを用います。 全てのQoS 機能が全てのプラットフォーム、あるいは全てCisco IOS リリースで利用可能であるわけではありません。 利用可能な機能およびコマンドに関して、お使いのプラットフォームとCisco IOS ソフトウェアのバージョンに関するCisco IOS ドキュメントを参照ください。 |
|
コマンドあるいはアクション |
目的 |
手順 1 |
Router> enable |
特権EXEC モードを有効にします。 |
手順2 |
Router# configure terminal |
global configuration モードを入力します。 |
手順 3 |
Router(config)# policy-map policy-name |
トラフィックポリシーの名称を生成するか指定し、policy-map configuration モードに入ります。 |
手順 4 |
Router(config-pmap)# class {class-name |class-default} |
トラフィッククラス(以前、"トラフィッククラスの生成" セクションで生成した)の名称を指定し、policy-map class configuration モードに入ります。 |
|
用いたい特定のQoS 機能を有効にするため、以下のコマンドのうち、ひとつ以上を用います。 |
|
手順 5 |
Router(config-pmap-c)# bandwidth {bandwidth-kbps | percent percent } |
(オプション)混雑の期間にトラフィッククラスに最小の帯域の保証を指定します。 最小帯域保証をkbps 単位で、あるいは全ての利用可能の帯域の% で指定することができます。 |
手順 6 |
Router(config-pmap-c)# fair-queue number-of-queues |
(オプション)トラフィッククラスに関する保持するキューの数を指定します。 |
手順 7 |
Router (config-pmap-c)# police bps [burst-normal][burst-max] conform-action action exceed-action action [violate-action action] |
(オプション)トラフィックポリシー付けを設定します。 |
手順 8 |
Router(config-pmap-c)# priority {bandwidth-kbps | percent percentage} [burst] |
(オプション)ポリシーマップに属するトラフィックのクラスへ優先度を与えます。 |
手順 9 |
Router(config-pmap-c)# queue-limit number-of-packets |
(オプション)ポリシーマップで設定されたクラスに関してキューが保持する最大数のパケットを指定するか変更します。 |
手順 10 |
Router(config-pmap-c)# random-detect [dscp-based | prec-based] |
(オプション)Weighted Random Early Detection (WRED)、あるいは分散WRED (DWRED)を有効化します。 |
手順 11 |
Router(config-pmap-c)# set atm-clp |
(オプション)ポリシーマップを設定するとき、cell loss priority (CLP) を設定します。 |
手順 12 |
Router(config-pmap-c)# set cos {cos-value | from-field [table table-map-name]} |
(オプション)出力側パケットのレイヤー2 のサービスのクラス(CoS)を設定します。 |
手順 13 |
Router(config-pmap-c)# set discard-class value |
(オプション)廃棄クラスの値のパケットにマーク付けします。 |
手順 14 |
Router(config-pmap-c)# set [ip] dscp {dscp-value | from-field [table table-map-name]} |
(オプション)type of service (ToS) バイト数でのdifferentiated services code point (DSCP)値を設定すること で、パケットにマーク付けします。 |
手順 15 |
Router(config-pmap-c)# set fr-de |
(オプション)インターフェースを去る全てのトラフィックに関して、フレームリレーのフレームのアドレスフィールドを1 に設定しているdiscard eligible (DE)ビットを変更します。 |
手順 16 |
Router(config-pmap-c)# set precedence {precedence-value | from-field [table table-map-name]} |
(オプション)パケットヘッダ中の先行値を設定します。 |
手順 17 |
Route(config-pmap-c)# set mpls experimental value |
(オプション)パケットが指定されたポリシーマップに適合させる場合、MPLS ビットが設定される先の値を指定します。 |
手順18 |
Router (config-pmap-c)# set qos-group {group-id | from-field [table table-map-name]} |
(オプション)後でパケットを分類するために用いることができるQoS グループidentifier (ID)を設定します。 |
手順19 |
Router(config-pmap-c)# service-policy policy-map-name |
(オプション)(お互いの間での隣接トラフィックポリシー[階層トラフィックポリシー]に関する)適合基準として用いられるトラフィックポリシーの名称を指定します。 |
手順 20 |
Router(config-pmap-c)# shape {average | peak } mean-rate [burst-size [excess-burst-size ]] |
(オプション)指定したアルゴリズムに従って、トラフィックを指示されたビット率へ形成します。 |
手順 21 |
Router(config-pmap-c)# exit |
(オプション)policy-map class configuration モードから出ます。 |
インターフェースをトラフィックポリシーを適用するために、service-policyコマンドを用います。 service-policy コマンドによりトラフィックポリシーが適用される(インターフェースに入るパケットか、インターフェースを出ていくパケットのどちらかの上に)方向を指定することができます。
service-policy コマンドの文法は以下のようになります。
service-policy {input | output} policy-map-name
no service-policy {input | output} policy-map-name
処理
トラフィックポリシーをインターフェースに適用するために、以下の手順を実行します。
利用中のプラットフォームおよびCisco IOS リリースに依存して、トラフィックポリシーをATM permanent virtual circuit (PVC) サブインターフェース、フレームリレーdata-link connection identifier (DLCI)、あるいはインターフェースのもうひとつのタイプに適用することができます。 |
|
コマンドあるいはアクション |
目的 |
手順 1 |
Router> enable |
特権EXEC モードを有効にします。 |
手順2 |
Router# configure terminal |
global configuration モードに入ります。 |
手順 3 |
Router(config)# interface serial0 |
インターフェースタイプを設定し、interface configuration モードに入ります。 |
手順 4 |
Router(config-if)# service-policy output [type access-control] {input | output} policy-map-name |
ポリシーマップをインターフェースに適用します。 |
手順 5 |
Router (config-if)# exit |
(オプション)interface configuration モードから出ます。 |
インターフェースが互いに関連していない場合、トンネルインターフェースと物理インターフェースの上での複数トラフィックポリシーはサポートされません。 例えば、他のトラフィックポリシーが、トンネルインターフェースと関連していない物理インターフェースに適用されている場合、トンネルインターフェース上のトラフィックポリシーのみ正常に機能します。 |
トラフィッククラスあるいはトラフィックポリシーについての情報を表示および検証するには、以下の手順を実行します。
|
コマンドあるいはアクション |
目的 |
手順 1 |
Router> enable |
特権EXEC モードを有効にします。 |
手順2 |
Router# show class-map [type {stack | access-control}] [class-map-name] |
(オプション)全てのクラスマップおよびそれらの適合基準を表示します。 |
手順 3 |
Router# show policy-map policy-map class class-name |
(オプション)指定されたポリシーマップの指定されたクラスに関する設定を表示します。 |
手順 4 |
Router# show policy-map policy-map |
(オプション)指定されたポリシーマップに関する全てのクラスの設定、あるいは全ての既存のポリシーマップに関する全てのクラスの設定を表示します。 |
手順 5 |
Router# show policy-map interface [type access-control] type number [vc [vpi/] vci] [dlci dlci] [input | output] |
(オプション)指定されたインターフェースあるいはサブインターフェース上か、インターフェース上の指定されたpermanent virtual circuit (PVC)上のどちらかの全てのサービスポリシーに関して設定された全てのクラスのパケット統計を表示します。 |
手順 6 |
Router# exit |
(オプション)特権EXEC モードから出ます。 |
ポーリングが始まると、レポートはCBQoS タブの下で参照できます。 レポートは、トラフィックボリューム、パケット数、トラフィック速度、およびキューに関して利用可能です。 キューイングステータスとともに前ポリシー、後ポリシーおよび異なるトラフィッククラスでのドロップにより、QoS 設定の有効性を評価することができます。 個々のグラフは、前ポリシー、後ポリシーおよびドロップ済みに関して表示されます。 前ポリシーは、CBQoS ポリシーが適用される前の状態を参照します。 後ポリシーは、CBQoS ポリシーが適用された後の状態を参照します。
ドロップ済みは、ポリシー適用の結果としてドロップされたパケットに関する情報を与えます。
これらの情報に基づいて、ポリシーに対して適切な修正を行い、組織のビジネス目標に最も合ったものにすることができます。