目次
PIM-DMの概要
PIM-DMはDenseモードのマルチキャストルーティングプロトコルです。マルチキャストレシーバがひとつ拠点のLAN内に密集していることを想定しています。PIM-DMのマルチキャストパケットの転送は、Flood & Pruneモデルと呼ばれています。
まず、マルチキャストレシーバが存在するかもしれないインタフェース全体にマルチキャストパケットをフラッディングします。その後、不要なインタフェースからマルチキャストパケットの転送をとめる(Prune)という仕組みです。厳密にマルチキャストレシーバの存在を把握しないで、シンプルなマルチキャストパケットのルーティングを可能にしています。
こうしたマルチキャストルーティングを行うために、PIM-DMはディストリビューションツリーとして、送信元ツリーを作成します。送信元ツリーの作成は、マルチキャストパケットを受信したタイミングで行っていきます。
PIM-DMを使えば、手軽にマルチキャストルーティングを行うことができます。しかし、LAN内であっても初期のフラッディングで他のアプリケーションの通信に悪影響を及ぼすことが考えられます。そのため、あまりPIM-DMの利用は推奨されていません。一般的にはマルチキャストルーティングプロトコルとして、PIM-SMを利用します。
PIM-DMによるマルチキャストルーティングの仕組み
次のネットワーク構成を基にして、PIM-DMによるマルチキャストルーティングの仕組みを解説します。
このネットワーク構成で、あるマルチキャストグループ(G)のソースとレシーバが存在する状態でのPIM-DMの動作を見ていきます。
マルチキャストソースがマルチキャストパケットを送信すると、ファーストホップルータはそのパケットを受信します。この場合は、R1がファーストホップルータです。パケットを受信したタイミングでPIM-DMによりそのマルチキャストパケットに対応する(S,G)で表現される送信元ツリーを作成します。
このとき(S,G)エントリのOILとして、次の3つの種類のインタフェースが登録されます。
- PIM-DMネイバーが存在するインタフェース
- レシーバが存在するインタフェース(IGMPメンバーシップレポートを受信)
- ip igmp join-groupコマンド、ip igmp static-groupコマンドが設定されているインタフェース
2点目、3点目はレシーバの存在がはっきりわかりますが、1点目のネイバーが存在するインタフェースというだけでは、その先にレシーバが存在するかどうかがはっきりとはわかりません。ネイバーが存在するインタフェースはその先にマルチキャストレシーバがいる「かもしれない」インタフェースです。
また、(S,G)エントリのIIFにはソースのIPアドレスに対するRPFインタフェースが載っています。そのRPFインタフェースを利用してRFPチェックが成功すれば、OILのインタフェースすべてにマルチキャストパケットをフラッディングします。なお、原則としてOILからRPFインタフェースは取り除かれます。
各マルチキャストルータでマルチキャストパケットを受信すると、同様に送信元配布ツリーを作成してマルチキャストパケットをフラッディングします。
すると、レシーバが存在しないインタフェースや、RPFチェックが失敗するインタフェースにもマルチキャストパケットがフラッディングされていくことがあります。マルチキャストパケットをフラッディングする必要のないインタフェースには、PIMのPruneメッセージによって、フラッディングをとめます。
上記の図の赤い丸印で囲っているところには、マルチキャストをフラッディングする必要がありません。次の図のようにPIM Pruneメッセージでフラッディングをとめます。
Pruneメッセージを受信したインタフェースからはマルチキャストパケットのフラッディングを行わないようになります。ですが、フラッディングをとめる時間はデフォルトで180秒間です。180秒後には、再びフラッディングを行い、不必要なインタフェースにはPruneメッセージを送信します。
最終的なマルチキャストパケットがルーティングされていく経路と送信元ツリーを考えると次の図のようになります。
以上のように、PIM-DMでは、マルチキャストパケットをフラッディングしてルーティングしていくという仕組みです。
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