IGMP は Internet Engineering Task Force (IETF) によって定められ、Request for Comments (RFC) として公開されている。[1]2011年現在IGMPv3が最新の規格である。IGMPv2ではグループからの離脱を通知する方法が追加され、IGMPv3では指定されたIPアドレスからのみマルチキャストを受信する方法 (PIM-SSMへの対応)などが追加された。 IGMPにホストとして対応しているOSには、FreeBSDやLinux、Microsoft Windowsなどがある。IGMPにルータとして対応しているルーティングプログラムには、mrouted
ホストとルータの実装
IGMPは一般的なアプリケーションで用いられるほど普及しておらず、またWindowsではDoS攻撃に利用される可能性のある脆弱性が過去に発見されたことがある[2][3][4]ため、およびIGMPには認証機構が無いために、攻撃者がマルチキャストを用いて帯域を占有するDoS攻撃を行う恐れがある[5]ためか、@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}ファイアウォールではデフォルトでIGMPによる通信を許可しない設定になっていることが多い[要出典]。 技術的詳細については、RFC[1]をご覧ください。 IGMPで定義されるパケットは三種類である。 IGMPv3 Membership Query パケットbit offset0?345?78?1516?31 64ビット以降はIGMPv3以降で新たに付け加えられた。 ある特定のホストが送信するマルチキャストのパケットのみを受信したい場合、グループアドレスにPIM-SSM用グローバルアドレスに割り当てられた範囲の中からIPアドレスを一つ指定し、ソースアドレスに送信元ホストのIPアドレスを指定する。この機能とPIM-SSMを併用することで、ホスト毎にグループアドレスをあらかじめ割り当てることなく、疎なマルチキャスティング(ネットワークのノード数に比べて、マルチキャストチャンネル一つあたりの受信ノードが少ない場合)においても効率的な伝送ができる。 この機能を使わない場合は、ソースアドレスの数に0を指定する。この場合、参加するグループアドレス宛のパケットは送信元ホストに関わらず、全てのパケットが受信される。 IGMP Membership Report パケットbit offset0?78?1516?31 IGMP Leave Group パケットbit offset0?78?1516?31 IPv4やIPv6のマルチキャストは、専用網 インターネット (the Internet) では、構成しているネットワークのルータがマルチキャストに対応したものに置き換わることはなかった。IPv6網では、ネットワーク機器は当初からすべてMLDに対応しているが、ISP間レベルでのマルチキャスト経路の構成は実験的に行われているだけである。
プロトコルの詳細
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 パケット
0パケットの型 (0x11)応答時間の締切りチェックサム
32グループのアドレス
64予約領域 (0)SQRVQQICソースアドレスの数 (N)
96ソースアドレス [1]
128ソースアドレス [2]
. . .
ソースアドレス [N]
Membership Report パケット
0パケットの型予約領域 (0)チェックサム
32予約領域 (0)ホストが参加しているグループの数 (N)
64グループ[1]への参加状態
. . .
グループ[2]への参加状態
. . .
. . .
グループ[N]への参加状態
. . .
Leave Group パケット
0パケットの型 (0x17)応答時間の締切りチェックサム
32グループのアドレス
普及
脚注^ a b RFC 1112
^ Spoofed ⇒IGMP report denial of service vulnerability.
^ ⇒Fragmented IGMP packet may promote "Denial of Service" attack.
^ Microsoft Security Bulletin MS06-007: ⇒Vulnerability in TCP/IP Could Allow Denial of Service (913446).
^ ⇒IGMP Security Problem Statement and Requirements.
典拠管理データベース: 国立図書館