IPマルチキャスト PIM-SM その1

(所属カテゴリー:マルチキャスト---投稿日時:2007年6月 2日)

IPマルチキャスト PIM-SM その1

PIM-SMの概要

PIM-SMはSparseモードのマルチキャストルーティングプロトコルです。マルチ キャストレシーバがさまざまなLAN上に分散しているようなネットワーク構成 を想定しています。
さまざまなLAN上にレシーバが分散している構成で、Denseモードのようなフラ ッディングを行うと、他のアプリケーションの通信に大きな影響を及ぼす可能 性があります。そこで、PIM-SMではExplicit Joinモデルに従います。これは、 レシーバの位置をきちんと把握し、レシーバが存在するインタフェースにのみ マルチキャストパケットをルーティングするというものです。
このような動作のために、PIM-SMでは送信元ツリーと共有ツリーの2つのディ ストリビューションツリーを組み合わせます。2つのツリーの境となるルータ をRP(Rendezvous Point)といいます。マルチキャストソースからRPまで送信元 ツリーを作成し、RPからレシーバまで共有ツリーを作成して、マルチキャスト パケットをルーティングします。そのため、ソースから送信されたマルチキャ ストパケットは基本的にRPを経由して、マルチキャストレシーバへルーティン グされます。
すべてRPを経由してマルチキャストパケットをルーティングするという性質上、 RPやマルチキャストソース、レシーバの位置しだいでは最適な経路でのルーテ ィングではないことがあります。そのようなときに、スイッチオーバー機能に よって、RPを経由せずにマルチキャストソースとレシーバ間の最短経路に経路 を切り替えてマルチキャストパケットを転送することも可能です。

※RPはマルチキャストグループごとに決定します。1つのマルチキャストグル ープに対して1つのRPアドレスを決定します。また、1つのRPアドレスを複数の マルチキャストグループのRPとして設定することもできます。
※スイッチオーバー機能の詳細は割愛します。

PIM-SMはマルチキャストルーティングプロトコルとして、デファクトスタンダ ードになっています。一般的にマルチキャストルーティングプロトコルといえ ば、PIM-SMを採用していることが多いです。

PIM-SMのディストリビューションツリー

前述のように、PIM-SMでは共有ツリーと送信元ツリーの2つを組み合わせます。 それぞれ、以下のような特徴があります。

  • 共有ツリー
    RPからレシーバまでのツリー
    (*,G)エントリ 次のタイミングで作成
    →IGMPレポートを受信したとき
    →PIM(*,G)Joinの受信したとき
    →最初の(S,G)エントリを作成するとき
    IIF(Incoming interface)はRPのアドレスに対する最短経路のインタフェース
    →RPF nbr = IIFの先に存在するPIMネイバー
    →RPではIIF = Null、RPF nbr = 0.0.0.0
    次のインタフェースがOIL(Outgoing interface list)に追加される
    →IGMPレポートを受信したインタフェース
    →PIM(*,G)Joinを受信したインタフェース
    →ip igmp-join groupコマンドまたはip igmp static-groupコマンドが
    設定されているインタフェース

  • 送信元ツリー
    送信元からRPまでのディストリビューションツリー
    (S,G)エントリ 次のタイミングで作成
    →PIM(S,G)Joinを受信したとき
    →PIM Registerメッセージを受信したとき(RP)
    →直接接続のマルチキャストソースからマルチキャストパケットを受信した とき(ファーストホップルータ)
    →対応する(*,G)エントリがなければ(S,G)エントリの前に作成する
    IIFはマルチキャストソースのアドレスに対する最短経路のインタフェース
    →RPF nbr = IIFの先に存在するPIMネイバー
    次のインタフェースがOILに追加される
    →(*,G)のOIL-IIF
    →PIM(S,G)Joinを受信したインタフェース

まず、共有ツリーの作成の様子から解説します。前提として、PIM-SMではすべ てのマルチキャストルータがルーティング対象のマルチキャストグループに対 するRPのアドレスを認識しています。共有ツリーの作成は次のような流れで行 われます。

(1) レシーバがマルチキャストグループに参加するとIGMPレポートを送信しま す。ラストホップルータはこれを受信して、IGMPテーブルに登録します。この とき、レシーバが参加したマルチキャストグループに対応する(*,G)エントリ を作成します。(*,G)エントリのIIF(Incoming interface)は設定されているRP のアドレスに対するRPFインタフェースです。また、RPFインタエース上のPIM-SM ネイバーがRPF nbrに入ります。そして、OIL(Outgoing interface list)にはIGMP レポートを受信したインタフェースが入ります。

(2) IGMPレポートを受信したラストホップルータは、RPからレシーバまでの共 有ツリーを作るために、RPの方向に向けてPIM(*,G)Joinメッセージを送信しま す。RPの方向とはつまり、(*,G)エントリのIIFです。

(3) PIM(*,G)Joinメッセージを受信したルータは、そのマルチキャストグルー プに対応した(*,G)エントリを作成します。IIFはやはりRPのアドレスに対する RPFインタフェースで、RPF nbrも先ほどと同様です。また、OILはPIM(*,G)Join を受信したインタフェースが入ります。

(4) そして、さらにRPへ向けてPIM(*,G)Joinメッセージを送信します。これを RPに到達するまで続けていきます。
なお、RP自身では(*,G)エントリのIIFはNull、RPF nbrは0.0.0.0です。

次に送信元ツリーの作成について解説します。前提として、PIM-SMではすべて のマルチキャストルータがルーティング対象のマルチキャストグループに対す るRPのアドレスを認識しています。そして、RPからレシーバまで共有ツリーが 作成されるという動作を認識しています。送信元ツリーの作成は次のような流 れで行われます。

(1) マルチキャストソースがマルチキャストパケットを送信すると、ファース トホップルータがそのマルチキャストパケットを受信します。ファーストホッ プルータは直接接続されたソースからマルチキャストパケットを受信すると、 先に(*,G)を作成した後で(S,G)エントリを作成します。ただし、この時点では ファーストホップルータはマルチキャストレシーバの存在を認識していないた め、OILはNullです。また、IIFはマルチキャストパケットを受信したインタフ ェースになり、RPF nbrは0.0.0.0です。

(2) ファーストホップルータはRPのアドレスを認識しています。そして、PIM-SM の動作の仕組みとして、レシーバが存在すればRPからレシーバまで共有ツリー が作成されています。そのため、マルチキャストパケットをRPまで転送すれば、 レシーバまで到達する可能性があります。ファーストホップルータは、PIM Register メッセージにマルチキャストパケットをカプセル化して、RPまでユニキャスト で転送します。

(3) PIM Registerメッセージを受信したRPは対応する(S,G)エントリを作成し ます。この(S,G)エントリのIIFはソースのIPアドレスに対するRPFインタフェ ースです。OILは(*,G)エントリのOILからIIFを除いたものになります。
PIM Registerメッセージにカプセル化されているマルチキャストパケットを取 り出して転送します。

(4) ファーストホップルータは、マルチキャストパケットを受け取るごとに PIM RegisterメッセージをRPまでユニキャストします。マルチキャストのまま、 ファーストホップルータからRPまでルーティングできるようにRPからソースの 方向に向けてPIM(S,G)Joinメッセージを送信します。

(5) PIM(S,G)Joinメッセージを受信したルータは、(S,G)エントリを作成しま す。また、(S,G)エントリを作成する前にそのテンプレートとして(*,G)エント リも作成されます。
(S,G)エントリのIIFはソースの方向のRPFインタフェースです。OILは(*,G)エ ントリのOILからIIFを除いたものに、PIM(S,G)Joinを受信したインタフェース が追加されます。

(6) そして、さらにソースの方向に向かってPIM(S,G)Joinが送信されていきま す。ファーストホップルータまでPIM(S,G)Joinが到達すると、ファーストホッ プルータのOILにPIM(S,G)Joinを受信したインタフェースが追加されます。こ れにより、ファーストホップルータはマルチキャストパケットをルーティング できるようになります。

(7) ファーストホップルータはソースからのマルチキャストパケットをPIM Register メッセージにカプセル化したものと、マルチキャストパケットのままルーティ ングします。RPでは、2つのマルチキャストパケットが重複するようになりま す。マルチキャストパケットのままルーティングされてくれば、PIM Register メッセージは不要になるのでファーストホップルータに対してPIM Register-stop メッセージを送信します。

このようにマルチキャストソースからのマルチキャストパケットを受信するこ とで、ファーストホップルータとRPまでの送信元ツリーを作成することができ ます。 最終的にマルチキャストパケットは、

  • ソースからファーストホップルータ
  • ファーストホップルータからRP
  • RPからラストホップルータ
  • ラストホップルータからレシーバ

という経路で転送されていきます。

Google
Web n-study.com

各コンテンツの最新記事

有料コンテンツライブラリ(ITエンジニア教育資料)

ネットワーク技術雑誌レビュー

ベンダ資格受験記

オススメ!ネットワーク技術雑誌・書籍

MindMapでおべんきょ

結果を出せるコーチング

Geneのつぶやき

The Power of Words

スポンサードリンク


CCNP目指すならパソナテック

スポンサードリンク


11月はBGP祭り!
NE向けセミナー
まずは基本のBGP!