【初心者わかりやすく】マルチキャストルーティングの第1歩

 

マルチキャストルーティングは、はじめのうちはなかなかイメージがわかず、難しく感じると思います。この記事では、よく使われる PIM-SM(PIM Sparse Mode)をベースに、簡単な構成でマルチキャストが届くまでの流れをイメージでつかみます。

この記事でわかること
  1. 同じセグメント内なら、マルチキャストはルータなしで届くこと
  2. ルータをはさむと、FHR と LHR がお互いの場所を知らないという問題
  3. ランデブーポイント(RP)で配信サーバと受信機を出会わせる仕組み
  4. RP を経由しない最短経路への切り替え

登場人物

マルチキャストルーティングの登場人物を考えていきます。まず一番大事なのは、マルチキャストを配信する配信サーバと、それを受け取る受信機です。この記事では、配信サーバが 239.1.1.1 宛てにマルチキャストを配信するとします。

同じセグメントの場合

配信サーバと受信機が同じネットワークセグメントにあれば、配信サーバから送ったマルチキャストは、ルータを通らずに受信機まで届きます。

同じネットワークセグメント 239.1.1.1 宛て 配信サーバ スイッチ 受信機
図1 同じセグメントなら、マルチキャストはルータなしで届く

スイッチは、既定ではマルチキャストをブロードキャストと同じように、同じセグメント(ブロードキャストドメイン)のポートに流します。受け取った端末は、自分が受信したいグループのマルチキャストなら受け取り、そうでなければ捨てます。IGMP スヌーピングに対応したスイッチでは、受信を希望した端末のポートにだけ流すこともできます。

配信サーバは、誰がマルチキャストを受信するのかを気にしません。受信機も、配信しているサーバがどれかを意識する必要はありません。同じセグメントなので、配信サーバがマルチキャストを流せば、受信機まで届きます。

ルータをはさむ場合

ところが、配信サーバと受信機の間にルータが入ると、話が変わります。まず用語として、配信サーバにつながるルータをファーストホップルータ(FHR)、受信機につながるルータをラストホップルータ(LHR)と呼びます。

配信サーバ FHR LHR 受信機 239.1.1.1 IGMP FHR:239.1.1.1 が届いた。でも、受信機がどこにいるかわからない… LHR:239.1.1.1 を受信したい端末がいる。でも、配信サーバがどこかわからない… FHR(ファーストホップルータ):配信サーバに接するルータ LHR(ラストホップルータ):受信機に接するルータ
図2 FHR と LHR は、お互いの場所を知らない

ここで、FHR にも LHR にも問題があります。

ルータ困っていること
FHR配信サーバからマルチキャストを受け取っても、受信機がどこにいるかわからないので、どこへ転送すればよいかわからない
LHR受信機から IGMP で「239.1.1.1 を受信したい」と要求を受けても、配信サーバがどこにいるかわからないので、どこへ要求を伝えればよいかわからない

ランデブーポイントで出会わせる

では、FHR と LHR を出会わせるにはどうすればよいでしょうか。これを解決するのがランデブーポイント(RP)です。

ランデブーは「待ち合わせ」という意味で、RP は配信サーバと受信機が出会う場所です。FHR から見ると、RP に行けばきっと受信機に出会えます。LHR から見ると、RP に行けばきっと配信サーバに出会えます。RP のアドレスは、あらかじめ各ルータに設定しておくなどして、全ルータが知っておきます。

FHR と LHR が RP に向かう

FHR は、マルチキャストの登録(PIM Register)で、配信サーバからのマルチキャストを RP へ送ります。LHR は、RP へマルチキャストへの参加要求(PIM Join)を送ります。

RP ランデブーポイント 配信サーバ FHR LHR 受信機 PIM Register (マルチキャストを登録) PIM Join (参加を要求)
図3 FHR は PIM Register、LHR は PIM Join で RP に向かう

RP を経由して届く

これで、配信サーバからのマルチキャストが、RP を経由して受信機に届きます。

RP ランデブーポイント 配信サーバ FHR LHR 受信機 RP を経由して届く(遠回り)
図4 RP を経由してマルチキャストが届く

最短経路に切り替える

ただし、この経路では、マルチキャストは RP を経由して遠回りしています。FHR から LHR へ直接届けたほうが、ネットワークとしては最短です。できれば最短経路に切り替えたいところです。

RP を経由してマルチキャストが届いたことで、LHR は配信サーバの IP アドレス(送信元アドレス)がわかります。そこで、さっきは RP に向けて送った参加要求を、今度は配信サーバに向けて直接送ります。

RP ランデブーポイント 配信サーバ FHR LHR 受信機 PIM Join(配信サーバ向け) 最短経路で届く
図5 LHR が配信サーバに向けて参加を要求し、最短経路で届くようになる

これで、RP を経由しない、最短経路でのマルチキャスト配信ができるようになります。

まとめ

段階内容
同じセグメントルータは関係なく、スイッチがマルチキャストを届ける
ルータをはさむFHR は受信機の場所を、LHR は配信サーバの場所を知らない
RPFHR は PIM Register、LHR は PIM Join で RP に向かい、RP で出会う
最短経路送信元アドレスがわかった LHR が、配信サーバに向けて直接 PIM Join を送る

実際の PIM-SM の設定と、パケットの中身は次の記事で確認しています。

コメント