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


用語一覧
設定手順例
受信時CoS値によるQoS設定例
ポリシーマップによるQoS設定例
ポリシーマップとクラスマップ
クラスマップ
ポリシーマップ
QoS処理フロー詳細
受信時のQoS処理
送信キューの割り当て
ポリシーマップによるQoS処理
トラフィック分類
プレマーキング
メータリングとポリシング
シングルレートポリサー
ツインレートポリサー
ポリシーベースルーティング
送信時のQoS処理
キューへの格納
キューからの送信
送信スケジューリング
シェーピング
設定例
特定のDSCP値を持つパケットを指定の送信キューに割り当てる
特定IPアドレスからのパケットにDSCP値をセットし、指定の送信キューに割り当てる
ポリシーマップのフィルタリング機能
設定例
制御パケットの優先制御


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

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

ポリシーマップでは、クラスマップを用いてパケットをトラフィッククラスに分類し、それぞれに異なるサービスレベル(帯域や優先度、経路)を割り当てることができます。クラスマップでは、IPアドレスやTCP/UDPポート、DSCP(DiffServ Code Point)などに基づいたトラフィック分類が可能です。
Note
同一ポート上において、ハードウェアパケットフィルターとポリシーマップを併用することは可能です。該当ポートで受信したパケットの処理は、ハードウェアパケットフィルター、ポリシーマップの順に行われます。ただし、次項で述べる制限事項があるので注意してください。
Note
ハードウェアパケットフィルターにマッチしたパケットに対して、ポリシーマップによるQoSは適用されません(ここでの「マッチ」とは、破棄(deny)だけでなく明示的な転送許可(permitなど)も含みます)。ハードウェアパケットフィルターで破棄(deny)のアクションだけを使用する場合は両者を併用しても問題はありませんが、ハードウェアパケットフィルターで破棄以外のアクションを使用する場合は、ハードウェアパケットフィルターとポリシーマップを併用せずに、ポリシーマップのフィルタリング機能を使ってフィルタリングを行ってください。
Note
同一スイッチポート上においてリモートミラーリングとQoSは併用できません。
Note
同一スイッチポート上においてWeb認証とポリシーベースQoSは併用できません。

用語一覧

ここでは、本解説編で使用する用語について簡単にまとめます。以後の説明でよくわからない言葉が出てきたときは、こちらをご参照ください。
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)に分類する。本処理は、受信ポートにポリシーマップが適用されており、なおかつ、該当トラフィッククラスに対してポリサーが設定されているときだけ行われる。

■ ポリサー

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

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

■ ポリシング

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

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

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

■ 送信スケジューリング

パケット処理の最終段階であるキューからの送信処理を、どのような順序で行うかを規定するもの。本製品では、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に対し、すべての送信キューでWRRスケジューリングを用いるよう設定します。各キューからの送信比率は、上位キューから7:7:5:5:2:2:1:1とします。

    awplus(config)# mls qos scheduler-set 1 wrr-queue group 2 weight 25 queues 7 7 5 5 2 2 1 1
    awplus(config)# interface port1.0.1
    awplus(config-if)# mls qos scheduler-set 1
    

設定は以上です。

ポリシーマップによる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
    

設定は以上です。

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

次に、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)# 

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

■ ハードウェアアクセスリストの設定は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

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

■ スイッチポートからポリシーマップの適用を解除するには、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)# 

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

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

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

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 トラフィッククラスでポリサーの設定がなされている場合、ポリサーのアクションがポリシングの場合は、帯域クラスRedに分類されたパケット(帯域超過パケット)を破棄する
8 受信パケットがIPルーティングの対象なら、IP転送表を参照してネクストホップを決定し、出力ポートを決定する。ただし、クラスマップ内でポリシーベースルーティングが指定されている場合はIP転送表を参照せずに、クラスマップで指定されたネクストホップを採用し、出力ポートを決定する
送信時のQoS処理(すべてのパケットが対象)
9 ここまでの処理で決定した送信キューにパケットを格納する。
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を破棄してトラフィッククラスの使用帯域を一定値までに制限する動作です。

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

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


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

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

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


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


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


■ メータリングの設定は、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 < バースト量 <= 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以内に抑えることができます。これは、使用可能な最大帯域を制限する設定となります。


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

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

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

ポリシーベースルーティングでは、ポリシーマップ/クラスマップの条件にマッチしたすべてのパケットを、指定されたネクストホップに転送します。そのため、条件によっては、通常のルーティングでは転送されないディレクティドブロードキャストパケットなども転送されることがあります。これを回避するには、転送不要なパケットがポリシーベースルーティングの対象にならないようにするか、不要なパケットを破棄するよう、ポリシーマップ/クラスマップの設定を行ってください。

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

ポリシーベースルーティングでは、ポリシーマップ/クラスマップの条件にマッチしたすべてのパケットを、指定されたネクストホップに転送します。そのため、条件によっては、通常のルーティングでは転送されないディレクティドブロードキャストパケットなども転送されることがあります(ip directed-broadcastコマンドの設定は、ポリシーベースルーティングされるパケットには適用されません)。これを回避するには、転送不要なパケットがポリシーベースルーティングの対象にならないようにするか、不要なパケットを破棄するよう、ポリシーマップ/クラスマップの設定を行ってください。

■ 特定のトラフィッククラスに属する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処理について解説します。

キューへの格納

送信ポートに到着したパケットは、ここまでの処理で決定された送信キューに格納されます。

キューからの送信

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

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

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

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


■ 送信キューのスケジューリング方式、WRR使用時の重み付け(送信比率)設定は、show mls qos interfaceコマンドで確認できます。

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

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

■ キューに対して送信レートの上限値を設定するには、インターフェースモードのwrr-queue egress-rate-limitコマンドを使います。
たとえば、ポート1.0.12の送信キュー0~2の送信レートをそれぞれ5Mbpsに制限するには、次のようにします。
awplus(config)# interface port1.0.12
awplus(config-if)# wrr-queue egress-rate-limit 5m queues 0 1 2
% Egress rate limit of port1.0.12 has been set to 5XXX Kb
Note
送信レートの設定値には粒度(設定可能な値の最小単位)があります。そのため、wrr-queue egress-rate-limitコマンドで入力した値によっては、上記例のように指定値が最小単位の倍数に丸められることがあります。

■ スイッチポートに対して送信レートの上限値を設定するには、インターフェースモードのegress-rate-limitコマンドを使います。
たとえば、ポート1.0.13の送信レートを50Mbpsに制限するには、次のように指定します。
awplus(config)# interface port1.0.13
awplus(config-if)# egress-rate-limit 50m
% Egress rate limit has been set to 5XXXX Kb
Note
送信レートの設定値には粒度(設定可能な値の最小単位)があります。そのため、egress-rate-limitコマンドで入力した値によっては、上記例のように指定値が最小単位の倍数に丸められることがあります。

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

Interface: port1.0.12
...
  Egress Queue:         0
...
    Egress Rate Limit:  5XXX Kb
...

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

設定例

QoSの各種処理を組み合わせた具体的な設定コマンド例をいくつか紹介します。

特定のDSCP値を持つパケットを指定の送信キューに割り当てる

■ IPフォンなどが送出する DSCP値 40 のパケットを送信キュー 5 に割り当てる設定
mls qos enable

class-map test1
 match dscp 40

policy-map qos_test1
 class test1
  set queue 5

interface port1.0.1-1.0.24
 service-policy input qos_test1

特定IPアドレスからのパケットにDSCP値をセットし、指定の送信キューに割り当てる

■ 送信元IPアドレスが 192.168.2.2 のパケットにDSCP値 40 をセットし、送信キュー 5 に割り当てる設定
mls qos enable 
access-list 3001 permit ip 192.168.2.2/32 any

class-map test2
 match access-group 3001

policy-map qos_test2
 class test2
  set dscp 40
  set queue 5

interface port1.0.1-1.0.24
 service-policy input qos_test2

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

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

パケットフィルタリングは、インターフェースモードのaccess-groupコマンドを使ってスイッチポートにハードウェアアクセスリストを適用したり(インターフェース・ハードウェアパケットフィルター)、グローバルコンフィグモードの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、VRRP、ARPなどの制御パケットを適切に処理できず、これら制御プロトコルの動作に支障をきたす場合があります。

このような事態を避けるため、本製品では初期状態でCPU宛てのパケットを下記のとおり自動的に優先制御するようになっています。この動作を変更することはできません。

表 5
パケットの種類
使用するCPU宛てキュー
VCS(バーチャルシャーシスタック) 7
AMF(アライドテレシスマネージメントフレームワーク) 6
BPDU(スパニングツリープロトコル)
EPSR
EAP
LACP
Loop Detect
LLDP
ARP Reply 3
IGMP
224.0.0.x宛てパケット(RIPバージョン2、OSPF、PIM、VRRPなど)
ARP Request 2
ユニキャストパケット(ルーティングパケット)
ユニキャストパケット(スイッチングパケット) 0
ブロードキャストパケット
マルチキャストパケット


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

PN: 613-002669 Rev.U