解説書 Vol.1
PIM-SMはルータ間で使用されるマルチキャストルーティングプロトコルで,隣接情報やマルチキャスト配送ツリーへの参加および刈り込み要求などをやり取りすることによって,受信したマルチキャストパケットの中継および廃棄処理を実施します。PIM-SMは最初にランデブーポイント(集中ポイント)経由でマルチキャストパケットを中継します。その後,既存のユニキャストルーティングを利用することによって,マルチキャストパケット送信元からの最短パスを使用して最短パス経由に切り替え,マルチキャストパケットを中継します。
本装置が送信するPIM-SMフレームのフォーマットおよび設定値はRFC2362に従います。
- <この項の構成>
- (1) PIM-SMメッセージサポート仕様
- (2) 動作
- (3) 近隣検出
- (4) Forwarderの決定
- (5) DRの決定および動作
- (6) 冗長経路時の注意事項
- (7) PIM-SMの付加機能
- (8) PIM-SMタイマ仕様
- (9) PIM-SM使用上の注意事項
PIM-SMメッセージのサポート仕様を次の表に示します。
表12-10 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に自ランデブーポイント情報を通知する。
各PIM-SMルータはIGMPで学習したグループ情報をランデブーポイントに通知します。ランデブーポイントは各PIM-SMからグループ情報を受信することで各グループの存在を認識します。したがって,PIM-SMは最初にマルチキャストパケットをその送信元ネットワークからランデブーポイント経由ですべてのグループメンバに配送するために,送信元を頂点としたランデブーポイント経由配送ツリーを形成します。次に送信元から各グループに対して最短パスで到達できるように,既存のユニキャストルーティングを使用して送信元からの最短パスを決定します(最短パス配送ツリーを形成します)。これによって送信元から各グループメンバへのマルチキャストパケット中継は最短パスで行われます。PIM-SMの動作概要を次の図に示します。
(a) ランデブーポイントおよびブートストラップルータ(BSR)
ランデブーポイントルータおよびブートストラップルータ(BSR)はコンフィグレーションで定義します。BSRはランデブーポイントの情報(IPアドレスなど)をすべてのマルチキャストインタフェースに通知します。この通知はホップバイホップですべてのマルチキャストルータに通知されます。ランデブーポイントおよびBSRの役割を次の図に示します。
図12-9 ランデブーポイントおよびブートストラップルータ(BSR)の役割
この図で,BSR(PIM-SMルータC)はランデブーポイント情報をすべてのマルチキャストインタフェースに通知します。ランデブーポイント情報を受信したルータはランデブーポイントのIPアドレスを学習し,受信したインタフェース以外でマルチキャストルータが存在するすべてのインタフェースにランデブーポイント情報を通知します。
(b) ランデブーポイントへのグループ参加情報の通知
各ルータはIGMPで学習したグループ参加情報をランデブーポイントに通知します。ランデブーポイントはグループ情報を受信することでグループの存在をインタフェースごとに認識します。ランデブーポイントへのグループ参加情報の通知を次の図に示します。
この図で,各ホストは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で学習済み)。ランデブーポイント経由のマルチキャストパケット通信(カプセル化)を次の図に示します。
図12-11 ランデブーポイント経由のマルチキャストパケット通信(カプセル化)
(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が存在するインタフェースに中継します。ランデブーポイント経由のマルチキャストパケット通信(非カプセル化)を次の図に示します。
図12-12 ランデブーポイント経由のマルチキャストパケット通信(非カプセル化)
(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宛てのマルチキャストパケットを受信すると該当するインタフェースに中継します。最短パスのマルチキャストパケット通信を次の図に示します。
(f) マルチキャスト配送ツリーの刈り込み
PIM-SMルータDは,ホストがIGMPでグループ1から離脱した場合,グループ1情報を通知していたインタフェースに対してグループ1の刈り込み情報を通知します。PIM-SMルータAはグループ1の刈り込み通知を受信すると,受信したインタフェースに対してグループ1宛てのマルチキャストパケットの中継を中止します。マルチキャスト配送ツリーの刈り込みを次の図に示します。
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.txtに準拠)。Generaion 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メッセージを定期広告のタイミングを待たずに送信します。これによって,マルチキャスト経路情報を速やかに再学習できます。
同一LAN上に複数のPIM-SMルータが接続している場合,そのネットワークに重複パケットがフォワードされる可能性があります。PIM-SMルータは同一LAN上に複数のPIM-SMルータが存在した場合,PIM-Assertメッセージに含まれるメトリックを参照し,送信元ネットワークに対して最も小さいメトリックを持ったルータが同一LAN上にパケットをフォワードする権利を持ちます。もしメトリックが等しい場合,より大きいIPアドレスを持ったルータがフォワードする権利を持ちます。
Forwarderを決定する流れを次に示します。
- メトリックのpreferenceを比較する。
- preferenceが等しい場合に,メトリックを比較する。
- 本装置はpreferenceを101,メトリックを1024固定でAssertメッセージを送信する。
Forwarderの決定を次の図に示します。
図12-15 Forwarderの決定
同一LAN上に複数のPIM-SMルータが存在する場合,マルチキャスト中継の代表ルータ(DR)を一つ決めます。そのインタフェース上でいちばん大きなDR Priority値(DR優先度)を持つルータがDRとなります。DR Priority値が同じ場合は,いちばん大きなIPアドレスを持つルータがDRになります。また,同一LAN上にDR Priorityをサポートしていないルータが存在する場合,DR Priority値は比較しないで,そのLAN上でいちばん大きなIPアドレスを持つルータがDRになります。
DRを決定する流れを次に示します。
- ルータのDR Priority値を比較する※。
- DR Priority値が同じ場合,IPアドレスを比較する。
- 注※
- 本装置では,DR Priority値が4294967295(0xffffffff)のHelloメッセージはDR Priority指定なしのHelloメッセージとして扱います。
送信元サーバ側では,DRがマルチキャストパケットをランデブーポイントにIPカプセル化して中継します。また,ホスト側では,DRがマルチキャストパケットを中継します。DRの動作を次の図に示します。
次の図に示すような冗長構成の場合,マルチキャストパケットがフォワードされないので注意してください。冗長経路がある場合は,その経路上のすべてのルータでPIMの設定が必要になります。
図12-18 冗長経路時の注意
(a) ランデブーポイント候補指定機能【OP-MBSE】
本機能は,BSRとなる本装置にランデブーポイント候補を指定する(pim sparse candidate-bsr rp-address)ことで,本装置が不正なランデブーポイント候補をネットワーク全体に広告することを防止する機能です。本機能の動作を次の図に示します。
図12-19 BSRランデブーポイント候補指定機能による不正ランデブーポイント候補の登録防止
IPv4 PIM-SMネットワークで信頼できるランデブーポイントをランデブーポイント候補AおよびBとした場合,BSRとなる本装置にランデブーポイント候補AおよびBのアドレスを指定します。
本装置がランデブーポイント候補A,B,およびXからPIM-Candidate-RP-Advertisementメッセージを受信した場合,ランデブーポイント候補Xから受信したPIM-Candidate-RP-Advertisementメッセージは廃棄します。その結果,本装置が送信するPIM-Bootstrapメッセージにはランデブーポイント候補AおよびBのアドレスだけが格納されます。これによって,不正なランデブーポイント候補Xのアドレスをネットワーク全体に広告することを防ぎます。
なお,本装置がランデブーポイント候補の場合は本機能の設定に関係なくPIM-Bootstrapメッセージに本装置のアドレスが格納されます。
PIM-SMが使用するタイマ値を次の表に示します。
表12-11 PIM-SMタイマ
タイマ名 内容 デフォルト値(秒) コンフィグレーションによる
設定範囲(秒)備考 Hello-Period Helloの送信周期 30 10〜3,600 − Hello-Holdtime 隣接関係の保持期間 105 3.5×Hello-Period 左記計算式より算出。 Assert-Timeout Assertによる中継抑止期間 180 − − Join/Prune-Period Join/Pruneの送信周期 60 30〜3,600 最大で+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 60〜43,
200または無期限最大で+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〜3,600 PIM-SSMの場合は3,600秒の固定。 (凡例) −:該当しない
- 注※1
- 本タイマ値をコンフィグレーションで設定した場合は設定値を使用しますが,本中継先インタフェースの保持期間として,最後にJoinを受信した時のPIM-Join/Pruneメッセージに含まれるJoin/Prune-Holdtimeを超えない値を設定します。
- 注※2
- 本タイマ値はコンフィグレーションで設定された値が優先されるため,RFC2362の規定とは異なった動作をします。ただし,コンフィグレーションで値を指定していない場合にはRFC2362の動作に準じます。
- 注※3
- 本タイマ値を10以上に設定すると,カプセル化送信の再開確認を5秒おきに複数回送信します。コンフィグレーションで値を指定していない場合には,一度だけ送信します。
PIM-SMを使用したネットワークを構成する場合には次の制限事項に注意してください。本装置はRFC2362(PIM-SM仕様)に準拠していますが,ソフトウェアの機能制限から一部RFCとの差分があります。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メッセージのサイズが大きい場合,8KBに分割して送信する。さらに,分割して送信するJoin/PruneメッセージはネットワークのMTU長でIPフラグメントによって送信される。 PMBRとの接続 RFCではPMBR(PIM Border Router)との接続および(*,*,RP)エントリについての仕様が記述されている。 本装置ではPMBRとの接続をサポートしていない。また,(*,*,RP)エントリもサポートしていない。 最短経路への切り替え 最短経路への切り替えタイミングとしてデータレートを基に切り替える方法がある。 本装置ではlast-hop-routerにて最初のデータを受信したら,データレートをチェックしないで最短経路へ切り替える。 C-RP-Adv受信とBootstrap送信 Bootstrapメッセージは生成したメッセージ長が最大パケット長を超えた場合にフラグメントすることが許される。しかし,フラグメント発生を抑止するためにランデブーポイント候補の最大数を定義することを推奨する。 ランデブーポイントで定義できるグループプレフィックスは最大128個である。
本装置では送信するBootstrapメッセージのサイズが大きい場合,ネットワークのMTU長でIPフラグメントして送信される。
Copyright (c)2005, 2011, ALAXALA Networks Corporation. All rights reserved.