重み付け制御設定(WRR)

動作確認バージョン: vSRX Version15.1X49-D105.1, vSRX Version19.2R1.8

ここでは、出力インターフェイスの帯域設定を超過した場合に、トラフィックを任意の比率で送信する重みづけラウンドロビン(WRR:Weighted Round Robin)の設定を紹介します。

特定の送信元IPアドレスの通信を出力インターフェイスにて2:1にする設定

サンプル設定のシナリオ

  • インターフェイス(ge-0/0/1)の制限帯域は10Mbpsにしたい
  • 仮想サーバ(192.168.1.11)からの通信を、仮想サーバ(192.168.3.13)からの通信に対して2倍の量を出力させたい
  • インターフェイス(ge-0/0/1)で10Mbpsを超過した場合に適用したい
vsrx_wrr_fig1

シナリオにおける設定のながれ

トラフィックの入力インターフェイスでパケットを分類ができるようにしておき、出力インターフェイスで割合による出力を設定するながれです。

1.仮想サーバ(192.168.1.11)からの通信に対するフィルタ名 QOS_STRICT を作成
2.仮想サーバ(192.168.3.13)からの通信に対するフィルタ名 QOS_AF を作成
3.送信元IPアドレス192.168.1.0/24に該当する通信(パケット)は、Forwarding classを expedited-forwarding にして QOS_STRICT に設定
4.送信元IPアドレス192.168.3.0/24に該当する通信(パケット)は、Forwarding classを assured-forwarding にして QOS_AF に設定
5.インターフェイス(ge-0/0/0)および(ge-0/0/2)で上記フィルタを適用
6.Forwarding class の expedited-forwardingPRIORITY_HIGH とし割合40%を設定
7.Forwarding class の assured-forwardingPRIORITY_LOW として割合20%を設定
8.上記で作成したスケジューラをスケジュールマップ名 SCHE に設定
9.スケジューラマップ SCHE は帯域上限値を10Mbpsに設定
10.インターフェイス(ge-0/0/1)はスケジューラ動作させる設定

CLIにて入力するコマンド

user01@vSRX-02# set firewall filter QOS_STRICT term 1 from source-address 192.168.1.0/24
user01@vSRX-02# set firewall filter QOS_STRICT term 1 then loss-priority low
user01@vSRX-02# set firewall filter QOS_STRICT term 1 then forwarding-class expedited-forwarding
user01@vSRX-02# set firewall filter QOS_STRICT term 1 then accept
user01@vSRX-02# set firewall filter QOS_STRICT term 2 then accept
user01@vSRX-02# set firewall filter QOS_AF term 1 from source-address 192.168.3.0/24
user01@vSRX-02# set firewall filter QOS_AF term 1 then loss-priority high
user01@vSRX-02# set firewall filter QOS_AF term 1 then forwarding-class assured-forwarding
user01@vSRX-02# set firewall filter QOS_AF term 1 then accept
user01@vSRX-02# set firewall filter QOS_AF term 2 then accept
user01@vSRX-02# set interfaces ge-0/0/0 unit 0 family inet filter input QOS_STRICT
user01@vSRX-02# set interfaces ge-0/0/2 unit 0 family inet filter input QOS_AF
user01@vSRX-02# set class-of-service schedulers PRIORITY_HIGH transmit-rate percent 40
user01@vSRX-02# set class-of-service schedulers PRIORITY_HIGH priority low
user01@vSRX-02# set class-of-service schedulers PRIORITY_LOW transmit-rate percent 20
user01@vSRX-02# set class-of-service schedulers PRIORITY_LOW priority low
user01@vSRX-02# set class-of-service scheduler-maps SCHE forwarding-class expedited-forwarding scheduler PRIORITY_HIGH
user01@vSRX-02# set class-of-service scheduler-maps SCHE forwarding-class assured-forwarding scheduler PRIORITY_LOW
user01@vSRX-02# set class-of-service interfaces ge-0/0/1 unit 0 scheduler-map SCHE shaping-rate 10m
user01@vSRX-02# set class-of-service interfaces ge-0/0/1 unit 0 rewrite-rules dscp default
user01@vSRX-02# set interfaces ge-0/0/1 per-unit-scheduler

正しく設定が完了したときのコンフィグレーションは次のとおりです。

interfaces {
    ge-0/0/0 {
        unit 0 {
            family inet {
                filter {
                    input QOS_STRICT;
                }
                address 192.168.1.102/24;
            }
        }
    }
    ge-0/0/1 {
       per-unit-scheduler;
       unit 0 {
           family inet {
               address 192.168.2.102/24;
           }
       }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                filter {
                    input QOS_AF;
                }
                address 192.168.3.102/24;
            }
        }
    }
}
class-of-service {
    interfaces {
        ge-0/0/1 {
            unit 0 {
                scheduler-map SCHE;
                shaping-rate 10m;
                rewrite-rules {
                    dscp default;
                }
            }
        }
    }
    scheduler-maps {
        SCHE {
            forwarding-class expedited-forwarding scheduler PRIORITY_HIGH;
            forwarding-class assured-forwarding scheduler PRIORITY_LOW;
        }
    }
    schedulers {
        PRIORITY_HIGH {
            transmit-rate percent 40;
            priority low;
        }
        PRIORITY_LOW {
            transmit-rate percent 20;
            priority low;
        }
    }
}
firewall {
    filter QOS_STRICT {
        term 1 {
            from {
                source-address {
                    192.168.1.0/24;
                }
            }
            then {
                loss-priority low;
                forwarding-class expedited-forwarding;
                accept;
            }
        }
        term 2 {
            then accept;
        }
    }
    filter QOS_AF {
        term 1 {
            from {
                source-address {
                    192.168.3.0/24;
                }
            }
            then {
                loss-priority high;
                forwarding-class assured-forwarding;
                accept;
            }
        }
        term 2 {
            then accept;
        }
    }
}

動作確認結果

以下の検証結果ログから、制限帯域 (10Mbps)を超過するように2台の仮想サーバ(192.168.1.11,192.168.3.13)からトラフィックを同時に印加し、出力の割合が2:1になっているためWRRのルールに従ってパケットが転送されていることが確認できました。

vSRXのインターフェイス(ge-0/0/1)での出力状況

user01@vSRX-02> show interfaces queue ge-0/0/1
Physical interface: ge-0/0/1, Enabled, Physical link is Up
  Interface index: 136, SNMP ifIndex: 520
Forwarding classes: 8 supported, 4 in use
Egress queues: 8 supported, 4 in use
Queue: 0, Forwarding classes: best-effort
    omitted

Queue: 1, Forwarding classes: expedited-forwarding
  Queued:
    Packets              :                 51026                     0 pps
    Bytes                :              77151312                     0 bps
  Transmitted:
    Packets              :                 33575                     0 pps
    Bytes                :              50765400                     0 bps
    Tail-dropped packets :                 17451                     0 pps
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    RED-dropped packets  :                     0                     0 pps
     Low                 :                     0                     0 pps
     Medium-low          :                     0                     0 pps
     Medium-high         :                     0                     0 pps
     High                :                     0                     0 pps
    RED-dropped bytes    :                     0                     0 bps
     Low                 :                     0                     0 bps
     Medium-low          :                     0                     0 bps
     Medium-high         :                     0                     0 bps
     High                :                     0                     0 bps
  Queue Buffer Usage:
    Reserved buffer      :                625000 bytes
  Queue-depth bytes      :
    Current              :                     0

Queue: 2, Forwarding classes: assured-forwarding
  Queued:
    Packets              :                 51025                     0 pps
    Bytes                :              77149800                     0 bps
  Transmitted:
    Packets              :                 16909                     0 pps
    Bytes                :              25566408                     0 bps
    Tail-dropped packets :                 34116                     0 pps
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    RED-dropped packets  :                     0                     0 pps
     Low                 :                     0                     0 pps
     Medium-low          :                     0                     0 pps
     Medium-high         :                     0                     0 pps
     High                :                     0                     0 pps
    RED-dropped bytes    :                     0                     0 bps
     Low                 :                     0                     0 bps
     Medium-low          :                     0                     0 bps
     Medium-high         :                     0                     0 bps
     High                :                     0                     0 bps
  Queue Buffer Usage:
    Reserved buffer      :                625000 bytes
  Queue-depth bytes      :
    Current              :                     0
Queue: 3, Forwarding classes: network-control
    omitted

仮想サーバ(192.168.1.11)から仮想サーバ(192.168.2.12)あてに10MbpsのTrafficを印加した時のログ

vsrx_wrr_fig2

仮想サーバ(192.168.3.13)から仮想サーバ(192.168.2.14)あてに10MbpsのTrafficを印加した時のログ

vsrx_wrr_fig3