[index] AT-DC2552XS コマンドリファレンス 2.5.3.1

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


  - 用語一覧
  - 設定手順例
   - 受信時CoS値によるQoS設定例
   - ポリシーマップによるQoS設定例
  - ポリシーマップとクラスマップ
   - クラスマップ
   - ポリシーマップ
    - 内部領域と設定可能数
  - QoS処理フロー詳細
   - 受信時のQoS処理
    - CoS値の割り当て
   - ポリシーマップによるQoS処理
    - トラフィック分類
    - メータリングとポリシング
     - シングルレートポリサー
     - ツインレートポリサー
    - リマーキング
    - CoS値の書き換え
   - 送信時のQoS処理
    - 送信キュー
    - 送信キューの割り当て
    - キューへの格納
    - キューからの送信
     - 送信スケジューリング
     - シェーピング

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

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

ポリシーマップでは、クラスマップを用いてパケットをトラフィッククラスに分類し、それぞれに異なるサービスレベル(帯域や優先度)を割り当てることができます。クラスマップでは、IPアドレスやTCP/UDPポート、DSCP(DiffServ Code Point)などに基づいたトラフィック分類が可能です。

Note - 同一ポート上において、ハードウェアパケットフィルター(インターフェースACL)とポリシーマップを併用することも可能です。その場合、該当ポートで受信したパケットの処理は、インターフェースACL、ポリシーマップの順に行われます。両方を通過しないとパケットは出力されません。詳細は「トラフィック制御」の「ハードウェアパケットフィルター」をご覧ください。

用語一覧

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

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

■ QoS 3属性

QoS処理の過程でパケットに割り当てられたり、参照・変更されたりする3つの属性値。CoS、DSCP、帯域クラスのこと。ただし、CoS値は内部CoS値と外部CoS値があるため、厳密には4種類(内部CoS値と外部CoS値については後述)。

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

一方、帯域クラスは、パケット受信後に割り当てられる内部的な属性値。帯域クラスの値が意味を持つのは、後述するポリシングとリマーキングの処理まで。後続の機器に帯域クラスの情報を(間接的ながら)伝えるには、リマーキングによって帯域クラスに応じたDSCP値をパケットにセットする。

■ CoS

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

本製品のQoS機能では次の2つのCoS値を使い分けている。

■ DSCP

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

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

■ 帯域クラス

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

■ CoS値の割り当て

スイッチポートでパケットを受信した後、最初に行われるQoS処理。VLANタグの有無によって、内部CoS値と外部CoS値を次のように割り当てる。

■ トラフィック分類

ポリシーマップにもとづく最初のQoS処理。クラスマップを用いて、受信パケットをトラフィッククラスに分類する。本処理は、受信インターフェース(スイッチポートまたはVLAN)にポリシーマップが適用されているときだけ行われる。

■ クラスマップ

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

■ ポリシーマップ

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

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

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

■ メータリング

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

■ ポリサー

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

ポリサーには、帯域基準値の数によってシングルレートとツインレートの2種類がある。

■ ポリシング

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

■ リマーキング

メータリング後に行われるQoS処理の1つ。メータリングによって決定された帯域クラスにもとづきパケットのDSCP値を変更することで、後続の機器に本製品で計測した帯域クラスの情報を提供するために使う。本処理は、受信インターフェースにポリシーマップが適用されており、なおかつ、該当トラフィッククラスに対してポリサーが設定されているときだけ行われる。

■ CoS値の書き換え

リマーキングの後、送信キューの割り当て前に行われるQoS処理。トラフィッククラスに属するパケットの外部CoS値、内部CoS値を書き換えることで、送信時に任意のCoS値をセットしたり、使用する送信キューを変更したりする。書き換え対象は、内部CoS値だけ、外部CoS値だけ、内部CoS値と外部CoS値の両方の3つから選択できる。

■ 送信キュー

本製品のスイッチポートは、それぞれユニキャスト用の送信キュー8個(UQ0〜UQ7)とフラッディングパケット用の送信キュー4個(MQ0〜MQ3)を備えている。各キューに対しては、送信スケジューリング方式(PQ、WRR)、WRR時の重み付け値などを設定できる。PQ使用時は、番号の大きいキューほど優先度が高くなる。パケットをどの送信キューに格納するかは、内部CoS値をキーとしてcos-queueマップ(後述)を参照することにより決定する。なお設定時にMQ0〜MQ3を直接指定することはできないが、UQ0〜UQ7とMQ0〜MQ3は固定的に対応付けられているため、UQ0〜UQ7による間接的な指定は可能。

■ 送信キュー割り当て

出力ポートの決定後、最初に行われるQoS処理。内部CoS値をキーとしてcos-queueマップを参照し、該当パケットの格納先送信キューを決定する。本製品のQoS機能では送信キューを直接指定することはできないが、パケットに任意の内部CoS値を割り当てることはできるので、これとcos-queueマップを利用して間接的に送信キューを指定することが可能。

■ cos-queueマップ

内部CoS値と送信キューの対応表。各CoS値(0〜7)に対応する送信キュー番号(UQ0〜UQ7)が格納されている。パケットに送信キューを割り当てるときに参照する。

■ 送信キュー管理

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

■ テールドロップ方式

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

■ 送信スケジューリング

パケット処理の最終段階であるキューからの送信処理を、どのような順序で行うかを規定するもの。本製品では、PQ(絶対優先スケジューリング)とWRR(重み付きラウンドロビンスケジューリング)の2種類から選択できる。

■ PQ方式

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

■ WRR方式

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

■ シェーピング

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

設定手順例

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

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

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

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

この例では、CoS値に基づく送信キュー割り当て(cos-queueマップ)と送信スケジューリング方式の設定だけを初期値から変更しています。
Note - 本製品の送信キューには、ユニキャストパケット用(UQ0〜UQ7)とフラッディングパケット用(MQ0〜MQ3)の2種類があります。詳細は「送信キュー」をご覧ください。
  1. 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 - 初期設定ではタグなしパケットはCoS値「0」と見なされますが、受信ポートごとにタグなしパケットに割り当てるCoS値(デフォルトCoS値)を設定することもできます(mls qos cosコマンド)。

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

    awplus(config)# interface port1.0.1-1.0.48
    awplus(config-if)# wrr-queue weight 10 queues 7 6
    awplus(config-if)# wrr-queue weight 5 queues 5 4
    awplus(config-if)# wrr-queue weight 2 queues 3 2
    awplus(config-if)# wrr-queue weight 1 queues 1 0
    


設定は以上です。

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

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

次にポリシーマップを利用したQoSの基本的な設定手順例を示します。
  1. 3台のホストからのトラフィックを識別するため、3つのハードウェアアクセスリストを作成します。これにはaccess-list hardware(list)コマンドとaccess-list hardware(seq entry)コマンドを使います。QoS処理を適用するトラフィックに対しては、通常permitアクションを指定してください。

    awplus(config)# access-list hardware acl1
    awplus(config-ip-hw-acl)# permit ip 192.168.1.1/32 any
    awplus(config-ip-hw-acl)# exit
    awplus(config)# access-list hardware acl2
    awplus(config-ip-hw-acl)# permit ip 192.168.1.2/32 any
    awplus(config-ip-hw-acl)# exit
    awplus(config)# access-list hardware acl3
    awplus(config-ip-hw-acl)# permit ip 192.168.1.3/32 any
    awplus(config-ip-hw-acl)# exit
    

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

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

    awplus(config)# class-map host1
    awplus(config-cmap)# match access-group acl1
    awplus(config-cmap)# exit
    awplus(config)# class-map host2
    awplus(config-cmap)# match access-group acl2
    awplus(config-cmap)# exit
    awplus(config)# class-map host3
    awplus(config-cmap)# match access-group acl3
    awplus(config-cmap)# exit
    


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

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


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

    awplus(config-pmap)# class host1
    awplus(config-pmap-c)# police single-rate 81920 10240 10240 action drop-red
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class host2
    awplus(config-pmap-c)# police single-rate 30720 10240 10240 action drop-red
    awplus(config-pmap-c)# exit
    awplus(config-pmap)# class host3
    awplus(config-pmap-c)# police single-rate 20480 10240 10240 action drop-red
    awplus(config-pmap-c)# exit
    


  5. ポリシーマップ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
    


設定は以上です。

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

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

クラスマップ

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

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


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


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


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

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

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

    awplus(config)# access-list hardware acl20
    awplus(config-ip-hw-acl)# permit tcp 192.168.20.0/24 192.168.10.0/24
    awplus(config-ip-hw-acl)# exit
    

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

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

    awplus(config)# class-map tcp20to10
    


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

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


  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 acl20
   10 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: acl20


ポリシーマップ

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

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


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

ポリシーマップを受信インターフェース(スイッチポートまたはVLAN)に適用すると、ポリシーマップ内の各クラスマップによって受信パケットがトラフィッククラスに分類され、各トラフィッククラスに対してあらかじめ指定しておいたQoS処理が行われるようになります。

受信パケットとクラスマップの照合順序は次のとおりです。
  1. 受信ポートに適用されたポリシーマップのユーザー定義クラスマップ(ポリシーマップに関連付けた順で照合)
  2. 受信VLANに適用されたポリシーマップのユーザー定義クラスマップ(ポリシーマップに関連付けた順で照合)
  3. 受信ポートに適用されたポリシーマップのデフォルトクラスマップ
  4. 受信VLANに適用されたポリシーマップのデフォルトクラスマップ
照合はパケットにマッチするクラスマップが見つかった時点で終了します(それ以降のクラスマップとは照合しません)。
そのため、受信ポートと受信VLANの両方にポリシーマップが適用されている場合は、1, 2にマッチしなかったパケットがすべて3に分類され、4に分類されることはありません。

なお、スイッチポートに適用したポリシーマップは該当ポートのトラフィックだけを制御対象としますが、VLANに適用したポリシーマップは該当VLAN全体のトラフィックを制御対象とします。

また、ポリシーマップでは、denyアクションのクラスマップを用いることでパケットフィルタリングを行うこともできますが、本解説編ではポリシーマップのQoS機能だけをとりあげます。ポリシーマップのパケットフィルタリング機能については、「トラフィック制御」の「ハードウェアパケットフィルター」をご覧ください。

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

    awplus(config)# policy-map test
    


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

    awplus(config-pmap)# class downWeb
    


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

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


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

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

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


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

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

    awplus(config-pmap)# exit
    


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

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


■ トランクグループ(saX, poX, refX)にポリシーマップを適用するときは、「saX」、「poX」、「refX」ではなく、該当グループに所属しているすべてのスイッチポートに同じポリシーマップを設定します。たとえば、スイッチポート1.0.1〜1.0.10からなるLACPチャンネルグループ「1」にポリシーマップを適用するには、次のようにしてください。

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


インターフェース名「saX」、「poX」、「refX」にポリシーマップを適用することはできないので注意してください。

awplus(config)# interface po1
awplus(config-if)# service-policy input pacl12
% Service policy cannot be applied to a dynamic aggregator interface.
awplus(config-if)# exit
awplus(config)# interface ref1
awplus(config-if)# service-policy input pacl12
                   ^
% Invalid input detected at '^' marker.


■ 受信インターフェースからポリシーマップの適用を解除するには、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(9984 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(20032 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(9984 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(20032 kbps)  minimum burst(10240 B) maximum burst(10240 B)
...


内部領域と設定可能数

ポリシーマップは、同機能専用のシステム内部領域を使います。ポリシーマップ用の内部領域は総容量256単位です。

ポリシーマップを受信インターフェースに適用すると、それに応じて内部領域が消費されます。

ポリシーマップをいくつまで設定できるかは、この内部領域の消費具合によって決まります。

ポリシーマップの内部領域消費量については、「トラフィック制御」/「ハードウェアパケットフィルター」の「ポリシーマップの内部領域消費量」をご覧ください。

QoS処理フロー詳細

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

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

なお、図の左側では、QoS処理過程で使用される「QoS 3属性」(CoS値は内部CoS値と外部CoS値があるため合計4種類)がどこで参照(使用)され、どこで書き換え(割り当て)られるのかを示しています。


表 1:QoS処理の流れ
受信スイッチポート
1 受信 スイッチポートでパケットを受信
受信時のQoS処理(すべてのパケットが対象)
2 CoS値の割り当て 受信パケットがタグ付きの場合は、VLANタグに格納されているCoS値をそのまま内部・外部CoS値として採用する。タグなしの場合は、パケットにCoS値が含まれていないため、受信ポートごとに設定されたデフォルトCoS値(初期値は0)を内部・外部CoSとして割り当てる
ポリシーマップによるQoS処理(受信インターフェースにポリシーマップが適用されている場合のみ)
3 パケット分類 クラスマップにより、パケットをトラフィッククラスに分類する。どのクラスマップにもマッチしなかったパケットは、デフォルトトラフィッククラスに分類する。なお、パケットとクラスマップの照合は、クラスマップをポリシーマップに関連付けした順序で行われる
4 メータリング トラフィッククラスでポリサーの設定がなされている場合、該当トラフィッククラスがどの程度帯域を使用しているかを計測し、受信パケットを帯域クラスに分類する
5 ポリシング/リマーキング トラフィッククラスでポリサーの設定がなされている場合、ポリサーのアクションがリマーキングなら、帯域クラスをキーにremarkマップを参照して受信パケットのDSCP値を書き換える。ポリサーのアクションがポリシングの場合は、帯域クラスRedに分類されたパケット(帯域超過パケット)を破棄する
6 CoS値の書き換え remark new-cosコマンドの設定にしたがい、内部・外部CoS値を書き換える。書き換え対象は「内部のみ」、「外部のみ」、「内部と外部の両方」から選択可能。内部CoS値は送信キューの決定にのみ使われる値。外部CoS値はタグ付きポートからパケットを出力するとき、パケットのCoSフィールドに設定される値
送信時のQoS処理(すべてのパケットが対象)
7 送信キュー決定 パケットの内部CoS値(0〜7)をキーとしてcos-queueマップを参照し、パケットに割り当てる送信キュー(0〜7)を決定する
8 送信キューへの格納 ここまでの処理で決定した送信キューにパケットを格納する。キューが混雑している場合は、テールドロップ方式により既定の最大キュー長を超えたパケットを破棄する
9 送信キューからの取り出し 設定されたスケジューリング方式にしたがい、送信キューからパケットを出力する。PQ(絶対優先)、WRR(重み付きラウンドロビン)のいずれか、あるいは、両者の併用も可能。なお、送信キューや送信ポートに送信レートの上限値が設定されている場合は、指定されたレートでパケットを送信するシェーピング動作を行う
送信スイッチポート
10 送信 スイッチポートからパケットを送信


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

受信時のQoS処理

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

CoS値の割り当て

受信パケットのCoS値(内部CoS値と外部CoS値)は、次のようにして決定されます。

■ 初期状態ではスイッチポートのデフォルトCoS値は0です。これを変更するには、インターフェースモードのmls qos cosコマンドを使います。
たとえば、ポート1.0.49で受信したすべてのタグなしパケットに内部・外部CoS値「5」を割り当てるには、次のようにします。

awplus(config)# interface port1.0.49
awplus(config-if)# mls qos cos 5


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

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

受信インターフェース(スイッチポートまたはVLAN)にポリシーマップが適用されている場合は、受信インターフェースにおいて、ポリシーマップに基づいた一連のQoS処理(トラフィック分類、メータリング、ポリシング、リマーキング、CoS値書き換え)が行われます。

受信インターフェースにポリシーマップが適用されていない場合、これらの処理は行われず、送信時のQoS処理に移ります。

トラフィック分類

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

受信パケットとクラスマップの照合は次の順序で行われます。
  1. 受信ポートに適用されたポリシーマップのユーザー定義クラスマップ(ポリシーマップに関連付けた順で照合)
  2. 受信VLANに適用されたポリシーマップのユーザー定義クラスマップ(ポリシーマップに関連付けた順で照合)
  3. 受信ポートに適用されたポリシーマップのデフォルトクラスマップ
  4. 受信VLANに適用されたポリシーマップのデフォルトクラスマップ
照合はパケットにマッチするクラスマップが見つかった時点で終了します(それ以降のクラスマップとは照合しません)。
そのため、受信ポートと受信VLANの両方にポリシーマップが適用されている場合は、1, 2にマッチしなかったパケットがすべて3に分類され、4に分類されることはありません。

トラフィック分類後のポリシーマップ処理(メータリング、ポリシング、リマーキング、CoS値書き換え)は、トラフィッククラス単位で行われます。

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

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

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

帯域使用量の計測と帯域クラスへの分類処理はメータリングと呼ばれます。これは、クラスマップによってトラフィッククラスに分類されたパケットに対して行われる最初のQoS処理です。

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

表 2:3つの帯域クラス
帯域クラス
帯域使用量
取り扱いの一例
Green 少ない 帯域割り当ての優先度は最高
Yellow 中程度 帯域割り当ての優先度は中
Red 使いすぎ 帯域割り当ての優先度は最低。キューへの格納前に破棄することが可能


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

Note - スイッチポートに適用したポリシーマップでは、該当ポートのトラフィックだけが計測対象となります。一方、VLANに適用したポリシーマップでは、該当VLAN全体のトラフィックが計測対象となります。

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

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


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

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


■ ポリサーの設定時には、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(20480 kbps)  minimum burst(10240 B) maximum burst(10240 B)

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


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

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



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

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

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

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

リマーキング

リマーキングは、メータリング(帯域クラスへの分類)後に行われるQoS処理の1つです。

リマーキングでは、メータリングによって決定された帯域クラスの情報を利用して、パケットのDSCP値を変更します。これにより、後続の機器に本製品で計測した帯域クラスの情報を提供することができます。リマーキング処理は、remarkマップと呼ぶ書き換え対応表にしたがって行われます。

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

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

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

awplus(config)# policy-map example
awplus(config-pmap)# class traffic7
awplus(config-pmap-c)# police single-rate 71680 10240 10240 action remark-transmit


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

たとえば、帯域クラスがGreenのパケットにDSCP値7を、帯域クラスがYellowのパケットにDSCP値4を、帯域クラスがRedのパケットにDSCP値1を割り当てるには、次のようにします。

awplus(config-pmap-c)# remark-map bandwidth-class green to new-dscp 7
awplus(config-pmap-c)# remark-map bandwidth-class yellow to new-dscp 4
awplus(config-pmap-c)# remark-map bandwidth-class red to new-dscp 1


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

awplus# show policy-map example

  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(20480 kbps)  minimum burst(10240 B) maximum burst(10240 B)

    ...

    CLASS-MAP-NAME: traffic7
      QOS-ACCESS-LIST-NAME: 3002
      Policer single-rate action remark-transmit:
       average rate(71680 kbps)  minimum burst(10240 B) maximum burst(10240 B)
      Remark Map:
                         Green   Yellow   Red

                   DSCP    7       4       1
        Bandwidth Class    -       -       -


CoS値の書き換え

CoS値の書き換えは、メータリングの一環として行われるリマーキングの後、送信キューの割り当て前に行われるQoS処理です。

トラフィッククラスに属するパケットの外部CoS値、内部CoS値を書き換えることで、送信時に任意のCoS値をセットしたり、使用する送信キューを変更したりすることが可能です。

CoS値書き換えの設定はremark new-cosコマンドで行います。コマンド名からはリマーキングの一部であるように感じられますが、実際にはリマーキングとは独立した処理です。そのため、ポリサーの設定をしなくてもCoS値の書き換えは行えます。

■ 特定のトラフィッククラスに属するパケットに対してCoS値の書き換えを行うには、該当トラフィッククラスを対象とするポリシーマップ・クラスモードにおいて、remark new-cosコマンドを実行し、書き換え後のCoS値を指定します。
省略可能なキーワードinternal、external、bothを指定することで、それぞれ「内部CoS値のみ書き換え」、「外部CoS値のみ書き換え」、「内部・外部CoS値とも書き換え」の指示が可能です(キーワード省略時はbothと見なされる)。


■ CoS値書き換えの設定は、show policy-mapコマンドで確認できます。「Remark CoS-Queue Map Index to X」は内部CoS値だけをXに書き換える(internal設定)、「Remark CoS and CoS-Queue Map Index to X」は内部CoS値と外部CoS値の両方をXに書き換える(both設定)、「Remark CoS to X」は外部CoS値だけをXに書き換える(external設定)の意味です。

Note - show policy-mapコマンドの表示では、「CoS」が外部CoS値(送出パケットにセットされる値)、「CoS-Queue Map Index」が内部CoS値(cos-queueマップの参照キー)を表しています。

awplus# show policy-map example2

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

    CLASS-MAP-NAME: default

    CLASS-MAP-NAME: highprio
      Remark CoS-Queue Map Index to 7
                                      
    CLASS-MAP-NAME: midprio
      Remark CoS and CoS-Queue Map Index to 4

    CLASS-MAP-NAME: markone
      Remark Cos to 1


送信時のQoS処理

転送判断(L2スイッチング処理)やQoS処理を経て送信ポートに到着したパケットは、cos-queueマップに基づいて決定された送信キューに格納され、実際に送信されるのを待ちます。

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

送信キュー

各スイッチポートには、次に述べる2種類の送信キュー、合計12個が用意されています。
UQ0〜UQ7とMQ0〜MQ3は次のように対応付けられています。カッコ内は送信時の優先順位(1〜12)です。

表 5
ユニキャストパケット用
フラッディングパケット用
UQ0 (12) MQ0 (11)
UQ1 (10)
UQ2 (9) MQ1 (8)
UQ3 (7)
UQ4 (6) MQ2 (5)
UQ5 (4)
UQ6 (3) MQ3 (2)
UQ7 (1)

各送信キューの優先順位をあらためて示すと次のようになります。


本製品のQoS機能では、パケットの内部CoS値と、使用する送信キューの対応付け(cos-queueマップと呼びます)を変更することで、パケット送信時の優先順位や送信比率、送信レートなどを調整することができます。

送信キューの割り当て

本製品は、パケットの内部CoS値をキーにcos-queueマップを検索して送信キューを決定します。

内部CoS値とは、送信キュー割り当て時にのみ参照されるCoS値のことです。タグ付きパケットの場合、受信時にパケットが持っていたCoS値が内部CoS値の初期値となります。タグなしパケットの場合、受信ポートごとに設定可能な「デフォルトCoS値」(mls qos cosコマンド)が初期値となります。内部CoS値は、CoS値書き換え処理によって任意の値に変更することも可能です。

初期設定では、内部CoS値と送信キューは次のようにマッピングされています。カッコ内は送信時の優先順位(1〜12)です。
マッピングの設定(cos-queueマップ)上は、CoS値とUQ0〜UQ7の対応だけを定義していますが、UQ0〜UQ7とMQ0〜MQ3の固定的な対応付け(「送信キュー」を参照)にしたがって、MQ0〜MQ3も自動的に決まります。

表 6
内部CoS値
送信キュー
ユニキャストパケット用
フラッディングパケット用
0 UQ2 (9) MQ1 (8)
1 UQ0 (12) MQ0 (11)
2 UQ1 (10)
3 UQ3 (7) MQ1 (8)
4 UQ4 (6) MQ2 (5)
5 UQ5 (4)
6 UQ6 (3) MQ3 (2)
7 UQ7 (1)

初期設定では、各キューの優先順位とcos-queueマッピングにより、各種パケットが次の順序で優先的に送信されます。
  1. 内部CoS値 7 のユニキャストパケット
  2. 内部CoS値 7, 6 のフラッディングパケット
  3. 内部CoS値 6 のユニキャストパケット
  4. 内部CoS値 5 のユニキャストパケット
  5. 内部CoS値 5, 4 のフラッディングパケット
  6. 内部CoS値 4 のユニキャストパケット
  7. 内部CoS値 3 のユニキャストパケット
  8. 内部CoS値 3, 0 のフラッディングパケット
  9. 内部CoS値 0 のユニキャストパケット
  10. 内部CoS値 2 のユニキャストパケット
  11. 内部CoS値 2, 1 のフラッディングパケット
  12. 内部CoS値 1 のユニキャストパケット

■ パケットに対する送信キュー割り当ての動作を変更するには、mls qos map cos-queueコマンドを使ってcos-queueマップを編集します。
たとえば、受信パケットの内部CoS値0〜7に対して、ユニキャストパケット用送信キューUQ2, UQ2, UQ3, UQ3, UQ4, UQ5, UQ6, UQ7を割り当てるには次のように設定します。

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

フラッディングパケット用の送信キューMQ0〜MQ3を明示的に指定することはできませんが、先に述べたとおりUQ0〜UQ7とMQ0〜MQ3は固定的に対応付けられているため(「送信キュー」を参照)、上記例では内部CoS値0〜7に対して、MQ1, MQ1, MQ1, MQ1, MQ2, MQ2, MQ3, MQ3を指定したことになります。
上記コマンド実行後の内部CoS値と送信キューのマッピングは次のようになります。カッコ内は送信時の優先順位(1〜12)です。

表 7
内部CoS値
送信キュー
ユニキャストパケット用
フラッディングパケット用
0 UQ2 (9) MQ1 (8)
1
2 UQ3 (7)
3
4 UQ4 (6) MQ2 (5)
5 UQ5 (4)
6 UQ6 (3) MQ3 (2)
7 UQ7 (1)

上記設定変更後は、各キューの優先順位とcos-queueマッピングにより、各種パケットが次の順序で優先的に送信されます。
  1. 内部CoS値 7 のユニキャストパケット
  2. 内部CoS値 7, 6 のフラッディングパケット
  3. 内部CoS値 6 のユニキャストパケット
  4. 内部CoS値 5 のユニキャストパケット
  5. 内部CoS値 5, 4 のフラッディングパケット
  6. 内部CoS値 4 のユニキャストパケット
  7. 内部CoS値 3, 2 のユニキャストパケット
  8. 内部CoS値 3, 2, 1, 0 のフラッディングパケット
  9. 内部CoS値 1, 0 のユニキャストパケット

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

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


■ cos-queueマップの設定は、show mls qos maps cos-queueコマンドで確認できます。QUEUE欄に表示されているのはユニキャスト用送信キューUQ0〜UQ7の番号です。対応するフラッディングパケット用送信キューについては、「送信キュー」をご覧ください。

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


キューへの格納

送信ポートに到着したパケットは、ここまでの処理で決定された送信キューに格納されますが、格納先のキューが混雑していた場合は、テールドロップ方式によりパケットを破棄し、キューの混雑を解消します。

テールドロップ方式は、既定の最大キュー長を超過したパケットを無条件に廃棄するシンプルなキュー管理方式です。最大キュー長の設定変更は不可です。

キューからの送信

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

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

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

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

なお、これらのコマンドで指定する送信キュー番号は、ユニキャストパケット用の送信キュー(UQ0〜UQ7)の番号です。フラッディングパケット用の送信キュー(MQ0〜MQ3)を明示的に指定することはできませんが、次表のとおり、UQ1、UQ3、UQ5、UQ7の指定は、実際にはUQ1+MQ0、UQ3+MQ1、UQ5+MQ2、UQ7+MQ3に対する指定となります。送信キューの種類と優先順位については「送信キュー」を参照してください。

コマンド指定値
実際の設定対象
UQ0 UQ0:
UQ1 UQ1 + MQ0
UQ2 UQ2
UQ3 UQ3 + MQ1
UQ4 UQ4
UQ5 UQ5 + MQ2
UQ6 UQ6
UQ7 UQ7 + MQ3



■ 送信キューのスケジューリング方式、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

  Egress Queue:         0
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             1
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         1
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             1
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         2
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             2
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         3
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             2
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         4
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             5
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         5
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             5
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

  Egress Queue:         6
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             10
    Queue Limit:        -
    Egress Rate Limit:  0 Kb

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


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

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

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

なお、このコマンドで指定する送信キュー番号は、ユニキャストパケット用の送信キュー(UQ0〜UQ7)の番号です。フラッディングパケット用の送信キュー(MQ0〜MQ3)を明示的に指定することはできませんが、次表のとおり、UQ1、UQ3、UQ5、UQ7の指定は、実際にはUQ1+MQ0、UQ3+MQ1、UQ5+MQ2、UQ7+MQ3に対する指定となります。送信キューの種類については「送信キュー」を参照してください。

コマンド指定値
実際の設定対象
UQ0 UQ0:
UQ1 UQ1 + MQ0
UQ2 UQ2
UQ3 UQ3 + MQ1
UQ4 UQ4
UQ5 UQ5 + MQ2
UQ6 UQ6
UQ7 UQ7 + MQ3


たとえば、ポート1.0.13の送信キュー0〜2(厳密にはUQ0, UQ1+MQ0, UQ2)の送信レートをそれぞれ30Mbpsに制限するには、次のようにします。

awplus(config)# interface port1.0.13
awplus(config-if)# wrr-queue egress-rate-limit 30m queues 0 1 2

Note - 指定した上限値が8Kbpsの倍数でない場合は、指定値よりも大きい直近の倍数に丸められます。

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

たとえば、ポート1.0.14の送信レートを400Mbps(409600Kbps)に制限するには、次のように指定します。

awplus(config)# interface port1.0.14
awplus(config-if)# egress-rate-limit 409600

Note - 指定した上限値が64Kbpsの倍数でない場合は、指定値よりも大きい直近の倍数に丸められます。

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

awplus# show mls qos interface port1.0.15

Interface: port1.0.15

  Number of egress queues: 8

  Egress Queue:         0
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             1
    Queue Limit:        12%
    Egress Rate Limit:  30720 Kb

  Egress Queue:         1
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             1
    Queue Limit:        12%
    Egress Rate Limit:  30720 Kb

  Egress Queue:         2
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             2
    Queue Limit:        12%
    Egress Rate Limit:  30720 Kb

  Egress Queue:         3
    Status:             Enabled
    Scheduler:          Weighted Round-Robin
    Weight:             2
    Queue Limit:        12%
    Egress Rate Limit:  0 Kb
...


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

PN: 613-001633 Rev.C