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を有効化します。有効にしたいインタフェースコンフィグレーションモードで次のコマンドを入力します。

インタフェースでPIM-SMを有効化

(config-if)#ip pim {sparse-mode|sparse-dense-mode}

RPアドレスを指定(スタティック)

マルチキャストルーティングを行うすべてのルータで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の設定例です。

図 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ネイバーへとりあえずフラッディングします。

図 Sparse-Denseモードの動作
図 Sparse-Denseモードの動作

図では、ファーストホップルータの場合ですが、他のルータでも同様です。

PIM-SMの確認コマンド

PIM-SMの設定を確認するためには、主に次のようなshow/debugコマンドを使います。

コマンド確認する内容
show ip pim interfacePIMが有効になっているインタフェースを確認する
show ip pim neighborPIMネイバーを確認する
show ip rpfRPFインタフェースの情報を確認する
show ip pim rp mappingRPの情報を確認する
show ip mrouteディストリビューションツリー(マルチキャストルーティングテーブル)を確認する
debug ip mroutingマルチキャストルーティングテーブルの追加・変更・削除をデバッグする
debug ip mpacket受信したマルチキャストパケットの中身をデバッグする
debug ip pimPIMの動作をデバッグする
表 主なPIM-SMの確認コマンド

以降で、これらの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 (?)
RPアドレスのところに(?)となっています。これは、IPアドレスに対するホスト名が不明であることを表しています。名前解決ができれば、この部分にホスト名の情報が入ります。

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マルチキャストの仕組み