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


26.4.2 IPv6 PIM-SM

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

〈この項の構成〉

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

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

表26‒10 PIM-SMメッセージのサポート仕様

メッセージタイプ

機能

PIM Hello

隣接するマルチキャストルータを検出する。

PIM Join/Prune

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

PIM Assert

Forwarderを決定する。

PIM Register

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

PIM Register-Stop

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

PIM Bootstrap

ブートストラップルータを決定する。また,ランデブーポイントの情報を送信する。

PIM Candidate-RP-Advertisement

ランデブーポイントがブートストラップルータに自ランデブーポイント情報を通知する。

(2) 動作

PIM-SMの動作の流れを次に示します。

  1. 各PIM-SMルータはMLDで学習したマルチキャストグループ情報をランデブーポイントに通知します。

  2. ランデブーポイントは各PIM-SMルータからマルチキャストグループ情報を受信すると,各マルチキャストグループの存在を認識します。

  3. PIM-SMは最初にマルチキャストパケットを送信元ネットワークからランデブーポイント経由ですべてのグループメンバに配送するために,送信者を頂点としたランデブーポイント経由配送ツリーを形成します。

  4. 送信者から各マルチキャストグループに対して最短パスで到達できるように,既存のユニキャストルーティングを使用して送信者からの最短パス配送ツリーを形成します。

  5. 送信者から各グループメンバへ最短パスでマルチキャストパケットを中継します。

PIM-SMの動作概要を次の図に示します。

図26‒6 PIM-SMの動作概要

[図データ]

  1. マルチキャストグループ参加,およびマルチキャストグループ情報の通知

  2. ランデブーポイント経由でマルチキャストパケットの送信

  3. 最短パスの決定

  4. 最短パスでのマルチキャストパケットの送信

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

ランデブーポイントルータおよびブートストラップルータはコンフィグレーションで設定します。IPv4のPIM-SMとIPv6のPIM-SMとで,ランデブーポイントおよびブートストラップルータを設定するルータを別にすることもできます。

ブートストラップルータはランデブーポイントの情報(IPv6アドレスなど)をすべてのマルチキャストインタフェースに通知します。このとき,ホップバイホップで全マルチキャストルータリンクローカル・グループアドレス(ff02::d)宛てに通知されます。ランデブーポイントおよびブートストラップルータの役割を次の図に示します。

図26‒7 ランデブーポイントおよびブートストラップルータの役割

[図データ]

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

ブートストラップルータおよびランデブーポイントのアドレスは,ブートストラップルータおよびランデブーポイントで設定したループバックインタフェースのアドレスとなります。ブートストラップルータ候補とランデブーポイント候補には,同じIPv6アドレスを指定してください。異なるIPv6アドレスを指定した場合,ブートストラップルータ候補の設定が無効になります。

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

各ルータはMLDで学習したマルチキャストグループ参加情報をランデブーポイントに通知します。この通知のときに使用される送信元および宛先IPv6アドレスは,それぞれ該当するルータのアドレス(コンフィグレーションコマンドno system-source-addressを設定していないループバックインタフェースに設定したアドレス)になります。ランデブーポイントはマルチキャストグループ情報を受信すると,マルチキャストグループの存在をインタフェースごとに認識します。ランデブーポイントへのマルチキャストグループ参加情報の通知を次の図に示します。

図26‒8 ランデブーポイントへのマルチキャストグループ参加情報の通知

[図データ]

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

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

送信者S1がマルチキャストグループ1宛てのマルチキャストパケットを送信した場合,PIM-SMルータAはそのマルチキャストパケットをランデブーポイント(PIM-SMルータC)宛てにIPカプセル化(PIM Registerメッセージ)して送信します。

ランデブーポイント(PIM-SMルータC)はIPカプセル化したマルチキャストパケットを受信すると,IPデカプセル化してマルチキャストグループ1が存在するインタフェースにマルチキャストグループ1宛てのマルチキャストパケットを中継します(マルチキャストグループ1の存在は「(b) ランデブーポイントへのマルチキャストグループ参加情報の通知」で学習済み)。PIM-SMルータDおよびPIM-SMルータEは,マルチキャストグループ1宛てのマルチキャストパケットを受信すると,マルチキャストグループ1が存在するインタフェースにマルチキャストパケットを中継します(マルチキャストグループ1の存在は「(b) ランデブーポイントへのマルチキャストグループ参加情報の通知」のMLDで学習済み)。ランデブーポイント経由のマルチキャストパケット通信(IPカプセル化)を次の図に示します。

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

[図データ]

なお,この通知に使用される送信元IPv6アドレスは,次に示す順で選択されます。

  1. ランデブーポイント候補として指定したループバックインタフェースのIPv6アドレス

  2. ブートストラップルータ候補として指定したループバックインタフェースのIPv6アドレス

  3. コンフィグレーションコマンドno system-source-addressが設定されていないループバックインタフェースに設定したIPv6アドレス

  4. コンフィグレーションコマンドno system-source-addressが設定されている,最小のループバックインタフェースIDを持つループバックインタフェースに設定したIPv6アドレス

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

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

ランデブーポイントはこの処理のあと,既存のユニキャストルーティング情報を基に決定された送信者への最短パス方向にマルチキャストグループ1情報を通知します。この通知のときに使用される宛先アドレスは全マルチキャストルータリンクローカル・グループアドレス(ff02::d)です。

マルチキャストグループ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が存在するインタフェースに中継します。ランデブーポイント経由のマルチキャストパケット通信(IPデカプセル化)を次の図に示します。

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

[図データ]

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

PIM-SMルータDおよびPIM-SMルータEが送信者からのマルチキャストグループ1宛てマルチキャストパケットを受信した場合(「(d) ランデブーポイント経由のマルチキャストパケット通信(IPデカプセル化)」で説明),PIM-SMルータDおよびPIM-SMルータEは送信者に対して最短パス(既存のユニキャストルーティング情報)の方向にマルチキャストグループ1情報を通知します。この通知のときに使用される宛先アドレスは全マルチキャストルータリンクローカル・グループアドレス(ff02::d)です。

PIM-SMルータAは,PIM-SMルータDおよびPIM-SMルータEからマルチキャストグループ1情報を受信すると,受信したインタフェースにマルチキャストグループ1の存在を認識し,送信者のマルチキャストグループ1宛てのマルチキャストパケットを受信すると該当するインタフェースに中継します。最短パスのマルチキャストパケット通信を次の図に示します。

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

[図データ]

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

PIM-SMルータDは,受信者がMLDでマルチキャストグループ1から離脱した場合,マルチキャストグループ1情報を通知していたインタフェースに対してマルチキャストグループ1の刈り込み情報を通知します。この通知のときに使用される宛先アドレスは全マルチキャストルータリンクローカル・グループアドレス(ff02::d)です。

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

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

[図データ]

(3) 近隣検出

PIM-SMルータはPIM-SMおよびPIM-SSMを有効にしたすべてのインタフェースに定期的にPIM Helloメッセージを送信します。PIM Helloメッセージは全マルチキャストルータリンクローカル・グループアドレス宛て(ff02::d)に送信します。このメッセージを受信することで,近隣のマルチキャストルータを動的に検出します。本装置はPIM HelloメッセージのGeneration IDオプションをサポートしています。

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メッセージを定期広告のタイミングを待たないで送信します。これによって,マルチキャスト経路情報を速やかに再学習できます。

本装置から送信されるPIM Helloメッセージには,送信元インタフェースに設定されているリンクローカルアドレス以外のアドレスリストがPIM Helloメッセージのオプションデータ(タイプ24)として含まれています。このオプションデータを受信すると,本装置は隣接するマルチキャストルータのリンクローカルアドレス以外のアドレスを認識できます。

本装置からマルチキャスト送信者へ到達するためのネクストホップがリンクローカルアドレス以外の場合にも,このアドレスリストを参照することで本装置は送信者へ到達するためのマルチキャストルータを検出できます。隣接するマルチキャストルータのアドレス受信例を次の図に示します。

図26‒13 PIM Helloメッセージによる隣接マルチキャストルータのアドレス受信

[図データ]

(4) Forwarderの決定

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

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

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

PIM AssertメッセージによってForwarderを決定する流れを次に示します。

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

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

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

本装置はマルチキャスト経路のプリファレンス値に101,メトリック値に1024を設定して,PIM Assertメッセージを送信します。送信者が本装置と直接接続する場合は,プリファレンス値およびメトリック値に0を設定して送信します。また,コンフィグレーションコマンドipv6 pim assert-preferenceおよびipv6 pim assert-metricを設定することで,任意の値またはユニキャストルーティングプロトコルから該当するマルチキャスト経路の送信元アドレスへのディスタンス値とメトリック値を取得して,PIM Assertメッセージのプリファレンス値とメトリック値として送信することもできます。

ユニキャストルーティングプロトコルがOSPFv3の場合,OSPFv3の経路の学習元によって取得するメトリック値が異なります。OSPFv3の経路の学習元ごとに取得するメトリック値を次の表に示します。

表26‒11 OSPFv3の経路の学習元ごとに取得するメトリック値

経路の学習元

取得するメトリック値

備考

AS外経路(TYPE1)

メトリック値+Cost値

第1メトリック値

AS外経路(TYPE2)

メトリック値

エリア内経路,エリア間経路

Cost値

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

図26‒14 Forwarderの決定

[図データ]

PIM-SMルータAのIPv6アドレスIaとPIM-SMルータBのIPv6アドレスIbを比較します。その結果,値の大きいPIM-SMルータBがForwarderになります。

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

同一LAN上で複数のPIM-SMルータが存在する場合,PIM-SMルータ間の制御パケット通信によって中継代表ルータ(DR:Designated Router)を決定します。このとき,同一LAN上でいちばん大きいDR-PriorityのPIM-SMルータがDRとなります。DR-Priorityが等しい場合は,いちばん大きいIPv6リンクローカルアドレスのPIM-SMルータがDRとなります。また,同一LAN上にDR-Priorityオプション未サポートの装置が1台でも存在する場合は,いちばん大きいIPv6リンクローカルアドレスのPIM-SMルータがDRとなります。

受信者からのマルチキャストグループ参加情報はDRがランデブーポイント宛てに通知します。送信者が送信したマルチキャストパケットはDRがIPカプセル化してランデブーポイントに送信します。DRの動作を次の図に示します。

図26‒15 DRの動作

[図データ]

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

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

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

図26‒16 冗長経路時の注意事項

[図データ]

(7) IPv6 PIM-SMタイマ仕様

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

表26‒12 PIM-SMタイマ値

タイマ名

内容

デフォルト値

本装置の設定範囲

備考

Hello_Period※1

PIM Helloメッセージの送信周期

30(秒)

5〜3600(秒)

Hello_Holdtime※2

隣接関係の保持期間

105(秒)

3.5×Hello_Period

(秒)

Triggered_Hello_Delay

PIM Helloメッセージの一斉送信を抑止するための調整時間

0〜5(秒)

起動時の最初のPIM Helloメッセージ送信,または近隣ルータの再起動検出によるPIM Helloメッセージ送信時の遅延時間(0〜5秒の間でランダムに決定します)

Assert_Time

PIM Assertメッセージによる中継抑止期間

180(秒)

Assert_Override_Interval

Assert制御によるマルチキャスト中継の抑止を更新するための調整時間

3(秒)

Assert敗者がマルチキャスト中継を再開する前(Assert_Time)にAssert勝者がPIM Assertメッセージを送信して,Assert敗者の中継抑止時間を更新するための調整時間

t_periodic※1

PIM Join/Pruneメッセージの送信周期

60(秒)

30〜3600(秒)

最大で+50%の揺らぎが発生します

J/P_HoldTime※2

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

210(秒)

3.5×t_periodic

(秒)

Deletion-Delay-Time※1※3※4

PIM Pruneメッセージ受信後のマルチキャスト中継先インタフェースの保持期間

1/3×J/P_HoldTime

(秒)

0〜300(秒)

t_suppressed

PIM Join/Pruneメッセージの集中を回避するための送信抑止時間

66〜84(秒)

J/P_Override_Interval

PIM Pruneメッセージの受信からマルチキャスト中継停止までの時間

3(秒)

1000〜98302(ミリ秒)

(Effective_Propagation_Delay+Effective_Override_Interval)

マルチキャスト中継停止までの間にマルチキャスト中継を継続したい下流ルータがPIM Joinメッセージを送信すると,マルチキャスト中継は維持されます

Override_Interval※1

Effective_Override_Intervalを決定するための本装置の設定時間

2500(ミリ秒)

500〜65535(ミリ秒)

Effective_Override_Interval

t_overrideを算出するためのLAN上の決定時間

2500(ミリ秒)

LAN上の全近隣ルータのOverride_Intervalの最大値

t_override

PIM Join/Pruneメッセージの一斉送信を抑止するための調整時間

0〜2500(ミリ秒)

0〜65535(ミリ秒)

調整時間は0〜Effective_Override_Intervalの間でランダムに決定します

Propagation_Delay※1

Effective_Propagation_Delayを決定するための本装置の設定時間

500(ミリ秒)

500〜32767(ミリ秒)

Effective_Propagation_Delay

LAN上で決定したPIM Join/Pruneメッセージが行き渡るまでの遅延時間

500(ミリ秒)

LAN上の全近隣ルータのPropagation_Delayの最大値

Keepalive Timer※1

マルチキャスト中継エントリの保持期間

210(秒)

0(無期限),

60〜43200(秒)

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

Register_Supression_Time

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

60(秒)

最大で±30秒の揺らぎが発生します

Register_Probe_Time※1※5※6

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

5(秒)

5〜60(秒)

デフォルトの5秒ではRegister_Supression_Timeが満了する5秒前にIPカプセル化送信の再開確認(PIM Null-Registerメッセージ)を一度だけ送信します

C-RP-Adv-Period

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

60(秒)

RP-Holdtime※2

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

150(秒)

2.5×C-RP-Adv-Period

(秒)

Bootstrap-Period

PIM Bootstrapメッセージの送信周期

60(秒)

Bootstrap-Timeout※2

PIM Bootstrapメッセージの保持期間

130(秒)

2×Bootstrap-Period+10

(秒)

Negative-Cache-Holdtime※1

(PIM-SM)

ネガティブキャッシュエントリの保持期間

210(秒)

10〜3600(秒)

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

(凡例) −:該当しない

注※1

コンフィグレーションで設定できます。

注※2

計算式で算出されます(コンフィグレーションで設定できません)。

注※3

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

注※4

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

注※5

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

注※6

本タイマ値はRFC2362に準拠しています。

(8) IPv6 PIM-SM使用時の注意事項

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

表26‒13 RFCとの差分

項目

RFC

本装置

パケットフォーマット

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

エンコードアドレスのマスク長は128固定。

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

エンコードアドレスのアドレスファミリは2(IPv6),エンコードタイプは0固定。IPv6以外のPIM-SMとは接続できない。

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

PIMバージョンは2固定。

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

PIM Join/Pruneフラグメント

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

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

PIM Registerメッセージ送信時のIPフラグメント動作

PIM Registerヘッダが付加されることを考慮して,IPフラグメントしたあとにそれぞれのフラグメントパケットをIPカプセル化する。

IPカプセル化したパケットをIPフラグメントする。

IPsec認証

Authentication Header(AH)を使用するIPsec転送モードがある。

未サポート。

PMBRとの接続

RFCではPMBR(PIM Border Router)との接続および(*,*,RP)マルチキャスト経路情報に関する仕様が記述されている。

PMBRとの接続をサポートしていない。また,(*,*,RP)マルチキャスト経路情報もサポートしていない。

最短パスへの切り替え

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

ラストホップルータで最初のデータを受信したら,データレートをチェックしないで最短パスへ切り替える。