階層型QoS

$Date: 2023/08/10 17:00:58 $


概要

従来QoSとの比較

従来のQoSではパケットがキューイングされるクラスには階層構造はなく、同一インタフェース内で帯域制御と優先制御を組み合わせたようなQoS制御は実現できませんでした。階層型QoSではクラス構造を階層化し、2階層目に優先制御クラスを持つことができます。つまり、1階層目は帯域制御、または、優先制御が設定でき、2階層目は優先制御が設定できます(下表参照)。

階層キューイングアルゴリズム
1帯域制御優先制御帯域制御優先制御
2優先制御優先制御帯域制御帯域制御
実現可否××

また、クラス構造の階層化に伴い、クラス数も従来の1インタフェースにつき最大16から最大400(第1階層100×第2階層4)に拡張します。これらにより、従来のQoSでは実現できなかったきめ細かなトラフィック制御が可能となり、例えば、以下に示すようなトラフィック制御が実現可能となります。


対応機種とファームウェアリビジョン

ヤマハRTシリーズでは以下の機種およびファームウェアで、階層型QoS機能をサポートしています。

機種ファームウェア
RTX5000 Rev.14.00.08以降
RTX3510 すべてのリビジョン
RTX3500 Rev.14.00.08以降
RTX3000 Rev.9.00.07以降

用語の定義

対地 ...
終端ネットワークアドレスにより区別される対向ネットワークを対地と呼びます。

第1階層クラス ...
階層構造を持たない従来のクラスと同義です。クラス番号はクラス1、クラス5のように標記します。

第2階層クラス ...
階層型QoSでは第1階層クラスの一つ一つにおいて、配下に優先制御のクラスを4つ持つことができます。第1階層クラスに従属するこれらのクラスを第2階層クラスと呼び、クラス番号は「/」(スラッシュ)の前に第1階層クラス番号、「/」の後に第2階層クラス番号を標記し、クラス1/4、1/3、1/2、1/1、クラス5/4、5/3、5/2、5/1のように記述します。第2階層クラスの番号はそのまま優先度の高さを示します。

詳細

  1. 階層モデル

    階層型QoSにおいて生成されるクラスのモデル図を図2、3に示します。

    帯域制御+優先制御

    図2は第1階層で帯域制御のクラスを設定し、第1階層のクラス4とクラス20ではさらに第2階層で優先制御のクラスを使用している場合のクラス構造のモデル図です。第1階層のクラス数は20個あり、それぞれのクラス属性で帯域R1〜R20を設定する必要があります。LAN インタフェースの帯域Wは第1階層クラスに設定された帯域R1〜R20で分配されます。図2のクラス構造を持たせるために必要なコンフィグ例を抜粋して以下に挙げます。

    speed lan2 80m
    queue lan2 type shaping                                                            (1)
    queue lan2 class filter list 1 2 3 4 5 6 7 8 (略) 19 20 21 22 23 24 25
    queue lan2 class property 1 bandwidth=3m,20m
    queue lan2 class property 2 bandwidth=5m,50m
    queue lan2 class property 3 bandwidth=2m,30m
    queue lan2 class property 4 bandwidth=8m,25m                                       (2)
    			:	(略)
    queue lan2 class property 19 bandwidth=5m,15m
    queue lan2 class property 20 bandwidth=4m,15m                                      (3)
    queue class filter 1 1 ip * 172.16.1.0/24 * * *
    queue class filter 2 3 ip * 172.16.3.0/24 * * *
    queue class filter 3 4/4 ip * 172.16.4.0/24 udp 5004-5060 *                        (4)
    queue class filter 4 4/4 ip * 172.16.4.0/24 udp * 5004-5060                        (4)
    queue class filter 5 4/3 ip * 172.16.4.0/24 tcp * telnet                           (4)
    queue class filter 6 4/1 ip * 172.16.4.0/24 tcp www *                              (4)
    queue class filter 7 4/1 ip * 172.16.4.0/24 tcp * www                              (4)
    queue class filter 8 4 ip * 172.16.4.0/24 * * *                                    (5)
    			:	(略)
    queue class filter 19 19 ip * 172.16.19.0/24 * * *
    queue class filter 20 20/4 ip * 172.16.20.0/24 udp 5004-5060 *                     (6)
    queue class filter 21 20/4 ip * 172.16.20.0/24 udp * 5004-5060                     (6)
    queue class filter 22 20/3 ip * 172.16.20.0/24 tcp * telnet                        (6)
    queue class filter 23 20/1 ip * 172.16.20.0/24 tcp www *                           (6)
    queue class filter 24 20/1 ip * 172.16.20.0/24 tcp * www                           (6)
    queue class filter 25 20 ip * 172.16.20.0/24 * * *                                 (7)
    

    このコンフィグではわかりやすいように第1階層クラスを送信先の対向ネットワークごとに設定しています。コマンドの意味については後述のコマンド仕様を参照してください。まず、第1階層クラスで帯域制御を行うために(1)の queue INTERFACE type コマンドで shaping を指定します。なお、クラス4とクラス20に第2階層クラスを生成させるためには、従来通り(2)(3)の queue INTERFACE class property コマンドでクラスの属性を設定するだけで、他に特別な設定は必要ありません。(4)(6)のように queue class filter コマンドで振り分け先のクラスに第2階層クラスを指定するだけで、階層型QoSが実行できます。
    また、(5)(7)でアプリケーションのクラス分けに漏れたパケットのクラスを4、または、20としていますが、これは第2階層クラスのデフォルトであるクラス4/2、及び、クラス20/2にパケットが振り分けられることになりますので、それぞれ、

    queue class filter 8 4/2 ip * 172.16.4.0/24 * * *                                  (5)'
    queue class filter 25 20/2 ip * 172.16.20.0/24 * * *                               (7)'
    

    と記述する場合と同義です。
    なお、第1階層クラスの帯域の設定に Dynamic Traffic Control を使用する場合は、各クラスの保証帯域の合計(帯域R1〜R20の保証帯域の合計)が LAN インタフェースの帯域Wを超えてはいけません。

    優先制御+優先制御

    図3は階層型QoSにおいて第1階層で優先制御のクラスを設定している場合のクラス構造のモデル図です。第1階層の優先制御クラス数は16個固定(RTX5000/RTX3510/RTX3500/RTX3000)であり、第1階層のそれぞれのクラスにつきさらに優先制御4クラスを第2階層に保持しています。図3では第1階層クラスを4個使用しています。コンフィグ例を抜粋して以下に挙げます。

    speed lan2 80m
    queue lan2 type priority                                                           (8)
    queue lan2 class filter list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
     18 19 20 21 22 23
    queue class filter 1 4/4 ip * 172.16.1.0/24 udp 5004-5060 *
    queue class filter 2 4/4 ip * 172.16.1.0/24 udp * 5004-5060
    queue class filter 3 4/3 ip * 172.16.1.0/24 tcp * telnet
    queue class filter 4 4/1 ip * 172.16.1.0/24 tcp www *
    queue class filter 5 4/1 ip * 172.16.1.0/24 tcp * www
    queue class filter 6 4 ip * 172.16.1.0/24 * * *
    queue class filter 7 3/4 ip * 172.16.2.0/24 udp 5004-5060 *
    queue class filter 8 3/4 ip * 172.16.2.0/24 udp * 5004-5060
    queue class filter 9 3/3 ip * 172.16.2.0/24 tcp * telnet
    queue class filter 10 3/1 ip * 172.16.2.0/24 tcp www *
    queue class filter 11 3/1 ip * 172.16.2.0/24 tcp * www
    queue class filter 12 3 ip * 172.16.2.0/24 * * *
    queue class filter 13 1/4 ip * 172.16.3.0/24 udp 5004-5060 *
    queue class filter 14 1/4 ip * 172.16.3.0/24 udp * 5004-5060
    queue class filter 15 1/3 ip * 172.16.3.0/24 tcp * telnet
    queue class filter 16 1/1 ip * 172.16.3.0/24 tcp www *
    queue class filter 17 1/1 ip * 172.16.3.0/24 tcp * www
    queue class filter 18 1 ip * 172.16.3.0/24 * * *
    queue class filter 19 2/4 ip * * udp 5004-5060 *
    queue class filter 20 2/4 ip * * udp * 5004-5060
    queue class filter 21 2/3 ip * * tcp * telnet
    queue class filter 22 2/1 ip * * tcp www *
    queue class filter 23 2/1 ip * * tcp * www
    

    まず、第1階層クラスで優先制御を行うために(8)の queue INTERFACE type コマンドで priority を指定します。優先制御の場合は、queue INTERFACE class property コマンドを記述する必要はありません。クラス1からクラス4の各第1階層クラスにつき第2階層クラスが4つずつ自動的に生成されるので、帯域制御の場合と同じように queue class filter コマンドで振り分け先のクラスに第2階層クラスを指定するだけで、階層型QoSが実行できます。
    ここでは対向ネットワークによるクラス分けに漏れたパケットもアプリケーションによるクラス分けを行っています。これらのフィルタに全く引っかからないパケットは、第1階層のデフォルトクラスであるクラス2のさらに第2階層のデフォルトクラスであるクラス2/2に振り分けられることになります。

  2. クラス数の拡張

    1インタフェースにつき設定できるクラス数を従来の最大16から最大400(第1階層100×第2階層4)に拡張しています。センター用途のルータでは多数の拠点と通信を行う必要がありますが、従来のクラス数では難しかった各拠点ごとの独自のクラス設定が可能となります。


注意事項


コマンド


設定例

  1. 1拠点に対し帯域制限をかけ、その帯域の中で優先制御を行う

    [ネットワーク構成]
    • 本社から東京支社へのトラフィックに対し送信帯域を制限し、その制限帯域の中で優先制御を行う
    • 本社はプロバイダへネットワーク型接続
    ネットワーク構成

    [本社ルーターの config 例]
    ip route default gateway 172.16.2.254
    ip lan1 address 172.16.1.1/24
    ip lan2 address 172.16.2.1/24
    speed lan2 50m                                                                  (1)
    queue lan2 type shaping                                                         (2)
    queue lan2 class filter list 1 2 3 4 5 6                                        (3)
    queue lan2 class property 1 bandwidth=30m,50m                                   (4)
    queue lan2 class property 2 bandwidth=20m,50m                                   (4)
    queue class filter 1 1/4 ip * 172.16.10.0/24 udp 5004-5060 *                    (5)
    queue class filter 2 1/4 ip * 172.16.10.0/24 udp * 5004-5060
    queue class filter 3 1/3 ip * 172.16.10.0/24 tcp * telnet                        :
    queue class filter 4 1/1 ip * 172.16.10.0/24 tcp www *
    queue class filter 5 1/1 ip * 172.16.10.0/24 tcp * www                          (5)
    queue class filter 6 1 ip * 172.16.10.0/24 * * *                                (6)
    
    [説明]
    (1) LAN2 インタフェースの回線全体の上限速度を設定します。
    (2) LAN2 インタフェースに帯域制御のQoSを設定します。
    (3) LAN2 インタフェースに適用する queue class filter の番号を列挙します。
    (4) LAN2 の第1階層クラスを定義します。クラス2はデフォルトクラスになります。
    (5) 宛先のネットワークアドレスとアプリケーションによるクラス分けを行うためのフィルタを設定します。
    振り分け先のクラスに第2階層クラスまで指定することで東京支社宛てのパケットがアプリケーションごとに優先制御されることになります。
    (6) (5)のフィルタにマッチしないパケットでも、東京支社宛てのパケットはクラス1に振り分ける必要があります。
    第2階層クラスのデフォルトクラスはクラス1/2であるので、このフィルタにマッチするパケットはクラス1/2にキューイングされます。

    [クラス構成]
    どのように帯域が分配されるのか、わかりやすいように以下にクラスのイメージ図を示します。 クラス構成

  2. 拡張したクラス数を利用し、3箇所の拠点毎に個別の帯域制御を行う

    [ネットワーク構成]
    • 本社から東京支社、大阪支社、名古屋支社、それ以外へのトラフィックに対し個別に帯域制御を行う
    • 本社は WAN 回線へ PPPoE によるネットワーク型接続
    • 本社-名古屋支社間は VPN 接続
    ネットワーク構成

    [本社ルーターの config 例]
    ip route default gateway pp 1
    ip route 192.168.2.0/24 gateway tunnel 1
    ip lan1 address 172.16.1.1/24
    ip lan1 secondary address 192.168.1.1/24
    speed lan2 80m                                                                  (1)
    queue lan2 type shaping                                                         (2)
    
    queue lan2 class property 1 bandwidth=3m,10m                                    (3)
    queue lan2 class property 2 bandwidth=1m,2m                                      :
    queue lan2 class property 3 bandwidth=1m,3m                                     (3)
    
    queue lan2 class property 4 bandwidth=2m,5m                                     (4)
    queue lan2 class property 5 bandwidth=5m,10m
    queue lan2 class property 6 bandwidth=3m,5m                                      :
    queue lan2 class property 7 bandwidth=3m,5m
    queue lan2 class property 8 bandwidth=10m,20m
    queue lan2 class property 9 bandwidth=3m,8m                                     (4)
    
    queue lan2 class property 10 bandwidth=2m,5m                                    (5)
    queue lan2 class property 11 bandwidth=5m,10m                                    :
    queue lan2 class property 12 bandwidth=10m,20m
    queue lan2 class property 13 bandwidth=5m,8m                                    (5)
    
    queue lan2 class property 14 bandwidth=5m,10m                                   (6)
    queue lan2 class property 15 bandwidth=1m,5m
    queue lan2 class property 16 bandwidth=3m,5m                                     :
    queue lan2 class property 17 bandwidth=3m,5m
    queue lan2 class property 18 bandwidth=10m,20m
    queue lan2 class property 19 bandwidth=2m,8m                                    (6)
    
    pp select 1
     pp always-on on
     queue pp class filter list 3 4 5 6 7 8 9 10 11 12 1 2                          (7)
     pppoe use lan2
     pp auth accept pap chap
     pp auth myname honsya test
     ppp ipcp ipaddress on
     ppp lcp mru on 1454
     ppp ccp type none
     ip pp mtu 1454
     pp enable 1
    tunnel select 1
     ipsec tunnel 101
      ipsec sa policy 101 1 esp 3des-cbc sha-hmac anti-replay-check=on
      ipsec ike always-on 1 on
      ipsec ike pre-shared-key 1 text yamaha
      ipsec ike remote address 1 172.16.4.1
     queue tunnel class filter list 13 14 15 16 17 18                               (8)
     tunnel enable 1
    ipsec auto refresh on
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 172.16.1.100
    nat descriptor address inner 1 192.168.1.1-192.168.1.254
    
    queue class filter 1 1 ip * * tcp www *                                         (9)
    queue class filter 2 3 ip * * tcp * www                                         (9)
    
    queue class filter 3 4 ip * 172.16.10.0/24 tcp www *                            (10)
    queue class filter 4 5 ip * 172.16.10.0/24 tcp * www
    queue class filter 5 6 ip * 172.16.10.0/24 tcp ftp *                             :
    queue class filter 6 7 ip * 172.16.10.0/24 tcp * ftp
    queue class filter 7 8 ip * 172.16.10.0/24 tcp * 1080
    queue class filter 8 9 ip * 172.16.10.0/24 * * *                                (10)
    
    queue class filter 9 10 ip * 172.16.11.0/24 tcp www *                           (11)
    queue class filter 10 11 ip * 172.16.11.0/24 tcp * www                           :
    queue class filter 11 12 ip * 172.16.11.0/24 tcp * 1080
    queue class filter 12 13 ip * 172.16.11.0/24 * * *                              (11)
    
    queue class filter 13 14 ip * 192.168.2.0/24 tcp www *                          (12)
    queue class filter 14 15 ip * 192.168.2.0/24 tcp * www
    queue class filter 15 16 ip * 192.168.2.0/24 tcp ftp *                           :
    queue class filter 16 17 ip * 192.168.2.0/24 tcp * ftp
    queue class filter 17 18 ip * 192.168.2.0/24 tcp * 1080
    queue class filter 18 19 ip * 192.168.2.0/24 * * *                              (12)
    
    dhcp service server
    dhcp scope 1 192.168.1.2-192.168.1.254/24
    
    [説明]
    (1) LAN2 インタフェースの回線全体の上限速度を設定します。
    (2) LAN2 インタフェースに帯域制御の QoS を設定します。
    (3) 東京支社、大阪支社、名古屋支社以外へのパケットをキューイングするためのクラスを用意します。クラス2はデフォルトクラスになります。
    (4) 東京支社宛てのパケットをキューイングするためのクラスを用意します。
    (5) 大阪支社宛てのパケットをキューイングするためのクラスを用意します。
    (6) 名古屋支社宛てのパケットをキューイングするためのクラスを用意します。
    (7) WAN へのアクセスに PPPoE を使用するため、pp インタフェースに適用する queue class filter の番号を列挙します。
    (8) tunnel インタフェースに適用する queue class filter の番号を列挙します。ここでは名古屋支社宛てのパケットが対象になります。
    (9) 東京支社、大阪支社、名古屋支社以外へのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    (10) 東京支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    (11) 大阪支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    (12) 名古屋支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。

    [クラス構成]
    どのように帯域が分配されるのか、わかりやすいように以下にクラスのイメージ図を示します。 クラス構成

  3. 拠点毎に優先制御、帯域制御を切り分けて行う

    [ネットワーク構成]
    • 本社から東京支社、名古屋支社へのトラフィックに対し優先制御、大阪支社へのトラフィックに対し帯域制御、それ以外へのトラフィックに対し優先制御を行う
    • 本社はプロバイダへネットワーク型接続
    • 本社-名古屋支社間はVPN接続
    ネットワーク構成

    [本社ルーターの config 例]
    ip route default gateway 172.16.2.254
    ip route 192.168.2.0/24 gateway tunnel 1
    ip lan1 address 172.16.1.1/24
    ip lan1 secondary address 192.168.1.1/24
    ip lan2 address 172.16.2.1/24
    speed lan2 80m                                                                  (1)
    queue lan2 type shaping                                                         (2)
    queue lan2 class filter list 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5          (3)
    
    queue lan2 class property 1 bandwidth=15m,80m                                   (4)
    queue lan2 class property 2 bandwidth=1m,20m                                    (5)
    queue lan2 class property 3 bandwidth=2m,5m                                     (6)
    queue lan2 class property 4 bandwidth=5m,10m
    queue lan2 class property 5 bandwidth=3m,5m                                      :
    queue lan2 class property 6 bandwidth=3m,5m
    queue lan2 class property 7 bandwidth=10m,20m
    queue lan2 class property 8 bandwidth=3m,8m                                     (6)
    queue lan2 class property 9 bandwidth=8m,80m                                    (7)
    
    tunnel select 1
     ipsec tunnel 101
      ipsec sa policy 101 1 esp 3des-cbc sha-hmac anti-replay-check=on
      ipsec ike always-on 1 on
      ipsec ike pre-shared-key 1 text yamaha
      ipsec ike remote address 1 172.16.4.1
     queue tunnel class filter list 18 19 20 21 22 23                               (8)
     tunnel enable 1
    ipsec auto refresh on
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 172.16.1.100
    nat descriptor address inner 1 192.168.1.1-192.168.1.254
    
    queue class filter 1 2/4 ip * * udp 5004-5060 *                                 (9)
    queue class filter 2 2/4 ip * * udp * 5004-5060
    queue class filter 3 2/3 ip * * tcp * telnet                                     :
    queue class filter 4 2/1 ip * * tcp www *
    queue class filter 5 2/1 ip * * tcp * www                                       (9)
    
    queue class filter 6 1/4 ip * 172.16.10.0/24 udp 5004-5060 *                    (10)
    queue class filter 7 1/4 ip * 172.16.10.0/24 udp * 5004-5060
    queue class filter 8 1/3 ip * 172.16.10.0/24 tcp * telnet                        :
    queue class filter 9 1/1 ip * 172.16.10.0/24 tcp www *
    queue class filter 10 1/1 ip * 172.16.10.0/24 tcp * www
    queue class filter 11 1 ip * 172.16.10.0/24 * * *                               (10)
    
    queue class filter 12 3 ip * 172.16.11.0/24 tcp www *                           (11)
    queue class filter 13 4 ip * 172.16.11.0/24 tcp * www
    queue class filter 14 5 ip * 172.16.11.0/24 tcp ftp *                            :
    queue class filter 15 6 ip * 172.16.11.0/24 tcp * ftp
    queue class filter 16 7 ip * 172.16.11.0/24 tcp * 1080
    queue class filter 17 8 ip * 172.16.11.0/24 * * *                               (11)
    
    queue class filter 18 9/4 ip * 192.168.2.0/24 udp 5004-5060 *                   (12)
    queue class filter 19 9/4 ip * 192.168.2.0/24 udp * 5004-5060
    queue class filter 20 9/3 ip * 192.168.2.0/24 tcp * telnet                       :
    queue class filter 21 9/1 ip * 192.168.2.0/24 tcp www *
    queue class filter 22 9/1 ip * 192.168.2.0/24 tcp * www
    queue class filter 23 9 ip * 192.168.2.0/24 * * *                               (12)
    
    dhcp service server
    dhcp scope 1 192.168.1.2-192.168.1.254/24
    
    [説明]
    (1) LAN2 インタフェースの回線全体の上限速度を設定します。
    (2) LAN2 インタフェースに帯域制御の QoS を設定します。
    (3) LAN2 インタフェースに適用する queue class filter の番号を列挙します。
    (4) 東京支社宛てのパケットをキューイングするためのクラスを用意します。
    (5) デフォルトクラスの使用する帯域を設定します。
    (6) 大阪支社宛てのパケットをキューイングするためのクラスを用意します。大阪支社宛てのパケットはアプリケーションによる帯域制御を行うため、第1階層クラスを必要な数だけ用意します。
    (7) 名古屋支社宛てのパケットをキューイングするためのクラスを用意します。
    (8) tunnel インタフェースに適用する queue class filter の番号を列挙します。ここでは名古屋支社宛てのパケットが対象になります。
    (9) 東京支社、大阪支社、名古屋支社以外へのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    振り分け先のクラスに第2階層クラスまで指定することでアプリケーションごとに優先制御されることになります。
    (10) 東京支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    振り分け先のクラスに第2階層クラスまで指定することで東京支社宛てのパケットがアプリケーションごとに優先制御されることになります。
    (11) 大阪支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    (12) 名古屋支社宛てのパケットに対して、アプリケーションによるクラス分けを行うためのフィルタを設定します。
    振り分け先のクラスに第2階層クラスまで指定することで名古屋支社宛てのパケットがアプリケーションごとに優先制御されることになります。

    [クラス構成]
    どのように帯域が分配されるのか、わかりやすいように以下にクラスのイメージ図を示します。 クラス構成

性能

RTX5000の階層型QoSの性能

RTX3500の階層型QoSの性能

RTX3000の階層型QoSの性能


参考情報