DiffServベースQoS

$Date: 2017/10/11 10:53:50 $

DiffServベースQoS制御設定を行う場合の参考情報です。

QoSの総合的な情報及びBRI/PRI回線インタフェースで優先制御/帯域制御 を行う場合の情報は、 RTシリーズのFAQ / Queue をご参照ください。

LANインタフェースの優先制御については 優先制御のページ を、帯域制御については 帯域制御のページ をご参照ください。

TOSベースQoSについては TOSベースQoSのページ をご参照ください。


対応機種とファームウェア

機種 ファームウェア
RTX1210 Rev.14.01.05以降
RTX5000 Rev.14.00.08以降
RTX3500 Rev.14.00.08以降
RTX1200 Rev.10.01.29以降
RTX3000 Rev.9.00.08以降
RTX1500 Rev.8.03.05以降

用語と略語

AF=Assured Forwarding
DS=Differentiated Services
DSCP=Differentiated Services codepoint
EF=Expedited Forwarding
PHB=Per-Hop Behavior
TOS=Type of Service

動作概要

DiffServベースQoSは、入力されたパケットのIPヘッダのDSフィールド中 の6ビットのDSCP値を参照し、DSCP値により定義されるPHBに応じてパケッ トをクラス分けするQoSです。分けられた各クラスはスケジューラで優先 制御もしくはシェーピングやDTCによる帯域制御により利用できます。

QoSの動作模式図

図: QoSの動作模式図

DSフィールドは、TOSフィールドがRFC2474で再定義されたものです。

bit0bit1bit2bit3 bit4bit5bit6bit7
DSCP 未使用

対応するPHBは以下のRFCの標準PHBに限定し、そのDSCP値はRFCで推奨さ れている値のみを有効とします。つまり、PHB-DSCPのマッピングは固定 であり変更できません。

PHBDSCP値(ビットパターン)RFC
default 000 000 RFC2474
Class Selector xxx 000 RFC2474
Assured Forwarding AF11 001 010 RFC2597
AF12 001 100
AF13 001 110
AF21 010 010
AF22 010 100
AF23 010 110
AF31 011 010
AF32 011 100
AF33 011 110
AF41 100 010
AF42 100 100
AF43 100 110
Expedited Forwarding(EF) 101 110 RFC2598

上記の標準PHBのクラス分けは基本的にDSCP値の上位3ビットに応じて行 い、TOSベースQoSと下位互換性を持ちます。ただし、EF PHBについては 専用の最優先クラスを割り当てます。その他のDSCP値はdefault PHBと同 じクラス1に割り当てます。PHB-クラスのマッピングは固定であり変更で きません。

具体的には以下の通りです。

PHBクラス
default/その他 1
Class Selector:001000/AF11/AF12/AF13 2
Class Selector:010000/AF21/AF22/AF23 3
Class Selector:011000/AF31/AF32/AF33 4
Class Selector:100000/AF41/AF42/AF43 5
Class Selector:101000 6
Class Selector:110000 7
Class Selector:111000 8
EF 9

AF PHBでは、各クラスごとにDSCP値の下位3ビットで表される廃棄優先度 に応じてパケットの廃棄処理を行います。具体的には、高:110、中:100、 低:010 のそれぞれの廃棄優先度ごとにパケットをキューに積むことがで きるキューサイズの閾値が決まっています。低の場合は、パケットを追 加しようとするキューのキューサイズがqueue lengthコマンドで設定し たキュー長の100%になっている場合にパケットを廃棄し、中、高の順に 廃棄するキューサイズが小さくなります。

キューサイズの閾値は、キュー長に対する割合(%)として表します。また、 高と中については閾値はqueue lengthコマンドで任意に設定できます。 デフォルトでは中が75%、高が50%となります。

                                ┏━━━━━━━━━━━━━━━━━━━━━━┓
                                ┃               クラス  キュー               ┃
                                ┗━━━━━━━━━━━━━━━━━━━━━━┛
    キューに積まれるパケット          高、中、低          中、低        低
                                └──────────┴─────┴─────┘
    キューサイズの閾値                               50%         75%         100%
    廃棄優先度                                        高          中          低
    

AF PHBとClass Selector PHBが混在するクラスでは、Class Selector PHB のクラス内での廃棄優先度はAF PHBのlowの場合と同等です。

DiffServベースQoS設定は、クラス分けのためのフィルタを設定する queue class filterコマンドでCLASSパラメータにクラス番号(1-8)の代 わりに"dscp"を設定します。

DiffServベースQoSは、LANインタフェース及びLANインタフェース上に設 定されたPPPoEインタフェースとトンネルインタフェースでのみ機能しま す。


コマンド仕様

クラス分けのためのフィルタ設定

[書式]
queue class filter NUM CLASS [cos=COS] ip SRC_ADDR [DEST_ADDR [PROTOCOL [SRC_PORT [DEST_PORT]]]]

queue class filter NUM precedence [mapping=PREC:CLASS[,PREC:CLASS...]] [cos=COS] ip SRC_ADDR [DEST_ADDR [PROTOCOL [SRC_PORT [DEST_PORT]]]]

queue class filter NUM dscp [cos=COS] ip SRC_ADDR [DEST_ADDR [PROTOCOL [SRC_PORT [DEST_PORT]]]]

no queue class filter NUM [...]
[設定値]
NUM ... クラスフィルタの識別番号(1〜100)
CLASS ... クラス(RTX5000、RTX3500、RTX3000: 1〜100; 他の機種: 1〜16)
PREC ... precedence値(0〜7)
COS ... COS値
  • 0〜7の整数
  • precedence ... 転送するパケットのTOSのprecedence(0-7)を ToS-CoS変換としてCOS値に格納する
SRC_ADDR ... IPパケットの始点IPアドレス
  • xxx.xxx.xxx.xxx (xxxは十進数)
  • * (ネットマスクの対応するビットが8ビットとも0と同 じ。すべてのIPアドレスに対応)
DEST_ADDR ... IPパケットの終点IPアドレス
  • xxx.xxx.xxx.xxx (xxxは十進数)
  • * (ネットマスクの対応するビットが8ビットとも0と同 じ。すべてのIPアドレスに対応)
  • 省略した場合は一個の*と同じ
PROTOCOL ... フィルタリングするパケットの種類
  • プロトコルを表す十進数
  • プロトコルを表すニーモニック
    ─────────
    icmp1
    tcp6
    udp17
    ─────────
  • 上項目のカンマで区切った並び(5個以内)
  • *(すべてのプロトコル)
  • established
  • 省略時は*と同じ
SRC_PORT ... UDP、TCPのソースポート番号
  • ポート番号を表す十進数
  • ポート番号を表すニーモニック(一部)
    ──────────
    ftp20,21
    ftpdata20
    telnet23
    smtp25
    domain53
    gopher70
    finger79
    www80
    pop3110
    sunrpc111
    ident113
    ntp123
    nntp119
    snmp161
    syslog514
    printer515
    talk517
    route520
    uucp540
    ──────────
  • 間に-をはさんだ2つ上項目、-を前につけた上項目、-を後 につけた上項目、これらは範囲を指定する
  • 上項目のカンマで区切った並び(10個以内)
  • * (すべてのポート)
  • 省略時は*と同じ
DEST_PORT ... UDP、TCPのデスティネーションポート番号
[説明]
クラス分けのためのフィルタを設定する。

precedence形式の場合、フィルタに合致したパケットは、そのパケッ トのIPヘッダのprecedence値に応じたクラスに分けられる。

precedence値からクラスへの変換は、mappingオプションにより指定 できる。例えば、以下の例ではprecedence値=1をクラス8に、 precedence値=4をクラス3に変換する。

queue class filter 1 precedence mapping=1:8,4:3 ip *
	

mappingオプション全体を省略した場合、あるいはmappingオプショ ンは指定しているものの、その中で記述しなかったprecedence値に ついては以下の表のような変換が行われる。

precedence値 0 1 2 3 4 5 6 7
クラス 1 2 3 4 5 6 7 8

precedence形式はRTX5000、RTX3500、RTX3000、RTX1500、RTX1210、RTX1200、RTX1100、RTX830、RTX810、FWX120とSRT100で指定可能である。mappingオプションはRTX5000、RTX3500、RTX3000、RTX1210、RTX1200、RTX1100、RTX830、RTX810、FWX120とSRT100で指定可能である。

dscp形式の場合、フィルタに合致したパケットは、そのパケットの IPヘッダのDSCP値に応じたクラスに分けられる。

dscp形式はRTX5000、RTX3500、RTX3000、RTX1500、RTX1210とRTX1200で指定可能である。

COS値の指定を行なうと、フィルタに合致したパケットに付加される IEEE802.1Qタグのuser_priorityフィールドには、指定したCoS 値が 格納される。COSにprecedenceを指定した場合、そのパケットのIPヘッ ダのprecedence値に対応する値がuser_priorityフィールドに格納さ れる。

COS値はRTX5000、RTX3500、RTX3000、RTX1500、RTX1210、RTX1200、RTX1100、RTX830、RTX810、FWX120とSRT100で指定可能である。

パケットフィルタに該当したパケットは、指定したクラスに分類さ れる。このコマンドで設定したフィルタを使用するかどうか、ある いはどのような順番で適用するかは、各インタフェースにおける queue INTERFACE class filter listコマンドで設定する。

クラス毎のキュー長の設定

[書式]
queue INTERFACE length LEN1 [LEN2...LENn] [drop-threshold=DTHRESHOLD-MID[,DTHRESHOLD-HIGH]]

no queue INTERFACE length [LEN1 ...]
[設定値]
INTERFACE ... LANインタフェース名
LEN1..LENn ... RTX5000、RTX3500、RTX3000: クラス1からクラス100のキュー長(1..10000)
他の機種: クラス1からクラス16のキュー長(1..10000;RTX1500の場合は1..2000)
DTHRESHOLD-MID ... AF PHBの廃棄優先度が中の場合のキューサイズの閾値 (1%..100%、RTX5000、RTX3500、RTX3000、RTX1500、RTX1210とRTX1200で指定可能)
DTHRESHOLD-HIGH ... AF PHBの廃棄優先度が高の場合のキューサイズの閾値 (1%..100%、RTX5000、RTX3500、RTX3000、RTX1500、RTX1210とRTX1200で指定可能)
[説明]
インタフェースに対して、指定したクラスのキューに入れることが できるパケットの個数を指定する。指定を省略したクラスに関して は、最後に指定されたキュー長が残りのクラスにも適用される。

DiffServベースQoSの場合、DTHRESHOLD-MID、DTHRESHOLD-HIGHパラ メータで指定した値がAF PHBの廃棄優先度が中と高に対応するキュー に積むことができる閾値となる。閾値は、クラスのキュー長に対す る割合(%)として表す。DTHRESHOLD-HIGHを省略した場合は、 DTHRESHOLD-MIDと同じ値となる。廃棄優先度が低に対応する閾値は 常に100%である。DTHRESHOLD-MID、DTHRESHOLD-HIGHパラメータは、 RTX5000、RTX3500、RTX3000、RTX1500、RTX1210とRTX1200で指定可能である。

[初期値]
200(LAN、RTX5000、RTX3500、RTX3000、RTX1210、RTX1200、RTX830、RTX810)
40(LAN、他の機種)
drop-threshold=75%,50%

設定例

優先制御: LAN2側の送出速度を3Mbit/sとしudpパケットをDiffServベー スQoS の対象とする

queue lan2 type priority 優先制御を使用します
speed lan2 3m 送出帯域を3Mbit/sに制限します
queue class filter 1 dscp ip * * udp * * DiffServベースQoSの対象となるパケットのフィルタを定義します
queue lan2 class filter list 1 クラス分けフィルタをLAN2に適用します

優先制御: PPPoEで接続するLAN2側の送出速度を3Mbit/sとしudpパケット をDiffServベースQoSの対象とする

PPPoEでカプセル化される前のPPインタフェースでDiffServベースQoSに よるPHB処理を行い、出力直前のLAN2インタフェースのキューで優先制御 を行います。

queue lan2 type priority 優先キューを使用します
speed lan2 3m 送出帯域を3Mbit/sに制限します
pp select 1 QoS設定を行なうPPインタフェースを指定します
pppoe use lan2 LAN2でPPPoEを使用します
queue class filter 1 dscp ip * * udp * * DiffServベースQoSの対象となるパケットのフィルタを定義します
queue pp class filter list 1 フィルタをPPインタフェースに適用します
pp enable 1  

優先制御: IPsecトンネルで接続するLAN2側の送出速度を3Mbit/sとし udpパケットをDiffServベースQoSの対象とする

IPsecでカプセル化される前のトンネルインタフェースでDiffServベース QoSによるPHB処理を行い、出力直前のLAN2インタフェースのキューで優 先制御を行います。

queue lan2 type priority 優先キューを使用します
speed lan2 3m 送出帯域を3Mbit/sに制限します
tunnel select 1 QoS設定を行なうトンネルインタフェースを指定します
queue class filter 1 dscp ip * * udp * * DiffServベースQoSの対象となるパケットのフィルタを定義します
queue tunnel class filter list 1 暗号化前のトンネルインタフェースに適用します
ipsec sa policy ..... anti-replay-check=off 受信時にシーケンス番号のチェックを行ないません
tunnel enable 1  

帯域制御: クラス1に1Mbit/s、クラス2-8に2Mbit/s、クラス9に3Mbit/s の帯域を割り当てる

queue lan2 type shaping 帯域制御キューを使用します
speed lan2 18m 送出帯域を18Mbit/sに制限します
queue lan2 class property 1 bandwidth=1m クラス1に1Mbit/sを割り当てます
queue lan2 class property 2 bandwidth=2m クラス2に2Mbit/sを割り当てます
queue lan2 class property 3 bandwidth=2m クラス3に2Mbit/sを割り当てます
queue lan2 class property 4 bandwidth=2m クラス4に2Mbit/sを割り当てます
queue lan2 class property 5 bandwidth=2m クラス5に2Mbit/sを割り当てます
queue lan2 class property 6 bandwidth=2m クラス6に2Mbit/sを割り当てます
queue lan2 class property 7 bandwidth=2m クラス7に2Mbit/sを割り当てます
queue lan2 class property 8 bandwidth=2m クラス8に2Mbit/sを割り当てます
queue lan2 class property 9 bandwidth=3m クラス9に3Mbit/sを割り当てます
queue class filter 1 dscp ip * * udp * * DiffServベースQoSの対象となるパケットのフィルタを定義します
queue lan2 class filter list 1 2 クラス分けフィルタをLAN2に適用します

参考情報