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情報をやりとりしているのが確認できました。 |