2020年7月12日日曜日

ひかりTVのマルチキャストでネットワーク負荷が上がる問題をMLDスヌーピングではない方法で解決した

【要約】
ひかりTVのマルチキャスト問題はMLDスヌーピングで解決するのが一般的だけど、マルチキャストのトラフィック制御でも解決できるという話

---
ひかりTVを使っているLANでハブを使うと、マルチキャストのパケットがネットワーク全体に送信されてネットワーク負荷が上がる問題があって、その解決方法で有名なのがMLDスヌーピングが使えるスマットスイッチを使う方法です。

前住んでいたところのネットワーク環境だと、MLDスヌーピングを使わなくても、若干ネットワーク負荷が上がるなぁぐらいだったのですが、新居のネットワーク環境だと、MLDスヌーピングが効いていないと、全くといっていいほど通信ができなくなります。

MLDスヌーピングが効いていれば問題にならないと言えばそうなのですが、この場合以下のような問題があります。

(1) スマートスイッチの状態がリセットされると、MLDスヌーピングの学習が終わるまではほぼ通信不可
(2) ひかりTVの「ひかりTV」(ケーブルテレビの番組)だけを見ている場合は、MLDスヌーピングの学習が終わっていれば問題ないですが、「地デジ」を見ると、学習し直しになってその間通信不可になる。「ひかりTV」と「地デジ」は別のマルチキャストとして扱われるようで、「地デジ」はさらにチャンネル毎にも別マルチキャスト。

(2)が特に問題で、ひかりTVのチャンネル切り替えをやると、その都度MLDスヌーピングの学習が終わるまで、インターネットとの通信が止まってしまい、かなり困った状態になりました。

そこで、MLDスヌーピングでは無い方法で問題を解決することにしました。
解決方法ですが、まずネットワークの構成を変えました。

【変更前】

【変更後】

変更前は、ルータ側のLANポートは1つしか使用せず、全部の通信をハブに渡して、それから機器に分岐していたのですが、変更後はひかりTVのSTBだけルータのLANポートに直接つなぎ、他の機器はハブにつなぐことにしました。

この状態だと、STBとハブにマルチキャストが常に飛ぶ状態になるので、ネットワークの負荷は大きいままです。そこで、ハブ(BS-GS2008)の設定で、ルータとつながるポートのマルチキャストパケットのトラフィック上限を下げました(BS-GS2008だと、詳細設定のトラフィック制御のマルチキャストを無制限 → 128p/s に。BS-GS2008のトラフィック制御は、ポートに入ってくるデータに対して効くようです)。

この設定によって、STB側でチャンネル切り替えをやっても、インターネットとの通信が止まることが無くなりました。

ただ、よく分からないことが2つあります。

(1) 変更後の構成だと、STBの電源OFFで、DLNAも使ってないのに、ひかりTVのマルチキャストが続く場合がある。10Mbpsぐらい帯域の無駄。
(2) 変更後の構成で、トラフィック制御せずに、MLDスヌーピングの設定をしても、(学習が終われば)ネットワークの負荷は減るはずなんですが、なぜか負荷が下がらなかった。

理由が分からないのですが、とりあえず問題になるまでは放置です。

2 件のコメント:

  1. はじめまして!コメント失礼します。
    大変興味深い記事だと思います。

    変更後ですが、NVR510ということはMLDプロキシをお使いのことと思います。その場合MLDプロキシをWANとSTBが繋がっているLANポートのみにすることによって、ハブにはMLD/マルチキャストが行かなくなると思うのですが、いかがですか?

    また変更前のマルチキャストの学習ですが、これはNVR510でMLDプロキシ、GS2008でMLDスヌーピングを有効にしている場合、GS2008でMLDルーターポートの設定をしないとマルチキャストがうまく行き渡らないことが原因のような気がします。GS2008のNVR510が接続されてるポートをMLDのルーターポートに設定してみてください。

    両方とも設定済みでしたらすみません!

    返信削除
  2. > MLDプロキシをWANとSTBが繋がっているLANポートのみにする

    NVR510だと、LANポート分割機能が無いので、この設定ができないと思うのですが...
    (NVR700Wだとできそうですが)

    返信削除