PIM / Protocol Independent Multicast Routing
■ PIM。Protocol Independent Multicast Routing。 ピムと読む。 IPマルチキャスト用のルーティングプロトコル。 特定のユニキャスト用ルーティングプロトコルに依存せずに、 マルチキャスト配信ツリーの構築と維持を行なうことができる。 RFC2117、RFC2362で定義されている。 PIMでは、PIM-DMとPIM-SMの2つのモードを定義している。 すなわち、密(Dense)モードと疎(Sparse)モードである。 両者はお互いに相関する制御メッセージを持つが、 実際には、2つのまったく異なるプロトコルと考えて良い。 しかしルータには、PIM-DMとPIM-DMが単一のパッケージとして実装される。 このため実装が非常に複雑になっている。 またユニキャストルーティングから独立しているため、 そのプロトコルとの相互運用性にも配慮する必要がある。 それでもPIM(PIM-SM)は、 他のプロトコルにないスケーラビリティを実現しているので、 今後は主流になっていくと思われる。 ■ PIM-DM。PIM, Dense Mode。 PIM-DM 密(Dense)モードは、 規模の小さい地域に受信者が密集している場合を想定。 ネットワーク帯域幅の制約を気にする必要のない閉じた領域で使用する。 たとえば、イーサネットで運用している企業内LAN等が適する。 PIM-DMは、送信元ベースで配信ツリーを構成する ソースベースドツリー(Source-Based Tree)の考え方に基づいている。 インターネットワーク上の どのホストがIPマルチキャストのルートになっても良く、 そのホストからマルチキャストが始まる。 PIM-DMが配信ツリーを構築する場合には、 基本的に全ての経路にフラッディングしておいて、 不必要な部分だけを後からプルーニング(枝狩り)する方法を採る。 この実現のために、リバースパスマルチキャスト (RPM:Reverse-Path Multicasting)というアルゴリズムを使用する。 すなわち、送信元ホストが最初のマルチキャストを発すると、 インターネットワーク上の全てのルータは、 送信元インターフェース以外のすべてのインターフェースに マルチキャストをフラッドさせる。 しかしもし、自分の配下にグループメンバーが居ない場合には、 ルータは最初のマルチキャストを受け取った時点で、 親リンクにPruneメッセージを送る。 子ルータからPruneメッセージを受信したルータは、 以降はこのインターフェースにマルチキャストを転送するのを止める。 これにより、PIM-DM配信ツリーは、 不要な枝を削除することができる。 PIM-DMでは、このように、 明示的な配信拒否(Pruneメッセージ)を受け取らない限り、 下流にマルチキャストグループメンバーが居ると仮定して、 どんどんマルチキャストトラフィックを転送していく。 この配信方法は、非常に強力であるが、 一方でマルチキャストを受信しない枝上でも、一定の帯域幅を使用する。 このため、低速度の技術で接続されているホストがある場合は、 スケーラビリティ上の制約が大きくなってくる。 ■ PIM-SM。PIM, Sparse Mode。 PIM-SM 疎(Sparse)モードは、 広い地域で、受信者がパラパラと離散している場合を想定している。 一部または全部に帯域幅の制約があり、余裕がない場合に使用する。 たとえば、インターネットワーク上でのマルチキャストの配信に使う。 PIM-SMでは、実際のコンテンツの送信元ホストとは別に、 マルチキャスト配信の基点となるルータ(ランデブーポイント)を選び、 これを基点として配信ツリーを構築するという コアベースドツリー(CBR:Core-Based Tree)モデルを採っている。 ランデブーポイント(RP)には、PIM対応ルータの中から、 IPマルチキャストのルートになる強いコンピュータが選ばれる。 RPは、送信者と受信者が行き当たるポイントとなる。 また、RPを基点としたツリーを、RPツリーと呼ぶ。 送信元は、マルチキャストの送信を始める前に、RPに向けて、 ユニキャストでカプセル化したマルチキャストパケットを送る。 するとRPは、送信元に対して、Joinメッセージを返す。 こうして送信元とRPの間の全ルータがステータス情報を作成すると、 はじめて送信元は、マルチキャストパケットを送り始める。 一方、受信者はRPへ明示的にもらいに行く必要がある。 自身の配下にマルチキャストグループメンバーを抱えるルータは、 RPに対してJoinメッセージを送出して、 明示的にこのPIM配信ツリーに参加しなければならない。 このメッセージは、ホップを繰り返して、グループのRPに到達する。 PIMツリーは、受信側が明示的に配信を要求しない限り、 トラフィックをブロックして、それよりも下流には転送しない。 このため、グループメンバが存在しない枝ネットワークに、 無用のトラフィックがフラッディングすることを避けることができる。 このように、RPツリーはグループメンバーへの接続性を提供するが、 インターネットワーク上での配信経路の最適化は、行なっていない。 このことには、注意する必要がある。 そのためPIM-SMでは、シェアードルートという機能を備えている。 すなわち、受信者近傍のPIM-SMルータは、 RPツリー以外にバイパスできる近道がある場合には、 自動的にそちらの経路を選択して使うことができる。 もしもこの最短経路を採用する場合には、 最短経路側にJoinを投げるとともに、RPツリー側にpruneを投げる。 PIM-SMはこのように、動的に最適な経路を選んでいく機能を持つ。 この機能により、RPツリーに過度にトラフィックが集中したり、 RPがボトルネックになったりする状態を緩和することができる。 ■ 参照URL http://www.soi.wide.ad.jp/class/20000001/slides/06/ 2003/07/09 pm