スイッチオーバー
・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
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
!
interface FastEthernet0/0
 ip address 192.168.1.2 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.5.1 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface Serial0/1
 ip address 192.168.2.1 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
line con 0
line aux 0
line vty 0 4
 login
!
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
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
!
interface Serial0/0
 ip address 192.168.2.2 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 clockrate 64000
!
interface Serial0/1
 ip address 192.168.3.1 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 clockrate 64000
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip classless
ip http server
ip pim send-rp-announce Loopback0 scope 9 ←Loopback0をRP候補にする
ip pim send-rp-discovery Loopback0 scope 9 ←Loopback0をマッピング・エージェントにする
!
line con 0
line aux 0
line vty 0 4
 login
!
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
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
!
interface FastEthernet0/0
 ip address 192.168.5.2 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
interface Serial0/0
 ip address 192.168.3.2 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
!
interface FastEthernet0/1
 ip address 192.168.4.1 255.255.255.0
 ip pim sparse-dense-mode ←このインタフェースでPIM-SMを有効にする
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
line con 0
line aux 0
line vty 0 4
 login
!
end

確認
PIM-SMでは,配信経路をRP経由から最短経路に切り替える「スイッチオーバー」と呼ばれる機能があります。
シスコ・ルーターの場合,デフォルトで有効になっている機能です。
スイッチ・オーバーの動作を見てみましょう。


●設定の確認
スイッチオーバーは,デフォルトでオンになっています。
正確には,「PIM-SMが動作しているラストホップ・ルーターがマルチキャスト・パケットを受信したとき,設定しておいたトラフィックのしきい値を超えると,RP経由の経路から最短経路に切り替える」ためのip pim spt-thresholdというコマンドがあります。
RouterC(config)#ip pim spt-threshold ?
  <0-4294967>  Traffic rate in kilobits per second
  infinity     Never switch to source-tree
デフォルトでは,そのしきい値が「0」になっています。
つまり,マルチキャスト・パケットが末端まで伝搬したら,最短経路がある場合には,自動的に最短経路を使った配信に切り替わるわけです。


●スイッチオーバーの動作の流れ
スイッチオーバーの流れを見てみましょう。
以下の図は,「PIM-SMの動作の流れ」の後の流れです。

ラストホップ・ルーターであるRouterCが,マルチキャスト・パケットを無事受信できました(上図@)。
ところが,上のネットワーク構成だと,RPであるRotuerB経由ではなく,配信サーバー→RouterA→RouterC→クライアントPC,という配信経路が最短です。
そこでRouterCは,RouterAにPIMのJoinメッセージを出します(上図A)。
さらにRouterCは,すでにパケットが流れてきているRouterCからの配信を止めるため,RouterCにPruneメッセージを送信します。
すると,それが上位のRouterAまで伝わります(上図B)。
最終的に,RPを経由しない最短経路でマルチキャスト・パケットが配信されます(上図C)。


●debugコマンドで動作を確認
では,スイッチオーバーの動作を確認してみましょう。
RouterA,RouterB,RouterCに,以下の二つのdebugコマンドを入れておきます。
RouterA#debug ip mrouting 239.255.1.1
IP routing debugging is on
RouterA#debug ip pim 239.255.1.1
PIM debugging is on
配信サーバーからマルチキャスト・パケットを流しておきます。
この状態で,クライアントPCで239.255.1.1の受信要求を出したとき(VLCの再生ボタンを押す)に,それぞれのルーターに出た表示を見てみましょう。
ラストホップ・ルーターのRouterCから見ていきます。
RouterC#
3d04h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF FastEthernet0/0/192.168.5.
1, PC 0x80727AC0
3d04h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (192.168.1.1,
 239.255.1.1), Forward state

3d04h: PIM: Send v2 Join on FastEthernet0/0 to 192.168.5.1 for (192.168.1.1/32,
239.255.1.1), S-bit ←(1)
3d04h: PIM: Send v2 Prune on Serial0/0 to 192.168.3.1 for (192.168.1.1/32, 239.2
55.1.1), RPT-bit, S-bit ←(2)
3d04h: PIM: Building Join/Prune message for 239.255.1.1
3d04h: PIM: v2, for RP, Join-list: 172.16.255.2/32, RP-bit, WC-bit, S-bit
3d04h: PIM: v2, for RP, Prune-list: 192.168.1.1/32, RP-bit
3d04h: PIM: For 192.168.5.1, Join-list: 192.168.1.1/32
(1) FastEthernet0/0にPIMのJoinメッセージを送信
  これは,上図Aの動作です。
(2) Serial0/0にPIMのPruneメッセージ送信。RPT-bitがオンになっているので,RPへのPruneであることがわかります。
  これは,上図Bの動作です。

続いて,RPであるRouterBを見てみます。
RouterB#
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF Serial0/0/192.168.2.1, PC
0x8074EE2C
3d04h: MRT: Add/Update Serial0/1/224.0.0.2 to the olist of (192.168.1.1, 239.255
.1.1), Forward state
3d04h: PIM: Send v2 Join on Serial0/0 to 192.168.2.1 for (192.168.1.1/32, 239.25
5.1.1), S-bit
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Send v2 Join on Serial0/0 to 192.168.2.1 for (192.168.1.1/32, 239.25
5.1.1), S-bit
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Received v2 Join/Prune on Serial0/1 from 192.168.3.2, to us ←(1)
3d04h: PIM: Prune-list: (192.168.1.1/32, 239.255.1.1) RPT-bit set
3d04h: PIM: Prune Serial0/1/224.0.0.2 from (192.168.1.1/32, 239.255.1.1)
3d04h: MRT: Delete Serial0/1/224.0.0.2 from the olist of (192.168.1.1, 239.255.1
.1) - deleted ←(2)
3d04h: PIM: Send v2 Prune on Serial0/0 to 192.168.2.1 for (192.168.1.1/32, 239.2
55.1.1), S-bit ←(3)
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register-Stop to 192.168.2.1 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Forward decapsulated data packet for 239.255.1.1 on Serial0/1
3d04h: PIM: Send v2 Prune on Serial0/0 to 192.168.2.1 for (192.168.1.1/32, 239.2
55.1.1), S-bit
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register-Stop to 192.168.2.1 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Received v2 Register on Serial0/0 from 192.168.2.1
3d04h:      for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register-Stop to 192.168.2.1 for 192.168.1.1, group 239.255.1.1
(1) 192.168.1.2(RouterC)からPruneメッセージを受信
(2) それを受けて,(192.168.1.1, 239.255.1.1)のエントリのOutgoing interface(Olist)からSerial0/1を削除
(3) 192.168.2.1(RouterA)にPruneメッセージを送信
  以上すべてが,RouterBにおける上図Bの動作です。

RouterAも見てみましょう。
RouterA#
3d04h: MRT: Create (*, 239.255.1.1), RPF Null, PC 0x8072B380
3d04h: PIM: Check RP 172.16.255.2 into the (*, 239.255.1.1) entry
3d04h: MRT: Create (192.168.1.1/32, 239.255.1.1), RPF FastEthernet0/0/0.0.0.0, P
C 0x8072B6AC
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Received v2 Join/Prune on Serial0/1 from 192.168.2.2, to us
3d04h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
3d04h: MRT: Add/Update Serial0/1/224.0.0.2 to the olist of (192.168.1.1, 239.255
.1.1), Forward state
3d04h: PIM: Add Serial0/1/192.168.2.2 to (192.168.1.1/32, 239.255.1.1), Forward
state
3d04h: PIM: Received v2 Join/Prune on FastEthernet0/1 from 192.168.5.2, to us ←(1)
3d04h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
3d04h: MRT: Add/Update FastEthernet0/1/239.255.1.1 to the olist of (192.168.1.1,
 239.255.1.1), Forward state ←(2)
3d04h: PIM: Add FastEthernet0/1/192.168.5.2 to (192.168.1.1/32, 239.255.1.1), Fo
rward state
3d04h: PIM: Received v2 Join/Prune on Serial0/1 from 192.168.2.2, to us
3d04h: PIM: Join-list: (192.168.1.1/32, 239.255.1.1), S-bit set
3d04h: PIM: Add Serial0/1/192.168.2.2 to (192.168.1.1/32, 239.255.1.1), Forward
state
3d04h: PIM: Building Join/Prune message for 239.255.1.1
3d04h: PIM: No sources in join or prune list
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Received v2 Join/Prune on Serial0/1 from 192.168.2.2, to us ←(3)
3d04h: PIM: Prune-list: (192.168.1.1/32, 239.255.1.1)
3d04h: PIM: Prune Serial0/1/224.0.0.2 from (192.168.1.1/32, 239.255.1.1)
3d04h: MRT: Delete Serial0/1/224.0.0.2 from the olist of (192.168.1.1, 239.255.1
.1) - deleted ←(4)
3d04h: PIM: Send v2 Register to 172.16.255.2 for 192.168.1.1, group 239.255.1.1
3d04h: PIM: Received v2 Register-Stop on Serial0/1 from 172.16.255.2
3d04h: PIM:   for source 192.168.1.1, group 239.255.1.1
3d04h: PIM: Clear register flag to 172.16.255.2 for (192.168.1.1/32, 239.255.1.1)
3d04h: PIM: Received v2 Join/Prune on Serial0/1 from 192.168.2.2, to us
3d04h: PIM: Prune-list: (192.168.1.1/32, 239.255.1.1)
3d04h: PIM: Received v2 Register-Stop on Serial0/1 from 172.16.255.2
3d04h: PIM:   for source 192.168.1.1, group 239.255.1.1
3d04h: PIM: Received v2 Register-Stop on Serial0/1 from 172.16.255.2
3d04h: PIM:   for source 192.168.1.1, group 239.255.1.1
(1) FastEthernet0/1からJoinメッセージを受信。
(2) これを受けて,(192.168.1.1, 239.255.1.1)のエントリのOutgoing interface(Olist)にFastEthernet0/1を追加。
  以上が,上図Aの動作です。
(3) Serial0/1からPruneメッセージを受信。
(4) これを受けて,(192.168.1.1, 239.255.1.1)のエントリのOutgoing interface(Olist)からSerial0/1を削除。
  以上の二つが上図Bの動作です。

上図の動作が確認できました。

それぞれのルーターのマルチキャスト・ルーティングテーブルも見てみましょう。
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:48/00:02:59, RP 172.16.255.2, flags: SPF
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list: Null

(192.168.1.1, 239.255.1.1), 00:01:48/00:03:29, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse-Dense, 00:01:48/00:02:33

(*, 224.0.1.39), 00:05:33/00:02:59, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:05:33/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:05:34/00:00:00

(172.16.255.2, 224.0.1.39), 00:01:34/00:01:25, flags: PT
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/1, Prune/Sparse-Dense, 00:01:34/00:01:25

(*, 224.0.1.40), 00:05:51/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:05:51/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:05:51/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:05:51/00:00:00

(172.16.255.2, 224.0.1.40), 00:05:47/00:02:11, flags: CLT
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/1, Prune/Sparse-Dense, 00:01:48/00:01:11
    Loopback0, Forward/Sparse-Dense, 00:05:47/00:00:00
注目は,グループ239.255.1.1のエントリです。
RouterAでは,Fa0/0から受信して,Fa0/1から送信するようになっているのがわかります。

これまでRPだった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:00:30/00:03:00, RP 172.16.255.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:00:30/00:03:00

(192.168.1.1, 239.255.1.1), 00:00:21/00:02:48, flags: PT
  Incoming interface: Serial0/0, RPF nbr 192.168.2.1
  Outgoing interface list: Null

(*, 224.0.1.39), 00:04:34/00:02:59, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:04:34/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:04:35/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:04:36/00:00:00

(172.16.255.2, 224.0.1.39), 00:04:07/00:02:52, flags: CLT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:04:07/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:04:07/00:00:00

(*, 224.0.1.40), 00:04:36/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:04:36/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:04:36/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:04:36/00:00:00

(172.16.255.2, 224.0.1.40), 00:04:20/00:02:38, flags: CLT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:04:20/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:04:20/00:00:00
Outgoing interfaceが「NULL」になっているのがわかります。
送出先が「ない」ということですね。

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:01:10/00:02:59, RP 172.16.255.2, flags: SJC
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse-Dense, 00:01:10/00:02:11

(192.168.1.1, 239.255.1.1), 00:01:02/00:02:59, flags: CJT
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.5.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse-Dense, 00:01:02/00:02:11

(*, 224.0.1.39), 00:04:47/00:02:59, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:04:48/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:04:48/00:00:00

(172.16.255.2, 224.0.1.39), 00:00:48/00:02:11, flags: PT
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse-Dense, 00:00:43/00:02:16

(*, 224.0.1.40), 00:05:11/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:05:11/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:05:11/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:05:11/00:00:00

(172.16.255.2, 224.0.1.40), 00:05:01/00:02:57, flags: CLT
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse-Dense, 00:00:57/00:02:02
    Loopback0, Forward/Sparse-Dense, 00:05:01/00:00:00
Incoming interfaceが「FastEthernet0/0」になっています。
マルチキャスト・パケットをRP経由ではなくて,Fa0/0につながるRouterAから受信するようになったのが確認できました。


●スイッチオーバーを無効にしてみる
では,スイッチオーバーを無効にしてみましょう。
ip pim spt-thresholdコマンドで「infinity」というパラメータを入れると,スイッチオーバーが無効になります。
RouterC(config)#ip pim spt-threshold ?
  <0-4294967>  Traffic rate in kilobits per second
  infinity     Never switch to source-tree

RouterC(config)#ip pim spt-threshold infinity
上のコマンドを入れてから,再び配信サーバーからマルチキャスト・パケットを送信します。
その状態で,各ルーターのマルチキャスト・ルーティングテーブルを見てみます。

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:00:24/00:02:59, RP 172.16.255.2, flags: SPF
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list: Null

(192.168.1.1, 239.255.1.1), 00:00:24/00:03:29, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:00:20/00:03:09

(*, 224.0.1.39), 00:01:07/00:02:59, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:01:07/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:01:08/00:00:00

(172.16.255.2, 224.0.1.39), 00:01:12/00:01:48, flags: PT
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/1, Prune/Sparse-Dense, 00:01:12/00:01:48

(*, 224.0.1.40), 00:01:40/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:01:40/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:01:40/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:01:40/00:00:00

(172.16.255.2, 224.0.1.40), 00:01:27/00:02:32, flags: CLT
  Incoming interface: Serial0/1, RPF nbr 192.168.2.2
  Outgoing interface list:
    FastEthernet0/1, Prune/Sparse-Dense, 00:01:27/00:01:32
    Loopback0, Forward/Sparse-Dense, 00:01:27/00:00:00
239.255.1.1グループのマルチキャスト・パケットの送信インタフェースが,Serial0/1になっています。
RPを経由する配信経路のままですね。

RPである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:00:43/00:02:59, RP 172.16.255.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:00:40/00:02:49

(192.168.1.1, 239.255.1.1), 00:00:43/00:03:29, flags: T
  Incoming interface: Serial0/0, RPF nbr 192.168.2.1
  Outgoing interface list:
    Serial0/1, Forward/Sparse-Dense, 00:00:40/00:02:49

(*, 224.0.1.39), 00:01:52/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:01:54/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:01:58/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:01:58/00:00:00

(172.16.255.2, 224.0.1.39), 00:01:32/00:02:27, flags: CLT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:01:32/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:01:32/00:00:00

(*, 224.0.1.40), 00:01:58/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:01:58/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:01:58/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:01:58/00:00:00

(172.16.255.2, 224.0.1.40), 00:01:47/00:02:11, flags: CLT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:01:47/00:00:00
    Serial0/1, Forward/Sparse-Dense, 00:01:47/00:00:00
Serial0/0から受信したパケットをSerial0/1に出すようになっています。
パケットは,RPを経由しているわけですね。

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:00:57/00:02:59, RP 172.16.255.2, flags: SC
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse-Dense, 00:00:57/00:02:21

(*, 224.0.1.39), 00:01:43/00:02:59, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse-Dense, 00:01:43/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:01:43/00:00:00

(172.16.255.2, 224.0.1.39), 00:01:43/00:01:16, flags: PT
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse-Dense, 00:01:39/00:01:20

(*, 224.0.1.40), 00:02:04/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse-Dense, 00:02:04/00:00:00
    Serial0/0, Forward/Sparse-Dense, 00:02:04/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:02:04/00:00:00

(172.16.255.2, 224.0.1.40), 00:01:59/00:02:59, flags: CLT
  Incoming interface: Serial0/0, RPF nbr 192.168.3.1
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse-Dense, 00:01:54/00:01:05
    Loopback0, Forward/Sparse-Dense, 00:01:59/00:00:00
RouterCは最短経路にスイッチオーバーしないので,239.255.1.1に関するエントリは,RPまでのシェアードツリーの経路を示す(*, 239.255.1.1)だけです。
受信インタフェースを表すIncoming interfaceがSerial0/0になっています。

ip pim spt-threshold infinityコマンドによって,スイッチオーバーが無効になたことが確認できました。

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

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