目次
PIM-SMの設定
PIM-SMの動作はPIM-DMに比べると、とても複雑です。しかし、PIM-DMと同じようにPIM-SMの設定はシンプルです。PIM-SMの設定は次の3つの設定を行います。なお、このページではRPアドレスはスタティックでの設定について解説します。
- マルチキャストルーティングの有効化
- インタフェースでPIM-SMを有効化
- RPアドレスを指定(スタティック)
マルチキャストルーティングの有効化
ルータでマルチキャストルーティングを有効化するには、グローバルコンフィグレーションモードでip multicast-routingコマンドを入力します。
(config)#ip multicast-routing
インタフェースでPIM-SMを有効化
マルチキャストパケットを転送する可能性がある経路上のすべてのインタフェースでPIM-SMを有効化します。有効にしたいインタフェースコンフィグレーションモードで次のコマンドを入力します。
(config-if)#ip pim {sparse-mode|sparse-dense-mode}
RPアドレスを指定(スタティック)
マルチキャストルーティングを行うすべてのルータでRPアドレスを指定します。スタティックでRPアドレスを指定するには、グローバルコンフィグレーションモードで以下のコマンドを入力します。
(config)#ip pim rp-address <ip-address> [<ACL>]
<ip-address> : RPのIPアドレス
<ACL> : マルチキャストグループを特定するためのACL
<ACL>を関連付けることで、マルチキャストグループを限定したRPアドレスの設定になります。ACLを関連付けなければすべてのマルチキャストグループに対するRPアドレスの設定となります。すべてのルータで共通のRPアドレスを設定しないとPIM-SMは正しく動作しないので注意してください。
RPアドレスはAuto RPやBSRでダイナミックに設定することもできます。
PIM-SMの設定例
次の図はPIM-SMの設定例です。
R1もR2もマルチキャストルーティングを有効化して、それぞれ2つのインタフェースでPIM-SMを有効化します。そして、RPアドレスとしてR1の10.1.1.1のIPアドレスを設定すればOKです。
Sparse-Denseモード
PIMの動作モードにSparse-Denseモードがあります。SparseモードとDenseモードのハイブリッドの動作モードです。PIM-SMではRPがとても重要な役割を果たします。RPがディストリビューションツリーの中心となり、マルチキャストパケットをルーティングする中心です。マルチキャストグループに対するRPのアドレスがわからないとSparseモードではマルチキャストのルーティングを行うことができなくなってしまいます。そこで、Sparse-Denseモードの設定を行うと、RPを認識しているマルチキャストグループのパケットはSparseモードによってルーティングします。RPを認識していないマルチキャストグループのパケットであれば、Denseモードでルーティングします。
次の図は、Sparse-Denseモードの動作の例です。SRV1は239.1.1.1と239.2.2.2のマルチキャストパケットを送信しています。ファーストホップルータであるR1はSparse-Denseモードの設定がされています。239.1.1.1のRPのアドレスは認識していますが、239.2.2.2のRPのアドレスを認識していません。
239.1.1.1のマルチキャストパケットは、RPを認識しているので、Sparseモードの動作です。PIM Registerメッセージでカプセル化してRPへ転送します。一方、239.2.2.2のマルチキャストパケットはRPを認識していないので、Denseモードの動作です。PIMネイバーへとりあえずフラッディングします。
図では、ファーストホップルータの場合ですが、他のルータでも同様です。
PIM-SMの確認コマンド
PIM-SMの設定を確認するためには、主に次のようなshow/debugコマンドを使います。
コマンド | 確認する内容 |
show ip pim interface | PIMが有効になっているインタフェースを確認する |
show ip pim neighbor | PIMネイバーを確認する |
show ip rpf | RPFインタフェースの情報を確認する |
show ip pim rp mapping | RPの情報を確認する |
show ip mroute | ディストリビューションツリー(マルチキャストルーティングテーブル)を確認する |
debug ip mrouting | マルチキャストルーティングテーブルの追加・変更・削除をデバッグする |
debug ip mpacket | 受信したマルチキャストパケットの中身をデバッグする |
debug ip pim | PIMの動作をデバッグする |
以降で、これらのshow/debugコマンドの出力例を挙げます。
show ip pim interface
show ip pim interfaceコマンドはip pim {dense-mode | sparse-mode | sparse-dense-mode}コマンドを入力してPIMが有効になっているインタフェースを確認します。
R1#show ip pim interface Address Interface Ver/ Nbr Query DR DR Mode Count Intvl Prior 172.16.1.1 Ethernet0 v2/S 0 30 1 172.16.1.1 172.16.255.1 Loopback0 v2/S 0 30 1 172.16.255.1 172.16.1.125 Serial0 v2/S 1 30 1 0.0.0.0 172.16.100.1 Serial1 v2/S 2 30 1 172.16.100.3
show ip pim neighbor
show ip pim neighborコマンドは認識しているPIMネイバーを確認します。
Router#show ip pim neighbor PIM Neighbor Table Neighbor Interface Uptime/Expires Ver DR Address Priority 10.139.16.134 Serial0/0 00:01:46/00:01:28 v2 None 10.127.0.169 Serial1/2 00:01:05/00:01:40 v2 1 (BD) 10.127.0.241 Serial1/3 00:01:56/00:01:18 v2 1 (BD)
show ip rpf
show ip rpfコマンドは指定したアドレスに対するRPFインタフェースの情報を確認します。
R1#show ip rpf 172.16.8.1 RPF information for R1 (172.16.8.1) RPF interface: Ethernet0 RPF neighbor: R3 (172.16.6.1) RPF route/mask: 172.16.8.0/255.255.255.0 RPF type: unicast Doing distance-preferred lookups across tables
show ip pim rp mapping
show ip pim rp mappingコマンドは現在認識しているマルチキャストグループに対するRPアドレスを確認します。
Router#show ip pim rp mapping PIM Group-to-RP Mappings Group(s) 224.0.1.39/32 RP 10.127.0.7 (?), v1 Info source: local, via Auto-RP Uptime: 00:00:21, expires: never Group(s) 224.0.1.40/32 RP 10.127.0.7 (?), v1 Info source: local, via Auto-RP Uptime: 00:00:21, expires: never Group(s): 224.0.0.0/4, Static RP: 10.127.0.7 (?)
show ip mroute
show ip mrouteコマンドはマルチキャストルーティングテーブル(ディストリビューションツリー)を確認します。
R5#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.1.1.1), 00:01:35/00:02:59, RP 161.3.2.2, flags: S Incoming interface: Serial0/0.5, RPF nbr 161.3.55.2 Outgoing interface list: Serial0/0.5, 161.3.55.6, Forward/Sparse, 00:01:35/00:02:55 (161.3.2.2, 224.1.1.1), 00:00:31/00:02:58, flags: Incoming interface: Serial0/0.5, RPF nbr 161.3.55.2 Outgoing interface list: Serial0/0.5, 161.3.55.6, Forward/Sparse, 00:00:31/00:02:58
debug ip mrouting
debug ip mroutingコマンドはマルチキャストルーティングテーブルの追加・変更・削除のイベントをデバッグします。
*Mar 1 21:37:47.437: MRT(0): Create (*,224.1.1.1), RPF /0.0.0.0 *Mar 1 21:37:47.437: MRT(0): Create (192.168.1.2,224.1.1.1), RPF FastEthernet0/0/0.0.0.0 *Mar 1 21:38:06.929: MRT(0): Update (*,224.0.1.40), RPF /0.0.0.0 *Mar 1 21:38:06.929: MRT(0): Update FastEthernet0/0/224.0.1.40 in the olist of (*, 224.0.1.40), Forward state - MAC built
この出力例の前半部分は、(*,224.1.1.1)と(192.168.1.2,224.1.1.1)のエントリを作成したことを表しています。後半部分は、(*,224.0.1.40)のOILが更新されたことを表しています。
debug ip mpacket
debug ip mpacketコマンドはルータが受信したマルチキャストパケットの中身をデバッグします。
*Mar 1 21:40:49.271: IP(0): s=192.168.1.2 (FastEthernet0/0) d=224.1.1.1 id=1, prot=1, len=114(100), mroute olist null
debug ip pim
debug ip pimコマンドはPIMの動作をデバッグします。
*Mar 1 21:44:33.627: PIM(0): Add FastEthernet0/0/192.168.1.2 to (*, 224.1.1.1), Forward state, by PIM *G Join *Mar 1 21:44:33.631: PIM(0): Add FastEthernet0/0/192.168.1.2 to (*, 224.0.1.40), Forward state, by PIM *G Join *Mar 1 21:44:33.631: PIM(0): Changing DR for FastEthernet0/0, from 192.168.1.1 to 192.168.1.2
IPマルチキャストの仕組み
- ユニキャスト/ブロードキャスト/マルチキャストの振り返り
- IPマルチキャストの用途 ~同じデータの同報~
- マルチキャストグループへの参加 ~マルチキャストデータを受信できるようにする~
- マルチキャストアドレス ~レイヤ3とレイヤ2のマルチキャストアドレス~
- IGMPの概要 ~マルチキャストグループへの参加を通知~
- IGMPの仕組み
- IGMPの設定と確認コマンド
- IGMPスヌーピング
- マルチキャストルーティングの概要
- ディストリビューションツリー
- RPFチェック
- PIM-DMの仕組み
- PIM-DMの設定と確認コマンド
- PIM-SMの仕組み ~ディストリビューションツリー作成~
- PIM-SMの仕組み ~ディストリビューションツリー作成例~
- PIM-SMの設定と確認コマンド
- PIM-SM ダイナミックなRPの設定 ~Auto RP/BSRの概要~
- PIM-SM AutoRPの設定例
- PIM-SM BSRの設定例
- Bidirectional PIMの設定と確認コマンド
- PIM SSMの設定と確認コマンド
- PIM-SMの設定演習 [スタティックRP]
- PIM-SMの設定演習 [Auto RP]
- PIM-SMの設定演習 [BSR]
- PIM-SMの設定演習 [Bidirectional PIM]
- PIM-SMの設定演習 [SSM]
- PIM-SMの設定演習 [トラブルシュート]
- Anycast RP ~RPの負荷分散~
- Anycast RPの設定と確認コマンド
- Anycast RPの設定例
- マルチキャストパケットの転送経路の制御 ~ip mrouteコマンド~
- ip multicast rate-limitコマンド ~マルチキャストパケットのレート制限~
- ip multicast rate-limitコマンドの設定例
- IGMPレポートの制限
- PIM-SM 設定ミスの切り分けと修正 Part1
- PIM-SM 設定ミスの切り分けと修正 Part2
- PIM-SM 設定ミスの切り分けと修正 Part3