帯域検出機能

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


目的

QoS機能を使用することで、重要なパケットが網内で不適切に廃棄されることを未然に防ぐことができます。QoS機能は、送出速度を絞り内部キューにパケットを滞留させ、送出順やタイミングを制御することで実現しています。

ここで、送出速度自体にポリシーがありその値が確定している場合は、その送出速度をspeedコマンドやqueue class propertyコマンドで設定すればよいので問題はありません。しかし、送出速度を回線の実効速度最大に設定したい場合、その値が不明であることがあります。実効速度は網内の状態に依存しており、他のトラフィックの影響を受け変動することも少なくありません。実効速度と異なる速度が設定されている場合、重要なパケットが網内で廃棄されたり、あるいは不必要に帯域が制限されることになります。

  ■:重要パケット
  □:非重要パケット
                            ┏━━━━━━┓
 ┏━━━┓                ┃            ┃                ┏━━┓
  ┃ルータ┣━━━━━━━━┫ネットワーク┣━━━━━━━━┫対向┃
  ┗━━━┛                ┃            ┃                ┗━━┛
                            ┗━━━━━━┛
     '■'が破棄されないように      ネットワーク内の狭帯域で
     ルータ出口でQoS               '■'が破棄されてしまう

                                  ルータ出口よりも
        破棄                      さらに狭い帯域で
        □□                      破棄される ■□            重要パケット'■'ロスあり

       ──────────→             ─────────→
       □■■□■■■□■                 □ ■ ■ □ ■ ■ ■

本機能は、回線の実効帯域を動的に測定し、機器のQoS機能の有効性を高めるものです。帯域が変動する可能性がある場合には定期的に測定し、送出速度を帯域の変動に追従させることもできます。

                            ┏━━━━━━┓
 ┏━━━┓                ┃            ┃                ┏━━┓
  ┃ルータ┣━━━━━━━━┫ネットワーク┣━━━━━━━━┫対向┃
  ┗━━━┛                ┃            ┃                ┗━━┛
                            ┗━━━━━━┛
      帯域測定
        ================−−−−−−−−−→
      ルータ出口で
      ネットワークの
      狭帯域に応じたQoS

        破棄                      狭帯域部分でも
        □□□□                  破棄されない               重要パケット'■'ロスなし

       ──────────→             ─────────→
       □ ■ ■ ■ ■ ■ ■               □ ■ ■ ■ ■ ■ ■

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

ヤマハルーターでは以下の機種およびファームウェアで、帯域検出機能をサポートしています。

機種ファームウェア
RTX830 Rev.15.02.01 以降
NVR510 Rev.15.01.02 以降
NVR700W Rev.15.00.02 以降
RTX1210 Rev.14.01.05 以降
RTX5000 Rev.14.00.08 以降
RTX3500 Rev.14.00.08 以降
FWX120 Rev.11.03.02 以降
RTX810 Rev.11.01.04 以降
NVR500 Rev.11.00.06 以降
RTX1200 Rev.10.01.07 以降
SRT100 Rev.10.00.08 以降
RT58i Rev.9.01.09 以降
RTX3000 Rev.9.00.08 以降
RTX1100/RTX1500 Rev.8.03.37 以降
RT107e Rev.8.03.42 以降

動作概要

ネットワーク内で狭帯域の経路があると、そこを経由する複数のパケットの間隔は広がります。あるいは複数のパケットのうちいくつかがネットワーク内で破棄されて相手先に到達しません。この変化するパケット間隔やパケットロス情報を利用して、帯域を測定します。


          クライアントから複数パケットを制御された間隔で送出
             ────────────→
                ■■■■         ■ ■ ■ ■
                      ┏━━━━━━┓
 ┏━━━━━━┓    ┃            ┃    ┏━━━┓
  ┃クライアント┣━━┫ネットワーク┣━━┫サーバ┃
  ┗━━━━━━┛    ┃            ┃    ┗━━━┛
                      ┗━━━━━━┛
                                       ■
                 ←────────────
                  サーバでの受信間隔情報等をクライアントに通知

サーバ・クライアント方式での測定を行い、クライアントは測定帯域に応じた間隔を持たせた複数のパケットを送出します。サーバではそれらのパケットの受信間隔を測定し、結果をクライアントに通知します。クライアントはサーバでの受信間隔等の情報から、経路上の帯域を判断します。

クライアントは、コマンドでサーバ情報が登録された時、あるいは手動実行された時に、帯域測定動作を始動します。帯域値が確定すると測定動作は休止状態に入ります。測定された結果はクライアント側のQoS設定に反映させることができます。

  クライアントの動作

  設定完了  ┌────┐測定完了、帯域確定    ┌────┐
  ────→│帯域測定│──────────→│休止状態│←───────┐
            └────┘                      └────┘                │
                  ↑                            │定期的実行              │
                  │                            │                        │
                  │                            ↓                        │
                  │          帯域に変化あり┌──────┐帯域に変化なし│
                  └────────────│帯域確認測定│───────┘
                                            └──────┘

休止状態にある時でも、一定時間毎に測定対象の帯域に変動がないか確認することができます。前回の確定値と比較し、その差が大きくなると再度帯域測定動作を始動して測定し直し、帯域設定値を変更します。この帯域確認の間隔時間は設定で変更することができます。

   測定帯域の推移

     帯域測定        帯域確認  帯域確認   帯域測定    帯域確認  帯域確認
       ←──────→休止←─→休止←─→休止←───→休止←─→休止←─→

                        帯域に変動あり
                                           ▼
      ↑                      
      │                       ●NG   ●NG   ●NG 
      │                   - - - - - - - - - - - - - - - - - -  帯域   
      │                      ○OK○OK   ○OK   ○OK
  帯域│                         帯域確定
      │     ●NG   ●NG   ●NG    ○OK
      │- - - - - - - - - - - - - - - - - -
      │    ○OK○OK   ○OK   ○OK
      │            帯域確定
      │   ○OK
      │
      │  ○OK    
      │
      │ ○OK
      │ 
      │○OK
       ──────────────────────────────────→
                                                        時間

また、帯域に変動が大きい環境の場合には、測定感度を調整することで、帯域設定値が頻繁に変更されることを抑えることもできます。

   感度設定の違いによる再測定開始レベルの違い
                                                   C
           ────────────────────○─低感度 Cの時点で再測定、帯域設定値変更
                                               ----
                   A----                A----
           ────○──--───────○──────高感度 A,Bの時点で再測定、帯域設定値変更
               ----        --          --
     確定値━--━━━━━━━--━━━--━━━━━━━━
                               --  --
           ───────────○──────────高感度
                                 B

           ──────────────────────低感度
   --:変動している帯域値
  ○:再測定タイミング

測定に用いられるパケットはUDPを使用します。使用するポート番号は設定で変更することができます。

本機能はLANインタフェースで接続されている帯域を測定することを目的としています。LANインタフェースあるいはPPPoEでLANインタフェースを経路とするものが対象です。相手側への経路がIPsecトンネル経由である場合には、本機能に用いるパケットを暗号化することが可能です。

本機能で用いられるパケットは、サーバ・クライアントいずれの側でもパケットフィルタリングやNATの対象にはなりません。

測定動作では一時的に送出インタフェースを優先制御に切り替え、最優先クラスパケットとして測定パケットを送出します。その際内部のQoS機能の動作を変更するので、負荷やタイミングによってはパケットロスが伴ったり、Dynamic Class Controlの動作に一時的な影響を与えることがあります。また測定中の設定切り替えの影響を避けるためにconfigの変更や保存操作は、show status cooperationコマンドで測定中でないことを確認するか、本機能をoffにした状態で行うことを推奨します。測定が終了するとLANインタフェースのspeedコマンドに測定結果が反映されます。帯域測定動作のみを単独で行い測定結果をspeedコマンドに反映させないことも可能です。

コマンド仕様上の最小値は64[kbit/s]、最大値は100[Mbit/s]です。最大値以上の帯域がある環境でも最大値より大きな値は測定できません。実際に測定可能な帯域値は、測定対象の遅延やゆらぎ、パケットロスといった状態に大きく依存します。最小値は64[kbit/s]から、最大値は使用する機器の性能によって異なりますが、暗号化を行わない環境下であれば概ね50-60[Mbit/s]までの測定が可能です。

1台の機器でサーバ機能とクライアント機能を併用することができ、2台の機器間での双方向測定が可能です。さらに1台のサーバが複数のクライアントに対して機能することもできますので、構成によってメッシュ型とハブ・アンド・スポーク型の両方に対応できます。

負荷通知機能との同時使用はできません。

オプション設定で相手先毎の動作を定義することができます。オプションの一覧を下記に示します。詳細はコマンドの項を参考にしてください。

[帯域検出機能でサーバとクライアントに必要な設定オプションの一覧]

◎: 必須の設定
○: 設定可能
×: 設定不可
設定項目設定値 cooperation bandwidth-measuring remoteコマンド
リモート=サーバ
(クライアント側)
リモート=クライアント
(サーバ側)
必要性初期値必要性初期値
ID1〜100 - -
ROLEserver,client
(server)
-
(client)
-
ADDRESS(注1) - -
OPTIONapplyon,off on ×-
portポート番号を示す10進数 59410 59410
initial-speed[bit/s] 10M ×-
interval60〜2147483647[sec],off (注2)3600 ×-
retry-interval60〜2147483647[sec] 3600 ×-
sensitivityhigh,middle,low high ×-
syslogon,off off off
interfaceLANインタフェース 設定なし ×-
classクラス (注3)設定なし ×-
limit-rate[%] 設定なし ×-
number5〜100 設定なし ×-
local-addressIPアドレス 設定なし 設定なし

[注意事項]

注1: IPアドレスまたはFQDNまたはanyが設定可能。クライアント側が不定IPアドレスの場合はサーバ側でanyを設定する。
注2: "interval=off"である場合、測定終了後の定期的な確認設定を行わない。また、測定に失敗した場合にはintervalで指定した間隔に関係なく次の測定までに3600秒がセットされる。
注3: "class"オプションは、帯域制御機能が実装されている機種だけで利用可能である。帯域検出結果を帯域制御のクラスの上限値に設定する場合に利用する。

設定例

例1.センターに3拠点がそれぞれ接続しており、各拠点がセンターに対する足回り回線の上り速度を測定してQoS設定に反映する

                                      ┌───┐
                          ┌─────┤拠点A │172.16.100.1
                          │          └───┘
                  ┌───┴──┐
 ┌────┐    │            │    ┌───┐
  │センター├──┤ネットワーク├──┤拠点B │172.16.110.1
  └────┘    │            │    └───┘
  172.16.10.1     └───┬──┘
                          │          ┌───┐
                          └─────┤拠点C │172.16.120.1
                                      └───┘

[設定手順]

センター
#cooperation bandwidth-measuring remote 1 client 172.16.100.1
#cooperation bandwidth-measuring remote 2 client 172.16.110.1
#cooperation bandwidth-measuring remote 3 client 172.16.120.1
#cooperation bandwidth-measuring server on
拠点A(優先制御)
#queue lan2 type priority
#cooperation bandwidth-measuring client on
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
拠点B(帯域制御)
#queue lan2 type shaping
#queue lan2 class property 1 bandwidth=30%
#cooperation bandwidth-measuring client on
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
拠点C(優先制御)
#queue lan2 type priority
#cooperation bandwidth-measuring client on
#cooperation bandwidth-measuring remote 1 server 172.16.10.1

[解説]

センター
#cooperation bandwidth-measuring remote 1 client 172.16.100.1
拠点Aをクライアントとして登録します。
#cooperation bandwidth-measuring remote 2 client 172.16.110.1
拠点Bをクライアントとして登録します。
#cooperation bandwidth-measuring remote 3 client 172.16.120.1
拠点Cをクライアントとして登録します。
#cooperation bandwidth-measuring server on
サーバとして機能させます。
拠点A(優先制御)
#queue lan2 type priority
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。
#cooperation bandwidth-measuring client on
クライアントとして機能させます。
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
拠点B(帯域制御)
#queue lan2 type shaping
LAN2インタフェースでは帯域制御を使用します。
#queue lan2 class property 1 bandwidth=30%
帯域測定の結果を動的に反映させる場合には、queue class propertyコマンドでは帯域を%指定で設定します。%指定以外で設定し、帯域測定の結果がその設定値を下回った場合、その設定値は保証されません。この他にクラス分けの設定が別途必要です。
#cooperation bandwidth-measuring client on
クライアントとして機能させます。
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
拠点C(優先制御)
#queue lan2 type priority
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。
#cooperation bandwidth-measuring client on
クライアントとして機能させます。
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。

例2.2拠点間で互いに上り速度を測定してQoS設定に反映する

                ┌──────┐
 ┌───┐    │            │    ┌───┐
  │拠点A ├──┤ネットワーク├──┤拠点B │
  └───┘    │            │    └───┘
  172.16.10.1   └──────┘    172.16.20.1

[設定手順]

拠点A
#queue lan2 type priority
#cooperation bandwidth-measuring server on
#cooperation bandwidth-measuring client on
#cooperation bandwidth-measuring remote 1 server 172.16.20.1
#cooperation bandwidth-measuring remote 2 client 172.16.20.1
拠点B
#queue lan2 type priority
#cooperation bandwidth-measuring server on
#cooperation bandwidth-measuring client on
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
#cooperation bandwidth-measuring remote 2 client 172.16.10.1

[解説]

拠点A
#queue lan2 type priority
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。
#cooperation bandwidth-measuring server on
サーバ機能を有効にします。
#cooperation bandwidth-measuring client on
クライアント機能を有効にします。
#cooperation bandwidth-measuring remote 1 server 172.16.20.1
拠点Bをサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
#cooperation bandwidth-measuring remote 2 client 172.16.20.1
拠点Bをクライアントとして登録します。
拠点B
#queue lan2 type priority
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。
#cooperation bandwidth-measuring server on
サーバ機能を有効にします。
#cooperation bandwidth-measuring client on
クライアント機能を有効にします。
#cooperation bandwidth-measuring remote 1 server 172.16.10.1
拠点Aをサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
#cooperation bandwidth-measuring remote 2 client 172.16.10.1
拠点Aをクライアントとして登録します。

コマンド


[EOF]