2017年8月12日土曜日

ひかりTVの品質改善(スマートスイッチ BS-GS2008の導入)

【本記事は2017/8/12にココログに投稿したものを再編集したものです】

昔からそうだったんだけど、ひかりTVが15~30分に1回ぐらい瞬断します。
チューナーをトリプルチューナーモデル(ST-3400)に変えてからかなり気になります。
音楽が途中で途切れるとむちゃくちゃ気になります。

ということで、改善を試みることにしました。
いろいろ調べた結果、たどり着いた結論がスイッチングハブの変更でした。

まず、変更前のネットワーク構成。

























無線LANルーターが2つあって、かなり無駄な構成になっている理由は、Wi-Fiのアクセスポイントとしては、WXR-1900DHPより、WNPR2600Gの方が私の環境では安定したからです。
スイッチングハブが2つあるのは、LANケーブルの取り回しの関係です。ポート数の多いハブを使うのがいいと思うんだけど、10m超えのLANケーブルも何本も引きたくないので。

この構成なんだけど、ひかりTVを使っていると、かなり困った問題が。

ひかりTVは、IPv6マルチキャストを使っているんですが、家庭用の安いスイッチングハブだと、これが全部ブロードキャスト通信になってしまうのです。
























赤の矢印がひかりTVのIPv6マルチキャストパケットが送信される経路。
実際にはひかりTVチューナーST-3400しか受け取る必要がないんだけど、ほぼ全部の機器にパケットが送信されてしまう。うちの家庭のネットワークで大部分を占めるのがひかりTVの通信なので、スイッチングハブはほとんどリピーター状態。ひかりTVの通信は10Mbps程度なので100Mbpsとか1Gbpsが処理できるハブなら問題ないはずなんだけど、やっぱりたまに失敗するようでひかりTVが止まります。
どうも、スイッチングハブにも寄るんだと思うんだけど、ブロードキャストの時は送信先すべてがパケットを受け取ってくれないと動きが止まってしまうみたい。反応が遅い機器が存在しているとそれの影響を受けやすいです。

で、奮発してスマートスイッチ BS-GS2008を導入しました。

はい、これ家庭用じゃないです。企業向け製品。Amazonでも他のネット通販でも普通に買えますが。ちょっと高いです。スマートスイッチの中では非常に安いですが。

ついでに10m超えのLANケーブルも複数購入して構成を変更しました。
























BS-GS2008導入の利点は3つだと思っています。

(1) MLDスヌーピングが使える。
 ひかりTVのマルチキャストパケットがひかりTVチューナーだけに届くようになります。(上の図の矢印参照)
 ネットワークに余裕ができます。
  インターネット通信するときは駄目ですが、PCとNAS間の通信がひかりTVとは全く無関係に。

(2) ポートベースのQoSが使える
 ひかりTVチューナーとPCの通信のポートの優先順位を高く設定できるようになります。
【注:ただこれはあんまり関係なかった。今は設定していません】

(3) バッファ容量が1.5MBと大きくなる
 LSW4-GT-5NSは128kBしかありません。
 バッファローではネットワークオーディオ向けというハブを売っていたのですが、その売りの1つが512KB大容量バッファーによる音切れ防止効果でした。バッファーを大きくすると一時的な遅延を吸収しやすくなるので、ひかりTVでも画像が途切れにくくなるはずです。

で、実際に導入した効果は絶大で、通信エラーが出なくなりました。
たまに画像が乱れることはありますが、ほんとうに一瞬だけ。
びっくりするほど安定しました。

いろいろ買って試した結果の結論がこれです。

スマートスイッチ、安い買い物じゃなかったけど、最初からこれを選んでおけば、返って安く済んだかもしれないです。

2017年2月2日木曜日

夜インターネット回線が遅いのを改善してみた(@nifty/フレッツ光/v6プラス/WXR-1900DHP)

【本記事は2017/2/2にココログに投稿したものを再編集したものです】

フレッツ光を使っているのですが、今年に入ってから、特に夜の時間帯の回線が非常に遅く困っていました。そこで、いろいろやってみた結果、ようやく改善できたので記事にしてみました。

一言で結論を言ってしまえば、v6プラスの適用です。

【変更前の構成】
回線NTT東日本 フレッツ 光ネクスト マンションタイプ プラン2B
プロバイダ@nifty
契約プラン@nifty光 with フレッツ
ホームゲートウェイRV-230SE
家庭内のLAN有線 + 無線(BUFFALO WXR-1900DHPをアクセスポイントで)

どういう状況だったかというと、
  1. [有線]夜9時以降、ニコニコ生放送などが止まりまくって視聴に耐えれない
  2. [有線]夜9時以降、オンラインゲーム(具体的に言うと、ドラゴンクエスト10)がまともに動かない
  3. [有線/無線]ウェブページは見れるけどむちゃくちゃ遅い。WiFiを切って、LTEで見た方が速い。
という感じ。

10時半ぐらいにPingを打つとこんな感じ。
---------------------------------------------------------------
ping -n 100 www.nifty.com

222.158.213.147 の ping 統計:
    パケット数: 送信 = 100、受信 = 83、損失 = 17 (17% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 24ms、最大 = 30ms、平均 = 26ms
---------------------------------------------------------------

朝5時半だとこんな感じ
---------------------------------------------------------------
ping -n 100 www.nifty.com

222.158.213.147 の ping 統計:
    パケット数: 送信 = 100、受信 = 100、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 15ms、最大 = 18ms、平均 = 15ms
---------------------------------------------------------------

反応速度が遅いのも問題だけど、パケットの損失がひどすぎる。
再送でごまかせる通信は遅いだけですむけど、ストリーミングとかリアルタイム性が欲しい通信は全く駄目。

こんな状態なんですが、ひかりTVは結構まともに見れる。というのは、ひかりTVはIPv6通信で、フレッツ網はIPv4とIPv6で通信が全く違うんですね。

試しにIPv4とIPv6両方受け付けられるサーバにPingを打つと、
---------------------------------------------------------------
ping -n 100 -4 www.nta.go.jp

e8346.dscksd.akamaiedge.net [23.2.135.120]に ping を送信しています 32 バイトのデータ:

23.2.135.120 の ping 統計:
    パケット数: 送信 = 100、受信 = 89、損失 = 11 (11% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 13ms、最大 = 21ms、平均 = 17ms
---------------------------------------------------------------
ping -n 100 -6 www.nta.go.jp

e8346.dscksd.akamaiedge.net [2600:140b:2000:1b1::209a]に ping を送信しています 32 バイトのデータ:

2600:140b:2000:1b1::209a の ping 統計:
    パケット数: 送信 = 100、受信 = 100、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 4ms、最大 = 34ms、平均 = 5ms
---------------------------------------------------------------

何、この差。

ということで、あんまり回線を大きくいじらずに回線品質を改善しようとすると、IPv4 over IPv6を使えばいいんじゃない?という考えになります。
IPv4 over IPv6とは、IPv4のパケットをIPv6のパケットで包んで、IPv6の通信経路で流す技術です。家庭内はIPv4とIPv6の混在、フレッツ網は全部IPv6で、その先でまたIPv4とIPv6に分離します。最近やばすぎるフレッツのIPv4網を使わないので、回線が安定するんですね。
で、IPv4 over IPv6ですが、@niftyで使えるのは、v6プラスになります。

v6プラス自身は追加料金無しなので申し込むだけでOK!

とならなかったのが、うちの環境...

で、以下に、いろいろ試行錯誤したことを書いていきます。

まず、「@nifty光 with フレッツ」から「@nifty光」に転用しました。後から考えれば、これはやらなくても良かったかも。ちょっと個別の事情があり、「@nifty + NTT」体制ではなく、「@nifty」一本にしたかったというのが理由。実はうちの環境だと、転用で+80円/月になってしまいますので。(もっとも、トリプル割適用を考えているので、結果安くなるんですが)

転用は局内工事だけなので家庭内はなにもせずに終わりました。
でも、転用だけでは回線品質も変わりませんでした。相変わらず遅い。

でv6プラスの申し込みですが、転用の申し込みの時に同時に申し込みになりました(勝手に付いた)。が、数日後、「v6プラス 提供不可通知」なるものが。

ここからが面倒だった。

@niftyに問い合わせたり、いろいろ調べると、http://csoption.nifty.com/ipv6/にも書いてありますが、
> 下記いずれかの機器をお使いいただくことが条件となります。
>  -
v6プラス対応のホームゲートウェイ(ひかり電話対応ルーター)
>   
- v6プラス対応のブロードバンドルーター
ということ。
v6プラス対応のホームゲートウェイ(ひかり電話対応ルーター)は、「PR-500シリーズ、RT-500シリーズ、PR-400シリーズ、RV-440シリーズ、RT-400シリーズ、RT-S300シリーズ、PR-S300シリーズ、RV-S340シリーズ」なので、うちの古いホームゲートウェイは対応していない。
で、NTTに電話してホームゲートウェイ(RV-230SE)を交換できないか聞いてみたけど、拒否されました。NTTの基本方針は、故障なら交換するけど、そうじゃないなら交換しないということらしい。
(後から@niftyサポートからメールがあったけど、@niftyサポートが伝えてきたNTTの電話番号が間違っていたらしい。もし正しい電話番号なら、ホームゲートウェイ交換してもらえるかもしれないけどよく分からない)

しかし、さらに調べると、前から使っていた「BUFFALO WXR-1900DHP」が「v6プラス対応のブロードバンドルーター」だった。
でも、WXR-1900DHPはルータ機能を切っていて、アクセスポイントとして使用していた(RV-230SEがルータ機能を持っているので二重ルータにならないように)ので、回線側から見ればRV-230SEしか見えない状態に。

ということで、WXR-1900DHPの設定を変更。

RV-230SEの設定画面を開いて、PPPoE通信しないようにして、DHCPも無効に。RV-230SEは単なるひかり電話用 & モジュラージャック→LAN変換端末に。
---
具体的には以下。

まず接続先設定。
接続方法を常時接続しないようにして、回線を切断します。

DHCPの設定。
DHCPが反応しないようにします。WXR-1900DHPがDHCPサーバになるので。









高度な設定でIPv6ブリッジを有効に。PPPoEも必要ならPPPoEブリッジも有効に。










---

RV-230SEのLANポートにつながっていた機器はすべてWXR-1900DHPに刺し直し。

WXR-1900DHPをルータモード(Autoだとアクセスポイントモードで認識されてしまったので強制的にルータモード)に変更。設定も一旦リセットして、「インターネット@スタート」で回線を認識させ、PPPoEでまずつながるように。IPv6側は「インターネット@スタート + パススルー」で。
これで、WXR-1900DHPが全部の通信を中継するようになった。ただし、まだIPv4はPPPoEなので、速度やパケット損失は変わりません。

ここで、v6プラスを申し込み。

と数日後、「IPv6接続オプション ご利用開始通知」なるものが。

「v6プラス」申し込んだのに、「IPv6接続オプション」が開通してしまった。
@niftyのv6プラスのページによると、「v6プラス」申し込んでも、適用できないと「IPv6接続オプション」で開通してしまうらしい。
当然ながら、回線品質変わらず。

万事休すかと思って、さらに調べてみると、
v6プラス関連の覚え書きBIGLOBEのv6プラス説明ページに以下の記述が。

> 上記条件に当てはまらない方で、以下の機器をお持ちの方は、「フレッツ光IPv6接続」(無料)をお申し込みください。
> - BUFFALO製 WXR-1750DHP/WXR-1900DHP/WXR-1900DHP2/WXR-2533DHP/WXR-2533DHP2[株式会社バッファロー提供]
> ※ 本機器をご利用の場合は、「フレッツ光 IPv6接続」をお申し込みいただくことで、v6プラスが利用できます。下記からお申し込み下さい。

うちは@niftyなのに、BIGLOBEの説明が意味あるのか?と思う人が居るかもしれませんが、実はv6プラスを提供しているのは、JPNEで@niftyもBIGLOBEも株主で使用者なんですね。つまり、@niftyのv6プラスもBIGLOBEのv6プラスも、結局物は同じ。
【注:この記事を最初に書いたときはBIGLOBEもJPNEを使っていましたが、今は自前で同じことをやっています】

どうも、v6プラスを申し込むと、NTTのホームゲートウェイにフレッツジョイントでv6プラスの機能が送られて使えるようになるんだけど、うちのホームゲートウェイが古くて非対応だし、WXR-1900DHPもフレッツジョイントを受け付けれないので、エラーになって、「IPv6接続オプション」になっちゃったみたいです。

ここで、BIGLOBEの説明の「フレッツ光IPv6接続」って、@niftyだと「IPv6接続オプション」だねっていうことで、

思い切って、WXR-1900DHPの設定を変えてみました。

設定画面を開いて、「IPアドレス取得方法」を「v6プラス接続を使用する」に設定。

で、しばし待つ。

つながった!

tracert www.nifty.com
してみる。

通信経路が変わった!
kddi.ne.jpドメインのゲートウェイが出てきた!(JPNEにKDDIが参加しているからでしょうね)
【注:今はkddiの名前でないかも】

で、夜10時ぐらいに、
ping -n 100 -4 www.nta.go.jp
ping -n 100 -6 www.nta.go.jp

を打ってみた。IPv4が速い!(結果保存するの忘れた)

早速、ドラクエ10やりながら、ニコニコ生放送タイムシフトを見る。
全然問題なし!

という訳で、通信が改善されました。

けど、これ、かなりネットワークの知識無いと、結論たどり着けないよね?
少なくともとも、ルータの設定を変えれるぐらいの知識は必要なわけで。

素人がやろうとすると、v6プラス対応のホームゲートウェイを入手と言うことになると思う。
うちは、交換拒否られましたけどね。
「ひかり電話」使っているので、ホームゲートウェイはNTTレンタルになるんだけど、交換できないとなるときつい(もしかすると方法あるかもしれないけど)。「@nifty光」で「ひかり電話」不要なら、ホームゲートウェイの申込先は@niftyになるので、もうちょっとは話が通じるかもしれない。

【補足】
v6プラスで動作しているかどうかは、IPv4/IPv6接続判定ページが便利です。
判定で、「結果 :OK」がでればv6プラス接続になっています。
試験9:IPv4設定ソフトウェアへのアクセス(v6プラスHGW用)は、NTTのホームゲートウェイ以外を使っている場合はNGになりますが、問題ないです。