IGMP スヌーピングの設定

IGMP スヌーピングの情報

IGMP スヌーピング ソフトウェアは、VLAN 内の IGMP プロトコル メッセージを調べて、このトラフィックの受信に関連のあるホストまたはその他のデバイスに接続されているのはどのインターフェイスかを検出します。IGMP スヌーピングは、インターフェイス情報を使用して、マルチアクセス ローカル エリア ネットワーク(LAN)環境での帯域幅消費を減らすことができ、これによって VLAN 全体のフラッディングを防ぎます。IGMP スヌーピング機能は、どのポートがマルチキャスト対応ルータに接続されているかを追跡して、IGMP メンバーシップ レポートの転送管理を支援します。トポロジの変更通知には、IGMP スヌーピング ソフトウェアが応答します。


Note


IGMP スヌーピングは、すべてのイーサネット インターフェイスでサポートされます。ただし、PVLAN ではサポートされていません。[スヌーピング(snooping)]という用語が使用されるのは、レイヤ 3 コントロール プレーン パケットが代行受信され、レイヤ 2 の転送判断に影響を与えるためです。


Cisco NX-OS は、IGMPv2 と IGMPv3 をサポートします。IGMPv2 は IGMPv1 をサポートし、IGMPv3 は IGMPv2 をサポートします。以前のバージョンの IGMP のすべての機能がサポートされるわけではありませんが、メンバーシップ クエリとメンバーシップ レポートに関連した機能はすべての IGMP バージョンについてサポートされます。

次の図に、ホストと IGMP ルータの間に置かれた IGMP スヌーピング スイッチを示します。IGMP スヌーピング スイッチは、IGMP メンバーシップ レポートと脱退メッセージをスヌーピングし、それらを必要な場合にだけ、接続されている IGMP ルータに転送します。

Figure 1. IGMP スヌーピング スイッチ

Cisco NX-OS IGMP スヌーピング ソフトウェアは、最適化されたマルチキャスト フラッディング(OMF)をサポートします。これは、不明トラフィックをルータだけに転送し、データ駆動の状態生成は一切実行しません。IGMP スヌーピングの詳細については、http://tools.ietf.org/wg/magma/draft-ietf-magma-snoop/rfc4541.txt を参照してください。

IGMPv1 および IGMPv2

IGMPv1 と IGMPv2 は両方とも、メンバーシップ レポート抑制をサポートします。つまり、同一サブネット上の 2 つのホストが同一グループのマルチキャスト データを受信する場合、他方のホストからメンバー レポートを受信するホストは、そのレポートを送信しません。メンバーシップ レポート抑制は、同じポートを共有しているホスト間で発生します。

各 VLAN スイッチ ポートに接続されているホストが 1 つしかない場合は、IGMPv2 の高速脱退機能を設定できます。高速脱退機能を使用すると、最終メンバーのクエリー メッセージがホストに送信されません。ソフトウェアは IGMP Leave メッセージを受信すると、ただちに該当するポートへのマルチキャスト データ転送を停止します。

IGMPv1 では、明示的な IGMP Leave メッセージが存在しないため、特定のグループについてマルチキャスト データを要求するホストが存続しないことを示すために、メンバーシップ メッセージ タイムアウトが利用されます。


Note


Cisco NX-OS高速脱退機能がイネーブルになっている場合、他のホストの存在は確認されないため、最終メンバーのクエリ インターバル構成が無視されます。


IGMPv3

スイッチ上の IGMPv3 スヌーピングの実装は、アップストリーム マルチキャスト ルータが送信元に基づいたフィルタリングを行えるように、IGMPv3 レポートを転送します。

ソフトウェアのデフォルト設定では、各 VLAN ポートに接続されたホストが追跡されます。この明示的なトラッキング機能は、高速脱退メカニズムをサポートしています。

IGMPv3 メンバーシップ レポートには LAN セグメント上のグループ メンバの一覧が含まれていますが、最終ホストが脱退すると、メンバーシップ クエリーが送信されます。最終メンバーのクエリー インターバルについてパラメータを設定すると、タイムアウトまでにどのホストからも応答がなかった場合に、グループ ステートが解除されます。

IGMPスヌーピングクエリア

クエリーを発生させる VLAN 内にマルチキャスト ルータが存在しない場合、IGMP スヌーピング クエリアを設定して、メンバーシップ クエリーを送信させる必要があります。

IGMP スヌーピング クエリアがイネーブルな場合は、定期的に IGMP クエリーが送信されるため、IP マルチキャスト トラフィックを要求するホストから IGMP レポート メッセージが発信されます。IGMP スヌーピングはこれらの IGMP レポートを待ち受けて、適切な転送を確立します。

現在は、スイッチ クエリアと IGMP スヌーピング クエリアに対して同じ SVI IP アドレスを設定できます。そうすれば、両方のクエリアが同時にアクティブになって、一般的なクエリーを定期的に VLAN に送信するようになります。これを回避するには、IGMP スヌーピング クエリアとスイッチ クエリアで別々の IP アドレスを使用します。

IGMP フォワーディング

Cisco Nexus デバイスのコントロール プレーンは、IP アドレスを検出できますが、転送は [IP マルチキャスト グループ(IP multicast group)] だけを使用して発生します。

スイッチに接続されているホストは、IP マルチキャスト グループに参加する場合に、参加する IP マルチキャスト グループを指定して、要求されていない IGMP 参加メッセージを送信します。それとは別に、スイッチは、接続されているルータから一般クエリーを受信したら、そのクエリーを、物理インターフェイスか仮想インターフェイスかにかかわらず、VLAN 内のすべてのインターフェイスに転送します。マルチキャスト グループに参加するホストは、スイッチに参加メッセージを送信することにより応答します。スイッチの CPU が、そのグループ用のマルチキャスト転送テーブル エントリを作成します(まだ存在しなかった場合)。また、CPU は、参加メッセージを受信したインターフェイスを、転送テーブルのエントリに追加します。そのインターフェイスと対応付けられたホストが、そのマルチキャスト グループ用のマルチキャスト トラフィックを受信します。

ルータはマルチキャスト一般クエリーを定期的に送信し、スイッチはそれらのクエリーを VLAN のすべてのポートを通じて転送します。関心のあるホストがクエリーに応答します。VLAN 内の少なくとも 1 つのホストがマルチキャスト トラフィックを受信するようなら、ルータは、その VLAN へのマルチキャスト トラフィックの転送を続行します。スイッチは、そのマルチキャスト グループの転送テーブルにリストされているホストだけにマルチキャスト グループ トラフィックを転送します。

ホストがマルチキャスト グループから脱退するときには、ホストは、通知なしで脱退することもできれば、脱退メッセージを送信することもできます。スイッチは、ホストから脱退メッセージを受信したら、グループ固有のクエリーを送信して、そのインターフェイスに接続されているその他のデバイスの中に、そのマルチキャスト グループのトラフィックを受信するものがあるかどうかを調べます。スイッチはさらに、転送テーブルでその [IP マルチキャスト グループ(IP multicast group)] の情報を更新し、そのグループのマルチキャスト トラフィックの受信に関心のあるホストだけが、転送テーブルに指定されるようにします。ルータが VLAN からレポートを受信しなかった場合、その VLAN 用のグループは IGMP キャッシュから削除されます。

IGMP スヌーピング パラメータの設定

IGMP スヌーピング プロセスの動作を管理するには、次の表に示すオプションの IGMP スヌーピング パラメータを設定します。

Table 1. IGMP スヌーピング パラメータ

パラメータ

説明

IGMP スヌーピング

VLAN ごとに IGMP スヌーピングをイネーブルにします。デフォルトではイネーブルになっています。

Note

 

グローバルな設定がディセーブルになっている場合は、すべての VLAN がイネーブル化されてるかどうか関係なくディセーブル化されていると見なされます。

明示的な追跡

各ポートに接続されたそれぞれのホストから送信される IGMPv2 と IPMPv3 メンバーシップ レポートを、VLAN 別に追跡します。デフォルトではイネーブルになっています。

高速脱退

ソフトウェアが IGMP Leave レポートを受信した場合に、IGMP クエリー メッセージを送信することなく、グループ ステートを解除できるようにします。このパラメータは、IGMPv2 ホストに関して、各 VLAN ポート上のホストが 1 つしか存在しない場合に使用されます。デフォルトではディセーブルになっています。

最終メンバー クエリ間隔

IGMP クエリーの送信後に待機する時間を設定します。この時間が経過すると、ソフトウェアは、特定のマルチキャスト グループについてネットワーク セグメント上に受信要求を行うホストが存在しないと見なします。いずれのホストからも応答がないまま、最終メンバのクエリ インターバルの期限が切れると、対応する VLAN ポートからグループが削除されます。有効範囲は 1 ~ 25 秒です。デフォルト値は 1 秒です。

スヌーピング クエリア

クエリーを生成するマルチキャスト ルータが VLAN 内に存在しない場合に、インターフェイスのスヌーピング クエリアを設定します。デフォルトではディセーブルになっています。

レポート抑制

マルチキャスト対応ルータに送信されるメンバシップ レポート トラフィックを制限します。レポート抑制をディセーブルにすると、すべての IGMP レポートがそのままマルチキャスト対応ルータに送信されます。デフォルトではイネーブルになっています。

マルチキャスト ルータ

マルチキャスト ルータへのスタティック接続を設定します。ルータと接続するインターフェイスが、選択した VLAN に含まれている必要があります。

スタティック グループ

VLAN に属するインターフェイスを、マルチキャスト グループのスタティック メンバとして設定します。

IGMP スヌーピングは、グローバルにも、特定の VLAN に対してだけでもディセーブル化できます。

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip igmp snooping
  3. switch(config)# vlan configuration vlan-id
  4. switch(config-vlan)# ip igmp snooping
  5. switch(config-vlan)# ip igmp snooping explicit-tracking
  6. switch(config-vlan)# ip igmp snooping fast-leave
  7. switch(config-vlan)# ip igmp snooping last-member-query-interval seconds
  8. witch(config-vlan)# ip igmp snooping querier IP-address
  9. switch(config-vlan)# ip igmp snooping report-suppression
  10. switch(config-vlan)# ip igmp snooping mrouter interface interface
  11. switch(config-vlan)# ip igmp snooping static-group group-ip-addr [source source-ip-addr] interface interface

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

グローバル構成モードを開始します。

Step 2

switch(config)# ip igmp snooping

IGMP スヌーピングをグローバルにイネーブルにします。デフォルトではイネーブルになっています。

Note

 

グローバルな設定がディセーブルになっている場合は、すべての VLAN がイネーブル化されてるかどうか関係なくディセーブル化されていると見なされます。

Step 3

switch(config)# vlan configuration vlan-id

VLAN コンフィギュレーション モードを開始します。

Step 4

switch(config-vlan)# ip igmp snooping

現在の VLAN に対して IGMP スヌーピングをイネーブルにします。デフォルトではイネーブルになっています。

Note

 

IGMP スヌーピングがグローバルにイネーブルになっている場合は、このコマンドは必要ありません。

Step 5

switch(config-vlan)# ip igmp snooping explicit-tracking

各ポートに接続されたそれぞれのホストから送信される IGMPv2 と IGMPv3 メンバーシップ レポートを、VLAN 別に追跡します。デフォルトは、すべての VLAN でイネーブルです。

Step 6

switch(config-vlan)# ip igmp snooping fast-leave

IGMPv2 プロトコルのホスト レポート抑制メカニズムのために、明示的に追跡できない IGMPv2 ホストをサポートします。高速脱退がイネーブルの場合、IGMP ソフトウェアは、各 VLAN ポートに接続されたホストが 1 つだけであると見なします。デフォルトは、すべての VLAN でディセーブルです。

Step 7

switch(config-vlan)# ip igmp snooping last-member-query-interval seconds

いずれのホストからも IGMP クエリー メッセージへの応答がないまま、最終メンバのクエリー インターバルの期限が切れた場合に、関連する VLAN ポートからグループを削除します。有効範囲は 1 ~ 25 秒です。デフォルト値は 1 秒です。

Step 8

witch(config-vlan)# ip igmp snooping querier IP-address

マルチキャスト トラフィックをルーティングする必要がないため、PIM をイネーブルにしていない場合に、スヌーピング クエリアを設定します。IP アドレスは、メッセージの送信元として使用します。デフォルトではディセーブルになっています。

Step 9

switch(config-vlan)# ip igmp snooping report-suppression

マルチキャスト対応ルータに送信されるメンバシップ レポート トラフィックを制限します。レポート抑制をディセーブルにすると、すべての IGMP レポートがそのままマルチキャスト対応ルータに送信されます。デフォルトではイネーブルになっています。

Step 10

switch(config-vlan)# ip igmp snooping mrouter interface interface

マルチキャスト ルータへのスタティック接続を設定します。ルータと接続するインターフェイスが、選択した VLAN に含まれている必要があります。インターフェイスは、タイプと番号で指定できます。

Step 11

switch(config-vlan)# ip igmp snooping static-group group-ip-addr [source source-ip-addr] interface interface

VLAN に属するインターフェイスを、マルチキャスト グループのスタティック メンバとして設定します。インターフェイスは、タイプと番号で指定できます。

Example

次に、VLAN の IGMP スヌーピング パラメータを設定する例を示します:

switch# configure terminal
switch(config)# vlan configuration 5
switch(config-vlan)# ip igmp snooping last-member-query-interval 3
switch(config-vlan)# ip igmp snooping querier 172.20.52.106
switch(config-vlan)# ip igmp snooping explicit-tracking
switch(config-vlan)# ip igmp snooping fast-leave
switch(config-vlan)# ip igmp snooping report-suppression
switch(config-vlan)# ip igmp snooping mrouter interface ethernet 1/10
switch(config-vlan)# ip igmp snooping static-group 230.0.0.1 interface ethernet 1/10
switch(config-vlan)# end

IGMP スヌーピング設定の確認

IGMP スヌーピングの構成を確認するには、次のコマンドを使用します。

コマンド

説明

show ip igmp snooping [[vlan] vlan-id]

IGMP スヌーピング設定を VLAN 別に表示します。

show ip igmp snooping groups [[vlan] vlan-id] [detail]

グループに関する IGMP スヌーピング情報を VLAN 別に表示します。

show ip igmp snooping querier [[vlan] vlan-id]

IGMP スヌーピング クエリアを VLAN 別に表示します。

show ip igmp snooping mrouter [[vlan] vlan-id]

マルチキャスト ルータ ポートを VLAN 別に表示します。

show ip igmp snooping explicit-tracking vlan vlan-id

IGMP スヌーピングの明示的な追跡情報を VLAN 別に表示します。


Note


[v2 EHT の VPC の動作(VPC behavior for v2 EHT)]: VPC シナリオでは、明示的なホスト トラッキングは VPC ピアに同期されません。ただし、VPC ピアでは、EHT も cfs sync によって学習され、詳細オプションを使用して表示されます。


次に、IGMP スヌーピング パラメータを確認する例を示します。

switch# show ip igmp snooping
Global IGMP Snooping Information:
  IGMP Snooping enabled
IGMP Snooping information for vlan 1
  IGMP snooping enabled
  IGMP querier none
  Switch-querier disabled
  Explicit tracking enabled
  Fast leave disabled
  Report suppression enabled
  Router port detection using PIM Hellos, IGMP Queries
  Number of router-ports: 0
  Number of groups: 0
IGMP Snooping information for vlan 5
IGMP snooping enabled
  IGMP querier present, address: 192.0.2.1, version: 3
  Querier interval: 125 secs
  Querier last member query interval: 10 secs
  Querier robustness: 2
  Switch-querier enabled, address 192.0.2.1, currently running
  Explicit tracking enabled
  Fast leave enabled
  Report suppression enabled
  Router port detection using PIM Hellos, IGMP Queries
  Number of router-ports: 1
  Number of groups: 1

次の例は、IGMPv2 ホストでの明示的トラッキングの IGMP スヌーピング構成を表示する方法を示しています。

switch# show ip igmp snooping explicit tracking
IGMP Snooping Explicit-tracking information
Vlan Source/Group           
     Intf           Reporter      Uptime    Last-Join Expires   Ver  Reports
100  */225.1.1.69           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.70           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.71           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.72           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.73           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.74           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.75           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.76           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.77           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
100  */225.1.1.78           
     Eth1/43        10.1.1.2      00:00:02  00:00:02  00:04:17  v2   1
switch#: