■ ディストリビューションツリー
さて、ネット君。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モード。
- マルチキャストルーティングではループフリーのディストリビューションツリーで制御を行う。