PIM-SM(スパースモード)
・PIM-SMを使って,マルチキャスト・ルーティングを実践する
・マルチキャスト・ルーティングが実現するまでの流れを確認する
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterA
!
!
ip multicast-routing ←マルチキャスト・ルーティングを有効にする
!
interface Loopback0
 ip address 172.16.255.1 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.1.2 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.2.1 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 172.16.255.2 ←RP(ランデブー・ポイント)のアドレスを指定する
!
!
line con 0
line aux 0
line vty 0 4
!
end

RouterBのコンフィグ
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterB
!
!
ip multicast-routing ←マルチキャスト・ルーティングを有効にする
!
interface Loopback0
 ip address 172.16.255.2 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.2.2 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.3.1 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 172.16.255.2 ←RP(ランデブー・ポイント)のアドレスを指定する
!
!
line con 0
line aux 0
line vty 0 4
!
end

RouterCのコンフィグ
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterC
!
!
ip multicast-routing ←マルチキャスト・ルーティングを有効にする
!
interface Loopback0
 ip address 172.16.255.3 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.3.2 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.4.1 255.255.255.0
 ip pim sparse-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-address 172.16.255.2 ←RP(ランデブー・ポイント)のアドレスを指定する
!
!
line con 0
line aux 0
line vty 0 4
!
end

確認
マルチキャスト通信では,PIM-SM(スパースモード)が使われるケースが一般的です。
ここでは,PIM-SMを試してみます。


●マルチキャスト・パケットの送信・受信ツール
マルチキャスト・パケットを配信するには,マルチキャスト・データを配信するためのツールが必要です。
ここでは,フリーのマルチキャスト配信ツール「VLC」を使って,動画配信を試してみます。
VLCのインストールと利用方法については,以下を参考にしてみてください。
(参考)VLCのインストールと利用方法


●PIM-SM(スパースモード)
PIMには大きく,PIM-DM(デンスモード)とPIM-SM(スパースモード)という二つの方式があります。
大雑把に言うと,
PIM-DMは,「いったんすべての端末に配信して,その後,必要ないと報告のあったところを止める」という方法です。
PIM-SMは,「配信拠点のルーターを決めておいて,端末はそこに配信要求を出して受信する」という方法です。
ここでは,PIM-SMを実践してみます。


●設定の確認
最初に,設定を確認しましょう。
スパースモードを設定するときのポイントは,以下の三つです。

【PIM-SMの設定】
1.ip multicast-routingコマンドで,マルチキャスト・ルーティングを有効にする
2.各インタフェースでip pim sparse-modeコマンドを入れ,PIM-SMを有効にする
3.ip pim rp-addressで,RP(ランデブー・ポイント)のアドレスを指定する

例えば,RouterCの設定は以下になります。
RouterC(config)#ip multicast-routing
RouterC(config)#interface fastEthernet 0/0
RouterC(config-if)#ip pim sparse-mode
RouterC(config)#interface fastEthernet 0/1
RouterC(config-if)#ip pim sparse-mode ←自動的にIGMPも有効になる
RouterC(config-if)#exit
RouterC(config)#ip pim rp-address 172.16.255.2
RouterAとRouterBの設定も基本的には同じです。
PIM-DMの設定に,RPの設定が加わっただけです。
この状態で,サーバーからマルチキャスト・パケットを配信し,レシーバで受信すれば,レシーバで動画が再生されるはずです。


●設定後の状態確認
サーバーでマルチキャスト・パケットを配信していなく,かつ,レシーバで受信要求を出していない,初期状態を確認してみましょう。
RouterCのマルチキャスト・ルーティングテーブルをshow ip mrouteで見てみます。
RouterC#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 16:54:30/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 16:48:32/00:02:03
(*,G)エントリが一つだけできています。
224.0.1.40は,シスコのAuto-RP機能で使うアドレスで,このエントリはデフォルトで作成されるようになっています。
今回は,239.255.1.1をあて先とするマルチキャスト・パケットが対象です。
239.255.1.1あてのエントリは,まだ登録されていないことがわかります。

また,(*,239.255.255.250)のエントリができているケースがあります。
これは,Windowsパソコンがユニバーサル・プラグアンドプレイ(UPnP)で使うマルチキャスト・アドレスです。
ご利用のパソコンでUPnPを利用していないなら,オフにしてかまいません。
(参考)
WindowsXPの起動時に、「239.255.255.250」へのパケットが送信される場合(DELLのサポートホームページ)
http://support2.jp.dell.com/jp/jp/mwfaq/faq.asp?faqno=190329

次に,RP(ランデブー・ポイント)を確認してみましょう。
show ip pim rp mappingコマンドを使います。
RouterC#show ip pim rp mapping
PIM Group-to-RP Mappings

Group(s): 224.0.0.0/4, Static
    RP: 172.16.255.2 (?)
RPが,172.16.255.2(RouterBのLoopbackアドレス)になっているのがわかります。
対象となっているグループ「224.0.0.0/4」は,「全てのマルチキャスト・グループ」という意味です。
つまり,全てのグループでRouterBがRPになっているわけです。
ちなみに,最後の(?)印は,172.16.255.2の名前解決ができなかったことを意味しています。

PIMのネイバーを見てみましょう。
show ip pim neighborコマンドを使います。
RouterC#show ip pim neighbor
PIM Neighbor Table
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
192.168.3.1       FastEthernet0/0          16:50:44/00:01:44 v2    1 / S
192.168.3.1(RouterBのFa0/1)がネイバーになっているのがわかります。

RouterCは,端末のグループ参加要求をIGMPで受け取るラストホップ・ルーターです。
IGMPの様子も確認しておきましょう。
show ip igmp groupsコマンドを使います。
RouterC#show ip igmp groups
IGMP Connected Group Membership
Group Address    Interface                Uptime    Expires   Last Reporter
224.0.1.40       FastEthernet0/1          16:49:53  00:02:47  192.168.4.1
Auto-RP用に自動でできる224.0.1.40がエントリされているのがわかります。
他のグループはエントリされていません。

以上が,レシーバがIGMPで参加要求を出していなく,ソースがマルチキャスト・パケットを配信していない,初期状態です。
RouterAもRouterBも,239.255.1.1のエントリは出来ていません。


●PIM-SMの動作の流れ
PIM-SMの場合,設定は簡単でも,動作はちょっと複雑です。
PIM-SMにおけるマルチキャスト配信の流れは,以下のようになります。

PIM-SMのポイントは,RP(ランデブー・ポイント)の存在です。
ソースが出したマルチキャスト・パケットは,必ずRPまで届きます。
一方,レシーバが出した受信要求もRPまで届きます。
こうしてマルチキャスト・パケットと受信要求をランデブー(待ち合わせ)させるわけです。


●PIM-SMの動作確認
≪端末が受信要求を出したとき≫
では,実際にマルチキャスト・パケットを配信しながら,上の図にある動作を確認していきましょう。
すべてのルーターで,マルチキャスト・ルーティングとPIMのデバッグをオンにしておきます。
RouterA#debug ip routing
IP routing debugging is on
RouterA#debug ip pim
PIM debugging is on
これで準備OKです。
ではまず,端末で239.255.1.1あてのマルチキャスト・パケットの受信要求を出してみましょう。
VLCで「再生」ボタンを押すと,IGMPの受信要求(Membership Reportメッセージ)を出します(VLCの設定方法はこちら)。
(「ip igmp join-group マルチキャスト・アドレス」コマンドを使って,シスコ・ルーターをレシーバにすることもできます。)

RouterCの動作を見てみましょう。
RouterC#
1d12h: MRT: Create (*, 239.255.1.1), RPF Null, PC 0x80718A1C ←(1)
1d12h: PIM: Check RP 172.16.255.2 into the (*, 239.255.1.1) entry
1d12h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (*, 239.255.1.1), Forward state
1d12h: PIM: Building triggered (*,G) Join / (S,G,RP-bit) Prune message for 239.255.1.1
1d12h: PIM: v2, for RP, Join-list: 172.16.255.2/32, RP-bit, WC-bit, S-bit
1d12h: PIM: Send v2 triggered Join/Prune to RP via 192.168.3.1 (FastEthernet0/0) ←(2)
1d12h: PIM: Building batch join message for 239.255.1.1
1d12h: MRT: Update (*, 239.255.1.1), RPF Null, PC 0x80718A1C
1d12h: PIM: Send v2 Hello on FastEthernet0/0
1d12h: PIM: Building Join/Prune message for 239.255.1.1
1d12h: PIM: v2, for RP, Join-list: 172.16.255.2/32, RP-bit, WC-bit, S-bit
1d12h: PIM: Send v2 periodic Join/Prune to RP via 192.168.3.1 (FastEthernet0/0)
1d12h: MRT: Update (*, 239.255.1.1), RPF Null, PC 0x80718A1C
(1) IGMPの受信要求(Menbership Reportメッセージ)を受け,(*,239.255.1.1)エントリを作成
(2) RPがある192.168.3.1あてに,239.255.1.1のJoinメッセージを送出
  以上が,上図の@の動作

この状態の,RouterCのマルチキャスト・ルーティングテーブルを見てみます。
RouterC#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.255.1.1), 00:02:07/00:02:48, RP 172.16.255.2, flags: SJC
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:02:07/00:02:48

(*, 224.0.1.40), 00:07:47/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:07:47/00:02:40
(*,239.255.1.1)エントリが出来ています。
「Incoming interface」はマルチキャスト・パケットの入力インタフェースで,RPにつながるインタフェースです。
「Outgoing interface」はマルチキャスト・パケットの出力インタフェースで,IGMPで受信要求を受け取ったインタフェースです。
つまり,「Fa0/0から入って来た239.255.1.1あてのマルチキャスト・パケットは,Fa0/1から出せばいい」というエントリを作ったわけです。
「flags」にある「S」はスパースモード,「C」はレシーバがつながっていることを意味しています。

端末が受信要求を出したときの,RouterBの動作も見てみます。
RouterB#
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.3.2, to us ←(1)
1d12h: PIM: Join-list: (*, 239.255.1.1) RP 172.16.255.2
1d12h: MRT: Create (*, 239.255.1.1), RPF Null, PC 0x8074539C ←(2)
1d12h: PIM: Check RP 172.16.255.2 into the (*, 239.255.1.1) entry, RPT-bit set,WC-bit set, S-bit set
1d12h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (*, 239.255.1.1), Forward state
1d12h: PIM: Add FastEthernet0/1/192.168.3.2 to (*, 239.255.1.1), Forward state
1d12h: PIM: Building Join/Prune message for 239.255.1.1
1d12h: PIM: Received v2 Hello on FastEthernet0/1 from 192.168.3.2
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.3.2, to us
1d12h: PIM: Join-list: (*, 239.255.1.1) RP 172.16.255.2, RPT-bit set, WC-bit set, S-bit set
1d12h: PIM: Add FastEthernet0/1/192.168.3.2 to (*, 239.255.1.1), Forward state
1d12h: PIM: Send periodic v2 Hello on FastEthernet0/0
1d12h: PIM: Building Join/Prune message for 224.0.1.40
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/0 from 192.168.2.1, to us
1d12h: PIM: Join-list: (*, 224.0.1.40) RP 172.16.255.2, RPT-bit set, WC-bit set, S-bit set
(1) 192.168.3.2(RouterC)からJoinメッセージを受信
(2) (*,239.255.1.1)エントリを作成
  これは,上図@を受けての動作

このときのRouterBのマルチキャスト・ルーティングテーブルは以下です。
RouterB#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.255.1.1), 00:01:54/00:02:35, RP 172.16.255.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:54/00:02:35

(*, 224.0.1.40), 00:07:43/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:07:34/00:02:50
    FastEthernet0/0, Forward/Sparse, 00:07:43/00:02:45
RouterCと同様に,(*,239.255.1.1)エントリができています。
ただ,Incoming interfaceが「NULL」になっています。
これは,まだソースからマルチキャスト・パケットを受信していないので,どこが入力インタフェースなのかがわからない状態というわけです。

レシーバの受信要求が届くのはRPまでです。
そのため,RouterAのマルチキャスト・ルーティングテーブルは,初期状態のままです。
RouterA#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:09:00/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:09:00/00:02:20
ここまでで,レシーバからRPまでの配信経路ができました。
この配信経路はすべて(*,G)のエントリなので,「Shared Tree」(シェアード・ツリー)と呼ばれています。


≪サーバーがマルチキャスト・パケットを配信したとき≫
続いて,サーバーでマルチキャスト・パケットを配信させてみましょう。
VLCで,適当な動画ファイルを239.255.1.1あてに配信します(VLCの設定方法はこちら)。

配信直後のRouterAの様子を見てみましょう。
RouterA#
1d12h: MRT: Create (*, 239.255.1.1), RPF Null, PC 0x8072B380 ←(1)
1d12h: PIM: Check RP 172.16.255.2 into the (*, 239.255.1.1) entry
1d12h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF FastEthernet0/0/0.0.0.0, PC 0x8072B6AC ←(2)
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1 ←(3)
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.2.2, to us ←(4)
1d12h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
1d12h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (192.168.1.1, 239.255.1.1),
 Forward state
1d12h: PIM: Add FastEthernet0/1/192.168.2.2 to (192.168.1.1/32, 239.255.1.1), Forward state
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.2.2, to us
1d12h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
1d12h: PIM: Add FastEthernet0/1/192.168.2.2 to (192.168.1.1/32, 239.255.1.1), Forward state
1d12h: PIM: Building Join/Prune message for 239.255.1.1
1d12h: PIM: No sources in join or prune list
1d12h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Received v2 Register-Stop on FastEthernet0/1 from 172.16.255.2 ←(5)
1d12h: PIM:   for source 192.168.1.1, group 239.255.1.1
1d12h: PIM: Clear register flag to 172.16.255.2 for (192.168.1.1/32, 239.255.1.1)
(1) サーバーからのマルチキャスト・パケットを受け,(*,239.255.1.1)エントリを作成。これは(2)の準備
(2) (192.168.1.1,239.255.1.1)エントリを作成
(3) PIMのRegisterメッセージを使って,マルチキャスト・パケットをPIMパケットでカプセル化して,RPである172.16.255.2に送信
  ここまでが,上図Aの動作
(4) 192.168.2.2(RouterB)から,239.255.1.1のJoinメッセージを受信
  これは,上図Bの動作
(5) PIMのRegister-StopメッセージをRP(172.16.255.2)から受信
  これは,上図Dの動作

このときのRouterAのマルチキャスト・ルーティングテーブルは以下です。
RouterA#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.255.1.1), 00:01:35/00:02:59, RP 172.16.255.2, flags: SPF
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.2.2
  Outgoing interface list: Null

(192.168.1.1, 239.255.1.1), 00:01:35/00:03:30, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:35/00:03:19

(*, 224.0.1.40), 00:11:52/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:11:53/00:02:29
(*,239.255.1.1)エントリと,(192.168.1.1,239.255.1.1)エントリの二つが出来ています。
ここで作りたかったのは,(192.168.1.1,239.255.1.1)エントリです。
このエントリは,「ソースが192.168.1.1で,グループが239.255.1.1のマルチキャスト・パケット」に関する転送情報というわけです。
(S,G)エントリを作る際には,必ず(*,G)エントリを作る決まりになっています。
一緒に(*,239.255.1.1)エントリができたのはそのためです。

RPであるRouterBの様子も見てみましょう。
RouterB#
1d12h: PIM: Send periodic v2 Hello on FastEthernet0/1
1d12h: PIM: Send RP-reachability for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Hello on FastEthernet0/1 from 192.168.3.2
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1 ←(1)
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF FastEthernet0/0/192.168.2.1, PC 0x8074EE2C←(2)
1d12h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (192.168.1.1, 239.255.1.1),
 Forward state
1d12h: PIM: Send v2 Join on FastEthernet0/0 to 192.168.2.1 for (192.168.1.1/32,239.255.1.1), S-bit←(3)
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1 ←(4)
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.3.2, to us
1d12h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
1d12h: PIM: Add FastEthernet0/1/192.168.3.2 to (192.168.1.1/32, 239.255.1.1), Forward state
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Forward decapsulated data packet for 239.255.1.1 on FastEthernet0/1
1d12h: PIM: Send v2 Join on FastEthernet0/0 to 192.168.2.1 for (192.168.1.1/32,239.255.1.1), S-bit
1d12h: PIM: Received v2 Register on FastEthernet0/0 from 192.168.2.1
1d12h:      for 192.168.1.1, group 239.255.1.1
1d12h: PIM: Send v2 Register-Stop to 192.168.2.1 for 192.168.1.1, group 239.255.1.1 ←(5)
(1) 192.168.2.1(RouterA)からRegisterメッセージを受信
(2) Registerメッセージを受けて,(192.168.1.1,239.255.1.1)エントリを作成
  ここまでが,上図Aの動作
(3) 192.168.2.1(RouterA)にJoinメッセージを送信
  上図Bの動作
(4) Registerメッセージでカプセル化されたマルチキャスト・パケットを非カプセル化(decapsulated)してFe0/1に送信
  上図AとCを受けての動作
(5) Register-Stopメッセージを192.168.2.1に送信
  上図Dの動作

このときのRouterAのマルチキャスト・ルーティングテーブルは以下になります。
RouterB#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.255.1.1), 00:06:31/00:02:59, RP 172.16.255.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:06:31/00:02:54

(192.168.1.1, 239.255.1.1), 00:02:00/00:03:29, flags: T
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.2.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:02:00/00:02:54

(*, 224.0.1.40), 00:12:21/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming interface: Null, RPF nb
1d12h: PIM: Received v2 Hello on FastEthernet0/1 from 192.168.3.2r 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:12:13/00:03:07
    FastEthernet0/0, Forward/Sparse, 00:12:22/00:03:04
新たに,(192.168.1.1,239.255.1.1)エントリが出来ました。
これはつまり,239.255.1.1あてのパケットのソースが192.168.1.1であることがわかったわけです。

最後に,RouterCの様子も見てみましょう。
RouterC#
1d12h: PIM: Received v2 Hello on FastEthernet0/0 from 192.168.3.1
1d12h: PIM: Hello packet has unknown option 20, ignored
1d12h: PIM: Send v2 Hello on FastEthernet0/1
1d12h: PIM: Received RP-Reachable on FastEthernet0/0 from 172.16.255.2
1d12h:      for group 239.255.1.1
1d12h: PIM: Send v2 Hello on FastEthernet0/0
1d12h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF FastEthernet0/0/192.168.3.1, PC 0x80727AC0
1d12h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (192.168.1.1, 239.255.1.1), 
Forward state
1d12h: PIM: Send v2 Join on FastEthernet0/0 to 192.168.3.1 for (192.168.1.1/32,239.255.1.1), S-bit
1d12h: PIM: Received RP-Reachable on FastEthernet0/0 from 172.16.255.2
1d12h:      for group 224.0.1.40
1d12h: MRT: Update (*, 239.255.1.1), RPF Null, PC 0x80718A1C
1d12h: MRT: Update (*, 224.0.1.40), RPF Null, PC 0x80718A1C
マルチキャスト・パケットを受け,(192.168.1.1,239.255.1.1)エントリを作成しているのがわかります(上の青字)。
マルチキャスト・ルーティングテーブルも確認しておきましょう。
RouterC#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.255.1.1), 00:06:54/00:02:59, RP 172.16.255.2, flags: SJC
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:06:54/00:02:58

(192.168.1.1, 239.255.1.1), 00:02:23/00:02:59, flags: CJT
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:02:23/00:02:58

(*, 224.0.1.40), 00:12:34/00:00:00, RP 172.16.255.2, flags: SJCL
  Incoming inte
1d12h: MRT: Update (*, 239.255.1.1), RPF Null, PC 0x80718A1Crface: FastEthernet0
/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:12:36/00:02:53
すでに出来ていた(*,239.255.1.1)エントリを基に,(192.168.1.1,239.255.1.1)エントリが作られました。
これで,すべてのルーターで(192.168.1.1,239.255.1.1)エントリができたことになります。
これはつまり,すべてのルーターで,192.168.1.1から出された239.255.1.1あてのマルチキャスト・パケットをどこへ出せばいいかがわかったことになります。


●IPマルチキャスト テクノロジーの概要
http://www.cisco.com/web/JP/product/hs/ios/multicast/tech/mcst_ovr.html
●マルチキャスト クイックスタート コンフィギュレーション ガイド
http://www.cisco.com/web/JP/product/hs/ios/multicast/tech/mqs_cg.html

マルチキャスト・ラボ
PIM-DM(デンス・モード)
PIM-SM(スパース・モード)
スイッチオーバー
Auto-RP
Bootstrap Router

GREトンネルを使ってマルチキャストを流す