よくある質問

Q. IGMPスヌーピングとは?
A.

IGMPスヌーピングの説明の前に、IGMPについて解説します。

IGMPとは、Internet Group Management Protocolの略で、サブネット間において、マルチキャストパケットの宛先を管理する、レ イヤー3のプロトコルで、3つのバージョンがあります。 IGMPv1 (RFC1112) IGMPv2 (RFC2236) IGMPv3 (RFC3376)

IGMPの動作

IGMPは、
1.グループへの参加(メンバーシップレポート、Joinメッセージ)
2.グループの問い合わせ(メンバーシップクエリー)
3.グループの維持(メンバーシップクエリー)
4.グループからの離脱(IGMPv2からリーブメッセージ) という4つの機能を持っており、IGMPv3からフィルターモードが追加されました。

IGMPの基本動作は、“グループへの参加”と“グループの問い合わせ”になり、ルータは224.0.0.1宛のクエリを送信します。 クエリメッセージを送信するルータをクエリアと呼び、メンバーはクエリアにレポートメッセージを送り返します。 レポートには、自分が所属しているマルチキャストグループのアドレスを入れて応答する事で、ルータはそのネットワーク(サブ ネット)にマルチキャストグループがいる事を確認します。

“グループの維持”は、“グループの問い合わせ”と同様、クエリーを定期的に実行し、応答があった場合、ネットワーク内にグ ループが存在し続けていることを確認し、応答がなかった場合、そのグループを削除します。 また、マルチキャストグループに参加したメンバーは、クエリーがなくともレポートメッセージを送ります。この事で、クエリーの合間 に参加したメンバーであっても、クエリアはこのメンバーを該当グループに記録する事で確認できます。この時の送信メッセージを Joinメッセージと呼びます。 このクエリーメッセージとレポートメッセージは、IGMPの全てのバージョンで使用される基本動作になります。

IGMPv2から“クエリアの選択”という機能を実行するようになりました。 これは、ネットワーク上に複数のクエリアがある場合、サブネットでもっとも小さいIPアドレスをもつクエリアが優先クエリアとなり、 他のクエリアは動作しないようになります。

“グループからの離脱”は、IGMPv1では、離脱したメンバーは何もアクションをおこさない為、離脱したメンバーがグループ最後の 場合、定期的なクエリーによる問い合わせが行われるまで、クエリアはグループのメンバーがいなくなった事に気付きません。 この為、必要のないマルチキャストトラフィックが流れる事になります。 IGMPv2からリーブメッセージが追加され、グループから離脱するメンバーはリーブメッセージをクエリアに送る事により、離脱を通 知します。これを受け取ったクエリアは、グループスペシフィックメッセージを使用し、リーブメッセージを受け取った、特定のマル チキャストグループにメンバーが残っているか動作確認し、応答がない場合、マルチキャストパケットを転送しなくなります。

IGMPv3からフィルターモードが追加されました。 これは、送信元を確認しない場合、誰でもマルチキャストグループのアドレスさえわかれば、そのグループに流す情報を乗っ取る 事ができるようになってしまう事からセキュリティの問題と、特定の送信元アドレスからのマルチキャストパケットを受信するように フィルタする事でマルチキャストプロトコルを効率よく動作させるという目的もあります。

IGMPスヌーピングとは

IGMPスヌーピングとは、L2スイッチにおいて、余計なマルチキャストのフラッディングを制御して、ネットワーク帯域を無駄に消費 しないようにする機能です。 IGMPスヌーピングが有効になっているL2スイッチは、Joinメッセージの中身を見て、メンバーが接続しているポートを、そのグ ループに対応するマルチキャストテーブルエントリーに追加し、リーブメッセージの中身を見ることで、エントリーの削除を行いま す。

また、マルチキャストルータがいないネットワークの場合、定期的にクエリーを実行する為に、L2スイッチにIGMP Querier機能が 必要になり、基本的な動作は、L3の場合と同じで、この機能を使用する事により定期的にクエリーメッセージを送信します。

GigaCoreシリーズのIGMPについて

GigaCoreは、デフォルトでIGMPv3を使用します。 エンドデバイスがIGMPv2で動作している場合、GigaCoreはIGMPv2で動作します。 エンドデバイスがIGMPv1で動作している場合、GigaCoreはIGMPV1で動作します。 また、複数のL2スイッチがクエリアとして動作している場合、サブネットでもっとも小さいIPアドレスをもつクエリアが優先クエリアと なり、他のクエリアは動作しないようになります。

他社のL2スイッチとGigaCoreシリーズのIGMPについて

GigaCoreは、ファームウェアがv2.1.0の場合、クエリーメッセージインターバル(定期的にクエリーを実行する間隔)が15秒、 クエリータイムアウト(クエリアからのクエリーを受信できなかった場合。自身がクエリアになる)が30秒と通常より短い為、 他社のL2スイッチと混在した場合、クエリアが固定しない現象が発生します。この場合、GigaCoreのグループ設定内にある、 Querierのチェックを外す事でクエリアとしての機能を無効にするか、GigaCoreの設定は固定の為、他社の設定をGigaCoreと同じ 設定に変更するか事で解消します。 GigaCoreのファームウェアがv2.3.0の場合、クエリーメッセージインターバルが125秒、クエリータイムアウトが255秒に設定されて いる為、他社のL2スイッチと混在しても、デフォルトの場合は、問題ありません。

各社のIGMP初期値(参考)

基本的に、クエリータイムアウトは、クエリメッセージインターバルより長くする必要があり、異機種間ネットワークの場合は、その ネットワーク全体を考慮し、設定する必要があります。