Bootstrap Rooter
・Bootstrap Rooter機能を使って,自動でRP(ランデブー・ポイント)を設定する
・ルーターが自動でRPを設定していることを確認する
ネットワーク構成(画像を別ウインドウで表示)
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-mode ←BSR候補になるLo0でPIM-SMを有効にする
!
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 bsr-candidate Loopback0 0 ←Loopback0をBSR候補にする 
!
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
 ip pim sparse-mode ←RP候補になるインタフェースでPIM-SMを有効にする
!
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
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip pim rp-candidate Loopback0 ←Loopback0を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
!
line con 0
line aux 0
line vty 0 4
!
end
確認
PIM-SMを使う際の設定に欠かせないのがRP(ランデブー・ポイント)の設定です。
RPを設定する方法として,手動設定Auto-RPのほかに「Bootstrap Router」という方法があります。
できることはAuto-RPと同じですが,しくみがやや異なります。

●Bootstrap Router(BSR)とは?
BSRは,PIM-SMにおいて,RPを自動で設定する方法です。
マルチキャスト・ネットワーク内のルーターのどれかに,以下の二つの役割を持たせます。

■RP候補
「自分がRPになりたい」というメッセージをBSRに対して送るルーター。
PIMのRPannounceメッセージをBSRにユニキャストで伝える。
Auto-RPにおける「RP候補」と同じ役割です。

■BSR候補
RP候補のRPannounceメッセージを受け取ってRPを決定し,ネットワーク内のルーターに通知するルーター。
PIMのBootstrapメッセージを,224.0.0.13(All PIM Router)あてに送り出し,全てのPIM対応ルーターに1ホップずつ転送していく。
Auto-RPにおける「RPマッピング・エージェント」と同じ役割です。

BSRを使ってRPを自動設定するまでの流れは,以下のようになります。

1.BSRの選出
  ・BSR候補が,PIMのBootstrapメッセージを224.0.0.13(All PIM Router)あてに送信
  ・BSRプライオリティ値が一番大きいルーターがBSRになる
2.RP候補がBSRに自身の存在を通知
  ・PIMのRPannounceメッセージをBSRあてにユニキャストで送信
3.BSRがRP候補のリストを全ルーターに通知
  ・PIMのBootstrapメッセージを使って,224.0.0.13(All PIM Router)あてに送信
4.ルーターが自身にRPを設定
  ・RP候補リストに記載されたプライオリティ値からRPを判断

(Auto-RPとの違い)
・PIMv2を使う(ネットワーク内にPIMv1対応ルーターが一つでもあるとだめ)
・PIM-SMを使う(PIM-SDMでなくてもよい)
・224.0.1.39と224.0.1.40のグループを使わない(224.0.0.13を使う)
・PIM-SMが備える標準機能(Auto-RPはシスコ独自)


●設定の確認
では,BootstrapRouterの設定を確認しましょう。

RouterAのLoopback0のアドレスをBSR候補に設定します。
RouterA(config)#ip pim bsr-candidate Loopback0
BSR候補が複数あった場合,一番大きなアドレスを持つルーターがBSRになります。
ちなみに,プライオリティ値を設定することも可能です(デフォルトは0です)

RP候補の設定は以下です。
RouterB(config)#ip pim rp-candidate Loopback0
RP候補が複数あった場合,一番大きなアドレスを持つRP候補がRPになります。
こちらも,プライオリティ値を設定することも可能です(デフォルトは0です)


●動作の確認
では,上の設定をした状態の,各ルーターの動作を確認してみましょう。
show ip pim bsr-routerコマンドを使って,BSRを確認します。

RouterAはどうでしょうか。
RouterA#show ip pim bsr-router
PIMv2 Bootstrap information
This system is the Bootstrap Router (BSR)
  BSR address: 172.16.255.1 (?)
  Uptime:      00:25:03, BSR Priority: 0, Hash mask length: 0
  Next bootstrap message in 00:00:57
「このシステム(ルーター)がBSRである」という表示が出ています(上の赤字)。
設定どおりに,RouterAがBSRになっています。

RouterBはどうでしょうか。
RouterB#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 172.16.255.1 (?)
  Uptime:      00:25:12, BSR Priority: 0, Hash mask length: 0
  Expires:     00:02:18
  Candidate RP: 172.16.255.2(Loopback0)
    Advertisement interval 60 seconds
    Next advertisement in 00:00:22
BSRのアドレスが172.16.255.1(RouterA)であることを認識しています。
また,RP候補が172.16.255.2(自分)のLoopback0であることも表示されています。

RouterCも見てみましょう。
RouterC#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 172.16.255.1 (?)
  Uptime:      00:25:43, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:46
BSRのアドレスが,172.16.255.1(RouterA)と表示されました。
三つのルーターとも,BSRがRouterAであることを認識していることがわかります。


では,BSRでやりとりした結果,RPはどのように設定されたでしょうか。
各ルーターのRPを確認してみましょう。

以下がRouterAです。
RouterA#show ip pim rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)

Group(s) 224.0.0.0/4
  RP 172.16.255.2 (?), v2
    Info source: 192.168.2.2 (?), via bootstrap
         Uptime: 00:21:47, expires: 00:02:39
以下がRouterBです。
RouterB#show ip pim rp mapping
PIM Group-to-RP Mappings
This system is a candidate RP (v2)

Group(s) 224.0.0.0/4
  RP 172.16.255.2 (?), v2
    Info source: 172.16.255.1 (?), via bootstrap
         Uptime: 00:22:04, expires: 00:02:19
以下がRouterCです。
RouterC#show ip pim rp mapping
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 172.16.255.2 (?), v2
    Info source: 172.16.255.1 (?), via bootstrap
         Uptime: 00:22:16, expires: 00:02:04
RouterA,RouterB,RouterCとも,172.16.255.2(RouterB)をRPとして認識しているのがわかります。
BSRが動作して,各ルーターに同じ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

(*, 224.0.1.40), 00:17:37/00:02:59, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:17:37/00:02:59
Auto-RP用に予約されている224.0.1.40のグループだけが表示されています。
では,配信サーバーから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:00:07/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:00:07/00:02:53

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

(*, 224.0.1.40), 00:18:10/00:00:00, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:18:12/00:02:24
239.255.1.1あての(*,G)エントリと(S,G)エントリができています。
これで,239.255.1.1あてのマルチキャスト・パケットを転送できるようになりました。


●debugで動作を細かく確認
debugコマンドを使って,BSRの動きを細かく見てみましょう。

まずは,BSRであるRouterAです。
RouterA#debug ip pim bsr
PIM-BSR debugging is on
RouterA#
1w4d: PIM-BSR: Bootstrap message for 172.16.255.1 originated ←(1)
1w4d: PIM-BSR:  RP 172.16.255.2, 1 Group Prefixes
1w4d: PIM-BSR: RP-set for 224.0.0.0/4 ←(2)
1w4d: PIM-BSR:   RP(1) 172.16.255.2, holdtime 192 sec
1w4d: PIM-BSR: Bootstrap message for 172.16.255.1 originated
1w4d: PIM-BSR:  RP 172.16.255.2, 1 Group Prefixes
1w4d: PIM-BSR: RP-set for 224.0.0.0/4
(1) RPを172.16.255.2(RouterB)とするBootstrapメッセージを生成して送信
(2) このメッセージは自分自身も受信するので,172.16.255.2(RouterB)をRPにセット

続いて,RPであるRouterBです。
RouterB#debug ip pim bsr
PIM-BSR debugging is on
RouterB#
1w4d: PIM-BSR: Build v2 Candidate-RP advertisement for 172.16.255.2
1w4d: PIM-BSR:  Candidate RP's group prefix 224.0.0.0/4
1w4d: PIM-BSR: Send Candidate RP Advertisement ←(1)
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1 ←(2)
1w4d: PIM-BSR: Build v2 Candidate-RP advertisement for 172.16.255.2
1w4d: PIM-BSR:  Candidate RP's group prefix 224.0.0.0/4
1w4d: PIM-BSR: Send Candidate RP Advertisement
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1
(1) 自身がRP候補であることをBSRに送信
(2) 172.16.255.1(RouterA)から受信したBootstrapメッセージをFastEthernet0/1に転送

最後に,RouterCを見てみます。
RouterC#debug ip pim bsr
PIM-BSR debugging is on
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1
1w4d: PIM-BSR: 172.16.255.1 bootstrap forwarded on FastEthernet0/1
172.16.255.1(RouterA)からのBootstrapメッセージをFastEthernet0/1に転送しているのがわかります。

Bootstrapメッセージを使ってRP情報をやりとりしているのが確認できました。

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

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