IGMPスヌーピング(アイジーエムピースヌーピング)とは | 意味や読み方など丁寧でわかりやすい用語解説
IGMPスヌーピング(アイジーエムピースヌーピング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
IGMPスヌーピング (アイジーエムピースヌーピング)
英語表記
IGMP Snooping (アイジーエムピー スヌーピング)
用語解説
IGMPスヌーピングは、ネットワークスイッチがマルチキャストトラフィックを効率的に転送するための機能である。この機能を理解するためには、まずスイッチの基本的な動作とマルチキャスト通信の特性を知る必要がある。
コンピュータネットワークにおける通信方式には、主にユニキャスト、ブロードキャスト、マルチキャストの三種類が存在する。ユニキャストは、特定の送信元から特定の宛先への1対1の通信である。ブロードキャストは、1つの送信元から同じネットワークセグメントに接続された全ての端末への1対不特定多数の通信である。そしてマルチキャストは、1つの送信元から特定のグループに所属する複数の端末への1対特定多数の通信である。動画配信やオンラインゲーム、金融情報のリアルタイム配信など、同じデータを同時に複数の受信者へ届けたい場合に利用される。
一般的なレイヤー2スイッチは、受信したデータフレームの宛先MACアドレスを見て、どのポートに転送するかを判断する。スイッチは内部にMACアドレステーブルを保持しており、どのポートの先にどのMACアドレスを持つ端末が存在するかを学習している。しかし、マルチキャスト通信の宛先MACアドレスは、特定の端末を指すものではなく、特定のグループを示す特殊なアドレスであるため、スイッチは通常のユニキャスト通信のように転送先ポートを特定できない。その結果、多くのスイッチはマルチキャストフレームを受信すると、そのデータをブロードキャストフレームと同様に扱い、受信ポート以外の全てのポートに転送してしまう。これをフラッディングと呼ぶ。この動作は、マルチキャストデータを受信する必要のない端末にも不要なトラフィックを送りつけることになり、ネットワーク全体の帯域を圧迫し、受信端末のCPUに余計な処理負荷をかける原因となる。
この問題を解決するのがIGMPスヌーピングである。IGMPスヌーピングの「スヌーピング」とは「覗き見」を意味し、その名の通り、スイッチがネットワーク上を流れるIGMP(Internet Group Management Protocol)メッセージを覗き見ることで、マルチキャスト通信を最適化する。IGMPは、ホスト(PCなどの端末)がどのマルチキャストグループに参加したいか、またはどのグループから離脱したいかを、ネットワーク上のルーターに通知するためのプロトコルである。ホストは、特定のマルチキャストデータを受信したい場合、「IGMP Membership Report」というメッセージを送信してグループへの参加を表明する。
IGMPスヌーピングが有効になったスイッチは、自身を通過するこのIGMPメッセージを解析する。そして、「どのポートから参加表明メッセージが送信されたか」を記録し、内部に「マルチキャストグループアドレス」と「ポート番号」を関連付けたテーブル(マルチキャスト転送テーブル)を作成する。例えば、ポート1に接続されたPCが特定の動画配信グループへの参加を表明した場合、スイッチは「この動画配信グループのデータはポート1に転送する必要がある」と学習する。
その後、実際にその動画配信のマルチキャストデータがスイッチに到着すると、スイッチはフラッディングを行うのではなく、先ほど作成したマルチキャスト転送テーブルを参照する。そして、テーブルに登録されているポート、つまりグループの受信者が存在するポートにのみ、データを転送する。これにより、マルチキャストデータを受信する必要のない端末が接続されたポートへはデータが流れなくなり、ネットワーク帯域の無駄遣いや端末への不要な負荷が解消される。
また、ホストがグループから離脱する際には「IGMP Leave Group」メッセージを送信するが、IGMPスヌーピング対応スイッチはこれも監視している。このメッセージを検知すると、対応するポート情報をテーブルから削除し、そのポートへのデータ転送を停止する。さらに、ネットワーク上のマルチキャストルーターは定期的に「IGMP Query」というメッセージを送信し、各グループにまだメンバーが存在するかを確認する。ホストはこのQueryに応答する形で参加表明を継続する。スイッチはこれらのやり取りも監視しており、一定期間応答がないポートの情報はテーブルから削除することで、常に最新の受信者情報を維持する。
このように、IGMPスヌーピングは、本来レイヤー3のプロトコルであるIGMPをレイヤー2スイッチが解釈することで、レイヤー2レベルでのインテリジェントな転送制御を実現する技術である。この機能は、特にIP電話システム、監視カメラの映像配信、IPTVといった、大量のマルチキャストトラフィックが発生する環境において、ネットワークパフォーマンスを維持するために極めて重要な役割を果たす。システムエンジニアを目指す上では、ネットワークの効率化を実現する基本的な技術として、その仕組みを正確に理解しておくことが求められる。