読み方:あいじーえむぴー《internet group management protocol》特定の複数の相手に同じデータを送信するプロトコル、IPマルチキャストに対応し、データを受信する側の制御を行うプロトコルのこと。Weblio国語辞典では「Igmp」の意味や使い方、用例、類似表現などを解説しています。">

「Igmp」の意味や使い方 わかりやすく解説 Weblio辞書 (original) (raw)

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

IGMPはIPv4ネットワーク向けのマルチキャストプロトコルであり、インターネット・プロトコル (IP) 上に直に実装されている。一方、IPv6では同様の役割を担うMulticast Listener Discovery (MLD) がICMPv6上に実装されている。

TCP/IP群
アプリケーション層
BGP DHCP DNS FTP HTTP IMAP IRC LDAP MGCP NNTP NTP SNTP TIME POP RIP ONC RPC RTP SIP SMTP SNMP SSH Telnet TFTP TLS/SSL XMPP カテゴリ
トランスポート層
TCP UDP DCCP SCTP RSVP カテゴリ
インターネット層
IP (IPv4IPv6) ICMP ICMPv6 NDP IGMP IPsec カテゴリ
リンク層
ARP OSPF SPB トンネリング (L2TP) PPP MACイーサネットIEEE 802.11DSLISDNカテゴリ

目次

設計

標準

IGMP は Internet Engineering Task Force (IETF) によって定められ、Request for Comments (RFC) として公開されている。 [1] 2011年現在IGMPv3が最新の規格である。IGMPv2ではグループからの離脱を通知する方法が追加され、IGMPv3では指定されたIPアドレスからのみマルチキャストを受信する方法 (PIM-SSMへの対応)などが追加された。

ホストとルータの実装

IGMPにホストとして対応しているOSには、FreeBSDLinuxMicrosoft Windowsなどがある。 IGMPにルータとして対応しているルーティングプログラムには、mrouted (Linux), XORP, Quaggaなどがある。

セキュリティ

IGMPは一般的なアプリケーションで用いられるほど普及しておらず、またWindowsではDoS攻撃に利用される可能性のある脆弱性が過去に発見されたことがある[2][3][4]ため、およびIGMPには認証機構が無いために、攻撃者がマルチキャストを用いて帯域を占有するDoS攻撃を行う恐れがある[5]ためか、ファイアウォールではデフォルトでIGMPによる通信を許可しない設定になっていることが多い[_要出典_]。

プロトコルの詳細

技術的詳細については、RFC[1]をご覧ください。

IGMPで定義されるパケットは三種類である。

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 Membership Query パケット

bit offset 0–3 4 5–7 8–15 16–31
0 パケットの型 (0x11) 応答時間の締切り チェックサム
32 グループのアドレス
64 予約領域 (0) S QRV QQIC ソースアドレスの数 (N)
96 ソースアドレス [1]
128 ソースアドレス [2]
. . .
ソースアドレス [N]

64ビット以降はIGMPv3以降で新たに付け加えられた。

ある特定のホストが送信するマルチキャストのパケットのみを受信したい場合、グループアドレスにPIM-SSM用グローバルアドレスに割り当てられた範囲の中からIPアドレスを一つ指定し、ソースアドレスに送信元ホストのIPアドレスを指定する。この機能とPIM-SSMを併用することで、ホスト毎にグループアドレスをあらかじめ割り当てることなく、疎なマルチキャスティング(ネットワークのノード数に比べて、マルチキャストチャンネル一つあたりの受信ノードが少ない場合)においても効率的な伝送ができる。

この機能を使わない場合は、ソースアドレスの数に0を指定する。この場合、参加するグループアドレス宛のパケットは送信元ホストに関わらず、全てのパケットが受信される。

Membership Report パケット

IGMP Membership Report パケット

bit offset 0–7 8–15 16–31
0 パケットの型 予約領域 (0) チェックサム
32 予約領域 (0) ホストが参加しているグループの数 (N)
64 グループ[1]への参加状態
. . .
グループ[2]への参加状態
. . .
. . .
グループ[N]への参加状態
. . .

Leave Group パケット

IGMP Leave Group パケット

bit offset 0–7 8–15 16–31
0 パケットの型 (0x17) 応答時間の締切り チェックサム
32 グループのアドレス

普及

IPv4やIPv6のマルチキャストは、専用網ではIP放送のためのネットワークとして商業的に利用されている。

インターネット (the Internet) では、構成しているネットワークのルータがマルチキャストに対応したものに置き換わることはなかった。IPv6網では、ネットワーク機器は当初からすべてMLDに対応しているが、ISP間レベルでのマルチキャスト経路の構成は実験的に行われているだけである。

脚注

  1. ^ a b RFC 1112 (IGMPv1), RFC 2236 (IGMPv2), RFC 3376 (IGMPv3), RFC 4604 (IGMPv3, MLDv2のソースリストとPIM-SSMの対応)
  2. ^ Spoofed IGMP report denial of service vulnerability.
  3. ^ Fragmented IGMP packet may promote "Denial of Service" attack.
  4. ^ Microsoft Security Bulletin MS06-007: Vulnerability in TCP/IP Could Allow Denial of Service (913446).
  5. ^ IGMP Security Problem Statement and Requirements.