【図解】マルチキャストルーティング入門〜PIMとIGMPの違い,構成例〜
イメージ配信ソフト とは、1台の PC で初期セットアップした OS イメージを1つのファイルとして抜き出し、それを たくさんの PC に配信し、同じ初期セットアップ状態にするソフト のことです。その際、PC 側では 1 台 1 台、Windows PE という簡易 OS を CD ブート等で起動し、ユニキャスト IP アドレスとマルチキャスト IP アドレスを設定します。その後、イメージ配信サーバにより配信を開始します。もし 1 台だけ一部のパケットの受信に失敗した場合、アプリケーションレイヤーで再送要求をかけ、適宜ユニキャストで再送します。
PIM と IGMP の違い
PIM はルータ間でマルチキャストルートの調整をするために使われるのに対し、IGMP はクライアントがルータに対してマルチキャスト通信が届くように要求するために使われます。
例えばクライアントは最寄りルータに対して『 225.10.10.10 のマルチキャストグループに参加します!だから 225.10.10.10 宛の IP パケットを僕に頂戴! 』と IGMP で投げ掛けるのです。
【図解】IGMPの仕組みとバージョン比較(v1,v2,v3の違い)とシーケンス IGMP とはIGMP とは、『マルチキャストを受信するホスト (レシーバ)』が. milestone-of-se.nesuke.com一方、IGMP を受信したルータは、PIM のネイバールータへその情報を伝搬していきます。
伝搬の仕方は PIM のモードによって異なります。モードの種類は後述の通り、4 種類です。
マルチキャストルーティングの用語
PIM (Protocol Independent Multicast)マルチキャストルーティングプロトコル の一種で、 デファクトスタンダード 。
事前に隣接するルータ同士でネイバー (PIM neighbor) を張り、ソースから FHR にマルチキャストが到達したタイミング、もしくはレシーバから LHR に IGMP が到達したタイミングで、 ツリーの構築=マルチキャストルーティングテーブルの作成 を実施する。
ユニキャストルーティングが機能している前提で動作する。バージョンは1,2があるが、 2 が使われる場合が多い。 また、PIM には以下 4 種類のモード がある。
- PIM-Dense Mode (PIM-DM)
- PIM-Sparse Mode (PIM-SM)
- PIM-Source Specific Mode (PIM-SSM)
- PIM-bidirectional Mode (PIM-bidir)
レシーバが、あるグループアドレスのマルチキャストを受信したいときに送信する プロトコル。
バージョンは 1,2,3 があり、PIM-SSM ではバージョン 3 のみが利用可能。それ以外のモードではバージョン1/2が利用可能だが、 2 が使われる場合が多い。
ソース (Source) ソースアドレス (Source Address) レシーバ (Receiver) マルチキャストグループ (Group) グループアドレス (Group Address) FHR (First Hop Router) LHR (Last Hop Router) 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-SM においては RP から FHR までのルータで利用される。
また、LHR から RP までのルータ上で、RP への最短パスとソースへの最短パスが異なる場合はこの送信元ツリーが利用される。
IIF (Incoming InterFace)1つのエントリに対して必ず1つ。(S,G)の場合はソースに対して RPF が成功している必要がある。
(*,G)の場合は RP に対して RPF が成功している必要がある。
OIL (Outgoing Interface List)基本的に 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 を受信し、レシーバが分かったら ルーティングテーブルにエントリが追加されたり更新されたりします 。
- PIM-DM において、マルチキャストパケットを受信した場合、FHR から LHR までの全ルータに送信元ツリーのエントリ (S,G) ができる
- PIM-SM および PIM-bidirectional Mode において、レシーバからの IGMP クエリを受信した LHR が、RP に向けて PIM-join を発行した場合、LHR から RP までの全ルータに共有ツリーのエントリ (*,G) ができる
- PIM-SM において、PIM-register を受信した RP が、ソースに向けて PIM-join を発行した場合、RP から FHR までの全ルータに送信元ツリーのエントリ (S,G) ができる
- PIM-SSM において、IGMP クエリを受信した LHR が、RP に向けてPIM-join を発行した場合、FHR から LHR までの全ルータに送信元ツリーのエントリ (S,G) ができる
マルチキャストルーティングでは RPF (Reverse Path Forwarding) という機能がデフォルトで有効になっており、この機能によって、マルチキャストの最短経路を確保し、かつルーティング・ループを防いでいます。
これは『 マルチキャストルーティングを行うルータにおいて、マルチキャストを受信する IF(IIF) は、 Source へのユニキャストルーティングにおける送信 IF でなければならない 』という制約を課す機能です。
もし もう 1 つのルートからも受信できるようにしたい 場合は、Static マルチキャストルートを書くことにより 「Source」に対する「Incoming IF」でRPF が成功する ように設定できます。Cisco の場合は以下コマンドを使います。
(config)# ip mroute 192.168.1.0 255.255.255.0 10.6.1.1注意点として、このコマンドはあくまで RPF に成功させるためのもの であり、 マルチキャストルーティングテーブルにエントリを追加するコマンドではありません 。