Internet Group Management Protocol

Internet Group Management Protocol (IGMP) について



IGMP(Internet Group Management Protocol)は、IPネットワーク上でマルチキャスト通信を効率的に行うための通信プロトコルです。マルチキャストとは、特定のホストグループに対して一斉にデータを送信する技術で、動画や音楽のストリーミング配信など、多数のホストに同じデータを同時に送信する際に有効です。

IGMPの役割



IGMPは、主に以下の役割を担います。

マルチキャストグループの管理: どのホストがどのマルチキャストグループに参加しているかを管理します。
グループ参加の通知: ホストがマルチキャストグループに参加する際に、ネットワーク内のルータに通知します。
グループ離脱の通知: ホストがマルチキャストグループから離脱する際に、ネットワーク内のルータに通知します。

IGMPの動作



1. グループアドレス: マルチキャストには、ローカルネットワーク専用のアドレスや、IANAによって割り当てられたグローバルアドレスが使用されます。
2. 参加通知: 受信側のホストは、参加したいグループのアドレスをIGMPパケットで最寄りのルータに通知します。
3. データ送信: 送信側のホストは、自身のユニキャストアドレスからグループアドレス宛のパケットをルータに送信します。
4. パケット転送: ルータは、グループに参加しているホストが存在するネットワークセグメントにのみパケットを転送します。ルータ間の経路制御には、PIM(Protocol Independent Multicast)などのプロトコルが用いられます。
5. L2スイッチの動作: L2スイッチは、デフォルトではグループアドレス宛のパケットをブロードキャストしますが、IGMPスヌーピング機能を持つスイッチは、参加ホストが存在するポートにのみパケットを転送することで、帯域の無駄遣いを防ぎます。

IGMPとTCP/IP



IPマルチキャストでは、TCPのようなパケットの到達確認は行われません。そのため、信頼性の高いネットワークを利用するか、別途品質管理の仕組みを用意する必要があります。

IGMPの標準化



IGMPは、IETF(Internet Engineering Task Force)によって標準化されており、RFC(Request for Comments)として公開されています。最新の規格はIGMPv3であり、IGMPv2ではグループ離脱の通知機能が追加され、IGMPv3ではPIM-SSM(Protocol Independent Multicast - Source Specific Multicast)への対応が追加されました。

実装



ホストとしての実装: FreeBSD、LinuxMicrosoft WindowsなどのOSが、IGMPに対応しています。
ルータとしての実装: mrouted(Linux)、XORP、Quaggaなどのルーティングプログラムが、IGMPに対応しています。

セキュリティ



IGMPは、認証機構を持たないため、DoS攻撃に利用される可能性があります。そのため、ファイアウォールではデフォルトでIGMPによる通信が許可されない設定になっていることが多いです。また、過去にはWindowsでDoS攻撃に利用される可能性のある脆弱性が発見されたこともあります。

プロトコルの詳細



IGMPで定義されるパケットは以下の3種類です。

Membership Query (Type 0x11): ホストがマルチキャストグループに参加する際に、ルータに送信するパケットです。また、グループの最新情報を知りたいときにも使用されます。
Membership Report (Type 0x12 (IGMPv1), Type 0x16 (v2), Type 0x22 (v3)): ルータがホストの参加しているグループの状態を通知するパケットで、Membership QueryやLeave Groupへの返答として使用されます。
Leave Group (Type 0x17): ホストがグループから離脱する際に、ルータに送信するパケットです。

Membership Query パケットの詳細


IGMPv3では、特定の送信元ホストからのマルチキャストパケットのみを受信するために、PIM-SSM用のグローバルアドレスを使用し、送信元ホストのIPアドレスを指定できます。この機能により、疎なマルチキャスト環境でも効率的な伝送が可能です。この機能を使用しない場合は、送信元アドレスの数を0に指定し、全てのパケットを受信します。

Membership Report パケットと Leave Group パケットの詳細


Membership Report パケットは、グループの参加状況を報告し、Leave Group パケットは、グループからの離脱を通知します。これらのパケットは、ルータがマルチキャストトラフィックを適切に管理するために不可欠です。

普及状況



IPv4/IPv6マルチキャストは、専用網ではIP放送などの商用サービスに利用されていますが、インターネット上での普及は限定的です。IPv6ネットワーク機器はMLDに対応していますが、ISP間でのマルチキャスト経路の構成は実験段階にとどまっています。

まとめ



IGMPは、効率的なマルチキャスト通信を実現するための重要なプロトコルです。動画配信や音楽ストリーミングなど、多数のホストに同時にデータを配信する際に不可欠な技術であり、今後のネットワーク技術においても重要な役割を担うと考えられます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。