IGMPとは?| Internet Group Management Protocol

Internet Group Management Protocol(IGMP)は、ネットワークに接続された機器のグループが同じIPアドレスを共有し、同じメッセージを受信することを可能にするものです。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • マルチキャストの定義
  • IGMPによるマルチキャストの実現方法について学ぶ
  • IGMPの仕組みを探る

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

Internet Group Management Protocol(IGMP)とは?

Internet Group Management Protocol(IGMP)は、複数の機器が1つのIPアドレスを共有することで、すべての機器が同じデータを受信できるようにするためのプロトコルです。IGMPはインターネットプロトコルバージョン4(IPv4)を使用するネットワーク上でマルチキャスト接続を確立するために使用されるネットワーク層のプロトコルです。具体的には、IGMPを使用することでデバイスをマルチキャストグループに参加させることができます。

マルチキャストとは?

マルチキャストでは、デバイスのグループがすべて同じメッセージ(パケット)を受信します。マルチキャストは、1つのIPアドレスを複数のデバイスで共有することで機能します。そのIPアドレスに向けられたネットワークトラフィックは、1つのデバイスだけでなく、そのIPアドレスを共有するすべてのデバイスに届けられます。これは、従業員のグループが、特定のメールエイリアスに向けられた企業の電子メールを全員が受信するのとよく似ています。

IGMPの仕組みは?

ネットワークに接続されているコンピュータやその他の機器は、IGMPを使用してマルチキャストグループに参加にします。IGMPに対応するルーターは、どの機器がどのマルチキャストグループに属しているかを把握するために、機器からのIGMP送信を待ち受けます。

IGMPは、マルチキャスト用に確保されたIPアドレスを使用します。マルチキャストのIPアドレスは、224.0.0.0~239.255.255.255の範囲にあります(これに対してエニーキャストネットワークでは任意の通常のIPアドレスを使用できます)。マルチキャストグループごとに、これらのIPアドレスを1つずつ共有します。ルータは、共有IPアドレスに向けられた一連のパケットを受信すると、それらのパケットを複製し、マルチキャストグループのすべてのメンバーにコピーを送信します。

IGMPマルチキャストグループはいつでも変更することができます。デバイスは任意の時点で IGMPに「Join Group」または「Leave Group」メッセージを送信することができます。

IGMPは、インターネットプロトコル(IP)の上で直接動作します。各IGMPパケットには、IGMPヘッダーとIPヘッダーの両方があります。ICMPのように、IGMPはTCPUDPのようなトランスポート層プロトコルを使用しません。

IGMPメッセージにはどのような種類があるか?

IGMPプロトコルでは、次のような数種類のIGMPメッセージを使用することができます:

  • メンバーシップレポート:デバイスはマルチキャストグループのメンバーになるためにこれらをマルチキャストルーターに送信します。
  • 「Leave group」メッセージ:このメッセージをデバイスからルーターに送信することで、デバイスがマルチキャストグループから離脱することができます。
  • 一般的なメンバーシップクエリ:マルチキャストに対応したルーターがこのメッセージを機器が接続されたネットワーク全体に送信し、ネットワーク上の全グループのマルチキャストグループメンバーシップを更新します。
  • グループ固有のメンバーシップクエリ:ルーターは、このメッセージをネットワーク全体ではなく、特定のマルチキャストグループに送信します。

IGMPスヌーピングとは?

IGMPはネットワーク層のプロトコルの一つであり、このネットワーク層を認識するネットワーク機器のみがメッセージの送受信を行うことができます。ルーターはネットワーク層で動作しますが、 ネットワークスイッチはデータリンク層として知られるレイヤー2のみを認識する場合があります。そのため、スイッチはどのネットワークデバイスがマルチキャストグループの一部で、どれがそうでないかを認識していない可能性があります。その結果、マルチキャストトラフィックが不要なデバイスに転送されしてしまい、ネットワークの帯域幅とデバイスの処理能力が消費され、ネットワーク全体の速度を低下させる可能性があります。

IGMPスヌーピングは、スイッチがIGMPメッセージを「スヌーピング(覗き見)」することによって、この問題を解決しています。通常、レイヤ2スイッチはIGMPメッセージを認識しませんが、IGMP スヌーピングによってIGMPメッセージを見ることができます。これにより、正しいデバイスだけがマルチキャストトラフィックを受信できるように、マルチキャストメッセージの転送先を識別できます。

IPv4とIPv6におけるマルチキャストの違いは?

IPv4とIPv6は、インターネットプロトコル(IP)の2つの異なるバージョンです。IPv6の方がより新しいものですが、IPv4もまだ広く使用されています。IPv6におけるマルチキャスト用のプロトコルはIGMPではなくMulticast Listener Discovery(MLD)です。

マルチキャストと、エニーキャストおよびユニキャストとの違いは?

マルチキャストとエニーキャストの対比

エニーキャストは、ネットワーク通信を複数の場所に送ることを可能にするもう一つの技術です。マルチキャストと同様に、エニーキャストネットワークでは、同じグループのサーバーで1つまたは複数のIPアドレスを共有することができます。ただし、すべてのサーバーにそれらのIPアドレスへのすべてのトラフィックが送信されるのではなく、ネットワークは事前に定義された条件に基づいて、それらのサーバーのうちの1つにトラフィックをルーティングします。また、エニーキャストネットワークでは、マルチキャストグループよりも広範囲のIPアドレスをサポートすることができます。例として、Cloudflareネットワークは、エニーキャストを使用してすべてのユーザートラフィックを最も近いデータセンターにルーティングしています。

マルチキャストとユニキャストの対比

「ユニキャスト」は、インターネットのほとんどで使用されている仕組みのことです。ユニキャストネットワークでは、ネットワーク上のすべての接続デバイスには一意のアドレスが割り当てられています。このアドレス(インターネットではIPアドレス)宛のメッセージは、マルチキャストのように複数のデバイスに送信されるのではなく、そのデバイスにのみ送信されます。