MLD について
MLD は、ホストが特定のグループにマルチキャスト データを要求するために使用する IPv6 プロトコルです。ソフトウェアは、MLD を介して取得した情報を使用し、マルチキャスト グループまたはチャネル メンバーシップのリストをインターフェイス単位で保持します。MLD パケットを受信したデバイスは、既知の受信者が含まれるネットワーク セグメントに、要求されたグループまたはチャネルに関する受信データをマルチキャスト送信します。
MLDv1 は IGMPv2 から、MLDv2 は IGMPv3 から派生したプロトコルです。IGMP は IP Protocol 2 メッセージ タイプを使用しますが、MLD は ICMPv6 メッセージのサブセットである IP Protocol 58 メッセージ タイプを使用します。
MLD プロセスはデバイス上で自動的に起動されます。インターフェイスでは MLD を手動でイネーブルにできません。MDL は、インターフェイスで次のいずれかの設定作業を行うと、自動的にイネーブルになります。
-
PIM6 のイネーブル化
-
ローカル マルチキャスト グループの静的なバインディング
-
リンクローカル グループ レポートのイネーブル化
MLD のバージョン
デバイスは MLDv1 および MLDv2 をサポートしています。MLDv2 は MLDv1 リスナー レポートをサポートしています。
デフォルトでは、ソフトウェアが MLD プロセスを起動する際に、MLDv2 がイネーブルになります。必要に応じて、各インターフェイスでは MLDv1 をイネーブルにできます。
MLDv2 には、次に示す MLDv1 からの重要な変更点があります。
-
次の機能を提供し、各受信者から送信元までの最短パス ツリーを構築可能な Source-Specific Multicast(SSM)をサポートします。
-
グループおよび送信元を両方指定できるホスト メッセージ
-
MLDv1 ではグループについてのみ保持できたマルチキャスト ステートを、グループおよび送信元について保持可能
-
-
ホストによるレポート抑制が行われなくなり、MLD クエリー メッセージを受信するたびに MLD リスナー レポートが送信されるようになりました。
MLDv1 の詳細については、RFC 2710 を参照してください。MLDv2 の詳細については、RFC 3810 を参照してください。
MLD の基礎
次の図に、ルータが MLD を使用し、マルチキャスト ホストを検出する基本的なプロセスを示します。
ホスト 1、2、および 3 は要求外の MLD リスナー レポート メッセージを送信して、グループまたはチャネルに関するマルチキャスト データの受信を開始します。ルータ A(サブネットの代表 MLD クエリア)は、リンクスコープの全ノードを対象として、マルチキャスト アドレス FF02::1 に定期的に共通のクエリ メッセージを送信し、マルチキャスト グループに対する各ホストの受信要求を検出します。グループ固有のクエリーは、特定のグループの情報を要求するホストを検出する場合に使用されます。グループ メンバーシップ タイムアウト値を設定できます。これは、ルータがサブネット上にグループのメンバーまたは送信元が存在するかどうかを判断するための時間です。
ホスト 1 からのリスナー レポートの送出は止められており、最初にホスト 2 からグループ FFFE:FFFF:90::1 に関するリスナー レポートが送信されます。ホスト 1 はホスト 2 からレポートを受信します。ルータに送信する必要があるリスナー レポートは、グループにつき 1 つだけであるため、その他のホストではレポートの送出が止められ、ネットワーク トラフィックが軽減されます。レポートの同時送信を防ぐため、各ホストではランダムな時間だけレポート送信が保留されます。クエリの最大応答時間パラメータを設定すると、ホストが応答をランダム化する間隔を制御できます。
(注) |
MLDv1 メンバーシップ レポートが抑制されるのは、同じポートに複数のホストが接続されている場合だけです。 |
ルータ A は、MLDv2 の group-and-source-specific クエリを LAN に送信します。ホスト 2 および 3 は、アドバタイズされたグループおよび送信元からデータを受信することを示すリスナー レポートを送信して、そのクエリに応答します。この MLDv2 機能では、SSM がサポートされます。
(注) |
MLDv2 では、すべてのホストがクエリーに応答します。 |
IP アドレスが最下位のルータが、サブネットの MLD クエリアとして選出されます。ルータは、自身よりも下位の IP アドレスを持つルータからクエリー メッセージを継続的に受信している間、非クエリアとして動作し、クエリア タイムアウト値をカウントするタイマーをリセットします。ルータのクエリア タイマーが期限切れになると、そのルータは代表クエリアになります。そのあとで、このルータが、自身よりも下位の IP アドレスを持つルータからのホスト クエリー メッセージを受信すると、ルータは代表クエリアとしての役割をドロップしてクエリア タイマーを再度設定します。
代表クエリアから送信されるメッセージの存続可能時間(TTL)値は 1 です。つまり、サブネット上の直接接続されたルータからは、メッセージは転送されません。また、MLD の起動中に送信されるクエリー メッセージの頻度および回数を個別に設定することもできます。起動時のクエリー インターバルを短く設定することで、グループ ステートの確立時間を最小限に抑えることができます。通常は不要ですが、起動後のクエリー インターバルをチューニングすることで、ホスト グループ メンバーシップへの応答性と、ネットワーク上のトラフィック量のバランスを調整できます。
注意 |
クエリー インターバルを変更すると、ネットワークのマルチキャスト転送能力が著しく低下することがあります。 |
グループを脱退するマルチキャスト ホストは、MLDv1 に対して脱退を知らせるメッセージを送信するか、または対象のグループを除外したリスナー レポートを、リンクスコープ内の全ルータを含むマルチキャスト アドレス FF02::2 に送信する必要があります。このホストがグループを脱退する最後のホストであるかどうかを確認するために、MLD クエリー メッセージが送信されます。これにより、最終メンバーのクエリー応答インターバルと呼ばれる、ユーザが設定可能なタイマーが起動されます。タイマーが切れる前にレポートが受信されない場合は、ソフトウェアによってグループ ステートが解除されます。ルータはグループ ステートが解除されないかぎり、このグループにマルチキャスト トラフィックを送信し続けます。
輻輳ネットワークでのパケット損失を緩和するには、ロバストネス値を設定します。ロバストネス値は、MLD ソフトウェアがメッセージ送信回数を確認するために使用されます。
FF02::0/16 内に含まれるリンク ローカル アドレスには、Internet Assigned Numbers Authority(IANA)が定義したリンク スコープが設定されています。ローカル ネットワーク セグメント上のネットワーク プロトコルでは、これらのアドレスが使用されます。これらのアドレスは TTL が 1 であるため、ルータからは転送されません。MLD プロセスを実行すると、デフォルトでは、非リンク ローカル アドレスにだけリスナー レポートが送信されます。ただし、リンク ローカル アドレスにレポートが送信されるよう、ソフトウェアの設定を変更できます。
MLD スヌーピング
マルチキャスト リスナー検出(MLD)スヌーピングにより、ホストとルータ間で IPv6 マルチキャスト トラフィックを効率的に配信できます。これは、MLD クエリまたはレポートを送受信したポートのサブセットにブリッジ ドメイン内の IPv6 マルチキャスト トラフィックを制限する レイヤ 2 機能です。このように、MLD スヌーピングは、マルチキャスト トラフィックの受信に関心を示しているノードがないネットワークのセグメントでは帯域幅を節約できるという利点があります。これにより、ブリッジ ドメインでフラッディングが生じることがなく、帯域幅の使用量が削減され、ホストとルータで不要なパケット処理を節約できます。
MLD スヌーピング機能は、インターネット グループ管理プロトコル(IGMP)スヌーピングと似ていますが、MLD スヌーピングの機能は IPv6 マルチキャスト トラフィックをスヌーピングすることであり、MLDv1(RFC 2710)および MLDv2(RFC 3810)コントロール プレーン パケットで動作する点が異なります。MLD はインターネット制御メッセージ プロトコル バージョン 6(ICMPv6)のサブプロトコルです。MLD メッセージは ICMPv6 メッセージのサブセットで、IPv6 パケット内で先頭の Next Header 値 58 により識別されます。MLDv1 のメッセージ タイプには、リスナー クエリ、マルチキャスト アドレス固有(MAS)クエリ、リスナー レポート、完了メッセージが含まれます。MLDv2 は、追加のクエリ タイプであるマルチキャスト アドレスおよびソース固有(MASS)クエリを除き、MLDv1 と相互運用できるように設計されています。MLD で使用可能なプロトコル レベル タイマーは、IGMP で使用可能なものと同様です。
MLD スヌーピングがディセーブルの場合、すべてのマルチキャスト トラフィックは、関係があるかどうかに関係なく、すべてのポートにフラッディングされます。MLD スヌーピングがイネーブルの場合、ファブリックは MLD インタレストに基づいて IPv6 マルチキャスト トラフィックを転送します。不明な IPv6 マルチキャスト トラフィックは、ブリッジ ドメインの IPv6 L3 不明マルチキャスト フラッディング設定に基づいてフラッディングされます。
フラッディング モードは、不明な IPv6 マルチキャスト パケットを転送するために使用されます。フラッディング モードでは、ブリッジ ドメイン内のすべてのエンドポイント グループ(EPG) およびすべてのポートがフラッディング パケットを受信します。