MLDスヌーピングを理解する
MLD(Multicast Listener Discovery)スヌーピングは、VLAN 上の IPv6 マルチキャスト トラフィックのフラッディングを抑制します。VLAN で MLD スヌーピングが有効になっている場合、ジュニパーネットワークス デバイスはホストとマルチキャスト ルーター間の MLD メッセージを調べ、どのホストがマルチキャスト グループのトラフィックの受信に関心があるかを学習します。デバイスは、学習した内容に基づいて、すべてのインターフェイスにトラフィックをフラッディングするのではなく、関心のある受信側に接続されているVLAN内のインターフェイスにのみマルチキャストトラフィックを転送します。
MLDスヌーピングは、MLDバージョン1(MLDv1)とMLDv2をサポートしています。MLDv1 および MLDv2 の詳細については、次の標準を参照してください。
-
MLDv1—RFC 2710、 Multicast Listener Discovery (MLD) for IPv6を参照してください。
-
MLDv2—RFC 3810、 IPv6のMLDv2(Multicast Listener Discovery Version 2)を参照してください。
MLDスヌーピングのメリット
-
Optimized bandwidth utilization—MLDスヌーピングの主なメリットは、パケットのフラッディングを減らすことです。IPv6のマルチキャストデータは、VLAN内のすべてのポートにフラッディングするのではなく、データを受信したいポートのリストに選択的に転送されます。
-
Improved security—不明なソースからのサービス拒否攻撃を防止します。
MLDスヌーピングの仕組み
デフォルトでは、デバイスは、マルチキャストトラフィックの送信元であるインターフェイスを除き、デバイス上のそのVLANに属するすべてのインターフェイスでレイヤー2マルチキャストトラフィックをフラッディングします。この動作は、大量の帯域幅を消費する可能性があります。
MLDスヌーピングを有効にして、このフラッディングを回避できます。MLDスヌーピングを有効にすると、デバイスは受信者(ホスト)とマルチキャストルーター間のMLDメッセージを監視し、メッセージの内容を使用してIPv6マルチキャスト転送テーブル(IPv6マルチキャストグループと各グループの関心のあるメンバーに接続されたインターフェイスのデータベース)を構築します。デバイスは、マルチキャストグループのマルチキャストトラフィックを受信すると、転送テーブルを使用して、そのマルチキャストグループに属する受信機に接続されたインターフェイスにのみトラフィックを転送します。
図1は、MLDスヌーピングを有効にしたマルチキャストトラフィックフローの例を示しています。
MLDメッセージタイプ
マルチキャストルーターは、MLDを使用して、接続された物理ネットワークごとに、どのグループに関心のあるリスナーがいるかを学習します。任意のサブネットで、1 つのマルチキャスト ルーターが MLD クエリアとして動作するように選択されます。MLDクエリアは、以下のタイプのクエリーをホストに送信します。
-
一般クエリー—ホストがグループをリッスンしているかどうかを尋ねます。
-
グループ固有のクエリ—特定のマルチキャスト グループをリッスンしているホストがあるかどうかを尋ねます。このクエリは、ホストがマルチキャスト グループを離れる場合に送信され、ルーターが残りのホストがグループに関心を持っているかどうかを迅速に判断できます。
-
グループとソース固有のクエリー—(MLDバージョン2のみ)特定のマルチキャストソースからのグループマルチキャストトラフィックをリッスンしているホストがあるかどうかを尋ねます。このクエリは、ホストに応答して送信され、マルチキャスト ソースからのグループ マルチキャスト トラフィックの受信に関心がなくなったことを示すため、ルーターは、残りのホストがそのソースからのグループ マルチキャスト トラフィックの受信に関心があるかどうかを迅速に判断できます。
マルチキャストリスナーであるホストは、以下の種類のメッセージを送信します。
-
メンバーシップレポート—ホストが特定のマルチキャストグループに参加したいことを示します。
-
脱退レポート—ホストが特定のマルチキャストグループを脱退したいことを示します。
MLDv1ホストのみ、2種類のレポートを使用してグループに参加するか退出するかを示します。MLDv2 ホストは 1 種類のレポートのみを送信し、その内容はグループに参加するか退出するかを示します。ただし、わかりやすくするために、MLD スヌーピング ドキュメントでは、ホストがグループへの参加を希望していることを示すレポートにメンバー シップ レポート という用語を使用し、ホストがグループから退出することを示すレポートに 退会レポート という用語を使用しています。
ホストがマルチキャスト グループに参加する方法とマルチキャスト グループから退出する方法
ホストは、次の2つの方法のいずれかでマルチキャストグループに参加できます。
-
ホストが参加しようとしているマルチキャスト グループを指定する未承諾のメンバーシップ レポートを送信する。
-
マルチキャスト ルーターからのクエリーに応答してメンバーシップ レポートを送信する。
マルチキャスト ルーターは、そのインターフェイス上の少なくとも 1 つのホストが、そのメンバーシップを示す定期的な一般的なクエリーに応答する場合、マルチキャスト トラフィックをインターフェイスに転送し続けます。したがって、ホストがマルチキャスト グループのメンバーであり続けるためには、定期的な一般的なクエリーに応答し続ける必要があります。
ホストは、次の2つの方法のいずれかでマルチキャストグループを離れることができます。
-
設定された時間内に定期的なクエリに応答しないこと。その結果、いわゆる「沈黙休暇」が発生します。
-
休暇レポートを送信することによって。
ホストがハブを介してデバイスに接続されている場合、ホストがハブから切断されても、自動的にマルチキャスト グループを離れることはありません。ホストは、グループメンバーシップがタイムアウトし、沈黙休暇が発生するまで、グループのメンバーであり続けます。サイレントリーブが発生する前に別のホストがハブポートに接続した場合、新しいホストは、メンバーシップレポートを送信しなかったとしても、サイレントリーブまでグループマルチキャストトラフィックを受信する可能性があります。
MLDv2 マルチキャスト ソースのサポート
MLDv2 では、ホストは送信元アドレスのリストを含むメンバーシップ レポートを送信できます。ホストが INCLUDE モードでメンバーシップ レポートを送信すると、ホストは送信元アドレス リスト内のそれらの送信元からのグループ マルチキャスト トラフィックにのみ関心を持ちます。ホストが除外モードでメンバーシップレポートを送信した場合、ホストは送信元アドレスリスト内の送信元 を除く すべての送信元からのグループマルチキャストトラフィックに関心があります。ホストは、source-listパラメーターが空のEXCLUDEレポートを送信することもできます。これはEXCLUDE NULLレポートと呼ばれます。EXCLUDE NULL レポートは、ホストがマルチキャスト グループに参加し、すべてのソースからパケットを受信したいことを示します。
MLDスヌーピングをサポートするデバイスは、INCLUDEおよびEXCLUDEモードのMLDv2メンバーシップレポートをサポートします。
MLDスヌーピングおよびフォワーディングインターフェイス
マルチキャストトラフィックの転送方法を決定するために、MLDスヌーピングが有効になっているデバイスは、そのマルチキャスト転送テーブルで以下のインターフェイスに関する情報を維持します。
-
マルチキャスト ルーター インターフェイス - これらのインターフェイスは、マルチキャスト ルーターまたは MLD クエリアにつながります。
-
グループメンバーインターフェイス—これらのインターフェイスは、マルチキャストグループのメンバーであるホストにつながります。
デバイスは、MLDトラフィックを監視することで、これらのインターフェイスについて学習します。インターフェイスがMLDクエリーを受信すると、デバイスはそのインターフェイスをマルチキャストルーターインターフェイスとしてマルチキャスト転送テーブルに追加します。インターフェイスがマルチキャストグループのメンバーシップレポートを受信した場合、デバイスはそのインターフェイスをグループメンバーインターフェイスとしてそのマルチキャスト転送テーブルに追加します。
デバイスが学習するインターフェイスのテーブルエントリーは、エージングの影響を受けます。たとえば、学習したマルチキャストルーターインターフェイスが一定の間隔内にMLDクエリーを受信しない場合、デバイスはそのインターフェイスのエントリーをマルチキャスト転送テーブルから削除します。
デバイスがマルチキャストルーターインターフェイスとグループメンバーインターフェイスを学習するためには、MLDクエリアがネットワークに存在する必要があります。デバイス自体がMLDクエリアとして機能するには、デバイスでMLDが有効になっている必要があります。
インターフェイスは、マルチキャスト ルーター インターフェイスまたはグループ メンバー インターフェイスとして静的に設定できます。デバイスは、インターフェイスについて学習することなく、静的インターフェイスをマルチキャスト転送テーブルに追加し、テーブル内のエントリーはエージングの影響を受けません。デバイス上には、静的に設定されたインターフェイスと動的に学習されたインターフェイスを混在させることができます。
一般的な転送ルール
MLDスヌーピングが有効になっているVLAN内のデバイスインターフェイスで受信したマルチキャストトラフィックは、以下のルールに従って転送されます。
MLDプロトコルのトラフィックは、以下のように転送されます。
-
マルチキャストルーターインターフェイスで受信したMLDの一般的なクエリーは、VLAN内の他のすべてのインターフェイスに転送されます。
-
マルチキャストルーターインターフェイスで受信したMLDグループ固有のクエリーは、グループのメンバーであるVLAN内のインターフェイスにのみ転送されます。
-
ホストインターフェイスで受信したMLDレポートは、同じVLAN内のマルチキャストルーターインターフェイスに転送されますが、VLAN内の他のホストインターフェイスには転送されません。
MLDプロトコルトラフィックではないマルチキャストトラフィックは、以下のように転送されます。
-
未登録のマルチキャストパケット(つまり、現在メンバーがいないグループのパケット)は、VLAN内のすべてのマルチキャストルーターインターフェイスに転送されます。
-
登録されたマルチキャストパケットは、マルチキャストグループのメンバーであるVLAN内のホストインターフェイスと、VLAN内のすべてのマルチキャストルーターインターフェイスにのみ転送されます。
IGMP スヌーピングと MLD スヌーピングの両方が同じ VLAN 上で有効になっている場合、IGMP および MLD スヌーピング設定の一部としてマルチキャスト ルーター インターフェイスが作成されます。未登録のマルチキャストトラフィックはブロックされず、ルーターインターフェイスを通過できるため、ハードウェアの制限により、未登録のIPv4マルチキャストトラフィックは、MLDスヌーピング設定の一部として作成されたマルチキャストルーターインターフェイスを通過する可能性があり、未登録のIPv6マルチキャストトラフィックは、IGMPスヌーピング設定の一部として作成されたマルチキャストルーターインターフェイスを通過する可能性があります。
MLDスヌーピングマルチキャストフォワーディングの例
以下の例は、MLDスヌーピングが異なるトポロジーでマルチキャストトラフィックを転送する方法を説明するために提供されています。
- シナリオ 1:マルチキャスト ルーターとホストへのマルチキャスト トラフィックを転送するデバイス
- シナリオ2:デバイスがマルチキャストトラフィックを別のデバイスに転送する
- シナリオ3:ホストにのみ接続されたデバイス(MLDクエリアなし)
- シナリオ4:レイヤー2/レイヤー3デバイスによるVLAN間のマルチキャストトラフィック転送
シナリオ 1:マルチキャスト ルーターとホストへのマルチキャスト トラフィックを転送するデバイス
図2に示すトポロジーでは、レイヤー2デバイスとして動作するデバイスは、マルチキャストルーターに接続されたソースAから、マルチキャストグループff1e::2010に属するマルチキャストトラフィックを受信します。また、デバイスに直接接続されているソースBからマルチキャストグループff15::2に属するマルチキャストトラフィックも受信します。デバイス上のすべてのインターフェイスは、同じVLANに属しています。
デバイスはインターフェイス P1 のマルチキャスト ルーターから MLD クエリーを受信するため、MLD スヌーピングはインターフェイス P1 がマルチキャスト ルーター インターフェイスであることを学習し、インターフェイスをマルチキャスト 転送テーブルに追加します。このインターフェイスで受信した MLD の一般クエリーをデバイス上のすべてのホスト インターフェイスに転送し、ホストから受信したメンバーシップ レポートをマルチキャスト ルーター インターフェイスに転送します。
この例では、ホスト A とホスト C は、グループ ff1e::2010 のメンバーシップ レポートで一般的なクエリーに応答しています。MLDスヌーピングは、グループ ff1e::2010のメンバーインターフェイスとしてインターフェイスP2とP4をマルチキャスト転送テーブルに追加します。送信元Aから受信したグループマルチキャストトラフィックをホストAとホストCに転送しますが、ホストBとDには転送しません。
ホスト B は、グループ ff15::2 のメンバーシップ レポートで一般的なクエリーに応答しました。デバイスは、インターフェイスP3をグループ ff15::2 のメンバーインターフェイスとしてマルチキャスト転送テーブルに追加し、ソースBから受信したマルチキャストトラフィックをホストBに転送します。また、デバイスは、ソースBから受信したマルチキャストトラフィックをマルチキャストルーターインターフェイスP1に転送します。
をホストするデバイス
シナリオ2:デバイスがマルチキャストトラフィックを別のデバイスに転送する
図3のトポロジーショーでは、マルチキャストソースがデバイスAに接続され、デバイスAは別のデバイスであるデバイスBに接続されます。デバイスAとBの両方のホストは、マルチキャストグループの潜在的なメンバーです。どちらのデバイスもレイヤー2デバイスとして動作しており、デバイス上のすべてのインターフェイスは同じVLANのメンバーです。
デバイスAはインターフェイスP1のマルチキャストルーターからMLDクエリーを受信し、インターフェイスP1はデバイスAのマルチキャストルーターインターフェイスになります。デバイスAは、このインターフェイスで受信したすべての一般的なクエリーを、デバイスBを接続するインターフェイスを含むデバイス上の他のインターフェイスに転送します。デバイスBはインターフェイスP6で転送されたMLDクエリーを受信するため、P6はデバイスBのマルチキャストルーターインターフェイスです。デバイスBは、ホストCから受信したメンバーシップレポートを、マルチキャストルーターインターフェイスを介してデバイスAに転送します。デバイスAは、メンバーシップレポートをマルチキャストルーターインターフェイスに転送し、インターフェイスP5をグループメンバーインターフェイスとしてマルチキャスト転送テーブルに含め、送信元からデバイスBにマルチキャストトラフィックを転送します。
特定の実装では、ホストがマルチキャスト トラフィックを受信する際の遅延を避けるために、デバイス B 上の P6 を静的マルチキャスト ルーター インターフェイスとして設定する必要がある場合があります。例えば、デバイスBがどのインターフェイスがマルチキャストルーターインターフェイスであるかを学習する前に、ホストから未承諾のメンバーシップレポートを受信した場合、それらのレポートをデバイスAに転送しません。その後、デバイスAがマルチキャストトラフィックを受信した場合、インターフェイスP5でメンバーシップレポートを受信していないため、デバイスBにはトラフィックを転送しません。この問題は、マルチキャスト ルーターが次の一般的なクエリを送信すると解決されます。ただし、ホストがマルチキャストトラフィックを受信する際に遅延が発生する可能性があります。この問題を解決するために、インターフェイスP6をマルチキャストルーターインターフェイスとして静的に設定できます。
シナリオ3:ホストにのみ接続されたデバイス(MLDクエリアなし)
図4に示すトポロジーでは、デバイスがマルチキャストソースとホストに接続されています。このトポロジーにはマルチキャストルーターがないため、MLDクエリアはありません。応答するMLDクエリアがなければ、ホストは定期的なメンバーシップレポートを送信しません。その結果、ホストがマルチキャストグループに参加するために未承諾のメンバーシップレポートを送信したとしても、マルチキャストグループのメンバーシップはタイムアウトします。
このネットワークでMLDスヌーピングが正しく機能し、デバイスがホストAとCにのみマルチキャストトラフィックを転送するには、以下のいずれかを行います。
-
インターフェイスP2およびP4を静的グループメンバーインターフェイスとして設定します。
-
VLAN上で、IRB(統合型ルーティングおよびブリッジング)インターフェイスとも呼ばれるRVI(ルーテッドVLANインターフェイス)を設定し、その上でMLDを有効にします。この場合、デバイス自体がMLDクエリアとして機能し、ホストは動的にマルチキャストグループに参加し、クエリに応答することでグループメンバーシップを更新できます。
シナリオ4:レイヤー2/レイヤー3デバイスによるVLAN間のマルチキャストトラフィック転送
図5に示すトポロジーでは、マルチキャストソース、マルチキャストルーターA、ホストAおよびBがデバイスに接続され、VLAN 10にあります。マルチキャストルーターBとホストCおよびDもデバイスに接続されており、VLAN 20にあります。
純粋なレイヤー 2 環境では、トラフィックは VLAN 間で転送されません。ホスト C が VLAN 10 の送信元からマルチキャスト トラフィックを受信するには、VLAN 10 と VLAN 20 に RVI(または IRB インターフェイス)を作成して、VLAN 間のマルチキャスト トラフィックのルーティングを許可する必要があります。
プラットフォーム固有のMLDスヌーピング動作
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
プラットフォーム固有の動作を確認するには、以下の表を使用して下さい。
| プラットフォーム |
違い |
|---|---|
| MLDスヌーピングを実行するSRXシリーズファイアウォール、QFXシリーズスイッチ、EXシリーズスイッチ(EX9200スイッチを除く) |
|