1. はじめに (Introduction)
IEEE ブリッジ標準 [BRIDGE] は、LAN パケットがどのように「ブリッジ」されるか、あるいは今日より一般的に使われる表現では LAN セグメント間でどのようにスイッチングされるかを規定している。マルチキャストパケットに対するスイッチの動作は次のように要約できる。宛先 MAC アドレスがマルチキャストアドレスであるパケットを処理するとき、スイッチは [BRIDGE] に従って、転送状態にある他の各ネットワークインタフェースにそのパケットのコピーを転送する。スパニングツリーアルゴリズムは、ネットワーク内のすべてのスイッチでこの規則が適用されることにより、そのパケットがネットワークに接続されたすべてのノードからアクセス可能になることを保証する。
この動作は、接続されたすべてのノードに見られること、処理されることを意図したブロードキャストパケットには適している。しかしマルチキャストパケットの場合、この方式はネットワーク帯域の利用効率を低下させうる。特に、パケットが少数のノードのみを対象としている場合にそうである。パケットは、それを受信する関心を持つノードが存在しないネットワークセグメントにもフラッディングされる。要求していないグループアドレス宛のパケットをフィルタリングするためにノードが処理オーバーヘッドを負うことはほとんどないが、マルチキャストパケットがフラッディングされている間、ノードは共有媒体に新しいパケットを送信できない。一般に、フラッディングによって多大な帯域が浪費されうる。
近年、多くの商用ベンダーが「IGMP スヌーピングスイッチ」と呼ばれる製品を市場に投入している。これらの装置は、ISO モデルにおける通信層間の機能を厳密に分離するという概念モデルに従わず、むしろ上位層プロトコルヘッダ内の情報を下位層での処理において考慮すべき要素として利用する。これは、ルータが宛先アドレスへパケットを転送する前にトランスポートプロトコルのヘッダを調べることでファイアウォールとして機能できるのと類似している。
IP マルチキャストトラフィックの場合、IGMP スヌーピングスイッチは、そのグループアドレス宛のパケットを受信する意思を表明したノードが存在しないネットワークのセグメントにおいて帯域を節約するという利点を提供する。これは、マルチキャストトラフィックが通常すべてのインタフェースに転送される通常のスイッチ動作とは対照的である。
多くのスイッチのデータシートは IGMP スヌーピングのサポートを記載しているが、現在のところこれに関する推奨事項は存在しない。本文書で提示する情報がその基盤となれば幸いである。
ここで示す推奨事項は、以下の情報源に基づいている: IGMP 仕様 [RFC1112]、[RFC2236]、[IGMPv3]、ベンダー提供の技術文書 [CISCO]、バグ報告 [MSOFT]、IGMP スヌーピングスイッチの設計に関わった人々との議論、MAGMA メーリングリストでの議論、および実装アンケートに対するスイッチベンダーの回答である。
異なる IGMP バージョン間で生じる相互運用性の問題は本文書の焦点ではない。興味のある読者は、問題領域の詳細な説明について [IGMPv3] を参照されたい。
本文書の提言は IGMP に基づいており、IGMP は IPv4 にのみ適用される。IPv6 では、代わりにマルチキャストリスナディスカバリ [MLD] を使用しなければならない。MLD は IGMP に基づいているため、MLD スヌーピングスイッチに関する記述と推奨事項の全体を繰り返すことはしない。代わりに、IGMP と異なる少数の事例を指摘する。
なお、IGMP スヌーピング機能は IPv4 マルチキャストにのみ適用されるべきである。IPv6 など他のマルチキャストパケットは、推奨事項の節で述べるように実装で追加の注意を払わない場合、IGMP スヌーピングによって抑制される可能性がある。