MLD Snooping

MLD Snooping

1. 機能概要

MLD Snoopingは、IPv6のVLAN環境において余分なマルチキャストのフラッディングを制御することで、ネットワークの帯域幅の消費を抑える機能です。
L2スイッチでは、マルチキャストパケットはVLAN単位で配送されるため、VLAN内に1つでもマルチキャストパケットを受信したい端末が存在すると、同一VLAN内のすべてのポートにパケットが配送されてしまいます。

  • マルチキャスト配信時の動作(MLD Snoopingなし)
    image

MLD Snooping機能を使用すると、受信端末とマルチキャストルーター間で交換されるMLDメッセージを監視 (Snooping) することで、マルチキャストパケットを受信したい端末が接続されたポートのみに該当グループのパケットを配信することができます。

  • マルチキャスト配信時の動作(MLD Snoopingあり)
    image

2. 用語の定義

MLD (Multicast Listener Discovery)

IPv6でマルチキャストグループを制御するためのプロトコル(ICMPv6のサブプロトコル)。
マルチキャストルーターはLAN上のどのホストがマルチキャストグループのメンバーであるか判断でき、ホストは自分がどのマルチキャストグループのメンバーかを伝えることができます。
2つのバージョンがあり、 MLDv1 (RFC2710)MLDv2 (RFC3810) で規定されます。

マルチキャストルーターポート

マルチキャストルーターが接続されているLAN/SFPポートのこと。
MLDジェネラルクエリーを受信したLAN/SFPポートをマルチキャストルーターポートとして自動で学習します。

MLDレポート抑制機能

マルチキャストルーターとホスト間で行われる通信負荷をL2スイッチで抑制する機能。
抑制するために本製品がまとめるメッセージは、以下となります。

  • マルチキャストルーターから送られる MLDジェネラルクエリー に対してホストが応答するMLDレポート

  • ホストから通知されるMLD DoneメッセージおよびMLDレポート(離脱)

レポート抑制機能は、MLDv1/v2に対して動作します。

MLD Fast Leave (高速脱退) 機能

MLDv1 DoneメッセージおよびMLDv2のReport(離脱)メッセージを受信したLAN/SFPポートを即座にマルチキャスト受信ポートから外す(転送に必要なFDBエントリーを削除する)機能。
本来、MLDの離脱処理では、MLDv1 DoneメッセージおよびMLDv2 Report(離脱)メッセージを受信した際、グループスペシフィッククエリーを送信し、レシーバーの存在確認が行われますが、高速脱退機能が 有効 な場合、本動作を行いません。
このため、高速脱退機能は LAN/SFPポート配下に1つのレシーバーが接続されている場合にのみ効果的な機能 です。

MLD クエリー送信機能 (MLD Querier)

MLD ジェネラルクエリー、スペシフィッククエリーを送信する機能。
マルチキャストルーターがいない環境でMLD Snoopingを機能させる場合に使用します。

3. 機能詳細

MLD Snoopingの動作仕様について以下に示します。

  1. 本製品は、 MLD v1/v2 に対応したSnooping機能を提供します。
    本製品で機能させる上位バージョンを ipv6 mld snooping version コマンド で設定できます。
    バージョン設定は VLANインターフェース に対して行い、初期設定は v2 となっています。
    設定バージョンと受信フレームのバージョンの違いによる動作は以下となります。

    • 設定したバージョンよりも上位バージョンのMLDクエリーを受信した場合、設定バージョンに下げてクエリーを転送します。

    • 設定したバージョンよりも上位バージョンのMLDレポートを受信した場合、該当レポートを転送せずに破棄します。

  2. MLD Snoopingの 有効 / 無効 設定は、 VLANインターフェース に対して行います。
    デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定どちらも 無効 となっています。

  3. MLD Snoopingの機能として、以下の4つに対応します。

    • マルチキャストルーターポートの設定

    • MLDレポート抑制

    • MLD Fast-leave(高速脱退)

    • MLDクエリー送信

  4. MLD Snoopingが 有効 に設定されているVLANインターフェースでは、 マルチキャストルーターポート自動で学習 しますが、ipv6 mld snooping mrouter interface コマンドで静的に設定することもできます。
    なお、VLANインターフェースに設定されているマルチキャストルーターポートは、show ipv6 mld snooping mrouter コマンドで確認します。

  5. MLDレポート抑制機能 は、VLANインターフェースに対して ipv6 mld snooping report-suppression コマンドで設定します。
    初期値は 有効 です。
    レポート抑制機能により、MLDレポート、MLD leaveメッセージを送信する場合、送信元IPv6アドレスには、VLANインターフェースに割り振られているIPv6リンクローカルアドレスを使用します。
    (割り振られていない場合は、::を設定して送信します。)

  6. MLD Fast-Leave(高速脱退)機能 は、VLANインターフェースに対して ipv6 mld snooping fast-leave コマンド で設定します。
    デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定どちらも 無効 となっています。

  7. マルチキャストルーターが存在しない環境でMLD Snoopingを使用するために、 MLD クエリー送信機能 に対応します。
    MLD クエリー送信機能は、以下の2つのパラメータで制御します。

    • MLD クエリー送信機能の 有効 / 無効

      • VLANインターフェースに対して、ipv6 mld snooping querier コマンド で行います。

      • デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定どちらも 無効 となっています。

    • MLD クエリーの送信間隔

      • ipv6 mld snooping query-interval コマンド で行います。

      • 送信間隔は、20 ~ 18,000秒 の範囲で設定可能とし、初期値は 125秒 となっています。

  8. VLAN内に複数の機器がクエリーを送信する場合、VLAN内で最も小さいIPv6アドレスを持つ機器がクエリー送信を行います。
    本製品は、自身のIPv6アドレスより小さなIPv6アドレスを持つ機器からのクエリーを受信した場合、クエリー送信機能を停止します。
    なお、クエリー送信時に設定する送信元IPv6アドレスは、VLANインターフェースに割り振られているIPv6リンクローカルアドレスを使用しますが、割り振られていない場合は、他のVLANインターフェースに割り振られているIPv6リンクローカルアドレスを使用します。
    (すべてのVLANインターフェースにIPv6リンクローカルアドレスが割り当てられていない場合は、送信されません。)

  9. 本製品では、受信したMLDパケットのHop Limitが不正(1以外)である場合、MLDパケットを破棄をします。

  10. 本製品では、受信したMLDパケットにRouter Alertオプションが含まれていない場合、MLDパケットを破棄をします。

4. 関連コマンド

関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照してください。

操作項目 操作コマンド

MLDスヌーピングの有効/無効設定

ipv6 mld snooping

MLDスヌーピング高速脱退の設定

ipv6 mld snooping fast-leave

マルチキャストルーターポートの設定

ipv6 mld snooping mrouter interface

クエリー送信機能の設定

ipv6 mld snooping querier

MLDクエリー送信間隔の設定

ipv6 mld snooping query-interval

MLDバージョンの設定

ipv6 mld snooping version

MLDレポート抑制機能の設定

ipv6 mld snooping report-suppression

マルチキャストルーターポートの情報の表示

show ipv6 mld snooping mrouter

MLDマルチキャスト受信者の情報を表示

show ipv6 mld snooping groups

インターフェースのMLD関連情報を表示

show ipv6 mld snooping interface

MLDグループメンバーシップのエントリー削除

clear ipv6 mld snooping

5. コマンド実行例

5.1. MLD Snooping の設定(マルチキャストルーターあり)

マルチキャストルーターがある環境でMLD Snooping機能を有効にして、マルチキャストグループに参加しているPC1、PC3にのみデータが配信されるようにします。

image

  • LANポート #1 ~ #4 は、 アクセスポートに設定し、VLAN #10 に所属 させます。

  • マルチキャストルーターがあるため、 MLD クエリー送信機能は 無効 のままとします。

  • マルチキャストルーターポート の学習は、 自動学習 のみとします。(静的な設定は行わない。)

  • MLD Fast-Leave(高速脱退)機能を有効 にします。

■設定手順

  1. VLAN #10 を定義して、MLD Snoopingの設定を行います。

    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10 (1)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ipv6 enable (2)
    Yamaha(config-if)#ipv6 mld snooping (3)
    Yamaha(config-if)#no ipv6 mld snooping querier (4)
    Yamaha(config-if)#ipv6 mld snooping fast-leave (5)
    1 VLAN #10 の定義
    2 VLAN #10 のIPv6機能を有効にする
    3 VLAN #10 のMLD Snoopingを有効にする
    4 VLAN #10 のMLD クエリー送信機能を無効にする
    5 VLAN #10 のMLD Fast-leave機能を有効にする
    • MLD クエリー送信機能の無効化は、初期値として設定されているため特に設定する必要はありません。

  2. LANポート #1 ~ #4 を アクセスポートに設定し、VLAN #10 に所属させます。

    Yamaha(config)# interface port1.1
    Yamaha(config-if)# switchport mode access
    Yamaha(config-if)# switchport access vlan 10
    (1)
    1 上記設定をLANポート #2 ~ #4に対しても行います。
  3. マルチキャストルーターポートの情報を確認します。(LANポート #1 につながっている)

    Yamaha#show ipv6 mld snooping mrouter vlan10
    VLAN    Interface             IP-address    Expires
    10      port1.1(dynamic)         fe80::2a0:deff:feae:b879        00:00:43
  4. マルチキャスト受信者の情報を確認します。

    Yamaha#show ipv6 mld snooping groups
    MLD Connected Group Membership
    Vlan   Group Address                           Interface            Uptime   Expires  Last Reporter
    10     ff15::1                                 port1.2              00:00:13 00:00:41 fe80::a00:27ff:fe8b:87e2
    10     ff15::1                                 port1.4              00:00:02 00:00:48 fe80::a00:27ff:fe8b:87e4

5.2. MLD Snooping の設定(マルチキャストルーターなし)

マルチキャストルーターがいない環境でMLD Snooping機能を有効にして、マルチキャストグループに参加しているPC1、PC3にのみデータが配信されるようにします。

image

  • スイッチ#A

    • LANポート #1 ~ #2 は、 アクセスポートに設定し、VLAN #10 に所属 させます。

    • MLD クエリー送信機能を 有効 にします。
      MLDクエリーの送信間隔を 20秒 とします。

  • スイッチ#B

    • LANポート #1 ~ #4 は、 アクセスポートに設定し、VLAN #10 に所属 させます。

    • マルチキャストルーターポート の学習は、 自動学習 のみとします。(静的な設定は行わない。)

    • MLD Fast-Leave(高速脱退)機能を有効 にします。

  1. [スイッチ#A] VLAN #10 を定義して、MLD Snoopingの設定を行います。

    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10 (1)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ipv6 enable (2)
    Yamaha(config-if)#ipv6 mld snooping (3)
    Yamaha(config-if)#ipv6 mld snooping querier (4)
    Yamaha(config-if)#ipv6 mld snooping query-interval 20 (5)
    1 VLAN #10 の定義
    2 VLAN #10 のIPv6機能を有効にする
    3 VLAN #10 のMLD Snoopingを有効にする
    4 VLAN #10 のMLD クエリー送信機能を有効にする
    5 VLAN #10 のMLD クエリーの送信間隔を20秒にする
  2. [スイッチ#A] LANポート #1 ~ #2 を アクセスポートに設定し、VLAN #10 に所属させます。

    Yamaha(config)# interface port1.1
    Yamaha(config-if)# switchport mode access
    Yamaha(config-if)# switchport access vlan 10
    (1)
    1 上記設定をLANポート #2に対しても行います。
  3. [スイッチ#B] VLAN #10 を定義して、MLD Snoopingの設定を行います。

    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10 (1)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ipv6 enable (2)
    Yamaha(config-if)#ipv6 mld snooping (3)
    Yamaha(config-if)#no ipv6 mld snooping querier (4)
    Yamaha(config-if)#ipv6 mld snooping fast-leave (5)
    1 VLAN #10 の定義
    2 VLAN #10 のIPv6機能を有効にする
    3 VLAN #10 のMLD Snoopingを有効にする
    4 VLAN #10 のMLD クエリー送信機能をに無効する
    5 VLAN #10 のMLD Fast-leave機能を有効にする
    • MLD クエリー送信機能の無効化は、初期値として設定されているため特に設定する必要はありません。

  4. [スイッチ#B] LANポート #1 ~ #4 を アクセスポートに設定し、VLAN #10 に所属させます。

    Yamaha(config)# interface port1.1
    Yamaha(config-if)# switchport mode access
    Yamaha(config-if)# switchport access vlan 10
    (1)
    1 上記設定をLANポート #2 ~ #4に対しても行います。
  5. [スイッチ#B] マルチキャストルーターポートの情報を確認します。(LANポート #1 につながっている)

    Yamaha#show ipv6 mld snooping mrouter vlan10
    VLAN    Interface             IP-address    Expires
    10      port1.1(dynamic)         fe80::2a0:deff:feae:b879        00:00:43
  6. [スイッチ#B] マルチキャスト受信者の情報を確認します。

    Yamaha#show ipv6 mld snooping groups
    MLD Connected Group Membership
    Vlan   Group Address                           Interface            Uptime   Expires  Last Reporter
    10     ff15::1                                 port1.2              00:00:13 00:00:41 fe80::a00:27ff:fe8b:87e2
    10     ff15::1                                 port1.4              00:00:02 00:00:48 fe80::a00:27ff:fe8b:87e4

6. 注意事項

未知のマルチキャストフレームの処理を変更したい場合は、 l2-unknown-mcast コマンドで行ってください。