# IPマルチキャスト / PIM

## 1. 機能概要

マルチキャストルーティングプロトコルの PIM ( Protocol Independent Multicast ) について説明します。

マルチキャストルーティングでは、ユニキャストのルーティングを基盤とするため、マルチキャスト網内ではユニキャストパケットが適切にルーティングされている必要があります。
PIM とは、Protocol Independent Multicast の略で、特定のユニキャストルーティングプロトコルに依存しないマルチキャストルーティングプロトコルです。
そのため、RIP や OSPF など任意のユニキャストルーティングプロトコルを利用できます。

本製品は、PIM の Dense モード ( PIM-DM ) と　Sparse モード ( PIM-SM および PIM-SSM ) に対応しています。

PIM-DM は Flood & Prune モデルのマルチキャスト方式で、一旦全ての PIM ネイバーにマルチキャストトラフィックがフラッディングされます。
マルチキャストグループに対するマルチキャスト受信者が存在しない PIM ルーターは、PIM ネイバーに対して Prune メッセージを送信することで、以降の不要なマルチキャストトラフィックの転送を停止します。
PIM-DM ではマルチキャスト受信者が存在しないネットワークにも一旦フラッディングするため、マルチキャスト受信者が LAN 上の限られた範囲に密集 ( Dense ) している場合に効果的です。
後述の PIM-SM と比較して、設定がシンプルというメリットもあります。

- PIM-DM の動作イメージ

PIM-SM は Explicit Join モデルのマルチキャスト方式で、マルチキャスト受信者からグループに対する参加要求があった場合にのみマルチキャストトラフィックが転送されます。
PIM-SM では、ランデブーポイント (RP) と呼ばれるルーターが、グループ情報の管理とマルチキャストトラフィック転送の制御を行います。
具体的には、マルチキャスト受信者が接続されている PIM ルーターは、 RP に対してマルチキャストグループへの参加要求を送信します。参加要求を受信した RP は、その PIM ルーターに対してマルチキャストトラフィックを転送します。
PIM-SM では必要に応じてマルチキャストトラフィックを転送することでネットワークに余分な負荷をかけないため、マルチキャスト受信者がネットワークにまばら ( Sparse ) に存在している場合に効果的です。

- PIM-SM の動作イメージ

## 2. 用語の定義

PIM (Protocol Independent Multicast)

マルチキャストルーティングプロトコルの一種で、特定のユニキャストルーティングプロトコルに依存しないマルチキャストルーティングプロトコル。

PIM-DM (PIM Dense Mode)

マルチキャストルーティングプロトコル PIM の Dense モード。 Flood & Prune モデルでマルチキャストパケット転送される。

PIM-SM (PIM Sparse Mode)

マルチキャストルーティングプロトコル PIM の Sparse モード。 Explicit Join モデルでマルチキャストパケット転送される。

PIM-SSM (PIM Source Specific Multicast)

マルチキャスト送信者を特定してマルチキャストパケット転送を行うことで効率の良い転送が可能で、かつ不正なマルチキャストパケットの受信を防ぐことができる。
SSM を利用するには IGMPv3 を使用する必要があるが、SSMマッピング機能を使用することで、IGMPv1 もしくは IGMPv2 にしか対応していないホストでも SSM を利用可能。

ECMP環境 (Equal Cost Multi Path)

等コストの複数のパスが存在する環境。

DR (Designated Router)

同一LAN上に複数の PIM-SM ルーターが存在する場合に、マルチキャストパケットの転送を行う代表ルーター。

RP (Rendezvous Point)

PIM-SMネットワークにおいて、マルチキャスト送信者と受信者の間をつなぐ役割を持ち、マルチキャストトラフィックを中継するルーター。

BSR (Bootstrap Router)

PIM-SMネットワークにおいて、マルチキャストグループとRP間のマッピングを行うルーター。

ディストリビューションツリー

マルチキャストパケット転送は1対多の通信であるため、1つのマルチキャスト送信者から複数のマルチキャスト受信者にパケットが転送される。
このとき、1つのパケットはマルチキャストルーターでコピーされツリー状に配送経路が形成される。この配送経路をディストリビューションツリーという。

送信元ツリー

マルチキャスト送信者を始点とするディストリビューションツリー。PIM-DMとPIM-SMで用いられる。
(S, G) 形式で表記され、S はマルチキャスト送信者の IP アドレス、G はマルチキャストグループの IP アドレスを指す。

共有ツリー

RPを中心とするディストリビューションツリー。PIM-DMでは、送信元ツリーと組み合わせて用いられる。
共有ツリーでは、全てのマルチキャスト送信者が共通の 1 つのツリーを使用するため、(*, G) 形式で表記される。

RPF (Reverse Path Forwarding) チェック

マルチキャスト転送においてパケットの重複受信やループを回避するために、受信したマルチキャストパケットの送信元アドレスとユニキャスト経路表を比較し、最短経路以外のインターフェースから受信したマルチキャストパケットは破棄される処理のこと。

RPF (Reverse Path Forwarding) インターフェース

RPFチェックが成功したインターフェースのことで、マルチキャストパケットを受信するインターフェース。

ファーストホップルーター

マルチキャスト送信者と直接接続されているルーター。

ラストホップルーター

マルチキャスト受信者と直接接続されているルーター。

## 3. 機能詳細

### 3.1. PIM-DM

PIM-DM の動作仕様について以下に示します。

#### 3.1.1. PIM-DM の基本設定

1. PIM-DM の 有効 / 無効 設定は、VLAN インターフェースに対して行います。
   デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定はどちらも 無効 です。
   ip pim dense-mode コマンドにより、PIM-DM を有効にすることができます。
   PIM-DM を有効にすることで、自動的に IGMP も有効になりますが、 ip igmp コマンドで明示的に有効にすることを推奨します。
   PIM-DM を有効にする場合は、 ip multicast-routing コマンドでシステム全体の IP マルチキャストルーティング機能 ( デフォルト無効 ) を有効にしてください。
   また、 multicast コマンドで各ポートのマルチキャストルーティング機能 ( デフォルト有効 ) を有効にしてださい。

2. 対象 VLAN インターフェースで、PIM メッセージの送受信を停止するには、 ip pim dense-mode passive コマンドを使用します。
   PIM ネイバーが存在せず、マルチキャスト受信者だけが接続されているインターフェースにおいて、PIMメッセージの送信を抑制したい場合などに用いられます。

3. PIM-DMはマルチキャストパケット転送に、ユニキャストルーティングテーブルを使用するため、RIP や OSPF などの何らかの方法でユニキャストルーティングテーブルを構築してください。

4. ECMP環境では、マルチキャストトラフィックが通過する可能性がある全てのインターフェースでマルチキャストルーティングを有効にしてください。

#### 3.1.2. PIM ネイバー検出の設定

1. PIM-DM を有効にすると、PIM Hello メッセージを全ての PIM ルーターに対して送信することで PIM ネイバーを検出します。
   PIM Hello メッセージの以下のパラメータを変更することができます。

   - PIM Hello メッセージの保持時間を設定するには、 ip pim hello-holdtime コマンドで設定します。

   - PIM Hello メッセージの送信間隔を設定するには、 ip pim hello-interval コマンドで設定します。

2. ip pim neighbor-filter コマンドを使用すると、IP アクセスリストを適用することで特定の PIM ルーターと隣接関係を形成しないようにすることができます。

#### 3.1.3. PIM-DM フラッディング抑制機能の設定

1. PIM-DM ではディストリビューションツリーの維持のために 180 秒毎にフラッディングを行うので、フラッディング抑制のための State Refresh 機能がデフォルトで 有効 になっています。
   State Refresh 機能とは、マルチキャスト送信者が直接接続されたルーターからデフォルトで 60 秒ごとに PIM State Refresh メッセージが送信され、そのメッセージを受信したPIM ルーターは該当するグループの Expireタイマーを更新することにより、180秒毎のフラッディングを防止する機能です。
   PIM State Refreshメッセージの送信間隔を設定するには、 ip pim state-refresh origination-interval コマンドを使用します。

2. PIM-DMで、マルチキャストパケットの送信が停止された ( Prune ) インターフェースにおいて、新たにマルチキャスト受信者が接続された場合は、PIM Graft メッセージを上流の PIM ネイバーに対して送信します。
   Graft メッセージを受信した PIM ネイバーがインターフェースの Prune 状態を解除することで、新しく追加されたマルチキャスト受信者もすぐにマルチキャストパケットを受信できるようになります。
   デフォルトでは、Graftメッセージは送信が成功するまで再送を続けますが、 ip pim graft-retransmit コマンドで最大再送回数を設定することができます。

### 3.2. PIM-SM

PIM-SM の動作仕様について以下に示します。

#### 3.2.1. PIM-SM の基本設定

1. PIM-SM の 有効 / 無効 設定は、VLAN インターフェースに対して行います。
   デフォルト VLAN ( VLAN #1 ) に対する初期設定、VLAN 生成後の初期設定のどちらも 無効 です。
   ip pim sparse-mode コマンドにより、PIM-SM を有効にすることができます。
   PIM-SM を有効にすることで、自動的に IGMP も有効になりますが、 ip igmp コマンドで明示的に有効にすることを推奨します。
   PIM-SM を有効にする場合は、 ip multicast-routing コマンドでシステム全体の IP マルチキャストルーティング機能 ( デフォルト無効 ) を有効にしてください。
   また、 multicast コマンドで各ポートのマルチキャストルーティング機能 ( デフォルト有効 ) を有効にしてださい。

2. 対象 VLAN インターフェースで、PIMメッセージの送受信を停止するには、 ip pim sparse-mode passive コマンドを使用します。
   PIM ネイバーが存在せず、マルチキャスト受信者だけが接続されているインターフェースにおいて、PIMメッセージの送信を抑制したい場合などに用いられます。

3. PIM-SMはマルチキャストパケット転送に、ユニキャストルーティング経路表を使用するため、RIPやOSPFなどの何らかの方法でユニキャストルーティング経路表を構築してください。

4. ECMP環境では、マルチキャストトラフィックが通過する可能性がある全てのインターフェースでマルチキャストルーティングを有効にしてください。

#### 3.2.2. PIM ネイバー検出の設定

1. PIM-SM を有効にすると、PIM Hello メッセージを全ての PIM ルーターに対して送信することで PIM ネイバーを検出します。
   PIM Hello メッセージの以下のパラメータを変更することができます。

   - PIM Hello メッセージの保持時間を設定するには、 ip pim hello-holdtime コマンドを使用します。

   - PIM Hello メッセージの送信間隔を設定するには、 ip pim hello-interval コマンドを使用します。

2. ip pim neighbor-filter コマンドを使用すると、IP アクセスリストを適用することで特定の PIM ルーターと隣接関係を形成しないようにすることができます。

3. Helloメッセージにはデフォルトで Generation ID オプションが含まれており、 ip pim exclude-genid コマンドで Generation IDオプションを除外することができます。
   Generation IDはマルチキャストインターフェースがアップする度に再生成される ID で、 PIM ネイバーが再起動したときなどの障害検出に利用されます。

#### 3.2.3. DR ( Designated Router ) の設定

1. 同一 VLAN 上に複数の PIM ルーターが存在する場合は、その中の 1 台が DR (Designated Router) として選出されます。
   DR は、サブネット内で代表してマルチキャストパケットの転送の役割を持つルーターです。
   DR 選出時は、インターフェースごとに設定されている DR 優先度の値を比較して最も大きな値を持つルーターが DR となり、DR 優先度が等しい場合は、より大きいIP アドレスを持つルーターが DR となります。
   DRの優先度を設定するには、 ip pim dr-priority コマンドを使用します。

#### 3.2.4. RP ( Rendezvous Point ) の設定

1. PIM-SM において、マルチキャストトラフィックを転送するために RP ( Rendezvous Point ) は必ず定義する必要があり、マルチキャストグループごとに RP を設定します。
   マルチキャスト受信者からグループへの参加要求があった場合、共有ツリーの中心にある RP にマルチキャスト受信者が存在するルーターの情報が登録されます。
   一方、マルチキャスト送信者は RP に対して自身の存在を通知し、マルチキャストトラフィックは RP を経由してマルチキャスト受信者に転送されます。

2. RP の定義方法として、 ip pim rp address コマンドで静的に設定する方法の他に、BSR (Boot Strap Router)でマルチキャストグループと RP 間を自動的にマッピングする方法があります。
   BSR を用いる場合、まず PIM ネットワークで 1 台の BSR を選出する必要があります。C-BSR ( BSR 候補 ) のうち、BSR 優先度を比較して最も大きな値を持つルーターが BSR として選出されます。
   尚、BSR優先度が等しい場合は、より大きな IP アドレスを持つルーターが BSR となります。BSR が選出されると、C-RP ( RP 候補 ) は、C-RP 通知を BSR へ通知します。
   複数の C-RP が存在する場合、最小の RP 優先度を持つルーターを RP として選出し、RP の情報を BSR メッセージで全ての PIM ルーターに通知します。
   尚、RP 優先度が等しい場合は、最大のハッシュ値を持つものを RP として選出し、ハッシュ値も等しい場合は最大の IP アドレスを持つものを RP として選出します。

3. 静的に RP を設定するには、 ip pim rp-address コマンドを使用します。

4. BSR で自動的に RP をマッピングする際に C-RP (RP候補) として動作させるには、 ip pim rp-candidate コマンドを使用します。

5. ip pim rp-candidate コマンドでマルチキャストグループを指定しなかった場合、デフォルトでは Prefix Count=0 かつグループ情報なしの Candidate-RP-Advertisementメッセージを送信します。
   Prefix Count=1 で Group=224.0.0.0/4（すべてのマルチキャストグループ）の情報を含めた Candidate-RP-Advertisement メッセージを送信するには、 ip pim crp-fixed-prefix コマンドを使用します。

6. RP の情報は show ip pim rp mapping コマンドで確認できます。

7. RP 選出候補の情報は、 show ip pim rp-hash コマンドで確認できます。

8. BSR から学習した RP の情報は、 clear ip pim sparse-mode bsr rp-set コマンドで削除できます。

#### 3.2.5. BSR ( Boot Strap Router ) の設定

1. C-BSR (BSR候補) として動作させるには、 ip pim bsr-candidate コマンドを使用します。

2. BSR で RP を選択する際、デフォルトでは RP 優先度を比較して、最小の RP 優先度を持つルーターを RP として選択します。
   RP 優先度を無視してハッシュ関数で RP を選択するようにする場合は、 ip pim ignore-rp-set-priority コマンドを使用します。

3. PIM ネットワークのマルチキャスト境界において、BSR メッセージの送受信を停止するには ip pim bsr-border コマンドを使用します。

4. BSR の情報は show ip pim bsr-router コマンドで確認できます。

#### 3.2.6. Register メッセージの設定

1. マルチキャスト送信者が接続されたファーストホップルーターは、マルチキャスト送信者の存在を RP に通知するために、RP へ向けて Register メッセージが送信されます。
   Register メッセージ送信時は、マルチキャスト送信者が接続されている RPF インターフェースの IP アドレスを送信元アドレスとして使用しますが、 ip pim register コマンドにより明示的に送信元アドレスを指定することもできます。

2. RP において Register メッセージのフィルタリングを行うには、 ip pim accept-register コマンドを使用します。
   フィルタリングには IP アクセスリストを使用し、マルチキャスト送信者の IPv4 アドレスでフィルタリングを行います。

3. Register メッセージの送信レート ( 1秒間に送信できる最大パケット数) を設定するには、 ip pim register-rate-limit コマンドを使用します。

4. Registerメッセージのチェックサム計算方法は、デフォルトではヘッダーのみを対象として計算しています。 ip pim register-checksum all コマンドによりパケット全体を対象としてチェックサムを計算することもできます。

5. ファーストホップルーターが Register-Stop メッセージを受信すると、 Register メッセージの送信を一定時間停止します。
   Register-Stop メッセージを受信後に再度 Register メッセージの送信するまでの時間 ( Register Suppression Timeout ) は、デフォルトでは 60 秒で、 ip pim register-suppression コマンドにより変更できます。

#### 3.2.7. マルチキャスト経路の構築に関する設定

1. PIM ルーターはマルチキャスト経路を構築するために、定期的に Join / Prune メッセージを送信します。
   PIM Join / Prune メッセージの送信間隔はデフォルトで 60 秒です。
   ip pim jp-timer コマンドで Join / Prune メッセージの送信間隔を変更することができます。

2. マルチキャスト経路情報の (S, G) エントリーは Keepalive Timer (KAT) をもち、RP においてマルチキャスト送信者からのデータトラフィックがなくなってから KAT 秒が経過すると (S, G) エントリーが削除されます。
   この KAT の値は ip pim rp-register-kat コマンドにより設定することができます。 ip pim rp-register-kat コマンドの設定が存在しない場合、KAT の値は自動計算により決定されます。

3. PIM-SM では、マルチキャスト受信者がインターフェース配下に存在するラストホップルーターとして動作しているとき、マルチキャスト伝送経路を RP 経由の共有ツリーによる伝送から最短ツリー (SPT) に切り替えることができます。
   デフォルトで SPT への移行は 有効 です。
   SPTへの移行を無効にし、常に RP 経由でマルチキャストパケット転送を行うようにするには、 ip pim spt-disable コマンドを使用します。

#### 3.2.8. PIM-SSM の設定

1. PIM-SSM (PIM Source Specific Multicast)は、PIM-SM を拡張した方式で、マルチキャスト受信者が特定のマルチキャスト送信者を指定することで、RP を経由せずに最短ツリーでマルチキャスト伝送を行います。
   PIM-SSM を有効にするには、 ip pim ssm コマンドで設定します。

2. PIM-SSM では、標準 SSM レンジ 232.0.0.0/8 (232.0.0.0～232.255.255.255) の範囲のマルチキャストグループアドレスを使用しますが、 ip pim ssm コマンドで 任意のレンジを指定することができます。

3. SSM レンジ内のマルチキャストグループを利用するためには、マルチキャスト受信者は IGMPv3 に対応している必要があります。
   ただし、IGMP の SSM マッピング機能を有効化することで、IGMPv1 / IGMPv2 のマルチキャスト受信者も、SSM レンジ内のグループに参加することができます。

#### 3.2.9. 旧規格との互換設定

1. 旧規格の PIMv1 で使用される RP-reachability メッセージのチェックを有効にするには、 ip pim register-rp-reachability コマンドを使用します。
   デフォルトでは、 RP-reachability メッセージのチェックは行いません。

2. ユニキャスト BSM の送受信を有効にするには、 ip pim unicast-bsm コマンドを使用します。

## 4. 関連コマンド

関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照願います。

- PIM 関連共通コマンド一覧

  操作項目 | 操作コマンド
  --- | ---
  Hello メッセージの送信間隔の設定 | ip pim hello-interval
  Hello メッセージの保持時間の設定 | ip pim hello-holdtime
  PIM 隣接関係を形成しないようにする設定 | ip pim neighbor-filter
  PIM インターフェースの情報表示 | show ip pim interface
  PIM マルチキャスト経路表の表示 | show ip pim mroute
  PIM ネイバー情報の表示 | show ip pim neighbor
  PIM で使用されている次ホップ情報の表示 | show ip pim nexthop

- PIM-DM 関連コマンド一覧

  操作項目 | 操作コマンド
  --- | ---
  PIM-DMの有効／無効設定 | ip pim dense-mode
  State Refreshメッセージの送信間隔の設定 | ip pim state-refresh origination interval
  PIM Graft メッセージの最大再送回数の設定 | ip pim graft-retransmit
  PIM メッセージの推定転送遅延時間の設定 | ip pim propagation-delay

- PIM-SM 関連コマンド一覧

  操作項目 | 操作コマンド
  --- | ---
  PIM-SMの有効／無効設定 | ip pim sparse-mode
  HelloメッセージにGenIDを含めないようにする設定 | ip pim exclude-genid
  Designated Router優先度の設定 | ip pim dr-priority
  静的 RP の設定 | ip pim rp-address
  C-RPとしての動作の有効／無効設定 | ip pim rp-candidate
  C-RP Advertisementメッセージの送信方法の設定 | ip pim crp-fixed-prefix
  C-BSRとしての動作の有効／無効設定 | ip pim bsr-candidate
  BSRメッセージの送受信停止の設定 | ip pim bsr-border
  RP優先度を無視してハッシュ関数のみでRPを選択する設定 | ip pim ignore-rp-set-priority
  Registerメッセージの送信元IPアドレスの設定 | ip pim register-source
  RPでRegisterメッセージのフィルタリング有効／無効設定 | ip pim accept-register
  Registerメッセージの1秒間送信可能パケット数の設定 | ip pim register-rate-limit
  Registerメッセージのチェックサムの計算方法の設定 | ip pim register-checksum
  Register Suppression Timeout の設定 | ip pim register-suppression
  Join/Pruneメッセージの送信間隔の設定 | ip pim jp-timer
  (S,G)エントリーの Keepalive Timer の設定 | ip pim rp-register-kat
  SPTへの移行を無効にする設定 | ip pim spt-disable
  PIM-SSMの有効／無効設定 | ip pim ssm
  ユニキャストBSMの送受信の有効／無効設定 | ip pim unicast-bsm
  RP-reachabilityメッセージのチェックの有効／無効設定 | ip pim register-rp-reachability
  RPの情報表示 | show ip pim rp mapping
  RP選出候補情報の表示 | show ip pim rp-hash
  ブートストラップルーターの情報表示 | show ip pim bsr-router
  BSRから学習したRP情報の削除 | clear ip pim sparse-mode bsr rp-set

## 5. コマンド実行例

### 5.1. PIM-DM の設定

PIM-DM を使用する場合、PIM 関連の設定はすべての PIM ルーターにおいて同じです。

■SWX1 の設定

1. VLAN #10, VLAN #20 を作成します。

       SWX1(config)#vlan database
       SWX1(config-vlan)#vlan 10 (1)
       SWX1(config-vlan)#vlan 20 (2)
       SWX1(config-vlan)#exit

   1 | VLAN #10 を作成する
   2 | VLAN #20 を作成する

2. port1.1 を VLAN #10に、port1.2 を VLAN #20にアクセスポートとして所属させます。

       SWX1(config)#interface port1.1
       SWX1(config-if)#switchport access vlan 10 (1)
       SWX1(config-if)#exit
       SWX1(confige)#interface port1.2
       SWX1(config-if)#switchport access vlan 20 (2)
       SWX1(config-if)#exit

   1 | port1.1 を VLAN #10 に所属させる
   2 | port1.2 を VLAN #20 に所属させる

3. VLAN #10, VLAN #20 に対して、 IP アドレスを設定します。

       SWX1(config)#interface vlan10
       SWX1(config-if)#ip address 192.168.10.1/24 (1)
       SWX1(config-if)#exit
       SWX1(config)#interface vlan20
       SWX1(config-if)#ip address 192.168.20.1/24 (2)
       SWX1(config-if)#exit

   1 | VLAN #10 の IP アドレスを設定する
   2 | VLAN #20 の IP アドレスを設定する

4. IP マルチキャストルーティングを有効にします。

       SWX(config)# ip multicast-routing

5. VLAN #10, VLAN #20 に対して、IGMP と PIM-DM を有効にします。

       SWX1(config)#interface vlan10,vlan20
       SWX1(config-if)#ip pim dense-mode (1)
       SWX1(config-if)#ip igmp enable (2)
       SWX1(config-if)#exit

   1 | VLAN #10, VLAN #20 の PIM-DM を有効にする
   2 | VLAN #10, VALN #20 の IGMP を有効にする

6. ユニキャスト経路の設定を行います。

       SWX1(config)# ip route 192.168.30.0/24 192.168.20.2

■SWX2 の設定

1. VLAN #20, VLAN #30 を作成します。

       SWX2(config)#vlan database
       SWX2(config-vlan)#vlan 20 (1)
       SWX2(config-vlan)#vlan 30 (2)
       SWX2(config-vlan)#exit

   1 | VLAN #20 を作成する
   2 | VLAN #30 を作成する

2. port1.1 を VLAN #30に、port1.2 を VLAN #20にアクセスポートとして所属させます。

       SWX2(config)#interface port1.1
       SWX2(config-if)#switchport access vlan 30 (1)
       SWX2(config-if)#exit
       SWX2(confige)#interface port1.2
       SWX2(config-if)#switchport access vlan 20 (2)
       SWX2(config-if)#exit

   1 | port1.1 を VLAN #30 に所属させる
   2 | port1.2 を VLAN #20 に所属させる

3. VLAN #20, VLAN #30 に対して、 IP アドレスを設定します。

       SWX2(config)#interface vlan20
       SWX2(config-if)#ip address 192.168.20.2/24 (1)
       SWX2(config-if)#exit
       SWX2(config)#interface vlan30
       SWX2(config-if)#ip address 192.168.30.1/24 (2)
       SWX2(config-if)#exit

   1 | VLAN #20 の IP アドレスを設定する
   2 | VLAN #30 の IP アドレスを設定する

4. IP マルチキャストルーティングを有効にします。

       SWX2(config)# ip multicast-routing

5. VLAN #20, VLAN #30 に対して、IGMP と PIM-DM を有効にします。

       SWX2(config)#interface vlan20,vlan30
       SWX2(config-if)#ip pim dense-mode (1)
       SWX2(config-if)#ip igmp enable (2)
       SWX2(config-if)#exit

   1 | VLAN #20, VLAN #30 の PIM-DM を有効にする
   2 | VLAN #20, VALN #30 の IGMP を有効にする

6. ユニキャスト経路の設定を行います。

       SWX2(config)# ip route 192.168.10.0/24 192.168.20.1

■確認

1. マルチキャスト送信者からマルチキャストトラフィックを送信後、SWX1でマルチキャスト経路を確認します。

       SWX1#show ip mroute

       IP Multicast Routing Table
       Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
       Timers: Uptime/Stat Expiry
       Interface State: Interface (TTL)

       (192.168.30.100, 239.0.0.1), uptime 00:00:10
       Owner PIM-DM, Flags: F
         Incoming interface: vlan20
         Outgoing interface list:
           vlan10 (1)

### 5.2. PIM-SM の設定

PIM-SM では、RP を設定する必要があります。
自動的に RP を選択するためには、RP に加えて BSR を設定する必要があります。静的に RP を設定する場合は、BSR は必要ありません。

#### 5.2.1. PIM-SMの設定例 (BSR使用時)

以下の例では、BSR を用いて自動的に RP を選択する場合の PIM-SM の設定例について説明します。
SWX1 に RP 候補 ( C-RP ) と BSR 候補 ( C-BSR ) の設定を行い、SWX2 を RP および BSR に設定します。
尚、RP 候補 や BSR 候補の設定は、複数の PIM ルーターで設定し、冗長化しておくことを推奨します。

■SWX1 ( C-RP, C-BSR ) の設定

1. VLAN #10, VLAN #20 を作成します。

       SWX1(config)#vlan database
       SWX1(config-vlan)#vlan 10 (1)
       SWX1(config-vlan)#vlan 20 (2)
       SWX1(config-vlan)#exit

   1 | VLAN #10 を作成する
   2 | VLAN #20 を作成する

2. port1.1 を VLAN #10に、port1.2 を VLAN #20にアクセスポートとして所属させます。

       SWX1(config)#interface port1.1
       SWX1(config-if)#switchport access vlan 10 (1)
       SWX1(config-if)#exit
       SWX1(confige)#interface port1.2
       SWX1(config-if)#switchport access vlan 20 (2)
       SWX1(config-if)#exit

   1 | port1.1 を VLAN #10 に所属させる
   2 | port1.2 を VLAN #20 に所属させる

3. VLAN #10, VLAN #20 に対して、 IP アドレスを設定します。

       SWX1(config)#interface vlan10
       SWX1(config-if)#ip address 192.168.10.1/24 (1)
       SWX1(config-if)#exit
       SWX1(config)#interface vlan20
       SWX1(config-if)#ip address 192.168.20.1/24 (2)
       SWX1(config-if)#exit

   1 | VLAN #10 の IP アドレスを設定する
   2 | VLAN #20 の IP アドレスを設定する

4. IP マルチキャストルーティングを有効にします。

       SWX(config)# ip multicast-routing

5. VLAN #10, VLAN #20 に対して、IGMP と PIM-SM を有効にします。

       SWX1(config)#interface vlan10,vlan20
       SWX1(config-if)#ip pim sparse-mode (1)
       SWX1(config-if)#ip igmp enable (2)
       SWX1(config-if)#exit

   1 | VLAN #10, VLAN #20 の PIM-SM を有効にする
   2 | VLAN #10, VALN #20 の IGMP を有効にする

6. RP候補として動作させ、VLAN #10 に設定された IP アドレス (192.168.10.1) を広告します。このとき、RP 優先度はデフォルト値のままとします。

       SWX(config)# ip pim rp-candidate vlan10

7. BSR候補として動作させ、VLAN #10 に設定された IP アドレス (192.168.10.1) を広告します。このとき、BSR 優先度はデフォルト値のままとします。

       SWX(config)# ip pim bsr-candidate vlan10

8. ユニキャスト経路の設定を行います。

       SWX1(config)# ip route 192.168.30.0/24 192.168.20.2

■SWX2 (RP, BSR) の設定

1. VLAN #20, VLAN #30 を作成します。

       SWX2(config)#vlan database
       SWX2(config-vlan)#vlan 20 (1)
       SWX2(config-vlan)#vlan 30 (2)
       SWX2(config-vlan)#exit

   1 | VLAN #20 を作成する
   2 | VLAN #30 を作成する

2. port1.1 を VLAN #30に、port1.2 を VLAN #20にアクセスポートとして所属させます。

       SWX2(config)#interface port1.1
       SWX2(config-if)#switchport access vlan 30 (1)
       SWX2(config-if)#exit
       SWX2(confige)#interface port1.2
       SWX2(config-if)#switchport access vlan 20 (2)
       SWX2(config-if)#exit

   1 | port1.1 を VLAN #30 に所属させる
   2 | port1.2 を VLAN #20 に所属させる

3. VLAN #20, VLAN #30 に対して、 IP アドレスを設定します。

       SWX2(config)#interface vlan20
       SWX2(config-if)#ip address 192.168.20.2/24 (1)
       SWX2(config-if)#exit
       SWX2(config)#interface vlan30
       SWX2(config-if)#ip address 192.168.30.1/24 (2)
       SWX2(config-if)#exit

   1 | VLAN #20 の IP アドレスを設定する
   2 | VLAN #30 の IP アドレスを設定する

4. IP マルチキャストルーティングを有効にします。

       SWX2(config)# ip multicast-routing

5. VLAN #20, VLAN #30 に対して、IGMP と PIM-SM を有効にします。

       SWX2(config)#interface vlan20,vlan30
       SWX2(config-if)#ip pim sparse-mode (1)
       SWX2(config-if)#ip igmp enable (2)
       SWX2(config-if)#exit

   1 | VLAN #20, VLAN #30 の PIM-SM を有効にする
   2 | VLAN #20, VALN #30 の IGMP を有効にする

6. RP候補として動作させ、VLAN #30 に設定された IP アドレス (192.168.30.1) を広告します。このとき、優先的に RP として選ばれるように RP 優先度をデフォルト値の 192 よりも小さい値に設定します。

       SWX(config)# ip pim rp-candidate vlan30 priority 190

7. BSR候補として動作させ、VLAN #30 に設定された IP アドレス (192.168.30.1) を広告します。このとき、優先的に BSR として選ばれるように BSR 優先度をデフォルト値の 64 よりも大きい値に設定します。

       SWX(config)# ip pim bsr-candidate vlan30 0 70

8. ユニキャスト経路の設定を行います。

       SWX2(config)# ip route 192.168.10.0/24 192.168.20.1

■確認

1. マルチキャスト送信者からマルチキャストトラフィックを送信後、SWX1でマルチキャスト経路を確認します。

       SWX1#show ip mroute

       IP Multicast Routing Table
       Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
       Timers: Uptime/Stat Expiry
       Interface State: Interface (TTL)

       (192.168.30.100, 239.0.0.1), uptime 00:02:46, stat expires 00:03:14
       Owner PIM-SM, Flags: TF
         Incoming interface: vlan20
         Outgoing interface list:
           vlan10 (1)

2. RP として SWX2 (192.168.30.1) が選択されていることを確認します。

       SWX1#show ip pim rp-hash 239.0.0.1
           RP: 192.168.30.1
           Info source: 192.168.30.1, via bootstrap

#### 5.2.2. PIM-SMの設定例 (静的RP指定時)

静的に RP を指定する場合の PIM-SM の設定例について説明します。
静的に RP を指定する場合は、すべての PIM ルーターにおいて RP の IP アドレスを指定する必要があり、すべての PIM ルーターで同じ設定となります。
BSR 使用時の PIM-SM の設定例 の ip pim rp-candidate コマンドと ip pim bsr-candidate コマンドの代わりに、すべての PIM ルーターで以下のコマンドを実行します。

1. RP の IP アドレスとして 192.168.30.1 を指定します。

       SWX(config)# ip pim rp-address 192.168.30.1

#### 5.2.3. PIM-SSMの設定例

以下の例では、PIM-SSM の設定例について説明します。
PIM-SSM では PIM-SM を有効にする必要がありますが、 マルチキャスト送信者を限定する方式 であるため RP や BSR の指定は不要となり、すべての PIM ルーターで同じ設定となります。
SSM レンジ外のマルチキャストグループと PIM-SSM を併用する場合は RP の設定が必要となるためご注意ください。
BSR 使用時の PIM-SM の設定例 の ip pim rp-candidate コマンドと ip pim bsr-candidate コマンドの代わりに、以下のコマンドを設定します。
ただし、PIM-SSM を使用する場合は、マルチキャスト受信者がグループ参加要求として送信する IGMPv3 Report に マルチキャスト送信者の IPv4 アドレス の指定を含める必要があるため、ご注意ください。

1. PIM-SSM を有効にします。SSM レンジとして 239.0.0.1 を使用します。 ( ip pim ssm コマンドで default キーワードを指定したときは、標準 SSM レンジ 232.0.0.0/8 を使用します。)

       SWX(config)# access-list 1 permit any 239.0.0.1 0.0.0.0 any
       SWX(config)# ip pim ssm range 1

尚、IGMPv1 / IGMPv2 で動作しているマルチキャスト受信者が SSM を利用する場合、IGMP SSM マッピング機能を使用します。
IGMP Querier でマルチキャストグループとマルチキャスト送信者の対応付けをあらかじめ行っておくことで、当該グループへの (S, G) Joinを可能にします。
以下の例では、IGMPv1 / IGMPv2 の (*, 239.0.0.1) の参加要求は、IGMPv3 の (192.168.30.1, 239.0.0.1) への参加要求とみなされます。

1. IGMP SSM マッピング機能を有効にします。

       SWX(config)# ip igmp ssm-map enable

2. マルチキャストグループ 239.0.0.1 とマルチキャスト送信者 192.168.30.1 の対応付けを行います。

       SWX(config)# access-list 1 permit any 239.0.0.1 0.0.0.0 any
       SWX(config)# ip igmp ssm-map static 1 192.168.30.1

## 6. 注意事項

特になし

## 7. 関連文書

- IPマルチキャスト : IGMP

Search result
No more search results.
There are no topics that match your search query.