PIM について
マルチキャスト対応ルータ間で使用される PIM は、マルチキャスト配信ツリーを構築して、ルーティング ドメイン内にグループ メンバーシップをアドバタイズします。PIM は、複数の送信元からのパケットが転送される共有配信ツリーと、単一の送信元からのパケットが転送される送信元配信ツリーを構築します。
Cisco NX-OS は、IPv4 ネットワーク(PIM)で PIM スパース モードをサポートしています。PIM スパース モードでは、ネットワーク上の要求元だけにマルチキャスト トラフィックが伝送されます。PIM は、ルータ上で同時に実行するように設定できます。PIM グローバル パラメータを使用すると、ランデブー ポイント(RP)、メッセージ パケット フィルタリング、および統計情報を設定できます。PIM インターフェイス パラメータを使用すると、マルチキャスト機能のイネーブル化、PIM の境界の識別、PIM hello メッセージ インターバルの設定、および代表ルータ(DR)のプライオリティ設定を実行できます。
(注) |
Cisco NX-OS は、PIM デンス モードをサポートしていません。 |
Cisco NX-OSでマルチキャスト機能をイネーブルにするには、各ルータで PIM 機能をイネーブルにしてから、マルチキャストに参加する各インターフェイスで、PIM スパース モードをイネーブルにする必要があります。IPv4 ネットワークの場合は PIM を設定できます。IPv4 ネットワーク上のルータで IGMP がイネーブルになっていない場合は、PIM によって自動的にイネーブルにされます。
PIM グローバル コンフィギュレーション パラメータを使用すると、マルチキャスト グループ アドレスの範囲を設定して、次に示す配信モードで利用できます。
-
Any Source Multicast(ASM):マルチキャスト送信元の検出機能を提供します。ASM では、マルチキャスト グループの送信元と受信者間に共有ツリーを構築し、新しい受信者がグループに追加された場合は、送信元ツリーに切り替えることができます。ASM モードを利用するには、RP を設定する必要があります。
ASM モードで使用される PIM スパース モードと共有配信ツリーの詳細については、RFC 4601 を参照してください。
vPC を使用した PIM SSM
Cisco NX-OS リリース 7.0(3)I4(1) 以降、vPC 機能とともにアップストリーム レイヤ 3 クラウドを備えた Cisco Nexus 9000 シリーズ スイッチで PIM SSM を有効にできます。
vPC VLAN(vPC ピアリンクで伝送される VLAN)上のスイッチ仮想インターフェイス(SVI)とダウンストリーム デバイス間の PIM 隣接関係はサポートされません。この設定により、マルチキャスト パケットがドロップされる可能性があります。ダウンストリーム デバイスと PIM ネイバー関係が必要な場合は、vPC SVI ではなく、物理レイヤ 3 インターフェイスを Nexus スイッチで使用する必要があります。
vPC VLAN 上の SVI では、vPC ピアスイッチとの PIM 隣接関係が 1 つだけサポートされます。vPC-SVI の vPC ピアスイッチ以外のデバイスとの vPC ピアリンク上の PIM 隣接関係はサポートされていません。
(注) |
N9K-X9636C-R および N9K-X9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチで、PIM SSM は Cisco NX-OS リリース 7.0(3)F2(1) 以降でサポートしますが、vPC 上の PIM SSM は Cisco NX-OS リリース 7.0(3)F3(1)までサポートしません。N9K-X9636C-RX ライン カードは、Cisco NX-OS リリース 7.0(3)F3(1) 以降、vPC の有無にかかわらず PIM SSM をサポートします。 |
Hello メッセージ
ルータがマルチキャスト IPv4 アドレス 224.0.0.13 または IPv6 アドレス ff02::d に PIM hello メッセージを送信して、PIM ネイバーとの隣接関係を確立すると、PIM プロセスが開始されます。hello メッセージは 30 秒間隔で定期的に送信されます。PIM ソフトウェアはすべてのネイバーからの応答を確認すると、各 LAN セグメント内で優先順位が最大のルータを代表ルータ(DR)として選択します。DR 優先順位は、PIM hello メッセージの DR 優先順位値に基づいて決まります。全ルータの DR プライオリティ値が不明、またはプライオリティが等しい場合は、IP アドレスが最上位のルータが DR として選定されます。
hello メッセージには保持時間の値も含まれています。通常、この値は hello インターバルの 3.5 倍です。ネイバーから後続の hello メッセージがないまま保留時間を経過すると、デバイスはそのリンクで PIM エラーが生じたと判断します。
設定された保留時間の変更は、インターフェイスで PIM を有効または無効にした後に送信される最初の 2 つの hello には反映されない場合があります。その後、インターフェイスで送信される最初の 2 つの hello については、設定された保留時間が使用されます。これにより、正しい保留時間の hello を受信するまで、PIM ネイバーは、初期ネイバー セットアップについて、誤ったネイバー タイムアウト値を設定する可能性があります。
PIM ソフトウェアで、PIM ネイバーとの PIM hello メッセージの認証に MD5 ハッシュ値を使用するよう設定すると、セキュリティを高めることができます。
Join-Prune メッセージ
DR が新しいグループの受信者または送信元から IGMP メンバーシップ レポート メッセージを受信すると、DR は、ランデブー ポイント(ASM モード)に面しているインターフェイスから PIM Join メッセージを送信することにより、受信者を送信元に接続するためのツリーを作成します。ランデブー ポイント(RP)とは、ASM モードで PIM ドメイン内のすべての送信元およびホストにより使用される、共有ツリーのルートです。
DR はグループまたは送信元から最後のホストが脱退したことを認識すると、PIM Prune メッセージを送信して、配信ツリーから該当するパスを削除します。
各ルータは、マルチキャスト配信ツリーの上流方向のホップに Join または Prune アクションを次々と転送し、パスを作成(Join)または削除(Prune)します。
(注) |
このマニュアル内の「PIM join メッセージ」および「PIM prune メッセージ」という用語は、PIM join-prune メッセージに関して、Join または Prune アクションのうち実行されるアクションのみをわかりやすく示すために使用しています。 |
Join/Prune メッセージは、ソフトウェアからできるだけ短時間で送信されます。join-prune メッセージをフィルタリングするには、ルーティング ポリシーを定義します。
ステートのリフレッシュ
PIM では、3.5 分のタイムアウト間隔でマルチキャスト エントリをリフレッシュする必要があります。ステートをリフレッシュすると、トラフィックがアクティブなリスナーだけに配信されるため、ルータで不要なリソースが使用されなくなります。
PIM ステートを維持するために、最終ホップである DR は、Join/Prune メッセージを 1 分に 1 回送信します。次に、(*, G)ステートおよび(S, G)ステートの構築例を示します。
-
(*, G)ステートの構築例:IGMP(*, G)レポートを受信すると、DR は (*, G)PIM Join メッセージを RP 方向に送信します。
-
(S, G)ステートの構築例:IGMP(S, G)レポートを受信すると、DR は(S, G)PIM Join メッセージを送信元方向に送信します。
ステートがリフレッシュされていない場合、PIM ソフトウェアは、上流ルータのマルチキャスト発信インターフェイス リストから転送パスを削除し、配信ツリーを再構築します。
ランデブー ポイント
ランデブー ポイント(RP)は、マルチキャスト ネットワーク ドメイン内にあるユーザが指定したルータで、マルチキャスト共有ツリーの共有ルートとして動作します。必要に応じて複数の RP を設定し、さまざまなグループ範囲をカバーすることができます。
スタティック RP
マルチキャスト グループ範囲の RP は静的に設定できます。この場合、ドメイン内のすべてのルータに RP のアドレスを設定する必要があります。
スタティック RP を定義するのは、次のような場合です。
-
ルータに Anycast RP アドレスを設定する場合
-
デバイスに RP を手動で設定する場合
BSR
ブートストラップ ルータ(BSR)を使用すると、PIM ドメイン内のすべてのルータで、BSR と同じ RP キャッシュが保持されるようになります。BSR では、BSR 候補 RP から RP セットを選択するよう設定できます。BSR は、ドメイン内のすべてのルータに RP セットをブロードキャストする役割を果たします。ドメイン内の RP を管理するには、1 つまたは複数の候補 BSR を選択します。候補 BSR の 1 つが、ドメインの BSR として選定されます。
BSR は、Cisco Nexus 9300-FX、Cisco Nexus 9300-FX2、および Cisco Nexus 9300-FX3S プラットフォーム スイッチでサポートされています。
次の図に、BSR メカニズムを示します。ここで、ルータ A(ソフトウェアによって選定された BSR)は、すべての有効なインターフェイスから BSR メッセージを送信しています(図の実線部分)。このメッセージには RP セットが含まれており、ネットワーク内のすべてのルータに次々とフラッディングされます。ルータ B および C は 候補 RP であり、選定された BSR に候補 RP アドバタイズメントを直接送信しています(図の破線部分)。
選定された BSR は、ドメイン内のすべての候補 RP から候補 RP メッセージを受信します。BSR から送信されるブートストラップ メッセージには、すべての候補 RP に関する情報が格納されています。各ルータでは共通のアルゴリズムを使用することにより、各マルチキャスト グループに対応する同一の RP アドレスが選択されます。
RP 選択プロセスの実行中、ソフトウェアは最も優先順位が高い RP アドレスを特定します。2 つ以上の RP アドレスのプライオリティが等しい場合は、選択プロセスで RP ハッシュが使用されます。1 つのグループに割り当てられる RP アドレスは 1 つだけです。
デフォルトでは、ルータは BSR メッセージの受信や転送を行えません。BSR メカニズムによって、PIM ドメイン内のすべてのルータに対して、マルチキャスト グループ範囲に割り当てられた RP セットが動的に通知されるようにするには、BSR リスニング機能および転送機能をイネーブルにする必要があります。
(注) |
BSR メカニズムは、サードパーティ製ルータで使用可能な、ベンダー共通の RP 定義方式です。 |
Auto-RP
Auto-RP は、インターネット標準であるブートストラップ ルータ メカニズムに先立って導入されたシスコのプロトコルです。Auto-RP を設定するには、候補マッピング エージェントおよび候補 RP を選択します。候補 RP は、サポート対象グループ範囲を含んだ RP-Announce メッセージを Cisco RP-Announce マルチキャスト グループ 224.0.1.39 に送信します。Auto-RP マッピング エージェントは候補 RP からの RP-Announce メッセージを受信して、グループと RP 間のマッピング テーブルを形成します。マッピング エージェントは、このグループと RP 間の マッピング テーブルを RP-Discovery メッセージに格納して、Cisco RP-Discovery マルチキャスト グループ 224.0.1.40 にマルチキャストします。
次の図に、Auto-RP メカニズムを示します。RP マッピング エージェントは、受信した RP 情報を、定期的に Cisco RP-Discovery グループ 224.0.1.40 にマルチキャストします(図の実線部分)。
デフォルトでは、ルータは Auto-RP メッセージの受信や転送を行いません。Auto-RP メカニズムによって、PIM ドメイン内のルータに対して、group-to-RP マッピング情報が動的に通知されるようにするには、Auto-RP リスニング機能および転送機能をイネーブルにする必要があります。
注意 |
同じネットワーク内では、Auto-RP プロトコルと BSR プロトコルを同時に設定できません。 |
PIM ドメインで設定された複数の RP
このセクションでは、1 つの PIM ドメイン内に複数の RP が設定されている場合の選定プロセスのルールについて説明します。
Anycast-RP
Anycast-RP の実装方式には、マルチキャスト送信元検出プロトコル(MSDP)を使用する場合と、RFC 4610、『プロトコル独立マルチキャスト(PIM)を使用する Anycast-RP』に基づく場合の 2 種類があります。ここでは、PIM Anycast-RP の設定方法について説明します。
PIM Anycast-RP を使用すると、Anycast-RP セットというルータ グループを、複数のルータに設定された単一の RP アドレスに割り当てることができます。Anycast-RP セットとは、Anycast-RP として設定された一連のルータを表します。各マルチキャスト グループで複数の RP をサポートし、セット内のすべての RP に負荷を分散させることができるのは、この RP 方式だけです。Anycast-RP はすべてのマルチキャスト グループをサポートします。
ユニキャスト ルーティング プロトコルの機能に基づいて、PIM 登録メッセージが最も近い RP に送信され、PIM 参加/プルーニング メッセージが最も近い RP に向けて送信されます。いずれかの RP がダウンすると、これらのメッセージは、ユニキャスト ルーティングを使用して次に最も近い RP の方向へと送信されます。
PIM は、PIM Anycast RP および PIM Bidir RP に使用されるループバック インターフェイス上に設定する必要があります。
PIM Anycast-RP の詳細については、RFC 4610 を参照してください。
PIM 登録メッセージ
PIM Register メッセージは、マルチキャスト送信元に直接接続された指定ルータ(DR)から RP にユニキャストされます。PIM Register メッセージには次の機能があります。
-
マルチキャスト グループに対する送信元からの送信がアクティブであることを RP に通知する
-
送信元から送られたマルチキャスト パケットを RP に配信し、共有ツリーの下流に転送する
DR は RP から Register-Stop メッセージを受信するまで、PIM Register メッセージを RP 宛に送信し続けます。RP が Register-Stop メッセージを送信するのは、次のいずれかの場合です。
-
RP が送信中のマルチキャスト グループに、受信者が存在しない場合
-
RP が送信元への SPT に加入しているにもかかわらず、送信元からのトラフィックの受信が開始されていない場合
PIM トリガー レジスタはデフォルトで有効になっています。
ip pim register-source を使用できます コマンドは、登録メッセージの送信元 IP アドレスが、RP がパケットを送信できる一意のルーテッド アドレスではない場合に、登録メッセージの送信元 IP アドレスを設定するために使用します。このような状況は、受信したパケットが転送されないように送信元アドレスがフィルタリングされる場合、または送信元アドレスがネットワークに対して一意でない場合に発生します。このような場合、RP から送信元アドレスへ送信される応答は DR に到達せず、Protocol Independent Multicast Sparse Mode(PIM-SM)プロトコル障害が発生します。
次に、登録メッセージの IP 送信元アドレスを DR のループバック 3 インターフェイスに設定する例を示します。
ip pim register-source loopback 3
(注) |
Cisco NX-OS では RP の処理の停滞を防ぐため、PIM Register メッセージのレート制限が行われます。 |
PIM Register メッセージをフィルタリングするには、ルーティング ポリシーを定義します。
指定ルータ
PIM の ASM モードでは、各ネットワーク セグメント上のルータの中から指定ルータ(DR)が選択されます。DR は、セグメント上の指定グループおよび送信元にマルチキャスト データを転送します。
LAN セグメントごとの DR は、「Hello メッセージ」に記載された手順で決定されます。
ASM モードの場合、DR は RP に PIM Register パケットをユニキャストします。DR が、直接接続された受信者からの IGMP メンバーシップ レポートを受信すると、DR を経由するかどうかに関係なく、RP への最短パスが形成されます。これにより、同じマルチキャスト グループ上で送信を行うすべての送信元と、そのグループのすべての受信者を接続する共有ツリーが作成されます。
指定フォワーダ
PIM の Bidir モードでは、RP を検出する際に、各ネットワーク セグメント上のルータから指定フォワーダ(DF)が選択されます。DF は、セグメント上の指定グループにマルチキャスト データを転送します。DF は、ネットワーク セグメントから RP へのベスト メトリックに基づいて選定されます。
RPF インターフェイスで RP 方向へのパケットを受信したルータは、そのパケットを発信インターフェイス(OIF)リスト内のすべてのインターフェイスから転送します。パケットを受信したインターフェイスが属するルータが、LAN セグメントの DF に選定されている場合、そのパケットは、着信インターフェイスを除く OIF リスト内のすべてのインターフェイスに転送されます。また、RPF インターフェイスを経由して RP にも転送されます。
(注) |
Cisco NX-OS では、RPF インターフェイスを MRIB の OIF リストに追加しますが、MFIB の OIF リストには追加しません。 |
共有ツリーから送信元ツリーへの ASM スイッチオーバー
(注) |
Cisco NX-OS では、RPF インターフェイスを MRIB の OIF リストに追加しますが、MFIB の OIF リストには追加しません。 |
ASM モードでは、共有ツリーだけを使用するように PIM パラメータを設定しないかぎり、受信者に接続された DR が、共有ツリーから送信元への最短パス ツリー(SPT)に切り替わります。
このスイッチオーバーの間、SPT および共有ツリーのメッセージが両方とも表示されることがあります。これらのメッセージの意味は異なります。共有ツリー メッセージは上流の RP に向かって伝播されますが、SPT メッセージは送信元に向かって送信されます。
SPT スイッチオーバーの詳細については、RFC 4601 の「Last-Hop Switchover to the SPT」の項を参照してください。
管理用スコープの IP マルチキャスト
管理用スコープの IP マルチキャスト方式を使用すると、マルチキャスト データの配信先に境界を設定することができます。詳細については、RFC 2365 を参照してください。
インターフェイスを PIM 境界として設定し、PIM メッセージがこのインターフェイスから送信されないようにできます。
Auto-RP スコープ パラメータを使用すると、存続可能時間(TTL)値を設定できます。
マルチキャスト カウンタ
-
「マルチキャスト ヘビー テンプレートの有効化」セクションの説明に従って、マルチキャスト ヘビー テンプレートを有効にします。
-
デフォルトのテンプレートで hardware profile multicast flex-stats-enable コマンドを構成します。
マルチキャスト カウンタをサポートするのは、Cisco Nexus 9300-EX、X9700-FX、9300-FX、および 9300-FX2 シリーズ スイッチだけです。これらのカウンタは、マルチキャスト トラフィックに関するより詳細な精度と可視性を提供します。具体的には、絶対マルチキャスト パケット数(すべてのマルチキャスト S,G ルートのバイトとレート)を示します。これらのカウンタは、S,G ルートに対してのみ有効であり、*,G ルートに対しては有効ではありません。マルチキャスト ヘビー テンプレートが有効になっている場合、show ip mroute detail および show ip mroute summary コマンドの出力にマルチキャスト カウンタが表示されます。
マルチキャスト ヘビー テンプレート
ずっと多くのマルチキャスト ルートをサポートし、show ip mroute コマンドの出力にマルチキャスト カウンタを表示するために、マルチキャスト ヘビー テンプレートを有効にすることができます。
マルチキャスト ヘビー テンプレートは、次のデバイスおよびリリースでサポートされています。
-
Cisco Nexus N9K-X9732C-EX、N9K-X9736C-E、および N9K-X97160YC-EX ラインカード、Cisco NX-OS リリース 7.0(3)I3(2) 以降、ただし拡張性の向上のみ
-
Cisco Nexus 9300-EX シリーズ スイッチ、Cisco NX-OS リリース 7.0(3)I6(1) 以降、拡張性とマルチキャスト カウンタの両方が向上
-
Cisco Nexus 9300-FX シリーズ スイッチ、Cisco NX-OS リリース 7.0(3)I7(1) 以降、拡張性とマルチキャスト カウンタの両方が向上
マルチキャスト VRF-Lite ルート リーク
Cisco NX-OS リリース 7.0(3)I7(1) 以降、マルチキャスト レシーバーは VRF 間で IPv4 トラフィックを転送できます。以前のリリースでは、マルチキャスト トラフィックのフローは同じ VRF 内でのみ可能でした。
マルチキャスト VRF-lite リーキング機能は、受信側 VRF のマルチキャスト ルートでのリバース パス フォワーディング(RPF)ルックアップを、送信元 VRF で実行できるようにします。したがって、ソース VRF から発信されたトラフィックをレシーバ VRF に転送できます。
PIM グレースフル リスタート
プロトコル独立マルチキャスト(PIM)のグレースフル リスタートは、ルート プロセッサ(RP)スイッチオーバー後のマルチキャスト ルート(mroute)のコンバージェンスを改善する、マルチキャスト ハイ アベイラビリティ(HA)の拡張です。PIM のグレースフル リスタート機能では、RP スイッチオーバー時に、(RFC 4601 で定義された)生成 ID(GenID)値を、インターフェイス上の隣接 PIM ネイバーで、全ての(*,G)および(S,G)状態に対する PIM ジョイン メッセージを送信させるトリガーのための機構として利用します。これは、インターフェイスをリバース パス転送(RPF)インターフェイスとして使用します。このメカニズムにより、PIM ネイバーでは、新しくアクティブになった RP 上でこれらの状態を即座に再確立できます。
生成 ID
生成 ID(GenID)は、インターフェイスで Protocol Independent Multicast(PIM)転送が開始または再開されるたびに生成し直される、ランダムに生成された 32 ビット値です。PIM hello メッセージ内の GenID 値を処理するために、PIM ネイバーでは、RFC 4601 に準拠する PIM を実装した Cisco ソフトウェアを実行している必要があります。
(注) |
RFC 4601 に準拠しておらず、PIM hello メッセージ内の GenID の差異を処理できない PIM ネイバーは GenID を無視します。 |
PIM グレースフル リスタート動作
この図は、PIM グレースフル リスタート機能をサポートするデバイスのルート プロセッサ(RP)のスイッチオーバー後に実行される動作を示します。
PIM グレースフル リスタート動作は次のとおりです。
-
安定した状態で、PIM ネイバーは定期的に PIM ハロー メッセージをやりとりします。
-
アクティブ RP は、マルチキャスト ルート(mroute)の状態をリフレッシュするために PIM join を定期的に受信します。
-
アクティブ RP に障害が発生すると、スタンバイ RP が代わって新しいアクティブ RP になります。
-
新しいアクティブ RP は世代 ID(GenID)値を変更して、PIM ハロー メッセージで新しい GenID を隣接する PIM ネイバーに送信します。
-
新しい GenID を持つインターフェイスで PIM hello メッセージを受信する隣接 PIM ネイバーは、このインターフェイスを RPF インターフェイスとして使用するすべての (*, G) および (S, G) mroute に PIM グレースフル リスタートを送信します。
-
これらの mroute 状態は、新しくアクティブになった RP 上でただちに再確立されます。
PIM のグレースフル リスタートおよびマルチキャスト トラフィック フロー
PIM ネイバーのマルチキャスト トラフィック フローは、マルチキャスト トラフィックで PIM グレースフル リスタート PIM のサポートを検出するか、デフォルトの PIM hello 保持時間間隔内に、障害が発生した RP ノードからの PIM hello メッセージを検出した場合には、影響を受けません。障害が発生した RP のマルチキャスト トラフィック フローは、非停止転送(NSF)対応かどうかに影響されません。
注意 |
デフォルトの PIM hello 保持時間は PIM hello 期間の 3.5 倍です。デフォルト値の 30 秒よりも小さい値で PIM hello 間隔を設定すると、マルチキャスト ハイ アベイラビリティ(HA)動作が設計どおりに機能しないことがあります。 |
高可用性
ルート プロセッサがリロードすると、VRF 間のマルチキャスト トラフィックは、同じ VRF 内で転送されるトラフィックと同じように動作します。
ハイ アベイラビリティの詳細については、『Cisco Nexus 9000 シリーズ NX-OS ハイ アベイラビリティおよび冗長性ガイド』を参照してください。