帯域検出機能

目的

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

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

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

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

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

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

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

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

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

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

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

機種 ファームウェア
RTX5000 Rev.14.00.15以降
RTX820 Rev.11.03.16以降
RTX1200 Rev.10.01.20以降
RTX800 Rev.10.01.20以降

動作概要

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

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

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

クライアントは、コマンドでサーバ情報が登録された時、あるいは手動実行された時に、帯域測定動作を始動します。帯域値が確定すると測定動作は休止状態に入ります。測定された結果はクライアント側の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コマンド
リモート=サーバ
(クライアント側)
リモート=クライアント
(サーバ側)
必要性 初期値 必要性 初期値
ID 1~100 - -
ROLE server,client
(server)
-
(client)
-
ADDRESS (注1) - -
OPTION apply on,off on × -
port ポート番号を示す10進数 59410 59410
initial-speed [bit/s] 10M × -
interval 60~2147483647[sec],off (注2) 3600 × -
retry-interval 60~2147483647[sec] 3600 × -
sensitivity high,middle,low high × -
syslog on,off off off
interface LANインタフェース 設定なし × -
class クラス (注3) 設定なし × -
limit-rate [%] 設定なし × -
number 5~100 設定なし × -
local-address IPアドレス 設定なし 設定なし

[注意事項]

  • 注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をクライアントとして登録します。

コマンド

連携動作で使用するポート番号の設定

[書式]

cooperation port PORT
no cooperation port [PORT]

[設定値]

  • PORT ... ポート番号

[説明]

連携動作で使用するUDPのポート番号を設定する。連携動作で送出されるパケットの送信元ポート番号にこの番号を使用する。またこのポート番号宛のパケットを受信した場合には連携動作に関わるパケットとして処理する。

[初期値]

59410

帯域検出動作を行うか否かの設定

[書式]

cooperation bandwidth-measuring ROLE SW
no cooperation bandwidth-measuring ROLE [SW]

[設定値]

  • ROLE ... 連携動作での役割
    • server ... サーバ側動作
    • client ... クライアント側動作
  • SW
    • on ... 機能を有効にする
    • off ... 機能を無効にする

[説明]

帯域検出動作の機能毎の動作を設定する。

[初期値]

全ての機能でoff

帯域測定で連携動作を行う相手毎の動作の設定

[書式]

cooperation bandwidth-measuring remote ID ROLE ADDRESS [OPTION=VALUE]
no cooperation bandwidth-measuring remote ID [ROLE ADDRESS [OPTION=VALUE]]

[設定値]

  • ID ... 相手先ID番号(1-100)
  • ROLE ... 連携動作での相手側の役割
    • server ... 相手側がサーバ側動作を行う
    • client ... 相手側がクライアント側動作を行う
  • ADDRESS ... 連携動作の相手側IPアドレス、FQDNまたは'any'
  • OPTION ... オプション
    • apply ... 測定結果をLANインタフェースの速度設定に反映させるか否か、'on' or 'off'
    • port ... 相手側が使用するUDPのポート番号(1-65535)
    • initial-speed ... 測定開始値(64000-100000000)[bit/s]
    • interval ... 定期監視間隔(60-2147483647)[sec] or 'off'
    • retry-interval ... エラー終了後の再試行までの間隔(60-2147483647)[sec]
    • sensitivity ... 測定感度、'high', 'middle' or 'low'
    • syslog ... 動作をログに残すか否か、'on' or 'off'
    • interface ... 測定結果を反映させるLANインタフェース
    • class ... 測定結果を反映させるクラス
    • limit-rate ... 設定値の最大変化割合(1-10000)[%]
    • number ... 測定に使用するパケット数(5-100)
    • local-address ... パケット送信時の始点IPアドレス

[説明]

帯域測定で連携動作を行う相手毎の動作を設定する。

[ノート]

ROLEパラメータでclientを設定する場合には、オプションはportとsyslog、local-addressだけが設定できる。serverを設定する場合には全てのオプションが設定できる。

連携動作の相手側設定としてanyを指定できるのは、ROLEパラメータでclientを設定した場合のみである。

applyオプションが'on'の場合、帯域測定の結果を相手先に向かうLANインタフェースのspeed lanコマンドの設定値に上書きする。classオプションに値が設定されている場合には、queue lan class propertyコマンドのbandwidthパラメータに測定結果が反映される。

initial-speedオプションでは、初期状態で測定を開始する速度を設定できる。相手先からの応答がなかったり測定値が許容範囲を越えたなど、何らかの障害で正しい測定ができなかった後の再試行でもこの設定速度で測定を開始する。パラメータの後ろに'k'または'M'をつけると、それぞれkbit/s、Mbit/sとして扱われる。

intervalオプションでは、帯域測定が正常終了した後、帯域に変化がないか定期的に確認測定する間隔を設定できる。'off'を指定した場合には測定終了後の定期的な確認測定を行わない。

retry-intervalオプションでは、帯域測定が相手先からの応答がなかったり測定値が許容範囲を越えたなど、何らかの障害で正しい測定ができなかった場合の再試行までの時間を設定できる。ただし、網への負荷等を考慮すると正常に動作できない状況でむやみに短時間間隔で試行を繰り返すべきではない。正常に測定できない原因を回避することが先決である。

numberオプションでは、測定に使用するパケット数を設定できる。パケット間隔のゆらぎが大きい環境ではこの数を多くすることで、より安定した結果が得られる。ただし測定に使用するパケットの数が増えるため測定パケットが他のデータ通信に与える影響も大きくなる可能性がある。

sensitivityオプションでは、測定感度を変更することができる。パケット間隔のゆらぎが大きかったりパケットロスのある環境では、測定感度を鈍くすることで、頻繁な設定変更を抑制したり測定完了までの時間を短縮することができる。

interfaceオプションでLANインタフェースが設定されている場合には、そのLANインタフェースのspeed lanコマンドに測定結果が反映される。classオプションに値が設定されている場合にはqueue lan class propertyコマンドのbandwidthパラメータに測定結果が反映される。

classオプションは帯域制御機能が実装されている機種でのみ利用できる。

limit-rateオプションは、設定値の急激な変動をある割合内に抑えたい場合に設定する。直前の測定結果と今回の測定結果に大きな差がある場合、今回の測定結果そのものではなく、このlimit-rateに応じた値を今回の設定値として採用する。

local-addressオプションでは、送信パケットの始点IPアドレスを設定できる。設定がない場合、インタフェースに付与されたIPアドレスを使用する。

[初期値]

apply=on
port=59410
initial-speed=10000000
interval=3600
retry-interval=3600
sensitivity=high
syslog=off
interface 設定なし
class 設定なし
limit-rate 設定なし
number=30
local-address 設定なし

連携動作の手動実行

[書式]

cooperation TYPE go ID

[設定値]

  • TYPE ... 連携動作タイプ
    • bandwidth-measuring ... 回線帯域検出
  • ID ... 相手先ID番号(1-100)

[説明]

手動で連携動作を実行する。

[ノート]

測定結果がコンソールに表示される。

インタフェース速度の設定で回線帯域検出の値を使用するように設定されている場合には、この実行結果の値も設定への反映の対象となる。

連携動作の状態の表示

[書式]

show status cooperation TYPE [ID]

[設定値]

  • TYPE ... 連携動作タイプ
    • bandwidth-measuring ... 回線帯域検出
  • ID ... 相手先ID番号(1-100)

[説明]

連携動作の情報を表示する。

回線帯域検出の場合、以下の項目が表示される。

  • 相手先情報
  • 状態表示
    • 回数
    • 測定時刻
    • クライアントの試行速度(サーバ動作のみ)
    • 測定結果(クライアント動作のみ)
    • 現状(クライアント動作のみ)
    • 設定変更履歴(クライアント動作のみ)
    • 次の測定までの残り時間(クライアント動作のみ)
    • エラー回数と履歴

[表示例]

回線帯域検出の場合

#show status cooperation bandwidth-measuring
1: 172.16.1.100
             remote: server
    measuring times: 43[times]
     last bandwidth: 56450[kbit/s] 2005/06/23 13:08:45
          set times: 3[times]
 last set bandwidth: 58650[kbit/s] 2005/06/23 13:08:45
            history: 58340[kbit/s] 2005/06/23 13:08:08
                   : 56400[kbit/s] 2005/06/23 13:05:06
     next measuring: 3592[seconds]
2: 172.16.1.100
             remote: client
    measuring times: 40[times]
         last tried: 8407[kbit/s] 2005/06/23 13:08:45

#show status cooperation bandwidth-measuring
1: 172.16.0.100
            相手側動作: client
              測定回数: 43[times]
              最新試行: 8407[kbit/s] 2005/06/23 13:08:45
2: 172.16.0.100
            相手側動作: server
              測定回数: 67[times]
          最新測定結果: 59520[kbit/s] 2005/06/23 13:10:15
          設定変更回数: 5[times]
        現在の設定帯域: 58190[kbit/s] 2005/06/23 13:10:15
          設定変更履歴: 56030[kbit/s] 2005/06/23 13:09:34
                      : 57220[kbit/s] 2005/06/23 13:08:47
                      : 59830[kbit/s] 2005/06/23 13:08:15
                      : 58010[kbit/s] 2005/06/23 13:05:00
次回測定までの残り秒数: 3596[seconds]

ページトップへ戻る