概要

スタティックRPでのPIM-SMの設定を行います。ステップバイステップでディストリビューションツリーの作成の様子を詳細に解説しています。

ネットワーク構成

図 PIM-SMの基本設定 ネットワーク構成

設定条件

【スタティックRP】

  1. R1~R6でPIM-SMによるマルチキャストルーティングを行います。
  2. ホスト1を239.1.1.1のマルチキャストグループのソースとします。ホスト2、ホスト3は239.1.1.1のレシーバとします。R3のLoopback0のIPアドレスを239.1.1.1のRPとします。RPの設定はスタティックで行います。
  3. マルチキャストパケットのルーティングは、ソースからレシーバまでの最短経路になるようにします。ただし、不要なスイッチオーバーは起こらないようにしてください。また、ホスト2へのマルチキャストパケットはR4を経由してルーティングされるようにします。

初期設定

以下の内容は設定済みです。

  • ホスト名
  • IPアドレス
  • ユニキャストルーティング
    OSPF エリア0

設定と確認

Step1:PIM-SMの有効化

R1~R6でマルチキャストルーティングを有効化します。そして、マルチキャストパケットが転送される経路上のすべてのインタフェースでPIM-SMを有効化します。Loopback0のIPアドレスをRPアドレスとするために、Loopback0でもPIM-SMを有効化します。

R1

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode
!
interface Ethernet0/2
 ip pim sparse-mode

R2

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode
!
interface Ethernet0/3
 ip pim sparse-mode

R3

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode
!
interface Ethernet0/2
 ip pim sparse-mode
!
interface Ethernet0/3

R4

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode

R5

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode

R6

ip multicast-routing 
!
interface Loopback0
 ip pim sparse-mode
!
interface Ethernet0/0
 ip pim sparse-mode
!
interface Ethernet0/1
 ip pim sparse-mode

Step2:PIMネイバーの確認

R1~R6でPIM-SMを有効化したインタフェースとPIMネイバーを確認します。そのために、以下のコマンドを利用します。

  • show ip pim interface
  • show ip pim neighbor

R3では、次のような表示になります。

R3

R3#show ip pim interface 

Address          Interface                Ver/   Nbr    Query  DR     DR
                                          Mode   Count  Intvl  Prior
192.168.0.3      Loopback0                v2/S   0      30     1      192.168.0.3
192.168.13.3     Ethernet0/0              v2/S   1      30     1      192.168.13.3
192.168.34.3     Ethernet0/1              v2/S   1      30     1      192.168.34.4
192.168.35.3     Ethernet0/2              v2/S   1      30     1      192.168.35.5
192.168.23.3     Ethernet0/3              v2/S   1      30     1      192.168.23.3
R3#show ip pim neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
192.168.13.1      Ethernet0/0              00:08:45/00:01:21 v2    1 / S
192.168.34.4      Ethernet0/1              00:07:56/00:01:39 v2    1 / DR S
192.168.35.5      Ethernet0/2              00:07:50/00:01:15 v2    1 / DR S
192.168.23.2      Ethernet0/3              00:08:45/00:01:22 v2    1 / S

Step3:RPの設定

R1~R6で239.1.1.1のRPアドレスとしてR3のLoopback0のIPアドレス 192.168.0.3を指定します。

R1~R6共通

access-list 1 permit 239.1.1.1
!
ip pim rp-address 192.168.0.3 1

Step4:RPアドレス、RPFインタフェースの確認

R1~R6でマルチキャストグループ 239.1.1.1のRPアドレスとして192.168.0.3を認識していることを確認します。また、RPアドレス 192.168.0.3に対するRPFインタフェースを確認します。そのために、以下のコマンドを利用します。

  • show ip pim rp mapping
  • show access-lists
  • show ip rpf 192.168.0.3

R2では、次のような表示になります。

R2

R2#show ip pim rp mapping 
PIM Group-to-RP Mappings

Acl: 1, Static
    RP: 192.168.0.3 (?)
R2#show access-lists 
Standard IP access list 1
    10 permit 239.1.1.1
R2#show ip rpf 192.168.0.3
RPF information for ? (192.168.0.3)
  RPF interface: Ethernet0/3
  RPF neighbor: ? (192.168.23.3)
  RPF route/mask: 192.168.0.3/32
  RPF type: unicast (ospf 1)
  RPF recursion count: 0
  Doing distance-preferred lookups across tables

コマンド表示内の「?」は、IPアドレスに対するホスト名が解決できていないことを表しています。

次の図は、各ルータで239.1.1.1のRPアドレス 192.168.0.3に対するRPFインタフェースをまとめたものです。

図 192.168.0.3に対するRPFインタフェース
図 192.168.0.3に対するRPFインタフェース

RPFインタフェースは、ユニキャストルーティングテーブルから自動的に決定されています。239.1.1.1のShared Treeでは、RPFインタフェースがマルチキャストパケットの受信インタフェースとなります。

Step5:レシーバの設定

ホスト2、ホスト3を239.1.1.1のレシーバとして設定します。

ホスト2/ホスト3共通

interface Ethernet0/0
 ip igmp join-group 239.1.1.1

Step6:Shared Treeの確認

ホスト2、ホスト3を239.1.1.1のレシーバとして設定したことによって、RPまでのShared Treeが作成されます。R2~R6で239.1.1.1のShared Treeを確認します。そのために、次のコマンドを利用します。

  • show ip mroute 239.1.1.1

R2

R2#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:11:11/00:03:09, RP 192.168.0.3, flags: S
  Incoming interface: Ethernet0/3, RPF nbr 192.168.23.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:11:11/00:03:09

R3

R3#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:02:35/00:02:58, RP 192.168.0.3, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Ethernet0/3, Forward/Sparse, 00:02:30/00:02:58
    Ethernet0/2, Forward/Sparse, 00:02:35/00:02:53

R4

R4#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:03:19/00:02:31, RP 192.168.0.3, flags: SP
  Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
  Outgoing interface list: Null

R5

R5#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:04:24/00:02:31, RP 192.168.0.3, flags: SJC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.35.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:04:24/00:02:31

R6

R6#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:05:02/00:01:55, RP 192.168.0.3, flags: SJC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.26.2
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:05:02/00:01:55

次の図は、239.1.1.1のShared Treeについてまとめたものです。

図 239.1.1.1のShared Tree
図 239.1.1.1のShared Tree

239.1.1.1のShared Treeを確認すると、ホスト2へのマルチキャストパケットはR5を経由してルーティングされることがわかります。これは、192.168.45.0/24でPIMのDRがR5となっているからです。ホスト2からのIGMPレポートに対して、DRであるR5がPIM JoinメッセージをRPFネイバーであるR3へ送信しています。

図 DRの動作
図 DRの動作

R4を経由してホスト2へマルチキャストパケットをルーティングするためには、192.168.45.0/24上でR4をDRとしなければいけません。

Step7:DRの設定

R4を192.168.45.0/24上のDRとするために、Ethernet0/1でPIMのプライオリティの設定を行います。PIMのプライオリティはデフォルトが1で値が大きい方が優先されます。

R4

interface Ethernet0/1
 ip pim dr-priority 10

Step8:DRとShared Treeの確認

R4が192.168.45.0/24のDRとなり、R4を経由してマルチキャストパケットをルーティングするShared Treeであることを確認します。そのために、次のコマンドを利用します。

  • show ip pim interface ethernet0/1 detail
  • show ip mroute 239.1.1.1

R4

R4#show ip pim interface ethernet 0/1 detail 
Ethernet0/1 is up, line protocol is up
  Internet address is 192.168.45.4/24
  Multicast switching: fast
  Multicast packets in/out: 0/0
  Multicast TTL threshold: 0
  PIM: enabled
    PIM version: 2, mode: sparse
    PIM DR: 192.168.45.4 (this system)
    PIM neighbor count: 1
    PIM Hello/Query interval: 30 seconds
    PIM Hello packets in/out: 164/164
    PIM State-Refresh processing: enabled
    PIM State-Refresh origination: disabled
    PIM NBMA mode: disabled
    PIM ATM multipoint signalling: disabled
    PIM domain border: disabled
  Multicast Tagswitching: disabled
R4#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:39:12/00:02:41, RP 192.168.0.3, flags: SJC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:12:42/00:02:41

Step9:マルチキャストパケットの送信

ホスト1から239.1.1.1あてにPingを実行して、マルチキャストパケットを送信します。ここまでの設定が正しく行われていれば、ホスト2、ホスト3から応答が返ってきます。

ホスト1

H1#ping 239.1.1.1 repeat 3 

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:

Reply to request 0 from 192.168.45.100, 128 ms
Reply to request 0 from 192.168.6.100, 156 ms
Reply to request 1 from 192.168.45.100, 84 ms
Reply to request 1 from 192.168.6.100, 92 ms
Reply to request 1 from 192.168.45.100, 84 ms
Reply to request 2 from 192.168.45.100, 48 ms
Reply to request 2 from 192.168.6.100, 72 ms

Step10:ディストリビューションツリーの確認

ホスト1からマルチキャストパケットを送信したあと、R1~R6で239.1.1.1のSource TreeとShared Treeの状態を確認します。そのために、次のコマンドを利用します。

  • show ip route 239.1.1.1

なお、マルチキャストパケットの送信を止めてから約3分間でSource Treeは削除されます。Source Treeが削除されている場合は、再びStep9を実行してホスト1からマルチキャストパケットを送信してください。

R1

R1#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 00:06:02/stopped, RP 192.168.0.3, flags: SPF
  Incoming interface: Ethernet0/2, RPF nbr 192.168.13.3
  Outgoing interface list: Null

(192.168.1.100, 239.1.1.1), 00:01:51/00:03:27, flags: FT
  Incoming interface: Ethernet0/0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:01:50/00:02:37
    Ethernet0/2, Forward/Sparse, 00:01:50/00:02:40

R2

R2#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 01:06:01/00:03:29, RP 192.168.0.3, flags: S
  Incoming interface: Ethernet0/3, RPF nbr 192.168.23.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 01:06:01/00:03:29

(192.168.1.100, 239.1.1.1), 00:02:57/00:03:22, flags: T
  Incoming interface: Ethernet0/0, RPF nbr 192.168.12.1
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:02:57/00:03:29

R3

R3#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 01:06:54/00:03:27, RP 192.168.0.3, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:40:23/00:03:27
    Ethernet0/3, Forward/Sparse, 01:06:49/00:02:41

(192.168.1.100, 239.1.1.1), 00:03:45/00:03:28, flags: T
  Incoming interface: Ethernet0/0, RPF nbr 192.168.13.1
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:03:45/00:03:27

R4

R4#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 01:07:40/stopped, RP 192.168.0.3, flags: SJC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:41:10/00:02:20

(192.168.1.100, 239.1.1.1), 00:04:31/00:02:50, flags: JT
  Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:04:31/00:02:20

R5

R5#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 01:08:17/00:02:43, RP 192.168.0.3, flags: SP
  Incoming interface: Ethernet0/0, RPF nbr 192.168.35.3
  Outgoing interface list: Null

R6

R6#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 01:08:47/stopped, RP 192.168.0.3, flags: SJC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.26.2
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 01:08:47/00:02:11

(192.168.1.100, 239.1.1.1), 00:05:43/00:02:30, flags: JT
  Incoming interface: Ethernet0/0, RPF nbr 192.168.26.2
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:05:43/00:02:11

スイッチオーバーによってR5を除くすべてのルータでSource Treeの(192.168.1.100,239.1.1.1)エントリが作成されていることがわかります。次の図は、Source Tree (192.168.1.100,239.1.1.1)のIncoming InterfaceとOutgoing Interfaceについてまとめています。

図 Source Tree (192.168.1.100,239.1.1.1)
図 Source Tree (192.168.1.100,239.1.1.1)

Step11:スイッチオーバーの無効化

スイッチオーバーによってホスト3へのマルチキャストパケットは最短経路でルーティングされるようになっています。しかし、ホスト2にはスイッチオーバーしてもしなくてもマルチキャストパケットの転送経路は変わりません。R4に必要のないSource Treeが作成されないように、R4でスイッチオーバーを無効化します。また、R4がダウンした場合を考慮して、R5でもスイッチオーバーを無効化します。

R4/R5

ip pim spt-threshold infinity group-list 1

Step12:スイッチオーバーの無効化の確認

ホスト1から239.1.1.1あてにマルチキャストパケットを送信します。その後、R4でディストリビューションツリーを確認します。

ホスト1

H1#ping 239.1.1.1 repeat 3  

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:

Reply to request 0 from 192.168.45.100, 84 ms
Reply to request 0 from 192.168.6.100, 120 ms
Reply to request 1 from 192.168.45.100, 88 ms
Reply to request 1 from 192.168.6.100, 100 ms
Reply to request 2 from 192.168.45.100, 16 ms
Reply to request 2 from 192.168.6.100, 44 ms

R4

R4#show ip mroute 239.1.1.1
IP Multicast Routing Table
~省略~

(*, 239.1.1.1), 02:01:32/00:02:30, RP 192.168.0.3, flags: SC
  Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 01:35:02/00:02:25

動画解説


有料メールマガジン「ネットワークのおべんきょしませんか? PREMIUM」の2015年3月のバックナンバーを購入していただくと、スタティックRP以外のすべての設定の解説を行っている高解像度のMP4ファイルとPDFファイル、GNS3プロジェクトファイルをダウンロードできます。

IPマルチキャストの仕組み