30 Minutes NetWorking
No.SW24

30Minutes NetWorking

BCMSN

第24回マルチキャスト(4) マルチキャストルーティングプロトコル

■ ディストリビューションツリー

スーパーインター博士

さて、ネット君。IGMPによる「各ルータは自分が接続しているサブネットにマルチキャストグループが存在しているか」の説明をしたわけだな。

ハイパーネット助手

IGMPを使うと、ルータ(クエリア)がマルチキャストグループのある/なしを問い合わせできるんですよね。

スーパーインター博士

そういうことだ。
で、マルチキャストを実現するのにもう1つ必要なものはなんだった?

ハイパーネット助手

マルチキャストグループがあるルータへのパスを作成」することですよね。

スーパーインター博士

そうだ。そのためのプロトコル、パスを作成するプロトコルが、マルチキャストルーティングプロトコルというわけだ。

ハイパーネット助手

わざわざ頭に「マルチキャスト」ってつけるぐらいなんですから、普通のルーティングプロトコルとは違うんですよね、きっと。

スーパーインター博士

そうだな、それを説明するのが今回の話なわけだ。
さて、ネット君、ルーティングプロトコルで一番あってはならないものはなんだ?

ハイパーネット助手

ルーティングプロトコルであってはならないもの?
なんだろ? コンバージェンスにならない?

スーパーインター博士

コンバージェンスにならないのは確かに困りものだが。間違ったコンバージェンスの方を恐れるべきだな。
具体的に言うと? RIP、BGP、再配布など対策がとられているものは?

ハイパーネット助手

う? あ? ルーティングループ?

スーパーインター博士

そうだ、ルーティングループだ。マルチキャストルーティングプロトコルでもこれは例外ではない。
つまり、ループフリーのトポロジを構成しなければならない。

ハイパーネット助手

そうですね、ルーティングループがあるとどうしようもないですからね。

スーパーインター博士

そういう事だな。マルチキャストルーティングプロトコルでは、マルチキャストの送信元と配布先を繋ぐ木構造を構成する。これをディストリビューションツリーと呼ぶ。

ディストリビューションツリー

[FigureSW24-01:ディストリビューションツリー]

ハイパーネット助手

でぃすとりびゅーしょんつりー。
ディストリビューションって聞き覚えが……リディストリビューション? 再配布?

スーパーインター博士

今回は[Re-]がつかないから、「配布」だな。
つまり、マルチキャストがサーバから配布されるための木、だな。このツリーを形成しておく必要がある、ということだ。

ハイパーネット助手

は〜、なんかSPFツリーみたいですね。

スーパーインター博士

ま、似てると言われれば似てるかもな。SPFツリーもループフリーなのは違いない。
このディストリビューションツリーは、その方式から2種類ある。

ハイパーネット助手

方式? 2種類?

スーパーインター博士

ソーススペシフィックツリーと、シェアードディストリビューションツリーだ。

ハイパーネット助手

博士?

スーパーインター博士

何かね?

ハイパーネット助手

助けてください……。

スーパーインター博士

そのちょっと長めの英語を見ただけで慈悲を請うクセはどうにかならんか?
単語自体は前も出てきただろう?

ハイパーネット助手

そーす…送信元、すぺしふぃっく…特定の?
しぇあーどは共有、かな?

スーパーインター博士

そうだ。名前がそのまま特徴になる。送信元が特定・固定のソーススペシフィックと、共有型のシェアードディストリビューションだ。

[FigureSW24-02:2つのディストリビューションツリー]

ハイパーネット助手

は〜、なんか一長一短ですね。

スーパーインター博士

ま、これは使うマルチキャストルーティングプロトコルの性質の違いでどちらかになる、という話だな。
また先で話そう。

ハイパーネット助手

了解です。

■ RPF

スーパーインター博士

さて、ディストリビューションツリー、特にソーススペシフィックツリーの時、よく耳にする単語にRPFがある。

ハイパーネット助手

あーるぴーえふ? りばーすぱすふぉわーでぃんぐ?
リバースとフォワーディングってなんか矛盾してますですよ?

スーパーインター博士

まぁ、確かにそう感じるのも無理はないかもな。
これは、マルチキャストを送受信するインタフェースを特定するために使う方法だ。

ハイパーネット助手

んん?

スーパーインター博士

つまり、こう。

[FigureSW24-03:RPFチェック]

スーパーインター博士

これで、ルータはアップストリームからのマルチキャストパケットを受信/破棄し、ダウンストリームへ転送する、ということを設定できるわけだ。

ハイパーネット助手

は〜。

スーパーインター博士

これをRPFチェックと呼ぶ。
マルチキャストの送信元を宛先と見て、ルーティングテーブルとのチェックを行うわけだな。

ハイパーネット助手

送信元を宛先と見る……、普通と逆ですよね?

スーパーインター博士

うむ。通常ルーティングテーブルはパケットの宛先を見るだろう? その反対の送信元を見て行うからリバースと名前がついているんだろう?

ハイパーネット助手

は〜、なるほど。

■ 配信範囲

スーパーインター博士

さて、マルチキャストは確かに便利だが、無制限に配送されては困ることが多い。

ハイパーネット助手

何故ですか? 便利ならいいじゃないですか。

スーパーインター博士

主に帯域と処理の問題だな。あきらかに使われないところに送っても、帯域やルータの処理の無駄になりかねない。

ハイパーネット助手

まぁ、確かにそうかも。

スーパーインター博士

なので、配信範囲を設定する。
これにはTTLを使用する。

ハイパーネット助手

すこーぷ。
TTLを使うってことは、送信されるマルチキャストのTTLを少なくして送るんですね。

スーパーインター博士

それもあるが、インタフェースから送信されるTTLの最小値を設定するという方式もとる。
この値、閾値というが、これを下回ったパケットはインタフェースから送信されない。

ハイパーネット助手

…あの〜…、ちょっと情けないこと聞いていいですか?

スーパーインター博士

どうした? そんないつもの事に遠慮する必要はないぞ。

ハイパーネット助手

うぅぅぅぅ。あの、「閾値」ってなんて読むんですか?

スーパーインター博士

「しきい値」だ。
さて、この閾値はこのように設定され、使われる。

[FigureSW24-04:TTL閾値による配信範囲]

ハイパーネット助手

ん〜、でも博士? この例の場合、右側にはメンバがいないんですよね?
どっちにしろ、マルチキャストルーティングプロトコルで送られなくなるんじゃないんですか?

スーパーインター博士

そうだな、確かにそうなる。だが、最初からこのように設定しておけば、より効率的だろう。
特に図でのA-B間が低速回線だったならなおさらだ。

ハイパーネット助手

う〜ん、確かにそれはそうですね。

■ DenseとSparse

スーパーインター博士

ディストリビューションツリーを構築し、マルチキャストをルーティングするマルチキャストルーティングプロトコルだが。
2種類の方式が存在する。

ハイパーネット助手

さっきのソーススペシフィックとシェアードディストリビュートですか?
それとも、ルーティングプロトコルだっていうんだから、ディスタンスベクタとリンクステートとか?

スーパーインター博士

あ〜、まぁ、ツリーの方に関連があるが。
DenseモードSparseモードだ。

ハイパーネット助手

でんす? すぱーす?

スーパーインター博士

Denseは「密集した」、Sparseは「まばらな・散在した」という意味だ。

ハイパーネット助手

何が「密集」していて、何が「散在」してるんですか?

スーパーインター博士

マルチキャストグループのメンバが、だ。
それによって、ディストリビューションツリーの作り方が違うのだよ。

[FigureSW24-05:DenseモードとSparseモード]

ハイパーネット助手

ん〜っと。とりあえず、全員参加で必要のない人を抜いていくってのがDenseモードですか?

スーパーインター博士

そうなるな、メンバが多いからそちらの方が早いわけだ。

ハイパーネット助手

で、必要な人を登録していくのがSparseモード?

スーパーインター博士

うむ、なかなかいいぞ、ネット君。メンバが散在していて、帯域も小さいからDenseのようにはいかないのがSparseだ。

ハイパーネット助手

は〜。上手く考えられてますねぇ。

スーパーインター博士

ルーティングプロトコルに複数種類あったように、マルチキャストルーティングプロトコルも複数存在する。

  • Denseモード
    • DVMRP (Distance Vector Multicast Routing Protocol)
    • MOSPF (Multicast Open Shortest Path First)
    • PIM (Protocol-Independent Multicast) DM (Dense Mode)
  • Sparseモード
    • CBT (Core-Based Tree)
    • PIM (Protocol-Independent Multicast) SM (Sparse Mode)
ハイパーネット助手

見覚えあったり、なかったり。
DVMRPとかMOSPFとかは、RIPとかOSPFのマルチキャスト版ですか?

スーパーインター博士

そうだな、そのイメージで問題ない。

ハイパーネット助手

で、PIMってのが2種類あるように見えるんですが?
それに、変な名前ですね、Protocol-Independentなんて。

スーパーインター博士

Protocol-Independent、つまり特定のルーテッドプロトコルに依存しないプロトコル非依存型のルーティングプロトコルなのだよ。
さらに、Dense、Sparseどちらかのモードで動作可能になる。

ハイパーネット助手

は〜、そりゃまた便利そうな。

スーパーインター博士

次回はそのPIMを説明する。
というわけで、今回はこれにて終了。

ハイパーネット助手

はい。

スーパーインター博士

ではまた次回。

ハイパーネット助手

了解です。
30分間ネットワーキングでした〜♪

ディストリビューションツリー
[Distribution Tree]
配布[Distribution]のための木(構造)。
SPFツリー
[Shortest Path First Tree]
OSPFで使用するツリー。自ルータからの最適経路を計算するために使用する。
ソーススペシフィックツリー
[Source Specific Tree]
送信元[Source]が固定[Specific]されているツリー。
シェアードディストリビューションツリー
[Shared Distribution Tree]
共有型[Shared]の配送[Distribution]ツリー。
RPF
[Reverse Path Forwarding]
配信範囲
[Scope]
ハイパーネット助手ハイパーネット君の今日のポイント
  • マルチキャストルーティングではループフリーのディストリビューションツリーで制御を行う。
    • 送信元ごとに作成されるのがソーススペシフィックツリー。
    • グループに1つ作成されるのがシェアードディストリニューションツリー。
  • RPFによってマルチキャストを使用するインタフェースを決定する。
  • TTLを使って、マルチキャストを配信する範囲を決定できる。
  • マルチキャストルーティングプロトコルにはDenseとSparseの2つのモードがある。
    • メンバが多く、帯域が十分な場合はDenseモード。
    • メンバが少数で分散しており、帯域が小さい場合はSparseモード。

30 Minutes NetWorking No.SW24

管理人:aji-ssz(at)selene.is.dream.jp