【図解】マルチキャストルーティング入門〜ルータ超えをする設定〜

スポンサーリンク
スポンサーリンク

マルチキャストルーティングの概要

同じNWセグメント内のマルチキャスト通信であれば、通信するために特に設定は不要ですが、NWセグメント(ルータやL3スイッチ)を超えるマルチキャストルーティングについては、設定が必要です。

マルチキャストルーティングでは、送信元と宛先が別セグメントであってもTTLが0にならない限り、セグメントを超えて通信ができます。

ちなみに、図にあるWindows PEというのは、イメージ配信ソフト等で利用される簡易OSです。

イメージ配信ソフトとは、1台のPCで初期セットアップしたOSイメージを1つのファイルとして抜き出し、それをたくさんのPCに配信し、同じ初期セットアップ状態にするソフトのことです。その際、PC側では1台1台、Windows PEという簡易OSをCDブート等で起動し、ユニキャストIPアドレスとマルチキャストIPアドレスを設定します。その後、イメージ配信サーバにより配信を開始します。もし1台だけ一部のパケットの受信に失敗した場合、アプリケーションレイヤーで再送要求をかけ、適宜ユニキャストで再送します。

マルチキャストルーティングの用語

スポンサーリンク

PIM (Protocol Independent Multicast)

マルチキャストルーティングプロトコルの一種で、デファクトスタンダード
事前に隣接するルータ同士でネイバー(PIM neighbor)を張り、ソースからFHRにマルチキャストが到達したタイミング、もしくはレシーバからLHRにIGMPが到達したタイミングで、ツリーの構築=マルチキャストルーティングテーブルの作成を実施する。
ユニキャストルーティングが機能している前提で動作する。バージョンは1,2があるが、2が使われる場合が多い。
また、PIMには以下4種類のモードがある。

  1. PIM-Dense Mode (PIM-DM)
  2. PIM-Sparse Mode (PIM-SM)
  3. PIM-Source Specific Mode (PIM-SSM)
  4. PIM-bidirectional Mode (PIM-bidir)

IGMP (Internet Group Management Protocol)

レシーバが、あるグループアドレスのマルチキャストを受信したいときに送信するプロトコル。バージョンは1,2,3があり、PIM-SSMではバージョン3のみが利用可能。それ以外のモードではバージョン1/2が利用可能だが、2が使われる場合が多い。

ソース (Source)

マルチキャストの送信元ホスト。

ソースアドレス (Source Address)

ソースのIPアドレス。ルーティングテーブルのエントリで『S』と表現される。

レシーバ (Receiver)

マルチキャストの受信者。グループメンバとも言う。

グループ (Group)

ある1つのマルチキャストIPアドレスのレシーバの集まり。

グループアドレス (Group Address)

グループの所属するマルチキャストIPアドレス。ルーティングテーブルのエントリで『G』と表現される。

FHR (First Hop Router)

ソースのNWセグメントに直結しているルータのこと。

LHR (Last Hop Router)

レシーバのNWセグメントに直結しているルータのこと。

RP (Rendezvous Point)

ランデブーポイント。
PIM-SMおよびPIM-bidirectional Modeにおける、共有ツリーの中継ポイントとなるルータ。全PIMルータで手動設定するか、Auto-RPやBootstrap-Routerを使った自動設定にて決定する。グループアドレスによってRPを変えることも可能。
IGMP Reportを受信したLHRはRPに向けてPIM-joinを発行していき、共有ツリーを構築する。
マルチキャストパケットを受信したFHRはRPに向けてPIM-registerを送信し、それを受信したRPはFHRに向けてPIM-joinを発行していき、送信元ツリーを構築する。

スポンサーリンク

共有ツリー (Shared Tree)

全てのソースで共通のマルチキャストルーティング経路。
[(*,G) IIF:  OIL:  ]で表現される。Gにはグループアドレスが入る。
PIM-SMにおいてはLHRからRPまでのルータで利用される。
PIM-bidirectional Modeにおいては全ルータで利用される。

送信元ツリー (Source Tree)

特定のソースにおけるマルチキャストルーティング経路。
[(S,G) IIF:  OIL:  ]で表現される。Sにはソースアドレス、Gにはグループアドレスが入る。
PIM-DMにおいては全ルータで利用される。
PIM-SMにおいてはRPからFHRまでのルータで利用される。
また、LHRからRPまでのルータ上で、RPへの最短パスとソースへの最短パスが異なる場合はこの送信元ツリーが利用される。
PIM-SSMにおいては全ルータで利用される。

PIM-SMにおける共有ツリー、送信元ツリーの例を下図に示す。

IIF (Incoming InterFace)

マルチキャストルーティングにおける受信インタフェース。
1つのエントリに対して必ず1つ。
(S,G)の場合はソースに対してRPFが成功している必要がある。
(*,G)の場合はRPに対してRPFが成功している必要がある。

OIL (Outgoing Interface List)

マルチキャストルーティングにおける送信インタフェース群。
1つのエントリに対して複数持つことが可能。
基本的にIGMPによる受信要求を受けているルータへ向かうIFが該当する。

スポンサーリンク

マルチキャストルーティングのルーティングテーブル

マルチキャストルーティングのルーティングテーブルのエントリは[(S, G) IIF:  OIL: ]という形式で書かれます。

SはSource Addressのことで、マルチキャストを送信するホストのユニキャストIPアドレスを指します。

GはGroup Addressのことで、224.0.1.0〜239.255.255.255までのマルチキャストIPアドレスを指します。

IIFは送信元からマルチキャストパケットを受信するインタフェースのことで、1つのエントリに必ず1つです。RPFのチェックに成功する必要があります。

OILは受信したマルチキャストパケットを送信するインタフェース達のことで、レシーバに向かう経路が複数であれば、その数だけ持つことができます。

マルチキャストルーティングテーブルのイメージとしては以下のようになります。

スポンサーリンク

マルチキャストルーティングにエントリが追加される条件

マルチキャストルーティングにおいてはソース(送信元)とレシーバ(受信先)が時間によって変わることを想定しているため、(S, G) 単位でconfigを投入するようなことはしません。PIMでルータ同士ネイバーを張り、送信元からマルチキャストパケットが到達し、ソースが分かったら、もしくは受信端末からIGMPのQueryを受信し、レシーバが分かったらルーティングテーブルにエントリが追加されたり更新されたりします

具体的な条件は以下の通りです。

  1. PIM-DMにおいて、マルチキャストパケットを受信した場合、FHRからLHRまでの全ルータに送信元ツリーのエントリ(S,G)ができる
  2. PIM-SMおよびPIM-bidirectional Modeにおいて、レシーバからのIGMPクエリを受信したLHRが、RPに向けてPIM-joinを発行した場合、LHRからRPまでの全ルータに共有ツリーのエントリ(*,G)ができる
  3. PIM-SMにおいて、PIM-registerを受信したRPが、ソースに向けてPIM-joinを発行した場合、RPからFHRまでの全ルータに送信元ツリーのエントリ(S,G)ができる
  4. PIM-SSMにおいて、IGMPクエリを受信したLHRが、RPに向けてPIM-joinを発行した場合、FHRからLHRまでの全ルータに送信元ツリーのエントリ(S,G)ができる

RPF(Reverse Path Forwarding)

マルチキャストルーティングではRPF(Reverse Path Forwarding)という機能がデフォルトで有効になっており、この機能によって、マルチキャストの最短経路を確保し、かつルーティング・ループを防いでいます。これは、『マルチキャストルーティングを行うルータにおいて、マルチキャストを受信するIF(IIF)は、Sourceへのユニキャストルーティングにおける送信IFでなければならない』という制約を課す機能です。例えば下記のような冗長経路構成の場合、デフォルトでは片方(Gi1/0)でしかマルチキャストの受信できません。

スポンサーリンク

もしもう1つのルートからも受信できるようにしたい場合は、Staticマルチキャストルートを書くことにより「Source」に対する「Incoming IF」でRPFが成功するように設定できます。Ciscoの場合は以下コマンドを使います。

(config)# ip mroute 192.168.1.0 255.255.255.0 10.6.1.1

注意点として、このコマンドはあくまでRPFに成功させるためのものであり、マルチキャストルーティングテーブルにエントリを追加するコマンドではありません

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク