マルチパス MVPN ルートでの PIM 参加ロード バランシングの概要
マルチキャスト仮想プライベートネットワーク(MVPN)とは、既存の MPLS/BGP VPN にマルチキャストサービスを導入する技術です。
2 つの主要な MVPN サービスは次のとおりです。
デュアルPIM MVPN(Draft-Rosenとも呼ばれる)
マルチプロトコルBGPベースのMVPN(次世代とも呼ばれる)
次世代MVPNは、Draft-Rosen MVPNに続く次の進化形であり、レイヤー3 VPNを介したマルチキャストを構成する管理者にとって、よりシンプルなソリューションを提供します。Draft-Rosen MVPNはカスタマーマルチキャスト(Cマルチキャスト)シグナリングにPIM(プロトコル非依存マルチキャスト)を使用し、次世代MVPNはCマルチキャストシグナリングにBGPを使用します。
MVPNのマルチパスルーティングは、ネットワーク障害に対するデータ転送の堅牢性を高め、ネットワーク障害に対する回復力が必要な場合に共有バックアップ容量を最小限に抑えるために適用されます。
デフォルトでは、PIM ジョイン メッセージはリバース パス フォワーディング(RPF)ルーティング テーブル チェックに基づいて送信元に送信されます。送信元 [S, G] またはランデブー ポイント(RP)[*, G] に向かうイコール コスト パスが複数ある場合、1 つのアップストリーム インターフェイスを使用してジョイン メッセージが送信されます。アップストリームパスには、以下のものがあります。
EBGP パスと内部 BGP(IBGP)パスの両方が存在する場合、単一のアクティブな外部 BGP(EBGP)パス。
EBGPパスが存在しない場合の、アクティブな単一のIBGPパス。
マルチパス PIM ジョイン ロード バランシング機能の導入により、カスタマー PIM(C-PIM)ジョイン メッセージは、次のようにロード バランシングされます。
Draft-Rosen MVPNの場合、等しくないEBGPパスとIBGPパスが使用されます。
次世代MVPNの場合:
EBGPパスが存在しない場合、利用可能なIBGPパスが使用されます。
EBGPパスとIBGPパスの両方が存在する場合、利用可能なEBGPパスが使用されます。
この機能は、レイヤー 3 MVPN サービスを介した IPv4 C-PIM 参加メッセージに適用されます。
デフォルトでは、アクティブな rt_entry がセカンダリルートで、プライマリルートが異なるルーティングインスタンスに存在する場合、カスタマーソース(C-S)またはカスタマーRP(C-RP)はリモートと見なされます。このような決定は、チェックが実行されている (C-*,G) または (C-S,G) 状態を考慮せずに行われています。マルチパス PIM ジョイン ロード バランシング機能は、関連する(C-*,G)または(C-S,G)状態を考慮して、ソース(または RP)がリモートかどうかを判断します。
マルチパス PIM 結合負荷分散機能が有効になっているプロバイダー エッジ(PE)ルーターがプロバイダー ネットワークにない場合は、ハッシュベースの結合ロード バランシングが使用されます。この機能を設定するかどうかの決定は、PIM やシステム全体のパフォーマンスには影響しませんが、この機能が有効になっていない場合、ネットワーク パフォーマンスが一時的に影響を受ける可能性があります。
ハッシュベースのジョイン ロード バランシングでは、C-S または C-RP に向かう候補アップストリームに新しい PE ルーターを追加すると、C-PIM ジョイン メッセージが新しいアップストリーム パスに再配信されます。参加メッセージの数が多い場合、参加メッセージが新しい RPF ネイバーに送信され、プルーニング メッセージが古い RPF ネイバーに送信されるため、ネットワーク パフォーマンスが影響を受けます。次世代MVPNでは、BGP Cマルチキャストデータメッセージが古いアップストリームパスから取り出され、新しいアップストリームパスでアドバタイズされ、ネットワークパフォーマンスに影響を与えます。
図 1 では、PE1 と PE2 がアップストリームの PE ルーターです。ルーターPE1は、EBGPピアとIBGPピア(それぞれカスタマーエッジCE1ルーターとPE2ルーター)からルートソースを学習します。

PEルーターがDraft-Rosen MVPNを実行している場合、PE1ルーターは、CE1ルーターへのEBGPパスとPE2ルーターへのIBGPパスの間でC-PIM参加メッセージを配信します。IBGP パス上のジョイン メッセージは、PE ルーターが相互に C-PIM 隣接関係を確立するマルチキャスト トンネル インターフェイスを介して送信されます。
PE ルータが送信元(または RP)に向かう 1 つまたはすべての EBGP パスを失った場合、それまで EBGP パスを使用していた C-PIM ジョイン メッセージはマルチキャスト トンネル インターフェイスに移動され、マルチキャスト トンネル インターフェイス上の RPF ネイバーがハッシュ メカニズムに基づいて選択されます。
ソース(または RP)に向かう最初の EBGP パスが検出されると、新しいジョイン メッセージのみが EBGP パスと IBGP パス全体でロード バランシングされますが、マルチキャスト トンネル インターフェイス上の既存のジョイン メッセージは影響を受けません。
PE ルーターが次世代 MVPN を実行している場合、PE1 ルーターは C-PIM 参加メッセージを EBGP パス経由で CE1 ルーターに直接送信します。PE1 ルーターと PE2 ルーターの間に C-PIM 隣接関係はありません。ルーターPE3は、PE1とPE2への2つのIBGPパス間でC-PIMジョインメッセージを配信します。バイト単位のXORハッシュアルゴリズムは、インターネットドラフトdraft-ietf-l3vpn-2547bis-mcast-bgp、 BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNsに従ってCマルチキャストデータを送信するために使用されます。
ドラフトローゼンMVPNのマルチパスPIMジョインロードバランシング機能は、宛先への不等なEBGPパスとIBGPパスを利用するため、ユニキャストパケットを宛先に転送するときにループが発生する可能性があります。このようなループを回避または中断するには、次のようにします。
コアまたはマスター インスタンスから到着したトラフィックは、コア向けのインターフェイスに転送しないでください。
単一のマルチキャスト トンネル インターフェイスをアップストリーム インターフェイスまたはダウンストリーム インターフェイスとして選択する必要があります。
アップストリームまたはダウンストリームのマルチキャスト トンネル インターフェイスは、非マルチキャスト トンネル インターフェイスを指している必要があります。
ループ回避メカニズムの結果、EBGP パスから到着したジョイン メッセージは予想通り EIBGP パス間でロード バランシングされますが、IBGP パスからのジョイン メッセージは EBGP パスのみを選択するように制限されます。
図 1 では、CE2 ホストが CE1 ホストにユニキャスト データ トラフィックを送信した場合、PE1 ルーターはトラフィックのロード バランシングにより、MPLS コア経由でマルチキャスト フローを PE2 ルーターに送信できます。負荷分散アルゴリズムにより、PE2 が MPLS コアにトラフィックを転送しないようにすることで、データ転送ループを防止します。
C-PIM ジョイン メッセージの場合、CE2 ホストと CE3 ホストの両方が送信元(S, G)からのトラフィックの受信に関心があると仮定し、PE1 と PE2 の両方が送信元に向かう RPF ネイバーとしてお互いを選択する場合、マルチキャスト ツリーを完全に形成することはできません。この機能は、Draft-Rosen MVPNシナリオにおいて、マルチキャストコントロールプレーンでこのようなジョイン ループを防止するメカニズムを実装しています。
マルチキャスト トラフィックの中断または参加ループの作成が発生し、次のいずれかの理由によりマルチキャスト配信ツリー(MDT)が正しく形成されない可能性があります。
グレースフル ルーティング エンジン スイッチオーバー(GRES)中は、CE および PE ネイバーから受信したジョイン メッセージに基づいて新しいルーティング エンジンのアップストリーム インターフェイス選択が再度実行されるため、C-PIM ジョイン メッセージの EIBGP パス選択が変わる可能性があります。これにより、受信したジョイン メッセージの数やグレースフル リスタート時のネットワークの負荷に応じて、マルチキャスト トラフィックが中断される可能性があります。ただし、ノンストップアクティブルーティング(NSR)はサポートされておらず、Draft-Rosen MVPNシナリオのマルチキャストトラフィックには影響しません。
プロバイダー ネットワーク内の PE ルーターは、この機能に実装されているのと同じハッシュ アルゴリズムを適用しない別のベンダーの実装を実行しています。
マルチパス PIM ジョイン ロード バランシング機能が正しく設定されていません。