IGMP の概要

IGMPの役割

IGMP(インターネットグループ管理プロトコル)は、LAN上のマルチキャストグループに個々のホストを動的に登録し、マルチキャストトラフィックの制御を行うプロトコルです。ルータ(クエリア)はクエリメッセージを送信し、ホストは応答メッセージを送信してグループに参加または離脱します。

IGMPは、クラスDのIPアドレス(224.0.0.0~239.255.255.255)を使用し、特定の範囲はルーティングプロトコル用に予約されています。

  • 一般クエリ: 224.0.0.1
  • グループ固有のクエリ: グループIPアドレス
  • グループメンバーシップレポート: グループIPアドレス
  • IGMPv2グループ離脱メッセージ: 224.0.0.2
  • IGMPv3メンバーシップレポート: 224.0.0.22

IGMPのバージョン

IGMPには3つのバージョンがあります。スイッチはこれらのバージョンに対応し、相互運用が可能です。

  • IGMPv1: 基本的なクエリ応答メカニズム。
  • IGMPv2: グループ固有のクエリ、離脱プロセスなどの機能追加。
  • IGMPv3: 特定のソースからのマルチキャストのみを受信する機能追加。

IGMPv3スイッチは、特定のマルチキャスト機能(SSM)もサポートしています。

IGMPv1

IGMPバージョン1(IGMPv1)は、主にクエリ応答モデルを使用し、マルチキャストルータとスイッチがローカルサブネット上のアクティブなマルチキャストグループを検出します。ホストがグループに参加したり離脱したりするプロセスも含まれています。詳細はRFC 1112に記載されています。

IGMPv1デバイスは、マルチキャストグループを検出するために224.0.0.1アドレスにクエリを送信します。マルチキャストレシーバーは、IGMPレポートを送信して参加を通知します。複数のレシーバーがある場合、1つのホストのみがレポートを送信します。離脱メカニズムはなく、クエリに応答しないことで離脱が認識されます。複数のデバイスがある場合、指定ルータ(DR)が選ばれ、クエリの送信を担当します。

IGMPv2

IGMPバージョン2(IGMPv2)は、脱退プロセスやグループ固有のクエリなどの機能を追加し、最大クエリ応答時間を短縮します。ルータはマルチキャストプロトコルに依存せずにIGMPクエリを選択できます。詳細はRFC 2236に記載されています。

IGMPv2は、クエリメッセージを改善し、離脱プロセスやグループ固有のクエリなどの機能を追加します。クエリの選択は、最も低いIPアドレスを持つデバイスが行います。新しいフィールドにより、最大クエリ応答時間を指定できます。DRとIGMPクエリアは異なるデバイスが担当することもあります。

IGMPv3

IGMPバージョン3(IGMPv3)は、IGMPv1およびIGMPv2の機能を拡張し、メンバーシップレポートメッセージのサポートやトラフィックフラッディングの抑制を行います。ホストは特定のソースからのトラフィックのみを受信する(包含モード)か、特定のソースを除外する(除外モード)ことができます。IGMPv3はインターネット標準マルチキャスト(ISM)とソース固有マルチキャスト(SSM)の両方に対応しています。

IGMP参加プロセス

ホストがマルチキャスト グループに参加したい場合、ホストは参加したいマルチキャスト グループに対して 1 つ以上の未承諾メンバーシップ レポートを送信します。このプロセスはIGMPv1とIGMPv2で同じです。IGMPv3では、以下の方法で参加します:

  • グループに参加:空のEXCLUDEリストを含むレポートを224.0.0.22に送信。
  • 特定のチャネルに参加:INCLUDEリストにソースアドレスを含めたレポートを送信。
  • 特定のソースを除外して参加:EXCLUDEリストにソースを含めたレポートを送信。

IGMP離脱プロセス

  • IGMPv1:ホストはクエリに応答しないだけで、特別な離脱メッセージはありません。デバイスは3分間応答がない場合にタイムアウトします。
  • IGMPv2:ホストは離脱メッセージを送信し、最後のメンバーシップレポートを応答した場合にグループを離脱します。
  • IGMPv3:ホストはメンバーシップレポートで特定のグループ、ソース、またはチャネルのトラフィック受信を停止する機能があります。

参考文献

Configuring IGMP

IP マルチキャスト ルーティング テクノロジーの概要