EdgeRouter X – 4. QoS を設定する ( QoS / CoDel )

みなさん Bufferbloat って知ってますか?今回は ER-X 内蔵のネットワークスケジューラー CoDel を使った基本的な QoS を設定することで、インターネットアクセス時の遅延 = Bufferbloat を少なくしてみます。
ちなみにこの機能を有効にすると、ハードウェア offload がオフになってしまいます。なので、インターネットの回線速度がハードウェア offlaod なしでいいくらい遅く、その遅い回線でテレビ電話を使う等 QoS が必要な場合のみに設定するのがよいようです。

Bufferbloat とは

Bufferbloat とは、ものすごく簡単に言うとインターネットにアクセスする際に、その経路上のバッファーがもたらす遅延やスループットの低下のことです。家庭用のインターネット回線では、上りの回線速度が下りに比べて遅いことが多く、そのためルーターの上りインタフェースで Bufferbloat が大きくなりがちで、これが FaceTime 等のリアルタイムな通信に影響を及ぼすことがあります。これを ER-X 内蔵の CoDel を用いた QoS を設定することで、パケットの送信順を最適化し、 Bufferbloat を少なくしてみます。

今回はこのような作業になります。

  1. インターネットの回線速度を調べる
  2. GUI から QoS > Smart Queue の設定をする

CoDel を使った QoS 機能は Smart Queue になります。基本的にはスピードテストサイトでインターネットの実効上り回線速度を調べ、それとほぼ同じくらいの値のスピードに Smart Queue を設定します。ここでは上り回線速度が 12 Mbps だったとして設定してみます。

設定値
ER-X ファームウェア 1.9.0
Policy name QoS-1
WAN Interface eth0 (もしくは pppoe0)
Upload Apply to upload traffic
Rate 12 Mbits/sec

では設定してみます。


インターネットの回線速度を調べる

とりあえず SourceForge Speed Test にアクセスして、回線のスピードをチェックしてみましょう。 QoS なしでの結果はこんな感じでした。

UPLOAD SPEED 12.6 Mbps
Bufferbloat (UPLOAD) 64 ms

screen_shot_2016-10-06_at_3_16_37_pm


GUI から QoS > Smart Queue の設定をする

それでは Smart Queue の設定をしてみます。 GUI から簡単にできます。

ER-X に管理者アカウントでログインし、 QoS タブをクリック
Smart Queue タブをクリック
Policy name: QoS-1
WAN Interface: eth0 (もしくは pppoe0)
Upload: Apply to upload traffic
Rate: 12 Mbits/sec
Apply ボタンを押す

screen-shot-2016-10-06-at-3-05-52-pm

これだけです。では、再度スピードチェックをしてみましょう。

UPLOAD SPEED 11.3 Mbps
Bufferbloat (UPLOAD) 21 ms

screen_shot_2016-10-06_at_3_29_13_pm

Bufferbloat が減りました。心なしかレスポンスもよくなった気がします。まぁ特にネットワークに問題がない場合には設定しなくてもいいかもしれませんが、上りの Bufferbloat が 200 ms を超えるような大きい値の時には設定した方がいい気がします。

ちなみに「なんで下りが 300 ms なのにそっちも QoS 設定しないの!」と思った方、鋭いです。本当は設定したほうがいいのですが、現状 Smart Queue は CPU 処理のため、処理できるスピードの上限があります。ファームウェア 1.7.0 のリリースノートによれば、

ERLite-3 and ERPoe-5: below 60 Mbps most likely will work, above 200 Mbps most likely will not work.

ER-8: below 160 Mbps most likely will work, above 450 Mbps most likely will not work.

ERPro-8: below 200 Mbps most likely will work, above 550 Mbps most likely will not work.

ER-X and ER-X-SFP: below 100 Mbps most likely will work, above 250 Mbps most likely will not work.

ということで、 ER-X は 100 Mbps ぐらいまでしか処理できないようです。試しに 180 Mbps で Smart Queue 設定してみると、確かに Bufferbloat は減りましたが、ダウンロードのスピードも 140 Mbps くらいまで下がってしまいました。というわけでここでは上りのみにしてます。もちろん上り下りとも 100 Mbps 以下の環境であれば、両方設定してみていいと思います。

また QoS を有効にすると、 ハードウェア offload 処理が無効になってしまうようです。 ER-X の system > offload > hwnat と system > offload > ipsec を有効にしている場合は QoS は諦めましょう。つまり Smart Queue は回線速度が遅く、かつ VoIP などに支障をきたしている場合に使った方がいいということですね。

以上、お疲れ様でした。


yabe.jp » Gadgets » EdgeRouter X – 4. QoS を設定する ( QoS / CoDel )