コンフィグレーションガイド Vol.3


15.4.2 IPv4 PIM-SM

PIM-SMはルータ間で使用されるマルチキャストルーティングプロトコルで,隣接情報やマルチキャスト配送ツリーへの参加および刈り込み要求などをやり取りすることによって,受信したマルチキャストパケットの中継および廃棄処理を実施します。PIM-SMは最初にランデブーポイント経由でマルチキャストパケットを中継します。そのあと,既存のユニキャストルーティングを利用することによって,マルチキャストパケット送信元からの最短パスを使用して最短パス経由に切り替え,マルチキャストパケットを中継します。

本装置が送信するPIM-SMフレームのフォーマットおよび設定値はRFC2362に従います。

〈この項の構成〉

(1) PIM-SMメッセージサポート仕様

PIM-SMメッセージのサポート仕様を次の表に示します。

表15‒9 PIM-SMメッセージサポート仕様

メッセージタイプ

機能

PIM-Hello

PIM近隣ルータの検出

PIM-Join/Prune

マルチキャスト配送ツリーの参加および刈り込み

PIM-Assert

Forwarderの決定

PIM-Register

マルチキャストパケットをランデブーポイント宛てにIPカプセル化する。

PIM-Register-stop

Registerメッセージを抑止する。

PIM-Bootstrap

BSRを決定する。また,ランデブーポイントの情報を配信する。

PIM-Candidate-RP-Advertisement

ランデブーポイントがBSRに自ランデブーポイント情報を通知する。

(2) 動作

各PIM-SMルータはIGMPで学習したグループ情報をランデブーポイントに通知します。ランデブーポイントは各PIM-SMルータからグループ情報を受信することで各グループの存在を認識します。したがって,PIM-SMは最初にマルチキャストパケットをその送信元ネットワークからランデブーポイント経由ですべてのグループメンバーに配送するために,送信元を頂点としたランデブーポイント経由配送ツリーを形成します。次に送信元から各グループに対して最短パスで到達できるように,既存のユニキャストルーティングを使用して送信元からの最短パス配送ツリーを形成します。これによって送信元から各グループメンバーへのマルチキャストパケット中継は最短パスで行われます。PIM-SMの動作概要を次の図に示します。

図15‒7 PIM-SMの動作概要

[図データ]

(a) ランデブーポイントおよびブートストラップルータ(BSR)

ランデブーポイントルータおよびブートストラップルータ(BSR)はコンフィグレーションで設定します。本装置ではBSRはネットワーク(VPN)当たり最大16台とします。BSRはランデブーポイントの情報(IPアドレスなど)をすべてのマルチキャストインタフェースに通知します。この通知はホップバイホップですべてのマルチキャストルータに通知されます。ランデブーポイントルータおよびBSR以外のルータでは,ランデブーポイントルータおよびBSR方向のインタフェースにPIMを設定してください。ランデブーポイントおよびBSRの役割を次の図に示します。

図15‒8 ランデブーポイントおよびブートストラップルータ(BSR)の役割

[図データ]

この図で,BSR(PIM-SMルータC)はランデブーポイント情報をすべてのマルチキャストインタフェースに通知します。ランデブーポイント情報を受信したルータはランデブーポイントのIPアドレスを学習し,受信したインタフェース以外でマルチキャストルータが存在するすべてのインタフェースにランデブーポイント情報を通知します。

(b) ランデブーポイントへのグループ参加情報の通知

各ルータはIGMPで学習したグループ参加情報をランデブーポイントに通知します。ランデブーポイントはグループ情報を受信することでグループの存在をインタフェースごとに認識します。ランデブーポイントへのグループ参加情報の通知を次の図に示します。

図15‒9 ランデブーポイントへのグループ参加情報の通知

[図データ]

この図で,各ホストはIGMPでグループ1に参加します。PIM-SMルータDおよびPIM-SMルータEはグループ1情報を学習し,ランデブーポイント(PIM-SMルータC)にグループ1情報を通知します。ランデブーポイント(PIM-SMルータC)はグループ1情報を受信することによって,受信したインタフェースにグループ1が存在することを学習します。

(c) ランデブーポイント経由のマルチキャストパケット通信(カプセル化)

送信者S1がグループ1宛てのマルチキャストパケットを送信した場合,PIM-SMルータAはそのマルチキャストパケットをランデブーポイント(PIM-SMルータC)宛てにIPカプセル化(Registerパケット)して送信します(ランデブーポイントのIPアドレスは(a)で学習済み)。ランデブーポイント(PIM-SMルータC)はIPカプセル化したパケットを受信すると,デカプセル化してグループ1が存在するインタフェースにグループ1宛てのマルチキャストパケットを中継します(グループ1の存在は(b)で学習済み)。PIM-SMルータDおよびPIM-SMルータEは,グループ1宛てのマルチキャストパケットを受信すると,グループ1が存在するインタフェースにパケットを中継します(グループ1の存在は(b)のIGMPで学習済み)。ランデブーポイント経由のマルチキャストパケット通信(カプセル化)を次の図に示します。

図15‒10 ランデブーポイント経由のマルチキャストパケット通信(カプセル化)

[図データ]

(d) ランデブーポイント経由のマルチキャストパケット通信(デカプセル化)

ランデブーポイント(PIM-SMルータC)はIPカプセル化したパケットを受信すると,カプセル化を解除してグループ1が存在するインタフェースにグループ1宛てのマルチキャストパケットを中継します。

ランデブーポイントはこの処理後,送信元サーバへの最短経路方向にグループ1情報を通知します。グループ1情報を受信したPIM-SMルータBおよびPIM-SMルータAは受信したインタフェースにグループ1の存在を認識(学習)します。PIM-SMルータAは送信元サーバが送信したグループ1宛てのマルチキャストパケットをIPカプセル化しないで該当するインタフェースに中継します。グループ1宛てのマルチキャストパケットを受信したPIM-SMルータB,PIM-SMルータC,PIM-SMルータD,PIM-SMルータEはグループ1が存在するインタフェースに中継します。ランデブーポイント経由のマルチキャストパケット通信(デカプセル化)を次の図に示します。

図15‒11 ランデブーポイント経由のマルチキャストパケット通信(デカプセル化)

[図データ]

(e) 最短パスのマルチキャストパケット通信

PIM-SMルータDおよびPIM-SMルータEは,送信元サーバのグループ1宛てマルチキャストパケットを受信した場合((c)で説明),PIM-SMルータDおよびPIM-SMルータEは送信者S1に対して最短のパス(既存のユニキャストルーティング情報)の方向にグループ1情報を通知します。PIM-SMルータAは,PIM-SMルータDおよびPIM-SMルータEからグループ1情報を受信すると,受信したインタフェースにグループ1の存在を認識し,送信元サーバのグループ1宛てのマルチキャストパケットを受信すると該当するインタフェースに中継します。最短パスのマルチキャストパケット通信を次の図に示します。

図15‒12 最短パスのマルチキャストパケット通信

[図データ]

(f) マルチキャスト配送ツリーの刈り込み

PIM-SMルータDは,ホストがIGMPでグループ1から離脱した場合,グループ1情報を通知していたインタフェースに対してグループ1の刈り込み情報を通知します。PIM-SMルータAはグループ1の刈り込み通知を受信すると,受信したインタフェースに対してグループ1宛てのマルチキャストパケットの中継を中止します。マルチキャスト配送ツリーの刈り込みを次の図に示します。

図15‒13 マルチキャスト配送ツリーの刈り込み

[図データ]

(g) ランデブーポイントの選出

各グループのランデブーポイント候補が複数存在する場合は,RFC2362およびRFC4601に記載されている選出アルゴリズムに従って,ランデブーポイントを選出します。ランデブーポイントの選出アルゴリズムは,コンフィグレーションコマンドip pim rp-mapping-algorithmで指定します。なお,ランデブーポイントの選出アルゴリズムは,ネットワーク内で統一してください。

RFC2362およびRFC4601のランデブーポイントの選出条件,および各選出条件の優先順位を次の表に示します。

表15‒10 ランデブーポイントの選出条件

選出項目

選出条件

優先順位

RFC2362

RFC4601

ランデブーポイントが管理するグループアドレス

最長一致

1

ランデブーポイントの優先度※1

最小値

1

2

ランデブーポイントのハッシュ値※2

最大値

2

3

ランデブーポイントのIPアドレス

最大値

3

4

(凡例) −:条件なし

注※1

本装置をランデブーポイント候補とする場合,コンフィグレーションコマンドip pim rp-candidateで指定できます。

注※2

RFC2362およびRFC4601に記載されているハッシュ関数の計算値です。

(3) 近隣検出

PIM-SMルータはマルチキャストができるすべてのインタフェースに定期的にPIM-Helloメッセージを送信します。PIM-HelloメッセージはAll-PIM-RoutersIPマルチキャストグループアドレス宛て(224.0.0.13)に送信します。このメッセージを受信することで,近隣のPIMルータを動的に検出します。本装置はPIM-HelloメッセージのGeneration IDオプションをサポートしています(RFC4601およびdraft-ietf-pim-sm-bsr-07に準拠)。

Generation IDはマルチキャストインタフェースごとに持つ32ビットの乱数で,PIM-Helloメッセージ送信時にGeneration IDを付加して送信します。Generation IDはマルチキャストインタフェースがUp状態になるたびに再生成します。受信したPIM-HelloメッセージにGeneration IDオプションが付加されていればGeneration IDを記憶し,Generation IDの変化によって近隣装置のインタフェース障害を検出します。Generation IDの変化を検出すると,近隣装置情報の更新とPIM-Helloメッセージ,PIM BootstrapメッセージおよびPIM Join/Pruneメッセージを定期広告のタイミングを待たずに送信します。これによって,マルチキャスト経路情報を速やかに再学習できます。

(4) Forwarderの決定

同一LAN上に複数のPIM-SMルータを接続している場合,そのネットワークにマルチキャストパケットが重複してフォワードされる可能性があります。

PIM-SMルータは同一LAN上に複数のPIM-SMルータが存在し,二つ以上のルータがそのLANにマルチキャストパケットをフォワードする場合,PIM-Assertメッセージを使ってそのマルチキャスト経路のプリファレンスとメトリックを比較し,送信元ネットワークに対して最適な一つのルータをフォワーダとして選択します。

フォワーダとなった一つのルータだけが,そのLANでのマルチキャストパケットを中継することで,マルチキャストパケット中継の重複を抑止します。

PIM-Assertメッセージによるフォワーダを決定する流れを次に示します。

  1. プリファレンスを比較して,値が小さいルータがフォワーダになります。

  2. プリファレンスが等しい場合に,メトリックを比較して,値が小さいルータがフォワーダになります。

  3. メトリックが等しい場合に,各ルータのIPアドレスを比較して,IPアドレスが大きいルータがフォワーダになります。

本装置はマルチキャスト経路のプリファレンスを101,メトリックを1024固定でPIM-Assertメッセージを送信します。ただし,送信者と直接接続する場合は,プリファレンスを0,メトリックを0固定でPIM-Assertメッセージを送信します。

Forwarderの決定を次の図に示します。

図15‒14 Forwarderの決定

[図データ]

(5) DRの決定および動作

同一LAN上で複数のPIM-SMルータが存在する場合,そのLAN上での中継代表ルータ(DR)を決定します。そのインタフェース上で一番大きいプライマリIPアドレスのPIM-SMルータがDRとなります。受信ホストからのグループ参加情報はDRがランデブーポイント宛てにグループ参加情報の通知を行います。送信元サーバが送信したマルチキャストパケットはDRがIPカプセル化してランデブーポイントに送信します。DRの動作を次の図に示します。

図15‒15 DRの動作

[図データ]

PIM-SMルータAとPIM-SMルータBのIPアドレスを比較してPIM-SMルータBのIPアドレスが大きい場合,PIM-SMルータBがDRとなってランデブーポイントにグループ参加情報の通知を行います。PIM-SMルータDとPIM-SMルータEのIPアドレスを比較してPIM-SMルータEのIPアドレスが大きい場合,PIM-SMルータEがDRとなってランデブーポイントに対してIPカプセル化パケットを中継します。

(6) 冗長経路時の注意事項

次の図に示すような冗長構成の場合,マルチキャストパケットがフォワードされないので注意してください。冗長経路がある場合は,その経路上のすべてのルータでPIMの設定が必要になります。

図15‒16 冗長経路時の注意

[図データ]

(7) PIM-SMの付加機能

(a) ブートストラップメッセージ受信抑止機能

運用中のマルチキャストネットワークに新しいネットワークを構築する場合,BSR候補の設定を誤るとそのBSR候補がBSRとなって,接続したマルチキャストネットワーク全体のマルチキャスト通信が停止するおそれがあります。

本機能は,新規ネットワークと接続するインタフェースにコンフィグレーションコマンドip pim accept-bootstrapを設定することで,新規ネットワークでの誤った設定によって受信したPIM-Bootstrapメッセージを廃棄する機能です。この結果,運用中のマルチキャストネットワークを保護できます。本機能の動作を次の図に示します。

図15‒17 ブートストラップメッセージ受信抑止機能の動作

[図データ]

ネットワークの境界にある本装置では,新規ネットワーク上のBSR候補が送信するPIM-Bootstrapメッセージを廃棄します。これによって,新規ネットワークのPIM-Bootstrapメッセージが既存ネットワーク内へ中継されるのを防ぎます。一方,既存ネットワーク上のBSRが送信するPIM-Bootstrapメッセージは新設ネットワークに中継されます。

(8) PIM-SMタイマ仕様

PIM-SMが使用するタイマ値を次の表に示します。

表15‒11 PIM-SMタイマ

タイマ名

内容

デフォルト値(秒)

コンフィグレーションによる

設定範囲(秒)

備考

Hello-Period

Helloの送信周期

30

5〜3600

Hello-Holdtime

隣接関係の保持期間

105

3.5×Hello-Period

左記計算式より算出。

Assert-Timeout

Assertによる中継抑止期間

180

Join/Prune-Period

Join/Pruneの送信周期

60

30〜3600

最大で+50%の揺らぎが生じます。

Join/Prune-Holdtime

経路情報および中継先インタフェースの保持期間

210

3.5×Join/Prune-Period

左記計算式より算出。

Deletion-Delay-Time

Prune受信後のマルチキャスト中継先インタフェースの保持期間※1

1/3×Join/Prune-Holdtime

0〜300

※2

Data-Timeout

中継エントリの保持期間

210

0(無期限),

60〜43200

最大で+90秒の誤差が発生します。

Register-Supression-Timer

カプセル化送信の抑止期間

60

最大で±30秒の揺らぎが生じます。

Probe-Time

カプセル化送信の再開確認を送信する時間

5

5〜60

デフォルトの5秒ではRegister-Supression-Timerが満了する5秒前にカプセル化送信の再開確認(Null-Register)を一度だけ送信します。※3

C-RP-Adv-Period

ランデブーポイント候補の通知周期

60

RP-Holdtime

ランデブーポイント保持期間

150

2.5×C-RP-Adv-Period

左記計算式より算出。

Bootstrap-Period

BSRメッセージ送信周期

60

Bootstrap-Timeout

BSRメッセージの保持期間

130

2×Bootstrap-Period+10

左記計算式より算出。

BS_Rand_Override

BSR切り替え遅延

5〜23

Negative-Cache-Holdtime

(PIM-SM)

ネガティブキャッシュの保持期間

210

10〜3600

PIM-SSMの場合は3600秒の固定。

(凡例) −:該当しない

注※1

本タイマ値をコンフィグレーションで設定した場合は設定値を使用しますが,本中継先インタフェースに対して,最後にJoinを受信した時のPIM-Join/Pruneメッセージに含まれるJoin/Prune-Holdtimeを超えない値を中継先インタフェースの保持期間として設定します。

注※2

本タイマ値はコンフィグレーションで設定された値が優先されるため,RFC2362の規定とは異なった動作をします。ただし,コンフィグレーションで値を指定していない場合にはRFC2362の動作に準じます。

注※3

本タイマ値を10以上に設定すると,カプセル化送信の再開確認を5秒おきに複数回送信します。コンフィグレーションで値を指定していない場合には,一度だけ送信します。

(9) PIM-SM使用上の注意事項

PIM-SMを使用したネットワークを構成する場合には次の制限事項に注意してください。本装置はRFC2362(PIM-SM仕様)に準拠していますが,ソフトウェアの機能制限から一部RFCとの差分があります。RFCとの差分を次の表に示します。

表15‒12 RFCとの差分

項目

RFC

本装置

パケット

フォーマット

RFCにはエンコードグループアドレスおよびエンコードソースアドレスにマスク長を設定するフィールドがある。

本装置ではエンコードアドレスのマスク長は32固定。

RFCにはエンコードグループアドレスおよびエンコードソースアドレスにアドレスファミリとエンコードタイプを設定するフィールドがある。

本装置ではエンコードアドレスのアドレスファミリは1(IPv4),エンコードタイプは0固定。IPv4以外のPIM−SMと接続できない。

RFCにはPIMメッセージのヘッダにPIMバージョンを設定するフィールドがある。

本装置のPIMバージョンは2固定。

PIMバージョン1と接続できない。

Join/Pruneフラグメント

Join/PruneメッセージはネットワークのMTUを超えてもフラグメントすることができる。

本装置では送信するJoin/Pruneメッセージのサイズが大きい場合,8192オクテットに分割して送信する。さらに,分割して送信するJoin/PruneメッセージはネットワークのMTU長でIPフラグメントによって送信される。

PMBRとの接続

RFCではPMBR(PIM Border Router)との接続および(*,*,RP)エントリについての仕様が記述されている。

本装置ではPMBRとの接続をサポートしていない。また,(*,*,RP)エントリもサポートしていない。

最短経路への切り替え

最短経路への切り替えタイミングとしてデータレートを基に切り替える方法がある。

本装置ではlast-hop-routerにて最初のデータを受信したら,データレートをチェックしないで最短経路へ切り替える。

Join/Pruneメッセージの送受信

(S,G)RPT=1 Pruneメッセージだけを送受信する。

(S,G)RPT=1 Join/Pruneメッセージを送受信する。