目次
概要
以下の具体的なネットワーク構成で、PIM-SMの共有ツリーと送信元ツリーを作成する様子について解説します。
PC1が239.1.1.1のレシーバで、R2が239.1.1.1に対するRPです。R1~R4でR2(10.1.0.9)が239.1.1.1のRPであることを認識しています。ここでは、先にPC1がレシーバとして設定されていて、その後、マルチキャストソースからパケットが送信される場合を考えます。
共有ツリーの作成
PC1がマルチキャストグループ239.1.1.1に参加することをトリガーととして、ラストホップルータのR3からRPであるR2までの共有ツリーを作成します。共有ツリーを作成する流れは、以下のようになります。
レシーバがIGMPレポートを送信
PC1が239.1.1.1のグループに参加すると、IGMPレポートが送信されます。これを受信したラストホップルータであるR3はIGMPテーブルに登録するとともに、239.1.1.1に対応する(*,239.1.1.1)エントリを作成します。作成される
(*,239.1.1.1)エントリは次のようになります。
(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: SC Incoming interface: Serial0/1, RPF nbr 10.1.0.9 Outgoing interface list: FastEthernet0/0, Forward/Sparse, 00:00:05/00:02:54
IIFはRPの方向のSerial0/1で、OILにはIGMPレポートを受信したインタフェースであるFa0/0が載せられています。
ラストホップルータからPIM(*,G)Joinを送信
R3はRPまでの共有ツリーを作るためにIIFであるSerial0/1からRPF nbrに対してPIM(*,239.1.1.1)Joinを送信します。
RPまでPIM(*,G)Joinを送信
R3からのPIM(*,239.1.1.1)JoinはR2に届きます。R2は、(*,239.1.1.1)エントリを作成します。このときのR2の(*,239.1.1.1)は次のようになります。
送信元ツリーの作成
マルチキャストソースから239.1.1.1のグループ宛てのマルチキャストパケットを送信したことをトリガーとして、ファーストホップルータのR1からRPであるR2までの送信元ツリーが作成されます。送信元ツリー作成の流れは以下のようになります。
マルチキャストソースがマルチキャストパケットを送信
マルチキャストソースが送信したマルチキャストパケットをファーストホップルータR1が受信します。このとき、ファーストホップルータで(10.1.1.100,239.1.1.1)エントリを作成します。R1での(10.1.1.100,239.1.1.1)エントリは、次のようになります。
(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: SP Incoming interface: Serial0/1, RPF nbr 10.1. 0.6, Outgoing interface list:Null (10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags: FPT Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Outgoing interface list: Null
(10.1.1.100,239.1.1.1)エントリのテンプレートとして、同時に(*,239.1.1.1)エントリも作成されます。(10.1.1.100,239.1.1.1)エントリのIIFはマルチキャストパケットを受信したFa0/0でOILがNullです。OILがNullであるためR1ではレシーバが存在するかどうか認識していないので、マルチキャストパケットのルーティングを行いません。
RPへPIM Registerメッセージを送信
ファーストホップルータのR1は受信したマルチキャストパケットをPIM Registerメッセージにカプセル化してRPへユニキャストで送信します。
RPで(S,G)エントリの作成
RPはレジスターメッセージを受け取ると、カプセル化されているマルチキャストパケットに対する(10.1.1.100,239.1.1.1)エントリを作成します。そして、PIMのカプセル化を解除して、マルチキャストパケットをルーティングします。RPの(10.1.1.100,239.1.1.1)エントリは次のようになります。
(*, 239.1.1.1), 00:00:05/00:02:54, RP 10.1.0.9, flags: S Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Serial0/1, Forward/Sparse, 00:00:05/00:02:54 (10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags: Incoming interface: Serial0/0, RPF nbr 10.1.0.5, Outgoing interface list: Serial0/1, Forward/Sparse, 00:00:05/00:02:54
RPからソースの方向へPIM(S,G)Joinを送信
RPからマルチキャストソースの方向(Serial0/0)に向かって送信元ツリーを作成するために、PIM(10.1.1.100,239.1.1.1)Joinを送信します。
ファーストホップルータまでPIM(S,G)Joinを送信
R1がPIM(10.1.1.100,239.1.1.1)JoinをSerial0/1で受信すると、OILにSerial0/1を追加します。
(10.1.1.100, 239.1.1.1), 00:00:03/00:02:56, flags: FT Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Outgoing interface list: Serial0/1
OILにSerial0/1が追加されたので、R1はSerial0/1へマルチキャストパケットをルーティングできるようになります。これで、マルチキャストソースからRPまでの送信元ツリーの完成です。
PIM Register-stopの送信
R1は受信したマルチキャストパケットをPIM Registerにカプセル化してRPに送信しつつ、同時にマルチキャストパケットのままでSerial0/1へルーティングします。
RPまで送信元ツリーが完成してマルチキャストパケットのままでルーティングされるようになれば、PIM Registerは不要です。R2からPIM Register-stopメッセージがR1へ送信されてRegisterメッセージをとめます。
最終的なディストリビューションツリー
以上のように、PIM-SMではRPを中心として、送信元ツリーと共有ツリーを作成し、RPを経由したマルチキャストパケットのルーティングを行います。全体的なマルチキャストパケットの流れとツリーについてまとめると次の図のようになります。
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