IGMP プロキシの設定

IGMP プロキシの前提条件

  • IGMP UDL 上のすべてのデバイスに、同じサブネット アドレスがあること。UDL 上のすべてのデバイスで、同じサブネット アドレスを持つことができない場合、アップストリーム デバイスは、ダウンストリーム デバイスが接続されているすべてのサブネットに一致するセカンダリ アドレスで設定される必要があります。

  • IP マルチキャストがイネーブルになり、PIM インターフェイスが設定されます。IGMP プロキシ用の PIM インターフェイスを設定する際、インターフェイスがスパースモード領域で稼働中で、静的 RP、ブートストラップ(BSR)、またはリスナー機能付きの Auto-RP を実行している場合は、PIM スパースモード(PIM-SM)を使用します。

IGMP プロキシについて

IGMP プロキシ

IGMP プロキシは、アップストリーム ネットワークがソースのマルチキャスト グループに、ダウンストリーム ルータに直接接続されていない単方向リンク ルーティング(UDLR)環境のホストが加入できるようにします。

IGMPプロキシを実装するには、次の 2 つの方法があります。

  • 単一のアップストリーム インターフェイス用の IGMP プロキシ

  • 複数のアップストリーム インターフェイス用の IGMP プロキシ

単一のアップストリーム インターフェイス用の IGMP プロキシ

次のは、2 つの UDLR シナリオを示すトポロジ例です。

  • 従来型の UDL ルーティングのシナリオ:直接接続されたレシーバがある UDL デバイス。

  • IGMP プロキシのシナリオ:直接接続されたレシーバのない UDL デバイス。

IGMP UDL は、アップストリームおよびダウンストリーム デバイス上にある必要はありません。


(注)  


次の図および例では設定内のルータを使用していますが、任意のデバイス(ルータやスイッチ)を使用できます。


シナリオ 1:従来型の UDLR のシナリオ(受信先が直接接続されている UDL デバイス)

シナリオ 1 では、IGMP プロキシ メカニズムは必要ありません。このシナリオでは、次の一連のイベントが発生します。

  1. ユーザー 2 がグループ G の対象を要求する IGMP メンバーシップ レポートを送信します。

  2. ルータ B は、IGMP メンバーシップ レポートを受信し、LAN B のグループ G の転送エントリを追加し、UDLR アップストリーム デバイスであるルータ A に IGMP レポートをプロキシします。

  3. IGMP レポートは、インターネット リンク間でプロキシされます。

  4. ルータ A は IGMP プロキシを受信し、単方向リンクの転送エントリを保持します。

シナリオ 2:IGMP プロキシのシナリオ(受信先が直接接続されていない UDL デバイス)

シナリオ 2 の場合、アップストリーム ネットワークがソースのマルチキャスト グループに、ダウンストリーム デバイスに直接接続されていないホストが加入できるように、IGMP プロキシ メカニズムが必要です。このシナリオでは、次の一連のイベントが発生します。

  1. ユーザー 1 がグループ G の対象を要求する IGMP メンバーシップ レポートを送信します。

  2. ルータ C が RP(ルータ B)に PIM Join メッセージをホップバイホップで送信します。

  3. ルータ B で PIM 加入メッセージを受信し、LAN B 上のグループ G に対する転送エントリが追加されます。

  4. ルータ B では、その mroute テーブルが定期的にチェックされ、インターネット リンクを介してアップストリーム UDL デバイスに IGMP メンバーシップ レポートがプロキシされます。

  5. ルータ A は単方向リンク(UDL)転送エントリを作成し、維持します。

エンタープライズ ネットワークでは、サテライトを介して IP マルチキャスト トラフィックを受信し、ネットワーク中にトラフィックを転送することができる必要があります。シナリオ 2 は、受信ホストがダウンストリーム デバイスのルータ B に直接接続する必要があるため、単方向リンク ルーティング(UDLR)だけでは不可能です。IGMP プロキシ メカニズムを使用すると、マルチキャスト転送テーブル内の (*, G) エントリに対し IGMP レポートを作成することで、この制限が取り除かれます。そのため、このシナリオを機能させるには、インターフェイスでプロキシされた (*, G) 静的マルチキャストルート(mroute)エントリの IGMP レポートの転送をイネーブルにして(ip igmp mroute-proxy コマンドを使用)、mroute プロキシサービスをイネーブルにし(ip igmp proxy-service コマンドを使用)、PIM 対応ネットワークと可能性があるメンバに導く必要があります。


(注)  


PIM メッセージはアップストリームに転送されないため、各ダウンストリーム ネットワークとアップストリーム ネットワークのドメインは別になります。


シナリオ 3:UDLR を使用しない IGMP プロキシシナリオ

シナリオ 3 では、IGMP プロキシメカニズムを使用して、ホストが UDLR リンクを使用せずにアップストリーム ネットワークからトラフィックを受信できるようにします。このシナリオでは、次の一連のイベントが発生します。

  1. ホストは PIM ドメイン 1 にあり、IGM メンバーシップレポート(参加要求)をルータ D に送信してグループ G の対象を要求します。ルータ D は IGMP 参加を PIM 参加に変換し、ルータ C に送信します。この要求は、ルータ C からルータ A にアップストリームで送信されます。ルータは 2 つの異なる PIM ドメイン(PIM ネイバーではない)にあり、代わりに GRE トンネルを介して接続されています。

  2. ルータ C は GIM トンネルエンドポイント(ルータ A)に転送できるように、PIM 参加メッセージを IGMP プロキシ参加に変換します。


    (注)  


    IGMP プロキシ加入メッセージは、1 ホップでのみ転送できます。

    上のでは、GRE トンネルはルータ C とルータ A の間でこの単一のホップを提供しています(ルータ B をバイパス)。

    GRE トンネルがない場合、異なる PIM ドメインのデバイスには、直接(バックツーバック)接続されたインターフェイスが必要です。
  3. IGMP プロキシ参加がルータ A に到達すると、PIM 参加メッセージとして送信元デバイスに転送されます。

複数のアップストリーム インターフェイス用の IGMP プロキシ

IGMP プロキシを使用すると、複数のアップストリーム インターフェイスからデータを要求することもできます。ネットワーク内のアップストリームデバイス数が多い場合は、この方法で IGMP プロキシを実装できます。この方法を使用する場合、前のセクションで説明した 3 つのシナリオのいずれかによって、単一のアップストリームデバイスに IGMP プロキシを実装することもできます。

この方法では、IGMP プロキシを使用して、複数のアップストリームデバイスからトラフィックを受信できます。次の一連のイベントが発生します。

  1. ホストは PIM ドメイン 1 にあり、複数の IGMP メンバーシップレポートをルータ C に送信して(加入要求)、異なるグループへの関心を要求します。ルータ C は IGMP 加入を PIM 加入に変換し、ルータ B に送信します。これらの要求は、次にルータ B からルータ A にアップストリームで送信する必要があります。ルータは 2 つの異なる PIM ドメイン内にあります(PIM ネイバーではありません)。

  2. ルータ B は PIM 加入メッセージを IGMP プロキシ加入メッセージに変換して、上位のインターフェイスに転送できるようにします。

  3. クラスマップはグローバルに設定されます。このクラスマップには、マルチキャストグループに関する情報を記述します。次の条件が満たされると、異なるマルチキャストグループの IGMP プロキシ加入が送信されます。

    • グループに (*, G) または (S, G) エントリがある。

    • (*, G) または (S, G) エントリに NULL ではない OIF リストがある。

  4. IGMP プロキシのインターバルで、異なるグループの IGMP プロキシ加入がそれぞれのアップストリーム インターフェイスを介して送信されます。

  5. IGMP プロキシ加入メッセージがルータ A に到達すると、PIM 加入メッセージとしてそれぞれの送信元デバイスに転送されます。

IGMP プロキシの設定方法

IGMP UDLR に対するアップストリーム UDL デバイスの設定

IGMP UDLR に対するアップストリーム UDL デバイスを設定するには、この作業を実行します。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface type number

例:


Device(config)# interface gigabitethernet 1/0/0

インターフェイス コンフィギュレーション モードを開始します。

  • type および number 引数に、アップストリーム デバイスの UDL として使用するインターフェイスを指定します。

ステップ 4

ip igmp unidirectional-link

例:


Device(config-if)# ip igmp unidirectional-link

インターフェイス上の IGMP を、IGMP UDLR に対して単方向になるよう設定します。

ステップ 5

end

例:


Device(config-if)# end

現在のコンフィギュレーション セッションを終了して、特権 EXEC モードに戻ります。

IGMP プロキシ サポート付きの IGMP UDLR に対するダウンストリーム UDL デバイスの設定

IGMP プロキシ サポート付きの IGMP UDLR に対するダウンストリーム UDL デバイスを設定するには、この作業を実行します。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface type number

例:


Device(config)# interface gigabitethernet 0/0/0

インターフェイス コンフィギュレーション モードを開始します。

  • type および number 引数に、IGMP UDLR に対するダウンストリーム デバイスの UDL として使用するインターフェイスを指定します。

ステップ 4

ip igmp unidirectional-link

例:


Device(config-if)# ip igmp unidirectional-link

インターフェイス上の IGMP を、IGMP UDLR に対して単方向になるよう設定します。

ステップ 5

exit

例:


Device(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 6

interface type number

例:


Device(config)# interface gigabitethernet 1/0/0

インターフェイス コンフィギュレーション モードを開始します。

  • type および number 引数で、間接的に接続されているホストの方向に向いているインターフェイスを選択します。

ステップ 7

ip igmp mroute-proxy type number

例:


Device(config-if)# ip igmp mroute-proxy loopback 0 

プロキシされた (*, G) マルチキャスト スタティック ルート(mroute)エントリの IGMP レポートの転送をイネーブルにします。

  • この手順は、マルチキャスト転送テーブルにあるすべての (*, G) 転送エントリに対するプロキシ サービス インターフェイスへの、IGMP レポートの転送をイネーブルにするために実行されます。

  • この例では、ギガビット イーサネット インターフェイス 1/0/0 で、ギガビット イーサネット インターフェイス 1/0/0 に転送される mroute テーブルのすべてのグループのループバック インターフェイス 0 に IGMP レポートを送信するように要求する ip igmp mroute-proxy コマンドが設定されます。

ステップ 8

exit

例:


Device(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 9

interface type number

例:


Device(config)# interface loopback 0

指定したインターフェイスに対してインターフェイス コンフィギュレーション モードを開始します。

  • この例では、ループバック インターフェイス 0 が指定されます。

ステップ 10

ip igmp helper-address udl interface-type interface-number

例:


Device(config-if)# ip igmp helper-address udl gigabitethernet 0/0/0

UDLR で IGMP ヘルパーを設定します。

  • このステップで、ダウンストリーム デバイスが受信したホストから interface-type および interface-number 引数で指定されたインターフェイスに関連付けられた UDL に接続されているアップストリーム デバイスへの IGMP レポートをヘルパー処理できるようになります。

  • トポロジ例では、IGMP ヘルパーはダウンストリーム デバイスのループバック インターフェイス 0 に設定されます。そのため、ループバック インターフェイス 0 が、ホストからギガビット イーサネット インターフェイス 0/0/0 に接続されているアップストリーム デバイスへの IGMP レポートをヘルパー処理するように設定されます。

ステップ 11

ip igmp proxy-service

例:


Device(config-if)# ip igmp proxy-service 

mroute プロキシ サービスをイネーブルにします。

  • mroute プロキシサービスがイネーブルのときに、IGMP クエリインターバルに基づいて ip igmp mroute-proxy コマンド(ステップ 7 を参照)で設定されたインターフェイスに一致する、(*, G) 転送エントリの静的 mroute テーブルが、デバイスによって定期的にチェックされます。一致が存在する場合、1 つの IGMP レポートがこのインターフェイスで作成され、受信されます。

(注)  

 

ip igmp proxy-service コマンドは、ip igmp helper-address (UDL)コマンドとともに使用することを目的としています。

  • この例では、ip igmp mroute-proxy コマンドで登録されているインターフェイスに対するすべてのグループのインターフェイスに対して IGMP レポートの転送をイネーブルにするように、ループバック インターフェイス 0 で ip igmp proxy-service コマンドが設定されます(ステップ 7 を参照してください)。

ステップ 12

end

例:


Device(config-if)# end

現在のコンフィギュレーション セッションを終了して、特権 EXEC モードに戻ります。

ステップ 13

show ip igmp interface

例:


Device# show ip igmp interface

(任意)インターフェイスに関するマルチキャスト関連情報を表示します。

ステップ 14

show ip igmp udlr

例:


Device# show ip igmp udlr

(任意)設定された UDL ヘルパー アドレスがあるインターフェイス上で、マルチキャスト グループに直接接続されている UDLR 情報を表示します。

UDLR を使用しない IGMP プロキシ加入向けダウンストリームデバイスの設定

UDLR を使用せずに IGMP プロキシ向けダウンストリームデバイスを設定するには、次の作業を実行します。

(上のによると、すべての手順はルータ C で行います)

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device > enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface type number

例:

Device(config)# interface gigabitethernet 1/0/0

インターフェイス コンフィギュレーション モードを開始します。

type 引数および number 引数では、ホストに接続されているインターフェイスを指定します。

ステップ 4

ip igmp mroute-proxy type number

例:

Device(config-if)# ip igmp mroute-proxy loopback 0 

マルチキャスト転送テーブル内のすべてのプロキシ (*, G) マルチキャスト静的ルート(mroute)エントリを転送するために、指定したプロキシ サービス インターフェイスへの IGMP レポートの転送を有効にします。

この例では、ループバック インターフェイス 0 が指定したプロキシ サービス インターフェイスです。

ステップ 5

exit

例:

Device(config-if)# exit

インターフェイス コンフィギュレーション モードを終了し、グローバル設定モードに戻ります。

ステップ 6

interface type number

例:

Device(config)# interface loopback 0

指定したプロキシ サービス インターフェイスのコンフィギュレーション モードを開始します。

この例では、ループバック インターフェイス 0 が指定されます。

ステップ 7

ip igmp helper-address ip-address

例:

Device(config-if)# ip igmp helper-address 10.0.0.2

IGMP プロキシ加入用の IGMP ヘルパーを設定します。

ip-address 引数には、IGMP プロキシ加入メッセージを送る必要のあるアップストリームデバイスの IP アドレスを指定します。

トポロジ例では、IGMP ヘルパーはダウンストリームデバイス(ルータ C)のループバック インターフェイス 0 に設定されます。

このコマンドにより、ルータ D から受信した PIM 加入メッセージを IGMP プロキシ加入メッセージに変換し、アップストリームデバイス(ルータ A)に転送するためのループバック インターフェイス 0 が設定されます。

ステップ 8

ip igmp proxy-service

例:

Device(config-if) ip igmp proxy-service

mroute プロキシ サービスをイネーブルにします。

mroute プロキシサービスがイネーブルのときに、IGMP クエリインターバルに基づいて ip igmp mroute-proxy コマンド(ステップ 7 を参照)で設定されたインターフェイスに一致する、(*, G) 転送エントリのスタティック mroute テーブルが、デバイスによって定期的にチェックされます。一致が存在する場合、1 つの IGMP レポートがこのインターフェイスで作成され、受信されます。

(注)  

 

ip igmp proxy-service コマンドは、ip igmp helper-address コマンドとともに使用することを目的としています。

ステップ 9

end

例:

Device(config-if)# end

現在のコンフィギュレーション セッションを終了して、特権 EXEC モードに戻ります。

ステップ 10

show ip igmp interface

例:

Device# show ip igmp interface

(任意)インターフェイスに関するマルチキャスト関連情報を表示します。

複数のアップストリーム インターフェイスの IGMP プロキシ向けダウンストリームデバイスの設定

複数のアップストリーム インターフェイス向け IGMP プロキシのダウンストリームデバイスを設定するには、次の作業を実行します

(上記のを参照して、アップストリーム デバイスに接続されているルータ B のインターフェイスですべての手順を実行してください)。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device > enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

class-map type multicast-flows name

例:

Device(config-if)# class-map type multicast-flows proxymap

異なるマルチキャストグループのアップリンク インターフェイスが定義されているクラスマップを使用して、インターフェイスを設定します。

マルチキャストグループの範囲は、225.0.0.1 〜 225.0.0.10 です。

ステップ 4

interface type number

例:

Device(config)# interface ethernet 0/0

インターフェイス コンフィギュレーション モードを開始します。

type 引数および number 引数では、ホストに接続されているインターフェイスを指定します。

ステップ 5

ip igmp upstream-proxy class-map-name

例:

Device(config-if)# ip igmp upstream-proxy proxymap

IGMP プロキシとのインターフェイスをイネーブルにします。次の条件が満たされると、クラスマップ内にあるこれらのグループの IGMP プロキシ参加が送信されます。

  • (*,G) または (S,G) mroute が、インターフェイスと同じ mvrf のグループに対して存在する。

  • (*,G) または (S,G) mroute に NULL ではない OIF リストがある。

ステップ 6

ip igmp iif-starg

例:

Device(config-if)# ip igmp iif-starg

クラスマップで指定したグループの mroute の RPF インターフェイスをイーサネット 0/0 に変更します。

ステップ 7

ip igmp proxy-report-interval time

例:

Device(config-if)# ip igmp proxy-report-interval 130

プロキシレポートの送信間隔(秒単位)を設定します。デフォルト値は 60 秒です。

ステップ 8

end

例:

Device(config-if)# end

現在のコンフィギュレーション セッションを終了して、特権 EXEC モードに戻ります。

ステップ 9

show ip igmp interface

例:

Device# show ip igmp interface

(任意)インターフェイスに関するマルチキャスト関連情報を表示します。

IGMP プロキシの設定例

例:IGMP UDLR 向けアップストリーム UDL デバイスの設定

IGMP UDLR 向けアップストリーム UDL の設定例を以下に示します。


interface gigabitethernet 0/0/0 
ip address 10.1.1.1 255.255.255.0 
ip pim sparse-mode 
! 
interface gigabitethernet 1/0/0 
ip address 10.2.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp unidirectional-link 
! 
interface gigabitethernet 2/0/0 
ip address 10.3.1.1 255.255.255.0 

例:IGMP プロキシサポートによる IGMP UDLR 向けダウンストリーム UDL デバイスの設定

IGMP プロキシサポートを使用して、IGMP UDLR 向けのダウンストリーム UDL デバイスを設定する例を以下に示します。


ip pim rp-address 10.5.1.1 5 
access-list 5 permit 239.0.0.0 0.255.255.255 
! 
interface loopback 0 
ip address 10.7.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp helper-address udl ethernet 0 
ip igmp proxy-service 
! 
interface gigabitethernet 0/0/0 
ip address 10.2.1.2 255.255.255.0 
ip pim sparse-mode 
ip igmp unidirectional-link 
! 
interface gigabitethernet 1/0/0 
ip address 10.5.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp mroute-proxy loopback 0 
! 
interface gigabitethernet 2/0/0 
ip address 10.6.1.1 255.255.255.0 

例:UDLR を使用しない IGMP プロキシ向けダウンストリームデバイスの設定

UDLR を使用せずに IGMP プロキシのダウンストリームデバイスを設定する例を以下に示します。


interface Loopback0
ip address 2.2.2.2 255.255.0.0
ip pim sparse-dense-mode
ip igmp helper-address 99.99.99.1
ip igmp proxy-service
ip ospf 1 area 0
!

例:複数のアップストリーム インターフェイスの IGMP プロキシ向けダウンストリームデバイスの設定

複数のアップストリーム インターフェイスの IGMP プロキシ向けダウンストリームデバイスを設定する例を次に示します。


interface gigabitethernet0/0
ip address 99.99.99.1 255.255.255.0
ip pim passive
ip igmp upstream-proxy l2
ip igmp iif-starg
ip igmp proxy-report-interval 100
end

class-map type multicast-flows l2
group 229.0.0.1
group 228.0.0.1 to 228.0.0.10

IGMP プロキシに関するその他の関連資料

ここでは、IGMP のカスタマイズに関する関連資料について説明します。

関連資料

関連項目

マニュアル タイトル

この章で使用するコマンドの完全な構文および使用方法の詳細。

の「IP マルチキャスト ルーティングのコマンド」の項を参照してください。Command Reference (Catalyst 9200 Series Switches)

標準および RFC

標準/RFC

タイトル

RFC 1112

『Host extensions for IP multicasting』

RFC 2236

『Internet Group Management Protocol, Version 2』

RFC 3376

『Internet Group Management Protocol, Version 3』

IGMP プロキシの機能履歴

次の表に、このモジュールで説明する機能のリリースおよび関連情報を示します。

これらの機能は、特に明記されていない限り、導入されたリリース以降のすべてのリリースで使用できます。

リリース

機能

機能情報

Cisco IOS XE Fuji 16.9.2

IGMP プロキシ

IGMP プロキシは、アップストリーム ネットワークがソースのマルチキャスト グループに、ダウンストリーム ルータに直接接続されていない単方向リンク ルーティング(UDLR)環境のホストが加入できるようにします。

Cisco IOS XE Gibraltar 16.12.1

UDLR を使用しない IGMP プロキシ

IGMP プロキシを使用すると、ホストでは UDLR リンクを使用せずにアップストリーム ネットワークからトラフィックを受信できます。

Cisco IOS XE Amsterdam 17.1.1

複数のアップストリーム インターフェイス用の IGMP プロキシ

IGMP プロキシを使用すると、ユーザーは複数のアップストリームデバイスからトラフィックを受信できます。

Cisco Feature Navigator を使用すると、プラットフォームおよびソフトウェアイメージのサポート情報を検索できます。Cisco Feature Navigator には、http://www.cisco.com/go/cfn [英語] からアクセスします。