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


おもな構成要素
インターフェース
QoSポリシー
QoSルール
キュー制御方式
基本設定


QoS(Quality of Service)機能は、ユーザー定義のルールにしたがってIPv4/IPv6パケットを分類し、出力(送信)時に優先順位や帯域配分をコントロールする機能です。分類したパケットへのマーキングや、出力インターフェースの帯域を制限することも可能です。


おもな構成要素

QoS機能の基本的な構成要素について説明します。


インターフェース

QoS機能は、ルーティング可能インターフェース(IPv4/IPv6インターフェース)からのパケット出力時に適用されます。
出力インターフェースではパケットの分類に基づくマーキングと帯域制御/優先制御が可能です。
また、出力インターフェースでは、インターフェース全体としての送信帯域を制限することも可能です。

QoSポリシー

QoSポリシーは、おもにQoS機能で使用する出力キューの構造を定義します。
本製品のQoSはソフトウェアによって実現されるため、キュー制御方式(PQ、WRR、HTB)、キューの数、各キュー間の優先順位や帯域配分、最小・最大帯域、キュー長、DSCPマーキング値などを自由に設定できます。個々のキューは「クラス」という構成要素に対応し、QoSポリシーをルートとするツリー構造を形成します。また、ツリー内では最大3レベルまでクラスを階層化することが可能です。

QoSポリシー内には、下記のクラスが暗黙のうちに存在します。


1つのQoSポリシーが持てるクラスは最大128個ですが、これにはデフォルトクラスが含まれるため、ユーザー定義可能なクラスは127個です。

1つのQoSポリシーは複数のインターフェースに関連付けられますが、1つの出力インターフェースに関連付けられるQoSポリシーは1つだけです。

QoSルール

QoSルールは、パケットの分類条件と適用するキューを指定するものです。
分類条件の指定には、UTMのファイアウォール機能やNAT機能と同様、送信元と宛先のエンティティー定義、および、アプリケーション定義を用います。
また、条件にマッチしたパケットを格納するキューは、QoSポリシー内の末端クラス名によって指定します。
Note
AMF、BPDU、LACPなどのレイヤー2レベルのパケットを指定することはできません。

キュー制御方式

QoSポリシーツリー内の同一階層にあるクラスの間では、次の3つのキュー制御方式のいずれかを使用してクラス間の制御が行われます。


基本設定

QoS機能の基本的な設定方法を示します。
QoSの具体的な使用例については「設定例集」をご覧ください。

■ QoS機能の設定を行うには、最初にtraffic-controlコマンドを実行してトラフィックコントロールモードに入り、traffic-control enableコマンドでQoS機能を有効化します。
awplus(config)# traffic-control
awplus(config-tc)# traffic-control enable

■ 出力インターフェースの総帯域(最大送信レート)を制限するには、interfaceコマンドで仮想帯域を設定します。
たとえば、eth1インターフェースの最大送信レートを50Mbpsに制限するには次のようにします。
awplus(config-tc)# interface eth1 virtual-bandwidth 50mbit

■ トラフィック単位でQoSを適用するには、QoSポリシーとQoSルールの設定が必要です。
QoSポリシーの設定はトラフィックコントロールモードのpolicyコマンドとサブモードの各種コマンドで行います。
QoSルールの設定はトラフィックコントロールモードのruleコマンドで行います。

QoSポリシーとQoSルールは両方そろって初めて意味をなしますので、以下ではいくつか具体的な例を挙げながら、QoSポリシーとQoSルールの設定方法を説明します。

なお、QoSルールの指定に使用する宛先エンティティーでは、出力インターフェースを特定するため、1つ以上のインターフェースと関連付けられている必要があります(ip subnet / ipv6 subnetコマンドで interface パラメーターが指定されていること)。
次に、以下の各例で使用しているゾーン「qos」の設定例を示します。
zone qos
 network wan
  ip subnet 0.0.0.0/0 interface eth1
 network lan
  ip subnet 192.168.10.0/24 interface vlan1

また、以下の各例において、アプリケーション定義は例示用の「AppA」、「AppB」、「AppC」(一部の例では「AppC1」、「AppC2」、「AppC3」)、を使用しています。これらはそれぞれ架空のアプリケーションA、B、C(C1、C2、C3)を表すものとお考えください。

Note
エンティティー定義、アプリケーション定義の詳細については、「UTM」/「エンティティー定義」「UTM」/「アプリケーション定義」をご覧ください。


■ DSCPマーキングの設定は、QoSポリシー内の各クラスで優先度やウェイト、最小・最大帯域の設定と同時に行います。
class(htb)class(priority)class(wrr)sub-class(htb)sub-class(priority)sub-class(wrr)sub-sub-class(htb)sub-sub-class(priority)sub-sub-class(wrr)の各コマンドにおいて、set-dscpパラメーターで対象パケットにセットするDSCP値を指定してください。
DSCPマーキングの設定は、PQ、WRR、HTBいずれのキュー管理方式でも行えます。
awplus(config-tc)# policy MYQOS priority
awplus(config-tc-policy)# class HIGH priority-level 11 set-dscp 31
awplus(config-tc-policy)# class MED priority-level 10 set-dscp 30
awplus(config-tc-policy)# class LOW priority-level 9 set-dscp 29

■ RED(Random Early Detection/Discard)は、キュー長が上限に達する前にパケットを徐々に破棄していくことで、キューの枯渇を予防したり、トランスポート層の輻輳回避メカニズムを有効に機能させたりするためのアルゴリズムです。REDを使用すれば、より細やかな帯域制御を実現できます。

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

REDの設定は、キュー長とパケット破棄率の関係を示す「REDカーブテンプレート」を定義し、QoSポリシー内の各末端クラスに適用することで行います。

REDカーブテンプレートは以下のパラメーターによって定義されます。
各パラメーターを図示すると次のようになります。キュー長が MIN から MAX の間にある場合、パケットは 0 から probability(%)の間の確率でランダムに破棄されます。パケットの破棄率はキュー長が MAX に近づくにつれ高くなっていき、MAX のとき probability(%)となります。キュー長が MAX を超えると、すべてのパケットが破棄されます。キュー長が MIN 以下のときはパケットは破棄されません。


なお、REDアルゴリズムの動作上、MIN、MAX、LIMIT はバイト数として扱われますが、本製品の設定コマンドではこれらをパケット数 min、max、limit として指定し、それぞれに平均パケットサイズ avpkt(バイト)をかけることで、最終的な MIN、MAX、LIMIT を算出する仕組みになっています。


■ QoS機能の有効・無効など全般的な情報はshow traffic-controlコマンドで確認できます。
awplus# show traffic-control

■ QoSルールの情報はshow traffic-control ruleコマンドで確認できます。
awplus# show traffic-control rule

■ QoSルールが有効かどうかをチェックするには、show traffic-control rule config-checkコマンドを使います。

QoSルールの作成時にはエンティティーとアプリケーションの両定義を使用しますが、これらの定義が不完全な場合(指定したアプリケーションやエンティティーが未定義である、アプリケーション定義でIPプロトコルが未指定、など)、該当ルールは有効にならず無視されてしまいます。

このような事態を避けるには、ルール作成後にshow traffic-control rule config-checkコマンドを実行してルールが有効かどうかをチェックしてください。
awplus# show traffic-control rule config-check
Rule 15:
  "To" entity does not exist
同コマンドでは、無効なルールがある場合、それが理由とともに示されます。

この例では、次の理由によりルール「15」が無効であることが示されています。

また、次の例では、すべてのルールが有効であることが示されています。
awplus# show traffic-control rule config-check
All rules are valid

QoSルールは次の場合に無効とされます。

■ QoSの統計情報はshow traffic-control countersコマンドで確認できます。
awplus# show traffic-control counters

■ インターフェースに設定した送信レートの上限値(仮想帯域)や、QoSルールによって予約された帯域などの情報は、show traffic-control interfaceコマンドで確認できます。
awplus# show traffic-control interface


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

PN: 613-002107 Rev.AA