検証用にいろいろなフィルターやルーティング等、すでに使っていない設定がいっぱいあったので、年末の大掃除ならぬルータのお掃除(設定の)をしてみました。ついでに QoS の設定を見直して、再設定してみました。

QoSに関して調べてみると、COS, TOS, Precedence, DSCP とか聞き慣れない用語がいっぱい出てきます。用語についての説明はここでは触れません。RTX810 を使い IP-PBX と接続するという条件で、QoS(今回は優先制御)について設定した内容についてまとめてみます。

ルータ等で QoS を行うには、以下の順番で作業が進みます。

1.QoS 用にマーキングしたいパケットを選ぶ(フィルタリング)
2.選んだパケットに印を付ける(マーキング)
3.マーキングにしたがった異なるキューに投入する(分類:classify )
4.キューの優先順位にしたがってキュー内のパケットが送信される
http://www.rtpro.yamaha.co.jp/RT/docs/qos/tos_qos.html

 TOS フィールドと DSCP フィールドの違い

どちらも IPパケットに QoS 用のマーキングを行い、そのマーキング内容に基づいてパケットの優先制御や帯域制御を行います。
最近のスイッチングハブは、低価格帯でも DSCP を参照して優先制御を行う製品が増えてきました。RFCを見る限り、これからはレイヤー3で動作する DSCP ベースの QoS が主流になると思います。
例)NETGEAR社製のアンマネージメントプラス・シリーズ等(GS108Eとか)

RTX810 は、DSCP の設定はできないので、TOS と Precedence の設定を併用して、VoIP用のDSCP 設定値(推奨)の EF (Expedited Forwarding) を設定します。
https://tools.ietf.org/html/rfc2598
DSCP の EF は、binary(二進数)では 101110 となり 6bit 使いますが、TOS は 4bit、Precedence は 3bit、合計 7bit 使うので…

となるので、設定は以下のようになります。

ip tos supersede 1 12 precedence=5 11 12 21 22
ip filter 11 pass * 10.1.1.1 *
ip filter 12 pass * 10.1.1.2 *
ip filter 21 pass 10.1.1.1 *
ip filter 22 pass 10.1.1.2 *

この例では、2台の IP-PBX(WAN側にいると仮定)との通信について、DSCP を EF に設定しています。

次に、インターフェース(物理&論理)毎に優先制御の設定を投入します。
例)LAN1 が内部ネットワーク、LAN2 が PPPoE を使って WAN側へ接続

queue lan1 type priority
queue lan1 class filter list 1

pp select 1
  pp always-on on
  queue pp type priority
  queue pp class filter list 1
  pppoe use lan2

queue class filter 1 precedence ip * * * * *

  動作の概要

特定の相手(今回の例では、10.1.1.1 と 10.1.1.2)との通信は、LAN側→WAN側でもWAN側→LAN側、どちらの場合も DSCP は EF に設定されます。

LAN側→WAN側の場合は、RTX810 を通過していくので、queue pp class filter list 1 の設定により優先制御が働きます。しかし、WAN側→LAN側の場合、queue lan1 class filter list 1 の設定はありますが、優先制御の効果は無いと思います。

優先制御とは本来、キューに貯まっているパケットの送出する順番を変える事によって実現されているので、キューの手前の通信速度よりキューから先の通信速度が遅い時にしか効果がでません。つまり、通信速度が速い I/F から遅い I/F に対しては(キューにパケットが貯まるので)優先制御の効果がでますが、逆に通信速度が遅いI/Fから速い I/F に対してはキューにパケットが貯まらないですし、来た順にパケットを送出したほうが通信全体のスループットが良くなるので、優先制御を必要としません。

それでは、WAN側から LAN側へ向かうパケットにマーキングするのは意味がないか?というと、そうではありません。あくまで RTX810 の内部で、優先制御の効果が出ないだけで、LAN内に設置されているスイッチングハブやルータ、無線LAN装置等で、DSCP ベースの優先制御が行われていれば、しっかりと効果は出ます。

ただし、WAN側へ送出されるパケットに QoS 用のマーキングをすることが、意味があるか?と言えば、これは難しいかもしれません。
※RTX810 から外に出てしまえば WAN側のルータ等が優先制御してくれるかどうかは不明というかしてくれないでしょうから…

今回は、ルータ内部だけの優先制御ではなく、内部ネットワークの優先制御も考慮すると、QoS 用のマーキングをした方が良いのでは?という提案です。

単にルータ内部だけの設定で良ければ、

pp select 1
queue pp type priority
queue pp default class 2
queue pp class filter list 1 2 3

queue class filter 1 4 ip 10.1.1.1 * * * *
queue class filter 2 4 ip 10.1.1.2 * * * *
queue class filter 3 3 ip * * udp * *

こんな感じになると思います。