[index] CentreCOM x900シリーズ・SwitchBlade x908 コマンドリファレンス 5.3.2

トラフィック制御 / Quality of Service


  - 用語一覧
  - 設定手順例
   - 受信時CoS値によるQoS設定例
   - ポリシーマップによるQoS設定例
  - ポリシーマップとクラスマップ
   - クラスマップ
   - ポリシーマップ
  - QoS処理フロー詳細
   - 受信時のQoS処理
    - 送信キューの割り当て
   - ポリシーマップによるQoS処理
    - トラフィック分類
    - プレマーキング
    - メータリングとポリシング
     - シングルレートポリサー
     - ツインレートポリサー
    - リマーキング
    - ポリシーベースルーティング
   - 送信時のQoS処理
    - キューへの格納
     - テールドロップの動作パラメーター
     - WREDの動作パラメーター
    - キューからの送信
     - 送信スケジューリング
     - シェーピング
  - ポリシーマップのフィルタリング機能
   - 設定例
  - 高負荷環境における制御パケットの優先設定
  - ポリシーマップのルール領域消費量

QoS(Quality of Service)関連機能について解説します。

本製品は、ユーザーが定義したポリシーマップに基づき、各トラフィッククラスに任意のサービスレベルを割り当てるポリシーベースQoS機能を備えています。

ポリシーマップでは、クラスマップを用いてパケットをトラフィッククラスに分類し、それぞれに異なるサービスレベル(帯域や優先度、経路)を割り当てることができます。クラスマップでは、IPアドレスやTCP/UDPポート、DSCP(DiffServ Code Point)などに基づいたトラフィック分類が可能です。
Note - 同一ポート上において、ハードウェアパケットフィルターとポリシーマップを併用することは可能です。該当ポートで受信したパケットの処理は、ハードウェアパケットフィルター、ポリシーマップの順に行われます。ただし、次項で述べる制限事項があるので注意してください。

Note - ハードウェアパケットフィルターにマッチしたパケットに対して、ポリシーマップによるQoSは適用されません(ここでの「マッチ」とは、破棄(deny)だけでなく明示的な転送許可(permitなど)も含みます)。ハードウェアパケットフィルターで破棄(deny)のアクションだけを使用する場合は両者を併用しても問題はありませんが、ハードウェアパケットフィルターで破棄以外のアクションを使用する場合は、ハードウェアパケットフィルターとポリシーマップを併用せずに、ポリシーマップのフィルタリング機能を使ってフィルタリングを行ってください。

用語一覧

ここでは、本解説編で使用する用語について簡単にまとめます。以後の説明でよくわからない言葉が出てきたときは、こちらをご参照ください。

Note - 以下に述べるのは本解説編の説明のための定義です。一般に使われている用語の意味とは必ずしも一致しない場合がありますのでご注意ください。

■ QoS 4属性

QoS処理の過程でパケットに割り当てられたり、参照・変更されたりする4つの属性値。CoS、DSCP、送信キュー、帯域クラスのこと。

CoSとDSCPは、パケットのヘッダーに格納されうる値。パケット受信時にすでに値がセットされている場合もあれば、されていない場合もある。いずれの場合も、QoS処理の過程で変更が可能。

一方、送信キューと帯域クラスは、パケット受信後に割り当てられる内部的な属性値。送信キューと帯域クラスの値が意味を持つのは、パケットを送信キューに格納するところまで。後続の機器にこれらの情報を(間接的ながら)伝えるには、CoSかDSCPを使う。

■ CoS

IEEE 802.1p Class of Serviceの略。VLANタグヘッダー内にある3ビットのフィールドで0〜7の値をとる。パケットを受信した機器に対して、パケット取り扱い時の優先度を示す目的で設けられている。802.1p対応機器は、この値に基づいてパケットの優先制御ができる。また、送信時に値を書き換えることで、後続の機器に対して、新たな優先度を指示できる。802.1pユーザープライオリティーとも呼ぶ。

■ DSCP

DiffServ Code Pointの略。IPヘッダーのDiffServフィールド(TOSフィールドとも呼ばれる)内にある6ビットのフィールドで0〜63の値をとる。パケットを受信した機器に対して、該当パケットのトラフィッククラスを示すために使われる。DSCP値の意味は各機器が独自に管理し、それに基づいてパケットを処理する。

パケットのDSCP値にしたがってQoSを制御するネットワーク上の領域をDiffServドメインと呼ぶ。DiffServドメインの入り口にあたる機器では、IPアドレスやプロトコル、ポート番号など、DSCP以外の条件をもとにパケットを分類し、DiffServドメイン内で規定されたDSCP値を付加する。これにより、DiffServドメイン内ではDSCP値による統一的なQoSの実施が可能になる。

■ 送信キュー

本製品のスイッチポートは、それぞれ8レベルの送信キュー(キュー番号0〜7)を備えている。各キューに対しては、最大キュー長、送信レート上限値、送信スケジューリング方式(PQ、WRR)、WRR時の重み付け値などを設定できる。PQ使用時は、番号の大きいキューほど優先度が高くなる

■ 帯域クラス

トラフィッククラスの帯域使用量に応じてパケットを3つのクラス(Green、Yellow、Red)に分類したもの。特定のパケットが、トラフィッククラスの帯域基準値にどの程度適合しているかを示す。帯域クラスGreenは、あまり帯域を使っていないため、優先的に帯域を割り当てることのできるクラス。帯域クラスYellowは、中程度の帯域使用量のクラス。帯域クラスRedは、最大帯域の設定を超過しているクラスであり、キューイング前に無条件で破棄する設定(ポリシング設定)、あるいは、送信キューの混雑時に優先的に破棄する設定(帯域クラスごとの送信キュー長設定)が可能。

■ 送信キュー割り当て

パケット受信後最初に行われるQoS処理。受信パケットがタグ付きの場合は、パケットのCoS値をキーとしてcos-queueマップを参照し、該当パケットの送信時に使用する送信キューの初期値を決定する。受信パケットがタグなしの場合は、受信ポートごとに設定可能なデフォルト送信キュー(初期値は2)を割り当てる。

■ cos-queueマップ

CoSと送信キューの対応表。各CoS値(0〜7)に対応する送信キュー番号(0〜7)が格納されている。受信したパケットがタグ付きだった場合に、パケットのCoS値に応じて、送信キューを割り当てるときに使う。cos-queueマップの設定はタグなしパケットには影響しない。

■ デフォルト送信キュー

スイッチポートで受信したタグなしパケットに割り当てる送信キュー。初期値は2。ポートごとに異なる値を設定できる。デフォルト送信キューの設定はタグ付きパケットには影響しない。

■ トラフィック分類

レイヤー2スイッチング処理の後に行われるQoS処理。クラスマップを用いて、受信パケットをトラフィッククラスに分類する。本処理は、受信ポートにポリシーマップが適用されているときだけ行われる。

■ クラスマップ

パケットをトラフィッククラスに分類するための条件を定義するもの。IPアドレス、TCP/UDPポート、CoS、DSCPなど、さまざまな条件を指定できる。クラスマップは単体で使用するものではなく、ポリシーマップにまとめあげた上で受信スイッチポートに適用して使用する。

■ ポリシーマップ

QoS機能の中核的設定要素。トラフィック分類、プレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティングの各処理を行うために必要な情報をひとつにまとめる機能を持つ。

ポリシーマップは、ユーザー定義のクラスマップ(複数)と暗黙のデフォルトクラスマップ(1つ)から構成され、各クラスマップによって分類・識別されたトラフィッククラスに対するプレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティングの各動作もあわせて指定することができる。

ポリシーマップをスイッチポートに適用すると、該当ポートで受信したパケットに対し、ポリシーマップ内のクラスマップによるトラフィック分類が行われ、トラフィッククラスごとに指定されたQoS処理が行われるようになる。

■ プレマーキング

トラフィッククラスに分類されたパケットに対して最初に行われるQoS処理。パケットのQoS 4属性を任意の値に書き換えることができる。それぞれの属性に対して具体的な値を指定する方法と、DSCP値をキーにpremark-dscpマップを参照して書き換える方法がある。本処理は、受信ポートにポリシーマップが適用されているときだけ行われる。

■ premark-dscpマップ

プレマーキング時に使用するQoS 4属性の書き換え表。プレマーキング前のDSCP値(0〜63)をキーとして、書き換え後の4属性値を調べるために使う。

■ メータリング

プレマーキング後に行われるQoS処理。ポリサーにおける帯域基準値の設定に基づき、各トラフィッククラスが実際にどの程度の帯域を使用しているかを計測し、その結果に基づいてパケットを3つの帯域クラス(Green、Yellow、Red)に分類する。本処理は、受信ポートにポリシーマップが適用されており、なおかつ、該当トラフィッククラスに対してポリサーが設定されているときだけ行われる。

■ ポリサー

トラフィッククラスの帯域使用量をあらかじめ設定された基準値以内に抑えるための仕組み。トラフィッククラスの帯域使用量を計測し、各パケットを帯域クラスに分類(メータリング)する。帯域クラス分類後の処理としては、帯域超過パケットの破棄(ポリシング)か、4属性の再書き換え(リマーキング)を選択できる。

ポリサーには、帯域基準値の数によってシングルレートとツインレートの2種類がある。また、特定のトラフィッククラスだけを対象とする個別ポリサーと、複数のトラフィッククラス全体を対象とする集約ポリサーがあるので、全部で4つの種類があることになる。

■ ポリシング

メータリング後に行われるQoS処理の1つ。メータリングの結果、帯域クラスRedに分類されたパケット(帯域超過パケット)を破棄することで、該当トラフィッククラスの帯域使用量をあらかじめ指定された帯域基準値の範囲内に抑える。本処理は、受信ポートにポリシーマップが適用されており、なおかつ、該当トラフィッククラスに対してポリサーが設定されているときだけ行われる。

■ リマーキング

メータリング後に行われるQoS処理の1つ。メータリングによって決定された帯域クラスの情報を利用して、パケットのQoS 4属性を再度変更することで、キュー格納時の動作に影響を与えたり、後続の機器に情報を提供したりする。書き換えはpoliced-dscpマップにしたがって行う。本処理は、受信ポートにポリシーマップが適用されており、なおかつ、該当トラフィッククラスに対してポリサーが設定されているときだけ行われる。

■ policed-dscpマップ

リマーキング時に使用するQoS 4属性の書き換え表。リマーキング前のDSCP値(0〜63)と帯域クラス(Green、Yellow、Red)をキーとして、書き換え後の4属性値を調べるために使う。

■ ポリシーベースルーティング

IPアドレス、TCP/UDPポートなどのさまざまな条件に基づいて、ルーティング対象パケットの転送先(ネクストホップ)を決定する処理。経路表を用いる通常のIPルーティングでは、転送先の判断に終点IPアドレスしか使われないが、ポリシーベースルーティングでは、クラスマップで指定可能なすべての条件を転送先の判断に使用できる。

■ 送信キュー管理

各種の転送判断やQoS処理を経て送信ポートに到着したパケットは、ここまでの処理で決定された送信キューに格納される。このとき、キューが混雑していた場合はパケットを廃棄するが、そのときの方式(送信キュー管理方式)にはテールドロップ方式とWRED方式の2種類がある。

■ テールドロップ方式

送信キュー管理方式の1つ。キューが混雑しているとき、帯域クラスごとに設定された最大キュー長を超過したパケットを無条件に破棄する。

■ WRED方式

Weighted Random Early Discardの略。送信キュー管理方式の1つ。キューが混雑しているとき、キュー長が上限に達する前にパケットを徐々に破棄していくことで、キューの枯渇を予防したり、トランスポート層の輻輳回避メカニズムを有効に機能させたりする機能を持つ。

■ 送信キューパラメーターセット

送信キュー管理におけるパケット廃棄動作を規定するパラメーターのセット。テールドロップ方式においては各キューの最大キュー長、WRED方式においては各キューにおける2種類の基準キュー長(破棄開始点、完全破棄点)と完全破棄点によるパケット破棄率などが主要なパラメーター。本製品のスイッチポートはそれぞれ8つの送信キューを持ち、さらに各キューでは帯域クラスごとに個別のパラメーターを持つことができるので、結果的に1つのパラメーターセットは、24組の(8キュー×3帯域クラス)パラメーターで構成されることになる。

■ REDカーブ

WRED方式におけるパケット廃棄動作を規定するパラメーターセット(によって描かれる線)。WREDでは、帯域クラスごとに2種類の基準キュー長(破棄開始点、完全破棄点)と完全破棄点におけるパケット破棄率を設定することで、きめ細やかなキュー管理を行う。この3つの設定値を図示したものがREDカーブであり、また逆にREDカーブを作成すると言えばこれらの3つの値を設定することを指す。なお、カーブと言うが実際のところ曲線ではない。

■ 送信スケジューリング

パケット処理の最終段階であるキューからの送信処理を、どのような順序で行うかを規定するもの。本製品では、PQ(絶対優先スケジューリング)とWRR(重み付きラウンドロビンスケジューリング)の2種類から選択できる。同一ポート内において、PQを用いるキューとWRRを用いるキューのグループを分けたり、WRRを2段階で行うような設定も可能。

■ PQ方式

Priority Queueingの略。送信スケジューリング方式の1つ。絶対優先スケジューリングとも言う。上位キュー(番号の大きなキュー)が空になるまで下位のキューからはパケットを送信しない。この方式はシンプルだが、上位キューに割り当てられるパケットが多いときに、下位キューのパケットが送信されなくなるという欠点がある。

■ WRR方式

Weighted Round Robinの略。送信スケジューリング方式の1つ。重み付きラウンドロビンスケジューリングとも言う。各キュー間の送信比率を設定し、その比率にしたがってパケットを送信する。たとえば、最上位キューから最下位キューまで、10:5:5:5:2:2:1:1の比率でパケットを送信するような設定が可能。この方式だと、上位キューに割り当てられるパケットが多いときでも、一定比率下位キューからパケットを送信することが可能。

■ シェーピング

パケットを送信するときの速度(送信間隔)を調整することで、ネットワークに流れ込むトラフィックを一定のレートにならす機能。シェーピングを行うには、送信キューあるいは送信スイッチポートに送信レートの上限値を設定する。

設定手順例

詳細な説明に入る前に、QoS機能の設定がどのようなものかを示すため、具体的な設定手順の例をいくつか示します。

個々の設定項目については後で詳しく説明するため、ここでは触れません。

受信時CoS値によるQoS設定例

受信パケットのCoS値に基づくシンプルなQoS設定を示します。

この例では、パケット受信時の送信キュー割り当てと送信スケジューリング方式の設定だけを初期値から変更しています。
  1. QoS機能を有効にします。
    QoS関連コマンドの多くは、QoS機能を有効にしておかないと実行できないので、最初にmls qos enableコマンドを実行してQoS機能を有効化しておいてください。

    awplus(config)# mls qos enable
    


  2. cos-queueマップを編集して、タグ付きパケット受信時のキュー割り当てを変更します。これには、mls qos map cos-queueコマンドを使います。
    ここでは、受信したタグ付きパケットのCoS値0〜7に対して、送信キュー2, 2, 3, 3, 4, 5, 6, 7を割り当てるよう設定します。

    awplus(config)# mls qos map cos-queue 0 to 2
    awplus(config)# mls qos map cos-queue 1 to 2
    awplus(config)# mls qos map cos-queue 2 to 3
    awplus(config)# mls qos map cos-queue 3 to 3
    awplus(config)# mls qos map cos-queue 4 to 4
    awplus(config)# mls qos map cos-queue 5 to 5
    awplus(config)# mls qos map cos-queue 6 to 6
    awplus(config)# mls qos map cos-queue 7 to 7
    


    Note - タグなしパケットにはデフォルト送信キュー(初期値は2)が割り当てられます。デフォルト送信キューは、mls qos queueコマンドで受信スイッチポートごとに設定できます。

    Note - VCS(バーチャルシャーシスタック)構成時は、VCSの制御パケットが送信キュー7を使うため、その他のパケットを送信キュー7に割り当てないでください。初期設定ではCoS値「7」が送信キュー「7」にマップされているので、VCS構成時は送信キュー「7」を使わないよう、mls qos map cos-queueコマンドでマッピングを変更してください。

    Note - BPDU(スパニングツリープロトコル)、LACP、EPSR使用時は、これらのプロトコルが送信キュー6を使うため、その他のパケットを送信キュー6、 7に割り当てないでください。初期設定ではCoS値「6」、「7」が送信キュー「6」、「7」にそれぞれマップされているので、BPDU、 LACP、EPSR使用時は送信キュー「6」、「7」を使わないよう、mls qos map cos-queueコマンドでマッピングを変更してください。

  3. 送信スケジューリングの設定を行います。
    初期設定はPQ(絶対優先スケジューリング)ですが、ここではポート1.0.1〜1.0.24に対し、すべての送信キューでWRRスケジューリングを用いるよう設定します。各キューからの送信比率は、上位キューから10:10:5:5:2:2:1:1とします。

    awplus(config)# interface port1.0.1-1.0.24
    awplus(config-if)# wrr-queue group 1 weight 60 queues 7 6
    awplus(config-if)# wrr-queue group 1 weight 30 queues 5 4
    awplus(config-if)# wrr-queue group 1 weight 12 queues 3 2
    awplus(config-if)# wrr-queue group 1 weight 6 queues 1 0
    


設定は以上です。

ポリシーマップによるQoS設定例

ポリシーマップを利用したQoSの設定は、ポリシーマップを作成し、受信スイッチポートに適用することで行います。

次にポリシーマップを利用したQoSの基本的な設定手順例を示します。

  1. QoS機能を有効にします。
    QoS関連コマンドの多くは、QoS機能を有効にしておかないと実行できないので、最初にmls qos enableコマンドを実行してQoS機能を有効化しておいてください。

    awplus(config)# mls qos enable
    


  2. 3台のホストからのトラフィックを識別するため、3つのハードウェアIPアクセスリストを作成します。これにはaccess-list(hardware ip)コマンドを使います。QoS処理を適用するトラフィックに対しては、通常permitアクションを指定してください。

    awplus(config)# access-list 3001 permit ip 192.168.1.1/32 any
    awplus(config)# access-list 3002 permit ip 192.168.1.2/32 any
    awplus(config)# access-list 3003 permit ip 192.168.1.3/32 any
    


    Note - ハードウェアアクセスリストの概要と作成方法については、「トラフィック制御」の「アクセスリスト」をご覧ください。

  3. クラスマップを作成して、各ホストからのパケットをそれぞれ個別のトラフィッククラスに分類できるようにします。クラスマップの作成はclass-mapコマンドで行います。class-mapコマンドでクラスマップ名を指定するとクラスマップモードに移動するので、同モードの各コマンドを使って分類条件を指定してください。ここでは、match access-groupコマンドを使って、ハードウェアアクセスリストの条件に合致したパケットを該当トラフィッククラスに分類するよう設定しています。

    awplus(config)# class-map host1
    awplus(config-cmap)# match access-group 3001
    awplus(config-cmap)# exit
    awplus(config)# class-map host2
    awplus(config-cmap)# match access-group 3002
    awplus(config-cmap)# exit
    awplus(config)# class-map host3
    awplus(config-cmap)# match access-group 3003
    awplus(config-cmap)# exit
    


  4. ポリシーマップを作成します。最初にpolicy-mapコマンドでポリシーマップの名前を指定して、ポリシーマップモードに移動します。

    awplus(config)# policy-map three-hosts
    awplus(config-pmap)# 
    


  5. ポリシーマップにクラスマップを関連付け、該当クラスマップによって識別されたトラフィッククラスに対する処理を指定します。
    クラスマップの関連付けはclassコマンドで行います。同コマンドを実行すると、ポリシーマップ・クラスモードに移動するので、同モードのコマンドを使って処理内容を指定します。
    ここでは、トラフィッククラスhost1には最低50Mbpsの帯域を保証するよう設定します。また、トラフィッククラスhost1、host2、host3には、それぞれ80Mbps、30Mbps、20Mbpsの帯域制限を設けます。帯域制限を機能させるため、action drop-redを指定し、最大トラフィックレート(+バーストサイズ許容量)を上回るレートで受信したパケットをキュー格納前に無条件で破棄するよう設定しています。

    awplus(config-pmap)# class host1
    awplus(config-pmap-c)# police twin-rate 50000 80000 10000 10000 action drop-red
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class host2
    awplus(config-pmap-c)# police single-rate 30000 10000 10000 action drop-red
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class host3
    awplus(config-pmap-c)# police single-rate 20000 10000 10000 action drop-red
    awplus(config-pmap-c)# exit
    


  6. ポリシーマップthree-hostsを受信スイッチポートであるポート1.0.1〜1.0.3に適用します。

    awplus(config)# interface port1.0.1-1.0.3
    awplus(config-if)# service-policy input three-hosts
    awplus(config-if)# exit
    


  7. 送信スイッチポートでWRED方式のキュー管理を行い、送信キューの混雑時に帯域クラスYellowのパケットを優先的に破棄するよう設定します(帯域クラスRedのパケットはポリシング設定によりキューイング前に廃棄される)。

    awplus(config)# mls qos queue-set 2 threshold 128000 256000 64000 128000 32000 64000
    awplus(config)# mls qos queue-set 2 averaging-factor 9
    awplus(config)# mls qos queue-set 2 drop-probability 1 1 1
    awplus(config)# interface port1.1.1
    awplus(config-if)# mls qos queue-set 2 random-detect
    


設定は以上です。

ポリシーマップとクラスマップ

次に、QoS機能の中核的設定要素であるポリシーマップと、ポリシーマップの骨格を形成するクラスマップについて説明するとともに、それぞれの設定方法を解説します。

クラスマップ

クラスマップは、パケットをトラフィッククラスに分類するための条件を定義する仕組みです。1つのクラスマップは、1つのトラフィッククラスの分類条件を定義します。

クラスマップの全体構造は次のとおりです。


各クラスマップは、1つ以上のmatch節と、1つのアクションで構成されます。


パケットの分類条件として使用できる情報には次のものがあります。


また、クラスマップのアクションは次のようにして決まります。

  1. match節にmatch access-group節が含まれている場合、match access-group節で指定したアクセスリストのアクションがクラスマップのアクションとなります
  2. match節にmatch access-group節が含まれていない場合、クラスマップのアクションはpermitとなります

■ クラスマップの作成手順は次のとおりです。
  1. 分類条件として、ハードウェアIPアクセスリストやハードウェアMACアクセスリストで識別するものを使用する場合は、適宜ハードウェアアクセスリストを定義します。

    awplus(config)# access-list 3021 permit tcp 192.168.20.0/24 192.168.10.0/24
    


    Note - ハードウェアアクセスリストの概要と作成方法については、「トラフィック制御」の「アクセスリスト」をご覧ください。

  2. グローバルコンフィグモードのclass-mapコマンドでクラスマップ名を指定し、クラスマップモードに入ります。

    awplus(config)# class-map tcp20to10
    


  3. クラスマップモードには、名前がmatch〜で始まるコマンドが多数あります。これらはクラスマップに分類条件(match節)を追加するためのコマンドです。これらのコマンドを実行して、必要な分類条件をすべて指定してください。分類条件を複数指定した場合、該当クラスマップにマッチするにはすべての条件を満たす必要があります。

    awplus(config-cmap)# match access-group 3021
    


  4. exitコマンドでクラスマップモードを抜ければ、該当クラスマップの設定は完了です。

    awplus(config-cmap)# exit
    


■ クラスマップの内容を変更するには、再度class-mapコマンドでクラスマップ名を指定し、クラスマップモードに入ります。

awplus(config)# class-map tcp20to10
awplus(config-pmap)# 


Note - ポリシーマップに関連付けられているクラスマップの内容を変更することはできません。クラスマップの変更は、ポリシーマップとの関連付けを解除してから行ってください。

■ クラスマップを削除するには、class-mapコマンドをno形式で実行します。

awplus(config)# no class-map tcp20to10


Note - ポリシーマップに関連付けられているクラスマップを削除することはできません。クラスマップの削除は、ポリシーマップとの関連付けを解除してから行ってください。

■ ハードウェアアクセスリストの設定はshow access-listコマンドで確認できます。

awplus# show access-list
Hardware IP access list 3021
    permit tcp 192.168.20.0/24 192.168.10.0/24


■ クラスマップの設定はshow class-mapコマンドで確認できます。

awplus> show class-map

    CLASS-MAP-NAME: tcp20to10
      QOS-ACCESS-LIST-NAME: 3021


ポリシーマップ

ポリシーマップは、受信パケットに対してさまざまなQoSを適用するためのメカニズムで、トラフィック分類、プレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティングの各処理を行うために必要な情報をひとつにまとめる機能を持ちます。

ポリシーマップの全体構造は次のとおりです。


ポリシーマップは、ユーザー定義のクラスマップ(複数)と暗黙のデフォルトクラスマップ(1つ)から構成され、各クラスマップによって分類・識別されたトラフィッククラスに対するプレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティングの各動作もあわせて指定することができます。

ポリシーマップをスイッチポートに適用すると、ポリシーマップ内の各クラスマップによって受信パケットがトラフィッククラスに分類され、各トラフィッククラスに対してあらかじめ指定したQoS処理が行われるようになります。パケットとクラスマップの照合は、クラスマップをポリシーマップに関連付けした順序で行われます。

また、denyアクションのクラスマップを用いることで、パケットフィルタリングを行うこともできます。

■ ポリシーマップの作成手順は次のとおりです。必要なクラスマップの作成は済んでいるものとします。
  1. グローバルコンフィグモードのpolicy-mapコマンドでポリシーマップ名を指定し、ポリシーマップモードに入ります。

    awplus(config)# policy-map test
    


  2. ポリシーマップモードのclassコマンドでクラスマップ名を指定し、ポリシーマップ・クラスモードに移動します。

    awplus(config-pmap)# class downWeb
    


  3. ポリシーマップ・クラスモードの各コマンドを使って、クラスマップによって識別されたトラフィッククラスに対する処理内容(プレマーキング、メータリング、ポリシング/リマーキング、ポリシーベースルーティング)を指定します。

    awplus(config-pmap-c)# police single-rate 50000 10240 10240 action drop-red
    awplus(config-pmap-c)# exit
    


  4. トラフィッククラスの数だけ手順2〜3を繰り返します。

  5. どのクラスマップにもマッチしなかったパケットは、暗黙のうちに存在するデフォルトクラスマップによって、デフォルトトラフィッククラスに分類されます。デフォルトトラフィッククラスに対する処理内容(プレマーキング、メータリング、ポリシング/リマーキング、ポリシーベースルーティング)を指定するには、classコマンドにキーワードdefaultを指定してポリシーマップ・クラスモードに入り、通常のトラフィッククラスと同様の設定を行います。

    awplus(config-pmap)# class default
    awplus(config-pmap-c)# police single-rate 10000 10240 10240 action drop-red
    awplus(config-pmap-c)# exit
    


    Note - デフォルトクラスマップのアクションは、ポリシーマップモードのdefault-actionコマンドで変更できます。

  6. exitコマンドでポリシーマップモードを抜ければ、該当ポリシーマップの設定は完了です。

    awplus(config-pmap)# exit
    


■ ポリシーマップをスイッチポートに適用するには、インターフェースモードのservice-policy inputコマンドを使います。これにより、該当ポートで受信したパケットに対してポリシーマップで定義したQoS処理が適用されます。

awplus(config)# interface port1.0.1
awplus(config-if)# service-policy input test


■ トランクグループにポリシーマップを適用するときは、次の点にご注意ください。

■ スイッチポートからポリシーマップの適用を解除するには、service-policy inputコマンドをno形式で実行します。

awplus(config)# interface port1.0.1
awplus(config-if)# no service-policy input test


■ ポリシーマップの内容を変更するには、再度policy-mapコマンドでポリシーマップ名を指定し、ポリシーマップモードに入ります。

awplus(config)# policy-map test
awplus(config-pmap)# 


Note - スイッチポートに適用されているポリシーマップの内容を変更することはできません。ポリシーマップの変更は、スイッチポートへの適用を解除してから行ってください。

■ ポリシーマップを削除するには、policy-mapコマンドをno形式で実行します。

awplus(config)# no policy-map test


Note - スイッチポートに適用されているポリシーマップを削除することはできません。ポリシーマップの削除は、スイッチポートへの適用を解除してから行ってください。

■ ポリシーマップの設定はshow policy-mapコマンドで確認できます。

awplus> show policy-map

  POLICY-MAP-NAME: test
    State: attached
    Default class-map action: permit

    CLASS-MAP-NAME: default
      Policer single-rate action drop-red:
       average rate(10000 kbps)  minimum burst(10240 B) maximum burst(10240 B)

    CLASS-MAP-NAME: tcp20to10
      QOS-ACCESS-LIST-NAME: 3021
      Policer single-rate action drop-red:
       average rate(20000 kbps)  minimum burst(10240 B) maximum burst(10240 B)


■ スイッチポートに適用されているポリシーマップの情報はshow mls qos interfaceコマンドで確認できます。

awplus> show mls qos interface port1.0.1

Interface: port1.0.1

  INPUT-POLICY-MAP-NAME: test
    CLASS-MAP-NAME: default
      Policer single-rate action drop-red:
       average rate(10000 kbps)  minimum burst(10240 B) maximum burst(10240 B)
    CLASS-MAP-NAME: tcp20to10
      QOS-ACCESS-LIST-NAME: 3021
      Policer single-rate action drop-red:
       average rate(20000 kbps)  minimum burst(10240 B) maximum burst(10240 B)
...


QoS処理フロー詳細

ここでは、個々のQoS機能について、全体的なQoS処理の流れにしたがって解説します。

次に、パケットを受信してから送信するまでの、QoS処理の大まかな流れを示します。一見すると非常に複雑ですが、通常はすべての段階を設定する必要はありません。

なお、図の左側では、QoS処理過程で使用される「QoS 4属性」がどこで参照(使用)され、どこで書き換え(割り当て)られるのかを示しています。


表 1:QoS処理の流れ
受信スイッチポート
1 スイッチポートでパケットを受信
受信時のQoS処理(すべてのパケットが対象)
2 受信パケットがタグ付きの場合は、パケットのCoS値(0〜7)をキーとしてcos-queueマップを参照し、パケットに割り当てる送信キュー(0〜7)を決定する。受信パケットがタグなしの場合は、受信ポートごとに設定されたデフォルト送信キュー(初期値は2)を割り当てる
レイヤー2スイッチング
3 受信パケットがレイヤー2スイッチングの対象なら、フォワーディングデータベースを参照して出力ポートを決定する
ポリシーマップによるQoS処理(受信ポートにポリシーマップが適用されている場合のみ)
4 クラスマップにより、パケットをトラフィッククラスに分類する。どのクラスマップにもマッチしなかったパケットは、デフォルトトラフィッククラスに分類する。なお、パケットとクラスマップの照合は、クラスマップをポリシーマップに関連付けした順序で行われる
5 プレマーキングの設定がなされている場合、受信パケットの4属性を書き換える。各属性値を任意設定する方法と、DSCP値をキーにpremark-dscpマップを参照して書き換える方法がある
6 トラフィッククラスでポリサーの設定がなされている場合、該当トラフィッククラスがどの程度帯域を使用しているかを計測し、受信パケットを帯域クラスに分類する
7 トラフィッククラスでポリサーの設定がなされている場合、ポリサーのアクションがリマーキングなら、DSCP値と帯域クラスをキーにpoliced-dscpマップを参照して受信パケットの4属性を書き換える。ポリサーのアクションがポリシングの場合は、帯域クラスRedに分類されたパケット(帯域超過パケット)を破棄する
8 受信パケットがIPルーティングの対象なら、IP転送表を参照してネクストホップを決定し、出力ポートを決定する。ただし、クラスマップ内でポリシーベースルーティングが指定されている場合はIP転送表を参照せずに、クラスマップで指定されたネクストホップを採用し、出力ポートを決定する
送信時のQoS処理(すべてのパケットが対象)
9 ここまでの処理で決定した送信キューにパケットを格納する。キューが混雑している場合の処理は、キュー管理方式によって異なる。テールドロップ方式の場合は最大キュー長を超えたパケットを単純に破棄し、WRED方式の場合は最大キュー長に達する前にランダムにパケットを破棄してキューの混雑解消を試みる
10 設定されたスケジューリング方式にしたがい、送信キューからパケットを出力する。PQ(絶対優先)、WRR(重み付きラウンドロビン)のいずれか、あるいは、両者の併用も可能。なお、送信キューや送信ポートに送信レートの上限値が設定されている場合は、指定されたレートでパケットを送信するシェーピング動作を行う
送信スイッチポート
11 スイッチポートからパケットを送信


以下では、各ステップにおける処理内容と設定方法について詳しく解説します。

受信時のQoS処理

スイッチポートでパケットを受信した後、最初に行われるQoS処理は、パケットに送信キューの初期値を割り当てることです。この処理はポリシーマップの有無にかかわらずすべてのパケットに対して行われます。

送信キューの割り当て

送信キューの割り当ては通常次のようにして行われます。


なお、受信時に決定された送信キューは、プレマーキング、リマーキングの各段階において変更可能です。

■ タグ付きパケットに対する送信キュー割り当ての動作を変更するには、mls qos map cos-queueコマンドを使ってcos-queueマップを編集します。
たとえば、受信したタグ付きパケットのCoS値0〜7に対して、送信キュー2, 2, 3, 3, 4, 5, 6, 7を割り当てるには次のように設定します。

awplus(config)# mls qos map cos-queue 0 to 2
awplus(config)# mls qos map cos-queue 1 to 2
awplus(config)# mls qos map cos-queue 2 to 3
awplus(config)# mls qos map cos-queue 3 to 3
awplus(config)# mls qos map cos-queue 4 to 4
awplus(config)# mls qos map cos-queue 5 to 5
awplus(config)# mls qos map cos-queue 6 to 6
awplus(config)# mls qos map cos-queue 7 to 7


Note - VCS(バーチャルシャーシスタック)構成時は、VCSの制御パケットが送信キュー7を使うため、その他のパケットを送信キュー7に割り当てないでください。初期設定ではCoS値「7」が送信キュー「7」にマップされているので、VCS構成時は送信キュー「7」を使わないよう、mls qos map cos-queueコマンドでマッピングを変更してください。

Note - BPDU(スパニングツリープロトコル)、LACP、EPSR使用時は、これらのプロトコルが送信キュー6を使うため、その他のパケットを送信キュー6、 7に割り当てないでください。初期設定ではCoS値「6」、「7」が送信キュー「6」、「7」にそれぞれマップされているので、BPDU、 LACP、EPSR使用時は送信キュー「6」、「7」を使わないよう、mls qos map cos-queueコマンドでマッピングを変更してください。

■ cos-queueマップを初期設定に戻すには、mls qos map cos-queueコマンドをno形式で実行します。

awplus(config)# no mls qos map cos-queue


■ cos-queueマップの設定は、show mls qos maps cos-queueコマンドで確認できます。

awplus> show mls qos maps cos-queue
  COS-TO-QUEUE-MAP:
    COS :    0   1   2   3   4   5   6   7
    --------------------------------------
    QUEUE:   2   2   3   3   4   5   6   7


■ タグなしパケットに対する送信キュー割り当ての動作を変更するには、インターフェースモードのmls qos queueコマンドを使って、受信スイッチポートのデフォルト送信キューを変更します。
たとえば、ポート1.0.1で受信したタグなしパケットに対して送信キュー4を割り当てるには、次のようにします。

awplus(config)# interface port1.0.1
awplus(config-if)# mls qos queue 4


各スイッチポートにおけるデフォルト送信キューの初期値は2です。

Note - VCS(バーチャルシャーシスタック)構成時は、VCSの制御パケットが送信キュー7を使うため、その他のパケットを送信キュー7に割り当てないでください(VCS構成時は、mls qos queueコマンドで7を指定しないでください)。

Note - BPDU(スパニングツリープロトコル)、LACP、EPSR使用時は、これらのプロトコルが送信キュー6を使うため、その他のパケットを送信キュー6、 7に割り当てないでください(BPDU、LACP、EPSR使用時は、mls qos queueコマンドで6、7を指定しないでください)。

■ スイッチポートのデフォルト送信キューの設定は、show mls qos interfaceコマンドで確認できます。「Default Queue」欄をご覧ください。

awplus> show mls qos interface port1.0.1

Interface: port1.0.1

  Default Queue: 4
  Number of egress queues: 8
  Queue Set: 1
  Drop Mode: Taildrop
...


ポリシーマップによるQoS処理

受信ポートにポリシーマップが適用されている場合は、送信キューの割り当てとレイヤー2スイッチング処理の後に、ポリシーマップに基づいた一連のQoS処理(トラフィック分類、プレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティング)が行われます。

受信ポートにポリシーマップが適用されていない場合、これらの処理は行われず、IPルーティング処理を経て、送信時のQoS処理に移ります。

トラフィック分類

ポリシーマップの処理で最初に行われるのは、クラスマップによってパケットをトラフィッククラスに分類することです。

受信パケットとクラスマップの照合は、ポリシーマップにクラスマップを追加した順序で行われます。

トラフィック分類後のポリシーマップ処理(プレマーキング、メータリング、ポリシング、リマーキング、ポリシーベースルーティング)は、トラフィッククラス単位で行われます。

なお、クラスマップとポリシーマップの作成、および、クラスマップのポリシーマップへの関連付けについては、本解説編の「ポリシーマップとクラスマップ」をご覧ください。

プレマーキング

プレマーキングは、クラスマップによってトラフィッククラスに分類されたパケットに対して行われる最初のQoS処理です。

本製品のQoS機能では、各パケットは次の4つの属性を持ちます。これらの属性は、QoS処理の各段階において、割り当てられたり、変更されたり、参照されたりします。


プレマーキングでは、トラフィッククラスごとにこれらの4属性を書き換える(変更する)ことができます。書き換えの方法には、次の2種類があります。


■ パケットの4属性を任意の値に変更するには、ポリシーマップ・クラスモードの下記コマンドで変更後の値を指定します。


たとえば、クラスマップroyalによって識別されたトラフィッククラスに対し、CoS値7、DSCP値31、送信キュー7を割り当てるには、次のようにします。

awplus(config)# policy-map example
awplus(config-pmap)# class royal
awplus(config-pmap-c)# set cos 7
awplus(config-pmap-c)# set dscp 31
awplus(config-pmap-c)# set queue 7


Note - VCS(バーチャルシャーシスタック)構成時は、VCSの制御パケットが送信キュー7を使うため、その他のパケットを送信キュー7に割り当てないでください(VCS構成時は、set queueコマンドで7を指定しないでください)。

Note - BPDU(スパニングツリープロトコル)、LACP、EPSR使用時は、これらのプロトコルが送信キュー6を使うため、その他のパケットを送信キュー6、 7に割り当てないでください(BPDU、LACP、EPSR使用時は、set queueコマンドで6、7を指定しないでください)。

■ 各属性の具体的な値を指定するのではなく、premark-dscpマップという書き換え対応表を使って一定の基準で属性を変更することもできます。


■ 各トラフィッククラスのプレマーキング設定は、show policy-mapコマンドで確認できます。

awplus> show policy-map

  POLICY-MAP-NAME: example
    State: detached
    Default class-map action: permit

    CLASS-MAP-NAME: default

    CLASS-MAP-NAME: royal
      Set CoS: 7
      Set DSCP: 31
      Set Queue: 7

    CLASS-MAP-NAME: public1
      Trust state: DSCP

    CLASS-MAP-NAME: public2
      Set DSCP: 5
      Trust state: DSCP


■ premark-dscpマップの内容は、show mls qos maps premark-dscpコマンドで確認できます。

awplus> show mls qos maps premark-dscp 1
  PREMARK-DSCP-MAP:

    DSCP 1
    Bandwidth Class        Green    Yellow   Red
    -------------------------------------------------
    New DSCP               1        -        -
    New CoS                7        -        -
    New Queue              7        -        -
    New Bandwidth Class    green    -        -


メータリングとポリシング

本製品の帯域制御は、ポリサーによって指定された帯域基準値(トラフィックレートとバーストサイズ)をもとに、各トラフィッククラスが実際にどの程度の帯域を使用しているかを計測し、その結果に基づいてパケットを3つの帯域クラスに分類することによって行います。

帯域使用量の計測と帯域クラスへの分類処理はメータリングと呼ばれ、プレマーキングの後に行われます。

メータリングでは、トラフィッククラスに属するパケットを次に示す3つの「帯域クラス」に分類します。

表 2:3つの帯域クラス
帯域クラス
帯域使用量
取り扱いの一例
Green 少ない 帯域割り当ての優先度は最高
Yellow 中程度 帯域割り当ての優先度は中。キューが混雑したときは(Redの次に)優先的に破棄
Red 使いすぎ 帯域割り当ての優先度は最低。キューへの格納前に破棄、あるいは、キューが混雑したとき優先的に破棄


帯域クラス分類後の処理としては、ポリシングかリマーキングのいずれかを選択できます。ポリシングは、帯域クラスRedを破棄してトラフィッククラスの使用帯域を一定値までに制限する動作です。また、リマーキングは帯域クラスの情報を用いて、パケットのQoS 4属性を再度変更する動作です。

■ トラフィッククラスに対してメータリングを行うには、トラフィッククラスの設定時にポリサーという設定要素を指定する必要があります。

ポリサーは、トラフィッククラスの帯域基準値(トラフィックレートとバーストサイズ)と帯域クラス分類後の処理を指定するための設定要素で、次の4種類があります。


以下、それぞれの設定方法について説明します。

Note - 複数のスイッチチップ(インスタンス)にまたがるトランクグループ(スタティックチャンネルグループ、LACPチャンネルグループとも)ではメータリングが機能しません。複数インスタンスにまたがるトランクグループに対しては、メータリング(ポリサー)設定(police aggregateコマンド、police single-rateコマンド、police twin-rateコマンド)を含むポリシーマップを適用しないでください(適用してもメータリングが動作しません)。

■ 個々のトラフィッククラスに対してそれぞれ独立したメータリングを行いたい場合は、各トラフィッククラスに個別ポリサーを適用します。


■ 複数のトラフィッククラスをひとまとめにしてメータリングを行いたい場合は、あらかじめ集約ポリサーを作成して帯域基準値と帯域クラス分類後の処理を定義しておき、これを複数のトラフィッククラスに割り当てます。


■ ポリサーの設定時には、actionパラメーターで帯域クラス分類後の処理(アクション)を指定する必要があります。アクションの選択肢は次の2つです。


リマーキングの設定方法については後で説明します。

■ メータリングの設定は、show policy-mapコマンドで確認できます。

awplus> show policy-map

  POLICY-MAP-NAME: example
    State: detached
    Default class-map action: permit

    CLASS-MAP-NAME: default

    CLASS-MAP-NAME: traffic1
      Policer single-rate action drop-red:
       average rate(20000 kbps)  minimum burst(10240 B) maximum burst(10240 B)

    CLASS-MAP-NAME: traffic2
      Policer twin-rate action drop-red:
       minimum rate(30000 kbps) maximum rate(80000 kbps) minimum burst(10240 B)
maximum burst(10240 B)

    CLASS-MAP-NAME: traffic3
      Police Aggregate ap1

    CLASS-MAP-NAME: traffic4
      Police Aggregate ap1

    CLASS-MAP-NAME: traffic5
      Police Aggregate ap2

    CLASS-MAP-NAME: traffic6
      Police Aggregate ap2


■ 集約ポリサーの設定は、show mls qos aggregate-policerコマンドで確認できます。

awplus> show mls qos aggregate-policer

 AGGREGATE-POLICER-NAME: ap1
      Policer single-rate action policed-dscp-transmit:
       average rate(40000 kbps)  minimum burst(10240 B) maximum burst(10240 B)
 AGGREGATE-POLICER-NAME: ap2
      Policer twin-rate action drop-red:
       minimum rate(20000 kbps) maximum rate(60000 kbps) minimum burst(10240 B)
maximum burst(10240 B)


シングルレートポリサー
シングルレートポリサーでは、1つのトラフィックレート(MAXRATE)と2つのバーストサイズ(MINBURST、MAXBURST)、あわせて3つの帯域基準値に基づいて、トラフィッククラス内の各パケットを帯域クラスに分類します。

シングルレートポリサーはおもに、トラフィッククラスが使用できる最大帯域を一定値までに制限するときに使用します。

表 3:シングルレートポリサーの判定基準
帯域クラス
帯域使用量
判定基準
Green 少ない バースト量 <= MINBURST
Yellow 中程度 MINBURST < バースト量 <= MAXBURST
Red 使いすぎ バースト量 > MAXBURSTSIZE



ここでのバースト量とは、トラフィックの流入量がMAXRATEを超えた場合に、MAXRATEの超過分としてカウントされるデータ量を示しています。トラフィック量がMAXRATE以下であれば、バースト量は0になります。

トラフィックレートが瞬間的にMAXRATEをオーバーしても、超過している時間が短ければ、バースト量はMINBURST以内にとどまり、すべてのパケットが帯域クラスGreenとして扱われることになります。

これに対し、MAXRATEをオーバーしている時間が長くなると、バースト量がMINBURSTを超えることがあります。この場合、MINBURSTを超えてカウントされたパケットには、帯域クラスYellowが割り当てられます。さらに時間が経過すると、バースト量がMAXBURSTを超えますが、この超過分は帯域クラスRedとなります。

シングルレートポリサー使用時は、ポリシング設定により帯域クラスRedのパケットを無条件で破棄することで、該当トラフィッククラスの帯域使用量をMAXRATE + MAXBURST以内に抑えることができます。これは、最大帯域幅を制限する設定となります。

ツインレートポリサー
ツインレートポリサーでは、2つのトラフィックレート(MINRATE、MAXRATE)と2つのバーストサイズ(MINBURST、MAXBURST)、あわせて4つの帯域基準値に基づいて、トラフィッククラス内の各パケットを帯域クラスに分類します。

ツインレートポリサーはおもに、トラフィッククラスに一定の帯域を保証しつつ、なおかつ、使用できる最大帯域を一定値までに制限するときに使用します。

表 4:ツインレートポリサーの判定基準
帯域クラス
帯域使用量
判定基準
Green 少ない バースト量(MIN) <= MINBURST
Yellow 中程度 バースト量(MIN) > MINBURST かつ バースト量(MAX) <= MAXBURST
Red 使いすぎ バースト量(MAX) > MAXBURST



ここでのバースト量(MIN)とは、トラフィックの流入量がMINRATEを超えた場合に、MINRATE超過分としてカウントされるデータ量を示しています。トラフィック量がMINRATE以下であれば、バースト量(MIN)は0になります。

同様に、バースト量(MAX)とは、トラフィックの流入量がMAXRATEを超えた場合に、MAXRATE超過分としてカウントされるデータ量を示しています。トラフィック量がMAXRATE以下であれば、バースト量(MAX)は0になります。

トラフィックが瞬間的にMINRATEをオーバーしても、超過している時間が短ければ、バースト量(MIN)はMINBURST以内にとどまり、すべてのパケットが帯域クラスGreenとして扱われることになります。

これに対し、MINRATEをオーバーしている時間が長くなると、バースト量(MIN)がMINBURSTを超えることがあります。この場合、MINBURSTを超えてカウントされたパケットには、帯域クラスYellowが割り当てられます。

さらにトラフィックが増えると、今度はトラフィック流入量がMAXRATEを超過することがありますが、その時間が長引きバースト量(MAX)がMAXBURSTを超えると、超過分のパケットには帯域クラスRedが割り当てられます。

ツインレートポリサー使用時は、ポリシング設定により帯域クラスRedのパケットを無条件で破棄することで、該当トラフィッククラスの帯域使用量をMAXRATE + MAXBURST以内に抑えることができます。これは、使用可能な最大帯域を制限する設定となります。

また、送信キュー管理(テールドロップやWRED)の設定において、帯域クラスRedおよびYellowを優先的に破棄するよう設定しておくことにより、帯域クラスGreenのパケットを確実に送信することが可能になります。これは、最小帯域を保証する設定となります。

リマーキング

リマーキングは、メータリング(帯域クラスへの分類)後に行われるQoS処理の1つです。
リマーキングでは、メータリングによって決定された帯域クラスの情報を利用して、パケットのQoS 4属性を再度変更します。これにより、キュー格納時の動作に影響を与えたり、後続の機器にトラフィッククラスの情報を提供したりします。リマーキング処理は、policed-dscpマップと呼ぶ書き換え対応表にしたがって行われます。

リマーキングが行われるのは、ポリサーの設定でpoliced-dscp-transmitアクションを指定した場合です。一方、ポリサーでdrop-redアクションを指定した場合はポリシング(帯域クラスRedに分類されたパケットの破棄)が行われます。

■ 特定のトラフィッククラスに属するパケットに対してリマーキングを行うには、該当トラフィッククラスにいずれかの種類のポリサーを設定し、帯域クラス分類後の処理(アクション)としてpoliced-dscp-transmitを指定します。

たとえば、クラスマップtraffic7によって識別されたトラフィッククラスに対してリマーキングを行うよう設定するには、次のようにします。

awplus(config)# policy-map example
awplus(config-pmap)# class traffic7
awplus(config-pmap-c)# police single-rate 70000 10240 10240 action policed-dscp-transmit


■ リマーキング処理は、policed-dscpマップという書き換え対応表に基づいて行われます。policed-dscpマップは、DSCP値と帯域クラスをキーとして書き換え後の各属性値を調べるための表で、mls qos map policed-dscpコマンドで内容を編集できます。

たとえば、DSCP値が0で帯域クラスがGreenのパケットに対して、送信キュー7、CoS値7を割り当て、DSCP値が0で帯域クラスがYellowのパケットには、送信キュー4、CoS値4を割り当て、DSCP値が0で帯域クラスがRedのパケットには、送信キュー0とCoS値0を割り当てるには、次のようにします。

awplus(config)# mls qos map policed-dscp 0 bandwidth-class green to new-queue 7 new-cos 7
awplus(config)# mls qos map policed-dscp 0 bandwidth-class yellow to new-queue 4 new-cos 4
awplus(config)# mls qos map policed-dscp 0 bandwidth-class red to new-queue 0 new-cos 0


Note - VCS(バーチャルシャーシスタック)構成時は、VCSの制御パケットが送信キュー7を使うため、その他のパケットを送信キュー7に割り当てないでください(VCS構成時は、mls qos map policed-dscpコマンドのnew-queueパラメーターで7を指定しないでください)。

Note - BPDU(スパニングツリープロトコル)、LACP、EPSR使用時は、これらのプロトコルが送信キュー6を使うため、その他のパケットを送信キュー6、 7に割り当てないでください(BPDU、LACP、EPSR使用時は、mls qos map policed-dscpコマンドのnew-queueパラメーターで6、7を指定しないでください)。

■ 各トラフィッククラスのリマーキング設定は、show policy-mapコマンドで確認できます。ポリサーのアクション(action)が「policed-dscp-transmit」になっているトラフィッククラスでは、リマーキングが行われます。

awplus> show policy-map

  POLICY-MAP-NAME: example
    State: detached
    Default class-map action: permit

    CLASS-MAP-NAME: default

    CLASS-MAP-NAME: traffic1
      Policer single-rate action drop-red:
       average rate(20000 kbps)  minimum burst(10240 B) maximum burst(10240 B)

    ...

    CLASS-MAP-NAME: traffic7
      Policer single-rate action policed-dscp-transmit:
       average rate(70000 kbps)  minimum burst(10240 B) maximum burst(10240 B)


■ policed-dscpマップの内容は、show mls qos maps policed-dscpコマンドで確認できます。

awplus> show mls qos maps policed-dscp 0
  POLICED-DSCP-MAP:

    DSCP 0
    Bandwidth Class        Green    Yellow   Red
    -------------------------------------------------
    New DSCP               0        0        0
    New CoS                7        4        0
    New Queue              7        4        0
    New Bandwidth Class    green    yellow   red


ポリシーベースルーティング

ポリシーベースルーティングとは、IPアドレス、TCP/UDPポートなどのさまざまな条件に基づいて、L3パケット(ルーティング対象パケット)の転送先(ネクストホップ)を決定する仕組みです。

経路表を用いる通常のIPルーティングでは転送先の判断に終点IPアドレスしか使えませんが、ポリシーベースルーティングではクラスマップで指定可能なすべての条件を使用できるため、きめ細やかな経路制御が可能です。

ポリシーベースルーティングの設定は、トラフィッククラスごとに使用すべきネクストホップを指定することで行います。ネクストホップの指定には、ポリシーマップ・クラスモードのset ip next-hopコマンドを使います。

■ 特定のトラフィッククラスに属するL3パケットを任意のネクストホップに転送させるには、該当トラフィッククラスを対象とするポリシーマップ・クラスモードにおいて、set ip next-hopコマンドを実行し、転送先のネクストホップに転送アドレスを指定します。
たとえば、クラスマップclient10によって識別されたトラフィッククラスのL3パケットを、192.168.10.32に転送したいときは次のようにします。

awplus(config)# policy-map pbrexample
awplus(config-pmap)# class client10
awplus(config-pmap-c)# set ip next-hop 192.168.10.32


■ 次に、より具体的なポリシーベースルーティング設定を示します。

想定するネットワーク構成は次のとおりです。


ここでは、本製品に次に示す2つのデフォルト経路がスタティック設定されているものとします。

awplus(config)# ip route 0.0.0.0/0 192.168.100.10
awplus(config)# ip route 0.0.0.0/0 192.168.200.10


本製品の初期設定では4経路までのECMP(等コストマルチパス)ルーティングが有効なため、デフォルト経路宛てのパケットは前記の2経路にロードバランスされます。ただしこの場合、どのパケットがどちらの経路を通るかは制御できません。

そこで、ポリシーベースルーティング機能を利用して、192.168.10.0/24(vlan10)からデフォルト経路に宛てたパケットは192.168.100.10側(ルーターA側)の経路を、192.168.20.0/24(vlan20)からデフォルト経路に宛てたパケットは192.168.200.10側(ルーターB側)の経路を使うよう設定してみます。

なお、192.168.10.0/24のネットワーク(vlan10)はポート1.0.1〜1.0.4に、192.168.20.0/24のネットワーク(vlan20)はポート1.0.5〜1.0.8に、192.168.100.0/24のネットワーク(vlan100)はポート1.0.9に、192.168.200.0/24のネットワーク(vlan200)はポート1.0.10に接続されているものと仮定します。
  1. QoS機能を有効にします。
    QoS関連コマンドの多くは、QoS機能を有効にしておかないと実行できないので、最初にmls qos enableコマンドを実行してQoS機能を有効化しておいてください。

    awplus(config)# mls qos enable
    


  2. 各パケットを識別するハードウェアIPアクセスリストを作成します。これにはaccess-list(hardware ip)コマンドを使います。
    Note - ハードウェアアクセスリストの概要と作成方法については、「トラフィック制御」の「アクセスリスト」をご覧ください。

  3. 前の手順で作成したハードウェアアクセスリストを用いて各パケットを分類するクラスマップを作成します。
    クラスマップの作成はclass-mapコマンドで行います。同コマンドを実行するとクラスマップモードに移動するので、同モードのコマンドを使って分類条件を指定してください。ここでは、match access-groupコマンドを使って、前の手順で作成したハードウェアアクセスリストを指定します。

  4. 前の手順で作成した4つのvlan10用クラスマップを束ねるポリシーマップpbrv10を作成します。最初にpolicy-mapコマンドでポリシーマップの名前を指定します。これにより、ポリシーマップモードに移動します。

    awplus(config)# policy-map pbrv10
    awplus(config-pmap)# 
    


  5. ポリシーマップにクラスマップを関連付け、該当クラスマップによって識別されたトラフィッククラスに対する処理を指定します。ここでは、LAN間通信となるvlan10 → vlan20、vlan10 → vlan100、vlan10 → vlan200のパケットには経路表に基づく通常のルーティングを適用し、vlan10からWAN(vlan20、vlan100、vlan200以外宛て)へのパケットにはポリシーベースルーティングを適用して、192.168.100.10のネクストホップに転送するよう設定します。
    クラスマップの関連付けはclassコマンドで行います。同コマンドでクラスマップ名を指定するとポリシーマップ・クラスモードに移動します。ポリシーベースルーティングの対象クラスでは同モードのset ip next-hopコマンドを使ってネクストホップを指定します。一方、通常のルーティングを適用するクラスに対しては、処理内容を指定する必要はありません。

    awplus(config-pmap)# class vlan10to20
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan10to100
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan10to200
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan10toWAN
    awplus(config-pmap-c)# set ip next-hop 192.168.100.10
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# exit
    


  6. vlan20用のクラスマップを束ねるポリシーマップpbrv20も同様に作成します。

    awplus(config)# policy-map pbrv20
    awplus(config-pmap)# class vlan20to10
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan20to100
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan20to200
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class vlan20toWAN
    awplus(config-pmap-c)# set ip next-hop 192.168.200.10
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# exit
    


  7. ポリシーマップpbrv10をネットワーク192.168.10.0/24(vlan10)の接続されているスイッチポート1.0.1〜1.0.4に適用します。

    awplus(config)# interface port1.0.1-1.0.4
    awplus(config-if)# service-policy input pbrv10
    


  8. ポリシーマップpbrv20をネットワーク192.168.20.0/24(vlan20)の接続されているスイッチポート1.0.5〜1.0.8に適用します。

    awplus(config)# interface port1.0.5-1.0.8
    awplus(config-if)# service-policy input pbrv20
    


設定は以上です。

■ 以下、ポリシーベースルーティングに関連する注意事項をまとめます。


送信時のQoS処理

各種の転送判断(L2スイッチング処理やIPルーティング処理)やQoS処理を経て送信ポートに到着したパケットは、ここまでの処理で決定された送信キューに格納され、実際に送信されるのを待ちます。

以下では、送信キューへの格納と取り出し(送信)に関するQoS処理について解説します。これらの処理はポリシーマップの有無にかかわらずすべてのパケットに対して行われます。

キューへの格納

送信ポートに到着したパケットは、ここまでの処理で決定された送信キューに格納されますが、格納先のキューが混雑していた場合は、次のいずれかのキュー管理方式によってパケットを破棄し、キューの混雑を解消します。初期状態では、すべてのスイッチポートでテールドロップ方式を使用するよう設定されています。


キュー管理方式は送信スイッチポートごとに選択できます。また、各管理方式で使用するキュー長などのパラメーターも、スイッチポートごとに4種類のパラメーターセットから選択して使用できます。

■ 送信キューで使用するキュー管理方式は、インターフェースモードのmls qos queue-setコマンドで指定します。たとえば、ポート1.0.1〜1.0.4でWRED方式を使用する場合は、次のようにします。queue-setキーワードの後の「1」は、キュー管理用パラメーターセットの番号(1〜4)です。パラメーターセットの設定方法については後述します。

awplus(config)# interface port1.0.1-1.0.4
awplus(config-if)# mls qos queue-set 1 random-detect


ポート1.0.1〜1.0.4のキュー管理方式をテールドロップ方式に戻すには、次のようにします。

awplus(config)# interface port1.0.1-1.0.4
awplus(config-if)# no mls qos queue-set


■ スイッチポートで使用しているキュー管理方式およびパラメーターセットは、show mls qos interfaceコマンドで確認できます。「Drop Mode」欄がキュー管理方式、「Queue Set」欄がパラメーターセットの番号を示しています。

awplus> show mls qos int port1.0.1

Interface: port1.0.1

  Number of egress queues: 8
  Queue Set: 1
  Drop Mode: Random Detect
...


■ 送信キューパラメーターセットの内容は、show mls qos queue-setコマンドで確認できます。

awplus> show mls qos queue-set 1

Queue Set 1:
Description: 1G Defaults

             BandwidthClass   Min           Max           Drop Probability
--------------------------------------------------------------------------
Queue 0    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 1    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 2    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 3    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 4    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 5    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 6    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------
Queue 7    | Green            125 KB        250 KB        1 (50%)
           | Yellow           62 KB         125 KB        1 (50%)
           | Red              31 KB         62 KB         1 (50%)
--------------------------------------------------------------------------

Queue Length Averaging Factor
  Queue 0: 9
  Queue 1: 9
  Queue 2: 9
  Queue 3: 9
  Queue 4: 9
  Queue 5: 9
  Queue 6: 9
  Queue 7: 9


テールドロップの動作パラメーター
テールドロップ方式は、最大キュー長を超過したパケットを無条件に廃棄するシンプルなキュー管理方式です。本製品の初期設定では、すべてのスイッチポートでテールドロップ方式を使用します。

テールドロップの動作は、送信キューパラメーターセットのしきい値GREENMAX、YELLOWMAX、REDMAXで調整できます。これらはそれぞれ、帯域クラスGreen、Yellow、Redのパケットに適用する最大キュー長となります。

本製品では、8つの送信キュー×3つの帯域クラスのそれぞれに対して最大キュー長を個別に設定できます。これにより、帯域クラスRedを最初に破棄、次に帯域クラスYellow、最後に帯域クラスGreenを破棄、といった設定が可能です。

■ テールドロップの動作を調整するため、送信キューパラメーターセットのしきい値を変更するには、mls qos queue-set thresholdコマンドを使います。

たとえば、パラメーターセット2において、帯域クラスGreen、Yellow、Redの各パケットに適用する最大キュー長をそれぞれ50000Byte、30000Byte、10000Byteに設定するには、次のようにします。

awplus(config)# mls qos queue-set 2 threshold 0 50000 0 30000 0 10000


テールドロップ方式では、しきい値GREENMIN、YELLOWMIN、REDMINは意味を持たないため、ここでは0を指定しています。

WREDの動作パラメーター
WRED方式では、キュー長が上限に達する前にパケットを徐々に破棄していくことで、キューの枯渇を予防したり、トランスポート層の輻輳回避メカニズムを有効に機能させたりするキュー管理方式です。

Note - WRED方式は流量制御や輻輳回避の機能を持つTCPトラフィックに対してもっとも効果を発揮します。UDPのように輻輳制御機能を持たないプロトコルに対しては効果がありませんのでご注意ください。

WREDの動作は、送信キューパラメーターセットのしきい値(破棄開始点と完全破棄点)と破棄率係数を変更することによって調整できます。WREDの動作を決める各パラメーターを図示すると次のようになります。これをREDカーブと呼びます。


平均キュー長がMINからMAXの間にある場合、パケットは0からDROPPROB(=「2のDROP乗」分の1)の間の確率でランダムに破棄されます。パケットの破棄率は平均キュー長がMAXに近づくにつれ高くなっていき、MAXのときDROPPROBとなります。平均キュー長がMAXを超えると、すべてのパケットが破棄されます。平均キュー長がMIN以下のときはパケットは破棄されません。

本製品では、8つの送信キュー×3つの帯域クラスのそれぞれに対してREDカーブを個別に設定できます。これにより、帯域クラスRedを最初に破棄、次に帯域クラスYellow、最後に帯域クラスGreenを破棄、といった設定が可能です。

■ WREDの動作を調整するため、送信キューパラメーターセットのしきい値を変更するには、mls qos queue-set thresholdコマンドを使います。

たとえば、パラメーターセット2において、帯域クラスGreenのパケットには破棄開始点128000Byte、完全破棄点256000Byte、帯域クラスYellowのパケットに対しては破棄開始点64000Byte、完全破棄点128000Byte、帯域クラスRedのパケットには破棄開始点32000Byte、完全破棄点64000Byteのしきい値を設定し、破棄率係数はどの帯域クラスにおいても1(完全破棄点での破棄率50%)になるよう設定するには、次のようにします。

awplus(config)# mls qos queue-set 1 threshold 128000 256000 64000 128000 32000 64000
awplus(config)# mls qos queue-set 1 drop-probability 1 1 1


■ REDアルゴリズムは、輻輳制御機能を持たないUDPのようなプロトコルに対しては効果がありません。こうしたトラフィックに対しては、平均キュー長算出用係数(mls qos queue-set averaging-factorコマンド)が0、かつ、破棄開始点(MIN)と完全破棄起点(MAX)をほぼ同じ値にしたREDカーブを適用することで、テールドロップと同様の動作が可能です。

キューからの送信

送信スケジューリング
送信キューに格納されたパケットをどのような順序で出力するかは、キューごとに設定した送信スケジューリング方式によって決まります。

本製品は以下の2つのスケジューリング方式をサポートしています。初期状態では、すべての送信キューでPQ方式を使用するよう設定されています。


送信スイッチポートにおいては、これらの各方式を組み合わせて使うこともできます。具体的には、次の組み合わせが可能です。


■ 送信ポートで使用するスケジューリング方式、および、WRRにおけるキューの重み付け値(送信比率)は、インターフェースモードのpriority-queueコマンド、wrr-queue group weightコマンドで設定します。


■ 送信キューのスケジューリング方式、WRR使用時の重み付け(送信比率)設定は、show mls qos interfaceコマンドで確認できます。スケジューリング方式は「Scheduler」欄を、WRR使用時の重み付け値は「Weight」欄をご覧ください。

awplus> show mls qos interface port1.0.15

Interface: port1.0.15

  Number of egress queues: 8
  Queue Set: 1
  Drop Mode: Taildrop

  Egress Queue:         0
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             6
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         1
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             6
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         2
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             12
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         3
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             12
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         4
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             30
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         5
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             30
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         6
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             60
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb

  Egress Queue:         7
    Status:             Enabled
    Scheduler:          Strict Priority
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb


シェーピング
パケット送信時の速度(送信間隔)を調整することで、ネットワークに流れ込むトラフィックを一定のレートにならす機能をシェーピングと呼びます。

本製品では、送信キューやスイッチポートに対して、送信レートの上限値を設定することで、シェーピングを行うことが可能です。

■ キューに対して送信レートの上限値を設定するには、インターフェースモードのwrr-queue egress-rate-limitコマンドを使います。

たとえば、ポート1.0.13の送信キュー0〜2の送信レートをそれぞれ5Mbpsに制限するには、次のようにします。帯域制限の粒度は651Kbpsなので、指定値が651Kbpsの倍数(5208Kbps = 651Kbps x 8)に丸められている点に注意してください。

awplus(config)# interface port1.0.13
awplus(config-if)# wrr-queue egress-rate-limit 5m queues 0 1 2
% Egress rate limit of port1.0.13 has been set to 5208 Kb


■ スイッチポートに対して送信レートの上限値を設定するには、インターフェースモードのegress-rate-limitコマンドを使います。

たとえば、ポート1.0.14の送信レートを50Mbpsに制限するには、次のように指定します。帯域制限の粒度は651Kbpsなので、指定値が651Kbpsの倍数(50127Kbps = 651Kbps x 77)に丸められている点に注意してください。

awplus(config-if)# egress-rate-limit 50m
% Egress rate limit has been set to 50127 Kb


■ キューごとの送信レート上限値は、show mls qos interfaceコマンドで確認できます。「Egress Rate Limit」欄をご覧ください。

awplus> show mls qos interface port1.0.15

Interface: port1.0.15

  Number of egress queues: 8
  Queue Set: 1
  Drop Mode: Taildrop

  Egress Queue:         0
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             6
    Queue Limit:        12%
    Egress Rate Limit:  5208 Kb

  Egress Queue:         1
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             6
    Queue Limit:        12%
    Egress Rate Limit:  5208 Kb

  Egress Queue:         2
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             12
    Queue Limit:        12%
    Egress Rate Limit:  5208 Kb

  Egress Queue:         3
    Status:             Enabled
    Scheduler:          Wrr Group 1
    Weight:             12
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb
...


■ スイッチポートの送信レート上限値は、show interfaceコマンドで確認できます。「Egress Rate Limit」欄をご覧ください。

awplus> show interface port1.0.16
Interface port1.0.16
  Scope: both
  Link is UP, administrative state is UP
  Thrash-limiting
    Status Not Detected, Action learn-disable, Timeout 1(s)
  Hardware is Ethernet, address is 0000.cd24.0367 (bia 0000.cd24.0367)
  index 5016 metric 1 mtu 1500
  <UP,BROADCAST,MULTICAST>
  VRF Binding: Not bound
  Egress Rate Limit 50127 Kb
    input packets 0, bytes 0, dropped 0, multicast packets 0
    output packets 0, bytes 0, multicast packets 0 broadcast packets 0


ポリシーマップのフィルタリング機能

ポリシーマップは、QoSだけでなくパケットフィルタリングにも使用できます(QoSとフィルタリングの併用も可能です)。

パケットフィルタリングは、インターフェースモードのip access-groupコマンドやmac access-groupコマンドを使ってスイッチポートにハードウェアアクセスリストを適用したり(インターフェース・ハードウェアパケットフィルター)、グローバルコンフィグモードのip access-groupコマンドやmac access-groupコマンドを使ってスイッチ全体にハードウェアアクセスリストを適用したり(グローバル・ハードウェアパケットフィルター)することでも実現できますが、ポリシーマップのほうが使用できる条件が多く、より柔軟なフィルタリングを行えます。

また、本製品には、ハードウェアパケットフィルターにマッチしたパケットに対して、ポリシーマップによるQoSが適用されないという仕様があるため、ポリシーマップによるQoSを利用しながらパケットフィルタリングを行いたい場合は、ハードウェアパケットフィルターを使用するのではなく、以下に述べるポリシーマップのフィルタリング機能を使ってください。

設定例

次にポリシーマップを利用したパケットフィルタリングの設定例を示します。
ここでは、192.168.10.0/24から192.168.20.0/24へのTCP接続(セッション開始)を禁止するよう設定します。

仕様により、1つのクラスマップでSynパケットだけを破棄する設定はできないため、ここでは2つのクラスマップを用意し、(1) Syn=Onのパケットは原則破棄、(2) ただしSyn=OnかつAck=Onのパケットは例外的に許可、という2つの条件を併用することでセッション確立を禁止します。

なお、192.168.10.0/24のネットワークは、ポート1.0.1〜1.0.2に接続されているものと仮定します。

  1. QoS機能を有効にします。
    QoS関連コマンドの多くは、QoS機能を有効にしておかないと実行できないので、最初にmls qos enableコマンドを実行してQoS機能を有効化しておいてください。

    awplus(config)# mls qos enable
    


  2. 192.168.10.0/24から192.168.20.0/24へのTCPパケットを識別するハードウェアIPアクセスリストを作成します。これにはaccess-list(hardware ip)コマンドを使います。
    ここでは、Syn=OnかつAck=Onのパケットを許可するためのアクセスリスト3011と、Syn=Onのパケットを破棄するためのアクセスリスト3012を作成します。
    なお、ハードウェアIPアクセスリストでは、TCP制御フラグの指定はできません。これは、クラスマップのmatch tcp-flags節を使って指定します。

    awplus(config)# access-list 3011 permit tcp 192.168.10.0/24 192.168.20.0/24
    awplus(config)# access-list 3012 deny tcp 192.168.10.0/24 192.168.20.0/24
    


    Note - ハードウェアアクセスリストの概要と作成方法については、「トラフィック制御」の「アクセスリスト」をご覧ください。

  3. 192.168.10.0/24から192.168.20.0/24へのTCPパケットに関して、Syn=OnかつAck=Onのパケットを許可するクラスマップpermitSA10と、Syn=Onのパケットを破棄するクラスマップdenyS10を作成します。
    クラスマップの作成はclass-mapコマンドで行います。同コマンドを実行するとクラスマップモードに移動するので、同モードのコマンドを使って分類条件を指定してください。ここでは、match access-groupコマンドを使って、前の手順で作成したハードウェアアクセスリストを指定し、match tcp-flagsコマンドでTCP制御フラグのマッチ条件を指定します。

    awplus(config)# class-map permitSA10
    awplus(config-cmap)# match access-group 3011
    awplus(config-cmap)# match tcp-flags syn ack
    awplus(config-cmap)# exit
    awplus(config)# class-map denyS10
    awplus(config-cmap)# match access-group 3012
    awplus(config-cmap)# match tcp-flags syn
    awplus(config-cmap)# exit
    


  4. 2つのクラスマップを束ねるポリシーマップacl10を作成します。最初にpolicy-mapコマンドでポリシーマップの名前を指定します。これにより、ポリシーマップモードに移動します。

    awplus(config)# policy-map acl10
    awplus(config-pmap)# 
    


  5. ポリシーマップにクラスマップを関連付け、該当クラスマップによって識別されたトラフィッククラスに対する処理を指定します。ここでは、192.168.10.0/24から192.168.20.0/24へのTCP Syn + Ackパケットを許可、同TCP Synパケットを拒否、その他すべてのパケットを許可するよう設定します。
    クラスマップの関連付けはclassコマンドで行います。同コマンドでクラスマップ名を指定するとポリシーマップ・クラスモードに移動します。QoSの設定では同モードのコマンドを使ってマッチしたパケットに対する処理内容を指定できますが、ここではパケットの許可・破棄だけが目的なので、それ以外の処理内容を指定する必要はありません。

    awplus(config-pmap)# class permitSA10
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class denyS10
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# exit
    


  6. ポリシーマップacl10をネットワーク192.168.10.0/24の接続されているスイッチポート1.0.1〜1.0.2に適用します。

    awplus(config)# interface port1.0.1-1.0.2
    awplus(config-if)# service-policy input acl10
    


設定は以上です。

高負荷環境における制御パケットの優先設定

CPU宛て通信の負荷が非常に高い環境では、RIP、OSPF、VRRP、PIM、ARPの制御パケットを適切に処理できず、これら制御プロトコルの動作に支障をきたす場合があります。これらのプロトコルを使用する場合は、制御パケットを優先的にCPUへ送るため、次のようなQoS設定を追加することをおすすめします。

Note - BPDU(スパニングツリープロトコル)、IGMP、LACP、EPSR、VCS(バーチャルシャーシスタック)の制御パケットについては、自動的に優先制御が行われるため特別な設定は不要です。

Note - すでにQoSの設定を行っている場合は、既存のポリシーマップに下記の設定(制御パケットを優先するための設定)を追加してください。

  1. QoS機能を有効にします。
    QoS関連コマンドの多くは、QoS機能を有効にしておかないと実行できないので、最初にmls qos enableコマンドを実行してQoS機能を有効化しておいてください。

    awplus(config)# mls qos enable
    


  2. 各プロトコルの制御パケットを識別するハードウェアIPアクセスリストを作成します。これにはaccess-list(hardware ip)コマンドを使います。
    以下は3001から順に、それぞれRIP、OSPF、VRRP、PIMの各パケットを識別するためのアクセスリストとなります。
    なお、ARPパケットはQoSクラスマップのmatch節を用いて分類するため、ハードウェアIPアクセスリストは使いません。

    awplus(config)# access-list 3001 permit udp any any eq 520
    awplus(config)# access-list 3002 permit proto 89 any any
    awplus(config)# access-list 3003 permit proto 112 any any
    awplus(config)# access-list 3004 permit proto 103 any any
    


    Note - ハードウェアアクセスリストの概要と作成方法については、「トラフィック制御」の「アクセスリスト」をご覧ください。

  3. 各プロトコルの制御パケットをトラフィッククラスに分類するためのクラスマップを作成します。
    クラスマップの作成はclass-mapコマンドで行います。同コマンドを実行するとクラスマップモードに移動するので、同モードのコマンドを使って分類条件を指定してください。


  4. 作成したクラスマップを束ねるポリシーマップCtrlPktsを作成します。最初にpolicy-mapコマンドでポリシーマップの名前を指定します。これにより、ポリシーマップモードに移動します。

    awplus(config)# policy-map CtrlPkts
    awplus(config-pmap)# 
    


  5. ポリシーマップCtrlPktsにクラスマップを関連付け、該当クラスマップによって識別されたトラフィッククラスに対する処理を指定します。ここでは、各プロトコルの制御パケットを2番目に優先度の高い送信キュー6に割り当て、制御パケットがCPUに優先的に送信されるよう設定します。

    Note - BPDU(スパニングツリープロトコル)、LACP、EPSRの使用時は、これらのプロトコルの制御パケットが送信キュー6を使うため、ここで述べる各プロトコルの制御パケットは3番目に優先度の高い送信キュー5に割り当ててください。

    クラスマップの関連付けはclassコマンドで行います。同コマンドでクラスマップ名を指定するとポリシーマップ・クラスモードに移動するので、マッチしたパケットに対する処理内容を指定してください。ここではset queueコマンドによって、制御パケットを指定した送信キューに割り当てています。


  6. 必要なトラフィッククラスの設定が済んだら、ポリシーマップモードからグローバルコンフィグモードに戻ります。

    awplus(config-pmap)# exit
    


  7. ポリシーマップCtrlPktsをすべてのスイッチポートに適用します。

    awplus(config)# interface port1.0.1-1.0.24
    awplus(config-if)# service-policy input CtrlPkts
    


    Note - スタティックチャンネルグループ(手動設定のトランクグループ)を設定している場合は、インターフェース名「saX」(Xはスタティックチャンネルグループ番号)にポリシーマップを適用してください。

設定は以上です。

ポリシーマップのルール領域消費量

スイッチポートにポリシーマップを適用すると、システム内部の「ルールテーブル」内にあるルール領域が消費されます。

詳しくは「トラフィック制御」の「アクセスリスト」をご覧ください(「ハードウェアによるフィルタリング機能とルール領域消費量」を参照)。


(C) 2007 - 2009 アライドテレシスホールディングス株式会社

PN: 613-000751 Rev.H