概要

以下の具体的なネットワーク構成で、PIM-SMの共有ツリーと送信元ツリーを作成する様子について解説します。

図 PIM-SM ディストリビューションツリー作成例 ネットワーク構成
図 PIM-SM ディストリビューションツリー作成例 ネットワーク構成

PC1が239.1.1.1のレシーバで、R2が239.1.1.1に対するRPです。R1~R4でR2(10.1.0.9)が239.1.1.1のRPであることを認識しています。ここでは、先にPC1がレシーバとして設定されていて、その後、マルチキャストソースからパケットが送信される場合を考えます。

共有ツリーの作成

PC1がマルチキャストグループ239.1.1.1に参加することをトリガーととして、ラストホップルータのR3からRPであるR2までの共有ツリーを作成します。共有ツリーを作成する流れは、以下のようになります。

レシーバがIGMPレポートを送信

PC1が239.1.1.1のグループに参加すると、IGMPレポートが送信されます。これを受信したラストホップルータであるR3はIGMPテーブルに登録するとともに、239.1.1.1に対応する(*,239.1.1.1)エントリを作成します。作成される
(*,239.1.1.1)エントリは次のようになります。

(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: SC
  Incoming interface: Serial0/1, RPF nbr 10.1.0.9
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:00:05/00:02:54

IIFはRPの方向のSerial0/1で、OILにはIGMPレポートを受信したインタフェースであるFa0/0が載せられています。

STEP
1

ラストホップルータからPIM(*,G)Joinを送信

R3はRPまでの共有ツリーを作るためにIIFであるSerial0/1からRPF nbrに対してPIM(*,239.1.1.1)Joinを送信します。

STEP
2

RPまでPIM(*,G)Joinを送信

R3からのPIM(*,239.1.1.1)JoinはR2に届きます。R2は、(*,239.1.1.1)エントリを作成します。このときのR2の(*,239.1.1.1)は次のようになります。

図 共有ツリーの作成
図 共有ツリーの作成
STEP
3

送信元ツリーの作成

マルチキャストソースから239.1.1.1のグループ宛てのマルチキャストパケットを送信したことをトリガーとして、ファーストホップルータのR1からRPであるR2までの送信元ツリーが作成されます。送信元ツリー作成の流れは以下のようになります。

マルチキャストソースがマルチキャストパケットを送信

マルチキャストソースが送信したマルチキャストパケットをファーストホップルータR1が受信します。このとき、ファーストホップルータで(10.1.1.100,239.1.1.1)エントリを作成します。R1での(10.1.1.100,239.1.1.1)エントリは、次のようになります。

(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: SP
  Incoming interface: Serial0/1, RPF nbr 10.1. 0.6,
  Outgoing interface list:Null

(10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags: FPT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, 
  Outgoing interface list: Null

(10.1.1.100,239.1.1.1)エントリのテンプレートとして、同時に(*,239.1.1.1)エントリも作成されます。(10.1.1.100,239.1.1.1)エントリのIIFはマルチキャストパケットを受信したFa0/0でOILがNullです。OILがNullであるためR1ではレシーバが存在するかどうか認識していないので、マルチキャストパケットのルーティングを行いません。

STEP
1

RPへPIM Registerメッセージを送信

ファーストホップルータのR1は受信したマルチキャストパケットをPIM Registerメッセージにカプセル化してRPへユニキャストで送信します。

STEP
2

RPで(S,G)エントリの作成

RPはレジスターメッセージを受け取ると、カプセル化されているマルチキャストパケットに対する(10.1.1.100,239.1.1.1)エントリを作成します。そして、PIMのカプセル化を解除して、マルチキャストパケットをルーティングします。RPの(10.1.1.100,239.1.1.1)エントリは次のようになります。

(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse, 00:00:05/00:02:54

(10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags:
  Incoming interface: Serial0/0, RPF nbr 10.1.0.5, 
  Outgoing interface list: 
    Serial0/1, Forward/Sparse, 00:00:05/00:02:54
図 PIM Registerの送信
図 PIM Registerの送信
STEP
3

RPからソースの方向へPIM(S,G)Joinを送信

RPからマルチキャストソースの方向(Serial0/0)に向かって送信元ツリーを作成するために、PIM(10.1.1.100,239.1.1.1)Joinを送信します。

STEP
4

ファーストホップルータまでPIM(S,G)Joinを送信

R1がPIM(10.1.1.100,239.1.1.1)JoinをSerial0/1で受信すると、OILにSerial0/1を追加します。

(10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, 
  Outgoing interface list: Serial0/1

OILにSerial0/1が追加されたので、R1はSerial0/1へマルチキャストパケットをルーティングできるようになります。これで、マルチキャストソースからRPまでの送信元ツリーの完成です。

図 送信元ツリーの作成
図 送信元ツリーの作成
STEP
5

PIM Register-stopの送信

R1は受信したマルチキャストパケットをPIM Registerにカプセル化してRPに送信しつつ、同時にマルチキャストパケットのままでSerial0/1へルーティングします。

図 マルチキャストパケットのルーティング
図 マルチキャストパケットのルーティング

RPまで送信元ツリーが完成してマルチキャストパケットのままでルーティングされるようになれば、PIM Registerは不要です。R2からPIM Register-stopメッセージがR1へ送信されてRegisterメッセージをとめます。

図 PIM Register-stop
図 PIM Register-stop
STEP
6

最終的なディストリビューションツリー

以上のように、PIM-SMではRPを中心として、送信元ツリーと共有ツリーを作成し、RPを経由したマルチキャストパケットのルーティングを行います。全体的なマルチキャストパケットの流れとツリーについてまとめると次の図のようになります。

図 最終的なディストリビューションツリー
図 最終的なディストリビューションツリー

IPマルチキャストの仕組み