優先制御設定

ここでは、インタフェースから送出されるトラフィックを優先制御するための設定を紹介します。

サンプル設定のシナリオ

  • インターフェース(dp0s5)から送出されるトラフィックに対して設定したい
  • インターフェース(dp0s5)の制限帯域は10Mbps
  • 仮想サーバ7から仮想サーバ9を優先トラフィックに設定
  • 仮想サーバ6から仮想サーバ8へ9.3Mbpsのトラフィックを60秒間流す
  • 上記通信中に仮想サーバ7から仮想サーバ9へ2.3Mbpsのトラフィックを30秒間流し、割り込ませる
構成図
Zone Fig1

設定のながれ

  • 1.設定するQoSの名前を PRIORITY_EF で設定する。インターフェースdp0s5にてQoSを適用する。
  • 2.仮想サーバ7(172.16.9.7)からのUDP通信に対して ef という制御ルール1(最優先)を、仮想サーバ6(172.16.9.6)からのUDP通信に対して af11 という制御ルール2を設定する。
  • 3.トラフィックに対してデフォルトのポリシーを設定する。ポリシー名は PROF1
  • 4.ポリシー PROF1 の制限帯域を10Mbpsに設定する。
  • 5. af11 という制御ルールをqueue 1 に適用し、利用するTraffic-Class(1)を指定する。 ef という制御ルールをqueue 0 に適用し、利用するTraffic-Class(0)を指定する。
  • 6.Traffic-Class(0)の制限帯域を3Mbpsに設定する。

CLIにて入力するコマンド

set interfaces dataplane dp0s5 policy qos 'PRIORITY_EF'
set policy qos name PRIORITY_EF shaper class 1 match RULE1 mark dscp 'ef'
set policy qos name PRIORITY_EF shaper class 1 match RULE1 protocol 'udp'
set policy qos name PRIORITY_EF shaper class 1 match RULE1 source address '172.1 6.9.7/32'
set policy qos name PRIORITY_EF shaper class 1 match RULE2 mark dscp 'af11'
set policy qos name PRIORITY_EF shaper class 1 match RULE2 protocol 'udp'
set policy qos name PRIORITY_EF shaper class 1 match RULE2 source address '172.1 6.9.6/32'
set policy qos name PRIORITY_EF shaper class 1 profile 'PROF1'
set policy qos name PRIORITY_EF shaper default 'PROF1'
set policy qos name PRIORITY_EF shaper profile PROF1 bandwidth '10Mbit'
set policy qos name PRIORITY_EF shaper profile PROF1 map dscp af11 to '1'
set policy qos name PRIORITY_EF shaper profile PROF1 map dscp ef to '0'
set policy qos name PRIORITY_EF shaper profile PROF1 queue 0 traffic-class '0'
set policy qos name PRIORITY_EF shaper profile PROF1 queue 1 traffic-class '1'
set policy qos name PRIORITY_EF shaper profile PROF1 traffic-class 0 bandwidth ' 3Mbit'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
        dataplane dp0s4 {
                address 172.16.9.90/24
        }
        dataplane dp0s5 {
                address 172.16.19.90/24
                policy {
                        qos PRIORITY_EF
                }
        }
        dataplane dp0s6 {
        }
        dataplane dp0s7 {
                address 10.0.0.90/24
        }
        loopback lo
}
policy {
        qos {
                name PRIORITY_EF {
                        shaper {
                                class 1 {
                                        match RULE1 {
                                                mark {
                                                        dscp ef
                                                }
                                                protocol udp
                                                source {
                                                        address 172.16.9.7/32
                                                }
                                        }
                                        match RULE2 {
                                                mark {
                                                        dscp af11
                                                }
                                                protocol udp
                                                source {
                                                        address 172.16.9.6/32
                                                }
                                        }
                                        profile PROF1
                                }
                                default PROF1
                                profile PROF1 {
                                        bandwidth 10Mbit
                                        map {
                                                dscp af11 {
                                                        to 1
                                                }
                                                dscp ef {
                                                        to 0
                                                }
                                        }
                                        queue 0 {
                                                traffic-class 0
                                        }
                                        queue 1 {
                                                traffic-class 1
                                        }
                                        traffic-class 0 {
                                                bandwidth 3Mbit

動作確認結果

以下の検証結果ログから、検証構成図にある仮想サーバ6(172.16.9.6)から仮想サーバ8(172.16.19.8)へトラフィックを流し、途中で仮想サーバ7(172.16.9.7)から仮想サーバ9(172.16.19.9)へ優先トラフィックを流し、合計トラフィックが制限帯域(10Mbps)を超過した場合、優先トラフィックのパケットはドロップしないことが確認できました。(※仮想サーバ7検証結果ログ/Vserver9検証結果ログ参照)

同時に、非優先トラフィックのパケットはドロップしていることも確認できました。(※仮想サーバ6検証結果ログ/Vserver8検証結果ログ参照)

<優先トラフィック検証ログ>

仮想サーバ7検証結果ログ

[user1@vserver7 ~]$ iperf -c 172.16.19.9 -u -b 9.3M -t 60
[user1@vserver7 ~]$
[user1@vserver7 ~]$
[user1@vserver7 ~]$
[user1@vserver7 ~]$
[user1vserver7 ~]$
[user1@vserver7 ~]$
[user1@vserver7 ~]$
[user1@vserver7 ~]$
[user1@vserver7 ~]$ iperf -c 172.16.19.9 -u -b 2.3M -t 30
------------------------------------------------------------
Client connecting to 172.16.19.9, UDP port 5001
Sending 1470 byte datagrams, IPG target: 5113.04 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 172.16.9.7 port 58006 connected with 172.16.19.9 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-30.0 sec  8.23 MBytes  2.30 Mbits/sec
[  3] Sent 5869 datagrams
[  3] Server Report:
[  3]  0.0-30.1 sec  8.23 MBytes  2.29 Mbits/sec   3.804 ms    0/ 5869 (0%)

仮想サーバ9検証結果ログ

[user1@vserver9 ~]$
[user1@vserver9 ~]$ iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 172.16.19.9 port 5001 connected with 172.16.9.7 port 58006
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-30.1 sec  8.23 MBytes  2.29 Mbits/sec   3.804 ms    0/ 5869 (0%)

<非優先トラフィック検証ログ>

仮想サーバ6検証結果ログ

[user1@vserver6 ~]$ iperf -c 172.16.19.8 -u -b 9.3M -t 60
------------------------------------------------------------
Client connecting to 172.16.19.8, UDP port 5001
Sending 1470 byte datagrams, IPG target: 1264.52 us (kalman adjust)
UDP buffer size:  208 KByte (default)
-----------------------------------------------------------
[  3] local 172.16.9.6 port 56259 connected with 172.16.19.8 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec  66.5 MBytes  9.30 Mbits/sec
[  3] Sent 47450 datagrams
[  3] Server Report:
[  3]  0.0-60.0 sec  58.9 MBytes  8.22 Mbits/sec   0.898 ms 5468/47450 (12%)

仮想サーバ8検証結果ログ

Zone Fig1