# IPマルチキャスト / IGMP

IGMP（Internet Group Management Protocol）は、LAN上のマルチキャスト対応ルーターとホストがメッセージを交換しあい、LAN上にどのマルチキャストグループのメンバーがいるかを把握するためのプロトコルです。
ルーターはIGMPを通じて得た情報をもとに、他のルーターから受け取ったマルチキャストパケットを配下のLANに転送するかどうか判断したり、他のルーターに対して特定グループ宛てのパケットを配送してくれるよう依頼したりします。
マルチキャスト経路制御プロトコル（PIM-DM、PIM-SM）を使用するときは、IGMP Querier機能もあわせて使用します。また、本製品では、IGMP Querier機能を単独で動作させることも可能です。
さらに、ユニキャストルーターとして動作しながら、下流インターフェース上のIGMPホストと上流インターフェース上のマルチキャストルーター（IGMP Querier）との間を取り持ち、マルチキャスト経路制御プロトコルを動かすことなく末端ネットワークへのマルチキャスト配送を実現するIGMPプロキシー機能もあります。
以下では、本製品でIGMPを使用する場合の設定について解説します。
なお、以下の説明では、VLANとIPの基本設定は完了しているものとします。VLANの設定については「L2スイッチング」の「バーチャルLAN」をご覧ください。また、IPインターフェースの基本設定については「IP」の「IPインターフェース」を、静的な経路設定については「IP」の「経路制御」を、RIPについては「IP」の「経路制御（RIP）」を、OSPFについては「IP」の「経路制御（OSPF）」をご覧ください。

## 基本設定

### マルチキャスト経路制御プロトコルとの併用時

通常IGMPはマルチキャスト経路制御プロトコル（PIM-DM、PIM-SM）と組み合わせて使用します。マルチキャストルーティングを行うインターフェースでは、原則としてPIM-DMやPIM-SMとIGMPをペアで設定してください。
たとえば、vlan10、vlan20、vlan30の各インターフェース間でPIM-SMによるマルチキャストルーティングを行う場合には、ip pim sparse-modeコマンドでPIM-SMを有効化するとともに、ip igmpコマンドでIGMP Querier機能も有効化してください。

    awplus(config)# ip multicast-routing
    awplus(config)# interface vlan10,vlan20,vlan30
    awplus(config-if)# ip pim sparse-mode
    awplus(config-if)# ip igmp

同じように、vlan10、vlan20、vlan30の各インターフェースでマルチキャストルーティングを無効にする場合は、これらのインターフェースにおいて、PIM-SMとIGMPの両方を無効化してください。

    awplus(config)# interface vlan10,vlan20,vlan30
    awplus(config-if)# no ip pim sparse-mode
    awplus(config-if)# no ip igmp

PIMの設定については「IPマルチキャスト」の「PIM」をご覧ください。

### 単独使用時

IGMP Querier機能を単独で有効化するには、対象インターフェースでip igmpコマンドを実行します。

    awplus(config)# interface vlan1
    awplus(config-if)# ip igmp

単独で使用しているIGMP Querier機能を無効化するには、対象インターフェースでip igmpコマンドをno形式で実行します。なお、同コマンドをno形式で実行すると、IGMP Querier機能だけでなく、IGMPに関連するすべての機能（IGMPプロキシーやIGMP Snoopingを含む）の設定が削除され、初期状態に戻るので注意してください。

    awplus(config)# interface vlan1
    awplus(config-if)# no ip igmp

### IGMPプロキシー

IGMPプロキシーは、通常のルーター（ユニキャストルーター）として動作している場合に、マルチキャスト経路制御プロトコルを動かすことなく、上位のマルチキャストルーターからマルチキャスト配送を受け、これを末端ネットワークの受信者（ホスト）に転送するための機能です。
次に、IGMPプロキシー使用時の基本的なネットワーク構成を示します。

本製品でIGMPプロキシーを使用する場合は、あらかじめ通常のルーターとして動作するよう、VLANの作成、IPアドレス（IPインターフェース）の設定、IP経路の設定を行っておき、その上でIPマルチキャストルーティングを有効化し、IGMPプロキシーで使用するIPインターフェースを2種類指定します。
IGMPプロキシーでは、次の2種類のインターフェースを使用します。
1つの上流インターフェースに対しては、複数の下流インターフェースを関連付けることができます。

- 上流インターフェース
  マルチキャストルーター（IGMP Querier）が存在しているネットワークに接続されているIPインターフェースのこと。IGMPプロキシーの上流インターフェースは、マルチキャストルーター（IGMP Querier）に対しIGMPホストとしてふるまいます。このとき、下流インターフェースで収集したグループメンバーの情報に基づき、必要なグループ宛てのマルチキャストが配送されるよう、ReportメッセージやLeave Groupメッセージを適切に送信します。
- 下流インターフェース
  マルチキャスト受信者（IGMPホスト）が存在しているネットワークに接続されているIPインターフェースのこと。IGMPプロキシーの下流インターフェースは、マルチキャスト受信者（IGMPホスト）に対しIGMP Querierとしてふるまいます。下流インターフェースで収集したグループメンバーの情報は、上流インターフェースでIGMPホストとしてふるまうときに利用します。

たとえば、vlan20を上流インターフェース、vlan10を下流インターフェースとしてIGMPプロキシーを動作させるには、次のようにします。
なお、各インターフェースへのIPアドレス設定などは完了しているものと仮定します。
Note

下流インターフェースはIPアドレスを設定しないで運用することも可能です。その場合はIGMP SnoopingのIGMP Querier機能（ip igmp snooping querierコマンド）を有効にしてください。

1. IPマルチキャストルーティングを有効化します。これには、ip multicast-routingコマンドを使います。

       awplus(config)# ip multicast-routing

2. 上流インターフェースに対して、ip igmp proxy-serviceコマンドを実行します。経路制御プロトコルを利用したマルチキャストルーティングの設定と同様、ip igmpコマンドでIGMPを必ず有効化してください。

       awplus(config)# interface vlan20
       awplus(config-if)# ip igmp proxy-service
       awplus(config-if)# ip igmp
       awplus(config-if)# exit

3. 下流インターフェースに対して、ip igmp mroute-proxyコマンドを実行します。このとき上流インターフェースも指定します。こちらもip igmpコマンドによるIGMPの有効化を忘れないようにしてください。

       awplus(config)# interface vlan10
       awplus(config-if)# ip igmp mroute-proxy vlan20
       awplus(config-if)# ip igmp

   なお、下流インターフェースをIPアドレスなしで運用する場合は、次のようにIGMP SnoopingのIGMP Querier機能（ip igmp snooping querierコマンド）を有効にしてください。

       awplus(config)# interface vlan10
       awplus(config-if)# ip igmp mroute-proxy vlan20
       awplus(config-if)# ip igmp
       awplus(config-if)# ip igmp snooping querier

下流インターフェースではIGMP Querier、上流インターフェースではIGMPホストとしてふるまうことにより、マルチキャストルーターから上流インターフェースに配送されてきたマルチキャストトラフィックを、本製品が下流インターフェースに転送できるようになります。このとき、IGMP Snoopingが有効であれば、下流インターフェース内のメンバーが存在するスイッチポートにだけマルチキャストパケットが送出されます。

### 共通項目

IGMP Querierの動作パラメーターを調整する方法や設定を確認する方法は、マルチキャスト経路制御プロトコルと併用する場合でも、単独で使用する場合でも同じです。
使用するIGMPのバージョンは、インターフェースごとにip igmp versionコマンドで指定します。初期設定はバージョン3です。

    awplus(config)# interface vlan10
    awplus(config-if)# ip igmp version 2

グループメンバーをスタティック登録するには、ip igmp static-groupコマンドを使います。

    awplus(config)# interface vlan10
    awplus(config-if)# ip igmp static-group 239.1.4.7 interface port1.0.8

IGMPグループメンバーシップの情報は、show ip igmp groupsコマンドで確認できます。
インターフェースのIGMP設定は、show ip igmp interfaceコマンドで確認できます。