IGMP Snooping


1 機能概要

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

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


2 用語の定義

IGMP (Internet Group Management Protocol)

マルチキャストグループを制御するためのプロトコル。
マルチキャストルーターはLAN上のどのホストがマルチキャストグループのメンバーであるか判断でき、ホストは自分がどのマルチキャストグループのメンバーかを伝えることができます。
3つのバージョンがあり、 IGMPv1 (RFC1112)IGMPv2 (RFC2236)IGMPv3 (RFC3376) で規定されます。

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

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

IGMPレポート抑制機能

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

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

IGMPv2 Fast Leave (高速脱退) 機能

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

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

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


3 機能詳細

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

  1. 本製品は、 IGMP v1/v2/v3 に対応したSnooping機能を提供します。
    本製品で機能させる上位バージョンを ip igmp snooping version コマンドで設定できます。
    バージョン設定は VLANインターフェース に対して行い、初期設定は v3 となっています。
    設定バージョンと受信フレームのバージョンの違いによる動作は以下となります。
  2. IGMP Snoopingの 有効 / 無効 設定は、 VLANインターフェース に対して行います。
    デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定どちらも 有効 となっています。

  3. IGMP Snoopingの機能として、以下の4つに対応します。
  4. IGMP Snoopingが 有効 に設定されているVLANインターフェースでは、 マルチキャストルーターポート自動で学習 しますが、
    ip igmp snooping mrouter interface コマンドで静的に設定することもできます。
    なお、VLANインターフェースに設定されているマルチキャストルーターポートは、 show ip igmp snooping mrouter コマンドで確認します。

  5. IGMP Snoopingが 有効 に設定されているVLANインターフェースでは、 IGMPレポート抑制機能 が自動で 有効 となります。
    IGMPレポート抑制機能を 無効 にすることはできません。
    レポート抑制機能により、IGMPレポート、IGMP leaveメッセージを送信する場合、送信元IPv4アドレスには、VLANインターフェースに割り振られているIPv4アドレスを使用します。
    (割り振られていない場合は、0.0.0.0を設定して送信します。)

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

  7. マルチキャストルーターが存在しない環境でIGMP Snoopingを使用するために、 IGMP クエリー送信機能 に対応します。
    IGMP クエリー送信機能は、以下の2つのパラメータで制御します。
  8. VLAN内に複数の機器がクエリーを送信する場合、VLAN内で最も小さいIPv4アドレスを持つ機器がクエリー送信を行います。
    本製品は、自身のIPv4アドレスより小さなIPv4アドレスを持つ機器からのクエリーを受信した場合、クエリー送信機能を停止します。
    なお、クエリー送信時に設定する送信元IPv4アドレスは、VLANインターフェースに割り振られているIPv4アドレスを使用しますが、割り振られていない場合は、
    他のVLANインターフェースに割り振られているIPv4アドレスを使用します。(すべてのVLANインターフェースにIPv4アドレスが割り当てられていない場合は、
    0.0.0.0を設定して送信します。)

  9. 本製品では、受信したIGMPパケットのTTL値が不正(1以外)だった場合、破棄をしないで強制的に"1"に変更する機能を提供します。
    本機能を "TTLチェック機能" と定義し、VLANインターフェースに対して ip igmp snooping check ttl コマンドで設定を行うことができます。
    TTLチェック機能 は、デフォルトVLAN (VLAN #1)に対する初期設定、VLAN 生成後の初期設定どちらも 有効(TTL不正値のパケットを破棄) となっています。


4 関連コマンド

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



5 コマンド実行例

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

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


  1. VLAN #10 を定義して、IGMP Snoopingの設定を行います。
    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10                ... (VLAN #10 の定義)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ip igmp snooping enable     ... (VLAN #10 のIGMP Snoopingを有効にする)
    Yamaha(config-if)#no ip igmp snooping querier ... (VLAN #10 のIGMP クエリー送信機能を無効にする)
    Yamaha(config-if)#ip igmp snooping fast-leave ... (VLAN #10 のIGMP Fast-leave機能を有効にする)
    
  2. LANポート #1 ~ #4 を アクセスポートに設定し、VLAN #10 に所属させます。
    Yamaha(config)# interface port1.1
    Yamaha(config-if)# switchport mode access
    Yamaha(config-if)# switchport access vlan 10
    (上記設定をLANポート #2 ~ #4に対しても行います。)
    
  3. マルチキャストルーターポートの情報を確認します。(LANポート #1 につながっている)
    Yamaha#show ip igmp snooping mrouter vlan10
    VLAN    Interface             IP-address    Expires
    10      port1.1(dynamic)         192.168.100.216        00:00:49
    
  4. マルチキャスト受信者の情報を確認します。
    Yamaha#show ip igmp snooping groups
    IGMP Snooping Group Membership
    Group source list: (R - Remote, S - Static)
    Vlan   Group/Source Address    Interface      Flags   Uptime     Expires  Last Reporter   Version
    10     239.0.0.1                port1.2        R      00:00:13   00:00:41 192.168.100.2    V3
    10     239.0.0.1                port1.4        R      00:00:02   00:00:48 192.168.100.4    V3
    


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

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


  1. [スイッチ#A] VLAN #10 を定義して、IGMP Snoopingの設定を行います。
    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10                       ... (VLAN #10 の定義)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ip igmp snooping enable            ... (VLAN #10 のIGMP Snoopingを有効にする)
    Yamaha(config-if)#ip igmp snooping querier           ... (VLAN #10 のIGMP クエリー送信機能を有効にする)
    Yamaha(config-if)#ip igmp snooping query-interval 20 ... (VLAN #10 のIGMP クエリーの送信間隔を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
    (上記設定をLANポート #2に対しても行います。)
    
  3. [スイッチ#B] VLAN #10 を定義して、IGMP Snoopingの設定を行います。
    Yamaha(config)# vlan database
    Yamaha(config-vlan)#vlan 10                   ... (VLAN #10 の定義)
    Yamaha(config-vlan)#exit
    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ip igmp snooping enable          ... (VLAN #10 のIGMP Snoopingを有効にする)
    Yamaha(config-if)#no ip igmp snooping querier    ... (VLAN #10 のIGMP クエリー送信機能をに無効する)
    Yamaha(config-if)#no ip igmp snooping check ttl  ... (VLAN #10 のTTLチェック機能を無効にする)
    Yamaha(config-if)#ip igmp snooping fast-leave    ... (VLAN #10 のIGMP Fast-leave機能を有効にする)
    
  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
    (上記設定をLANポート #2 ~ #4に対しても行います。)
    
  5. [スイッチ#B] マルチキャストルーターポートの情報を確認します。(LANポート #1 につながっている)
    Yamaha#show ip igmp snooping mrouter vlan10
    VLAN    Interface             IP-address    Expires
    10      port1.1(dynamic)         192.168.100.216        00:00:49
    
  6. [スイッチ#B] マルチキャスト受信者の情報を確認します。
    Yamaha#show ip igmp snooping groups
    IGMP Snooping Group Membership
    Group source list: (R - Remote, S - Static)
    Vlan   Group/Source Address    Interface      Flags   Uptime     Expires  Last Reporter   Version
    10     239.0.0.1                port1.2        R      00:00:13   00:00:41 192.168.100.2    V3
    10     239.0.0.1                port1.4        R      00:00:02   00:00:48 192.168.100.4    V3
    



6 注意事項

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



7 関連文書


トップへ戻る