$Date: 2023/07/06 20:22:18 $
QoS機能を使用することで、重要なパケットが網内で不適切に廃棄されることを未然に防ぐことができます。QoS機能は、送出速度を絞り内部キューにパケットを滞留させ、送出順やタイミングを制御することで実現しています。
ここで、送出速度自体にポリシーがありその値が確定している場合は、その送出速度をspeedコマンドやqueue class propertyコマンドで設定すればよいので問題はありません。しかし、送出速度を回線の実効速度最大に設定したい場合、その値が不明であることがあります。実効速度は網内の状態に依存しており、他のトラフィックの影響を受け変動することも少なくありません。実効速度と異なる速度が設定されている場合、重要なパケットが網内で廃棄されたり、あるいは不必要に帯域が制限されることになります。
■:重要パケット □:非重要パケット ┏━━━━━━┓ ┏━━━┓ ┃ ┃ ┏━━┓ ┃ルータ┣━━━━━━━━┫ネットワーク┣━━━━━━━━┫対向┃ ┗━━━┛ ┃ ┃ ┗━━┛ ┗━━━━━━┛ '■'が破棄されないように ネットワーク内の狭帯域で ルータ出口でQoS '■'が破棄されてしまう ルータ出口よりも 破棄 さらに狭い帯域で □□ 破棄される ■□ 重要パケット'■'ロスあり ──────────→ ─────────→ □■■□■■■□■ □ ■ ■ □ ■ ■ ■
本機能は、回線の実効帯域を動的に測定し、機器のQoS機能の有効性を高めるものです。帯域が変動する可能性がある場合には定期的に測定し、送出速度を帯域の変動に追従させることもできます。
┏━━━━━━┓ ┏━━━┓ ┃ ┃ ┏━━┓ ┃ルータ┣━━━━━━━━┫ネットワーク┣━━━━━━━━┫対向┃ ┗━━━┛ ┃ ┃ ┗━━┛ ┗━━━━━━┛ 帯域測定 ================−−−−−−−−−→ ルータ出口で ネットワークの 狭帯域に応じたQoS 破棄 狭帯域部分でも □□□□ 破棄されない 重要パケット'■'ロスなし ──────────→ ─────────→ □ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■
ヤマハルーターでは以下の機種およびファームウェアで、帯域検出機能をサポートしています。
機種 | ファームウェア |
---|---|
RTX3510 | すべてのリビジョン |
RTX1300 | |
RTX1220 | |
RTX830 | |
NVR510 | |
NVR700W | |
RTX1210 | |
RTX5000 | |
RTX3500 | |
FWX120 | |
RTX810 | |
NVR500 | |
RTX1200 | |
SRT100 | |
RT58i | |
RTX3000 | |
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コマンド | ||||
リモート=サーバ (クライアント側) | リモート=クライアント (サーバ側) |
|||||
必要性 | 初期値 | 必要性 | 初期値 | |||
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"オプションは、帯域制御機能が実装されている機種だけで利用可能である。帯域検出結果を帯域制御のクラスの上限値に設定する場合に利用する。 |
┌───┐ ┌─────┤拠点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
#queue lan2 type priority #cooperation bandwidth-measuring client on #cooperation bandwidth-measuring remote 1 server 172.16.10.1
#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
#queue lan2 type priority #cooperation bandwidth-measuring client on #cooperation bandwidth-measuring remote 1 server 172.16.10.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
サーバとして機能させます。
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。#cooperation bandwidth-measuring client on
クライアントとして機能させます。#cooperation bandwidth-measuring remote 1 server 172.16.10.1
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
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
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
LAN2インタフェースでは優先制御を使用します。この他にクラス分けの設定が別途必要です。#cooperation bandwidth-measuring client on
クライアントとして機能させます。#cooperation bandwidth-measuring remote 1 server 172.16.10.1
センター側をサーバとして登録します。このコマンド実行後に帯域測定動作が始動します。
┌──────┐ ┌───┐ │ │ ┌───┐ │拠点A ├──┤ネットワーク├──┤拠点B │ └───┘ │ │ └───┘ 172.16.10.1 └──────┘ 172.16.20.1
#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
#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
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をクライアントとして登録します。
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]