この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
Cisco Group Management Protocol(CGMP)と Internet Group Management Protocol(IGMP; インターネット グループ管理プロトコル)スヌーピングの目的は、スイッチド ネットワークでマルチキャスト トラフィックを限定することです。デフォルトでは、LAN スイッチはブロードキャスト ドメイン内でマルチキャスト トラフィックをフラッディングするので、多くのマルチキャスト サーバがセグメントにストリームを送信している場合は、これによって多くの帯域幅が消費される可能性があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このドキュメントに関しては個別の前提条件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
マルチキャスト トラフィックがフラッドされるのは、スイッチが通常、受信したすべてのフレームのソース アドレス フィールドを見て、MAC アドレスを学習するためです。マルチキャスト MAC アドレスは、パケットの送信元アドレスとして使用されることはありません。MAC アドレス テーブルにはこのようなアドレスはないので、スイッチにはこれらを学習する方法はありません。
この問題の第 1 の解決策は、各グループと各クライアント用にスタティック MAC アドレスを設定することです。この解決策は正常に機能しますが、拡張性がなく、ダイナミックになりません。次のいずれかのコマンドを発行して、Catalyst 4000、5000、または 6000 スイッチにこの解決策を使用します。
set cam static
set cam permanent
これらの 2 つのコマンドは、static エントリがリブート時になくなり、permanent エントリはなくならないことを除いて、同じ効果があります。
第 2 の解決策は CGMP を使用することです。CGMP は、マルチキャスト ルータとスイッチの間で動作するシスコ独自のプロトコルです。CGMP によって、Cisco マルチキャスト ルータはホストによって送信された IGMP メッセージを理解できるようになり、CGMP が IGMP パケットに含まれる情報をスイッチに通知します。
最後の(かつ最も効率的な)解決策は、IGMP スヌーピングを使用することです。IGMP スヌーピングでは、スイッチがホスト自体からの IGMP メッセージを傍受して、それに従って自身の MAC テーブルを更新します。IGMP スヌーピングをサポートするには高度なハードウェアが必要です。
このドキュメントで提供する CGMP 設定は CatOS を実行している Catalyst 4000 および 5000 スイッチ用であり(CGMP は Catalyst 6000 スイッチではサポートされていない)、IGMP スヌーピング設定は CatOS を実行している Catalyst 5000 および 6000 スイッチ用です。
次のセクションでは、マルチキャスト アドレスについて簡単に紹介し、IGMP の機能を説明して、CGMP と IGMP スヌーピングのその他の詳細について説明します。
マルチキャスト IP アドレスはクラス D IP アドレスです。したがって、224.0.0.0 ~ 239.255.255.255 のすべての IP アドレスがマルチキャスト IP アドレスです。これは、Group Destination Addresses(GDA)とも呼ばれます。
各 GDA に関連した MAC アドレスがあります。この MAC アドレスは、GDA アドレスの最後の 23 ビットを01-00-5e の後に 16 進に変換して加えたものです。したがって、次のようになります。
239.20.20.20 は MAC 01-00-5e-14-14-14 に対応します。
239.10.10.10 は MAC 01-00-5e-0a-0a-0a に対応します。
したがって、これは 1 対 1 のマッピングではなく、1 対多のマッピングです。これら 2 つのアドレスから、最初のオクテット(239)が MAC アドレスでは使用されないことがわかります。そのため、後の 3 つのオクテットが同一で最初のオクテットが異なるマルチキャスト アドレスには、オーバーラップする MAC アドレスがあります。
マルチキャスト IP アドレスの中には、次に示すように特殊な用途のために予約されているものがあります。
224.0.0.1:すべてマルチキャスト対応のホスト。
224.0.0.2:すべてマルチキャスト対応のルータ。
224.0.0.5 と 224.0.0.6 は、Open Shortest Path First(OSPF)で使用されます。
一般に、224.0.0.1 から 224.0.0.255 までのアドレスは予約されており、さまざまなプロトコル(標準や Hot Standby Router Protocol(HSRP; ホットスタンバイ ルータ プロトコル)のような独自のプロトコル)で使用されます。 シスコでは、マルチキャスト ネットワークでこれらを GDA に使用しないことを推奨します。CGMP と IGMP スヌーピングはこの予約アドレス範囲では動作しません。
IGMPは、IGMPv1のRFC1112、IGMPv2のRFC2236、およびIGMPv3のRFC3376で定義されている標準です。IGMPは、ホストをルータに登録して、特定ののマルチキャストトラフィックを受信します。次のセクションでは、IGMP の概要を短く説明します。
IGMP バージョン 1(IGMPv1)メッセージは、IP データグラム内で転送され、次のフィールドを含みます。
バージョン1
Type:IGMP メッセージには、メンバシップ クエリとメンバシップ レポートという 2 つのタイプがあります。
チェックサム
GDA
メンバシップ レポートは、特定のマルチキャスト グループ(GDA)の受信を希望するホストによって発行されます。 メンバシップ クエリは、そのセグメントで依然として GDA を対象とするホストが存在するかどうかをチェックするために一定の間隔でルータによって発行されます。
ホスト メンバシップ レポートは、任意で(ホストが GDA トラフィックを先に受信することを希望する場合)またはメンバーシップ クエリーへの応答で発行されます。これは、次のフィールドと一緒に送信されます。
送信元 MAC:ホスト MAC アドレス
宛先 MAC:GDA 用の宛先 MAC
送信元 IP:ホストの IP アドレス
宛先 IP:GDA
IGMP データには、さらに、GDA といくつかの他のフィールドが含まれています。
ホスト メンバシップ クエリーは、ルータから全マルチキャスト アドレスに送信されます。アドレス:224.0.0.1.これらのクエリーでは、IGMP GDAフィールドに0.0.0.0が使用されます。各グループのホストはそのクエリーに応答する必要があります。応答しない場合は、ルータがその GDA のトラフィックをそのセグメントに転送するのを停止します(3 回の試行後)。 ルータは、各送信元用のマルチキャスト ルーティング エントリを維持して、発信インターフェイス(IGMP レポートの発信元のインターフェイス)のリストにそれをリンクします。 3 回 IGMP クエリーを送信して応答がないと、このインターフェイスは、その GDA にリンクされているすべてのエントリの出力インターフェイス リストから消去されます。
注:IGMPv1 には脱退メカニズムはありません。ホストがトラフィックを受信したくなければ、単に停止するだけです。それがサブネット上の最後のホストである場合、ルータはそのクエリーに対する答えを受け取らず、そのサブネットの GDA を削除します。
IGMP のバージョン 2 では、バージョン フィールドが削除されており、タイプ フィールドに異なる値を受け付けます。そのタイプを次に示します。
メンバシップ クエリ
IGMPv1 メンバシップ レポート
バージョン 2 メンバシップ レポート
グループ脱退
IGMPv2 で追加された最も重要な新機能の説明を次に示します。
IGMP Leave メッセージ:ホストがグループを離脱したい場合、Leave グループ IGMP メッセージを送信先 224.0.0.2 に送信します(IGMPv1 の場合はただ何も送信せずに離脱するだけでした)。
ルータは、メンバーシップ クエリーを 0.0.0.0 ではなく、グループ GDA に送信することによって、グループ固有クエリーを送信できます。
IGMP バージョン 3(ICMPv3)では、次の値を持つことができるようになったタイプ フィールドがあります。
メンバシップ クエリ
バージョン 3 メンバーシップ レポート
IGMPv3 の実装も、IGMP の以前のバージョンとの相互運用のために、次の 3 つのメッセージ タイプをサポートする必要があります。
バージョン 1 メンバシップ レポート [RFC1112]
バージョン 2 メンバシップ レポート [RFC2236]
バージョン 2 グループ脱退 [RFC2236]
IGMPv3 は、送信元フィルタリングのサポートを追加しました。これは、特定の送信元アドレスからのパケット、または、特定のマルチキャスト アドレスに送信された特定の送信元アドレスを除くパケットを受信することを対象とするレポートをシステムが作成する機能です。この機能は、Source Specific Multicast(SSM)とも呼ばれます。
コンピュータがSSMをサポートするには、IGMPv3をサポートする必要があります。ただし、IGMPv3をサポートするOSは比較的少数です。Windows XPはIGMPv3をサポートし、FreeBSDとLinuxで利用可能なIGMPv3サポートパッチがあります。
管理者は、ルータ レベルの IGMPv3 サポートとスイッチ レベルでの IGMPv3 スヌーピングを区別する必要があります。これらは異なる 2 つの機能です。
ハイブリッド モード ソフトウェア(スーパーバイザでの CatOS、MSFC での Cisco IOS® ソフトウェア)を稼動している Catalyst 6000 は、バージョン 7.5(1) から公式に IGMPv3 スヌーピングをサポートしています。
7.5(1) よりも前のバージョンでは、Catalyst 6000 スイッチは IGMPv3 を公式にはサポートしていませんでしたが、IGMPv3 パケットを正常に処理しているはずです。
統合 IOS ソフトウェアが稼動している Catalyst 6000 では、バージョン 12.1(8a)E 以降、ルータ レベル(L3 インターフェイス)で IGMPv3 がサポートされています。
Catalyst 4000 は、Supervisor III および IV 上のルータ レベルで IGMPv3 をサポートするだけです。IGMPv3 スヌーピングはサポートしません。
IGMPv3 は、Cisco IOS® ソフトウェア リリース 12.1(5)T 以降を稼動しているすべてのプラットフォームでサポートされています。
スイッチは、IGMP スヌーピングを動作させている場合、IGMP パケットを傍受して、傍受したパケットの内容に基づいてスタティック レイヤ 2(L2)転送テーブルにデータを入力します。ネットワーク上に IGMPv1 または IGMPv2 ホストが存在する場合、どちらのホストがどのマルチキャストを受信するのかを判断するために、あるいはマルチキャスト ストリームの受信を中止するために、スイッチによって IGMP Join および Leave が読み取られます。
IGMPv3 はより複雑です。その理由は、IGMPv3 がグループ アドレス(マルチキャスト アドレス)を使用しているだけでなく、トラフィックが来ると予想されている送信元も使用しているためです。CatOS 7.5 以降およびネイティブ IOS バージョン 12.1(8a)E 以降を稼動している Catalyst 6000 スイッチを除き、他のスイッチは現在はそれらのパケットを効果的にスヌーピングできず、この情報に基づいて転送テーブルを構築します。したがって、スイッチ上に IGMPv3 ホストが存在する場合、IGMP スヌーピングをオフにする必要があります。IGMP スヌーピングをオフにすると、スイッチではマルチキャスト ストリーム用 L2 フォワーディング テーブルの動的な構築ができなくなります。つまり、スイッチはマルチキャスト ストリームをフラッディングします。
IGMP スヌーピングが無効な場合、マルチキャスト トラフィックでサブネットをフラッディングすることを避けるための 1 つの解決策は、マルチキャスト ダイナミック Content-Addressable Memory(CAM; 連想メモリ)エントリを手動で設定することです。これは管理上の負担となりますが、ダイナミック ソリューションではありません。クライアントがこれ以上トラフィックを受信したくないときには、CAM エントリはスイッチから削除されず(手動による介入を除く)、そのため、ネットワーク トラフィックは引き続きホストに宛てられます。
また、ネットワークで IGMPv3 を使用するときに、CGMP を使用するスイッチは、CGMP 高速脱退が動作しなくても、正常に動作します。CGMP 高速脱退が必要な場合は、IGMPv2 に戻すことが最適です。
プラットフォーム固有の未解決の注意事項は、該当するスイッチのリリース ノートを参照してください。
IGMP のいずれのバージョンでも、1 つの IP サブネットに付き 1 台のルータのみがクエリーを送信します。このルータをクエリー ルータと呼びます。IGMPv1 では、クエリ ルータはマルチキャスト ルーティング プロトコルの支援によって選択されます。IGMPv2 では、クエリ ルータはルータの中で最も小さい IP アドレスによって選択されます。次にいくつかの可能性を示します。
ルータが IGMPv2 レポートを理解しないので、すべてのホストは IGMPv1 レポートだけを使用する必要があります。
IGMPv1 ホストは IGMPv2 クエリまたは IGMPv2 グループ メンバーシップ クエリを理解しません。ルータは IGMPv1 だけを使用する必要があり、脱退操作は一時中断します。
IGMPv1 ルータには IGMPv2 ルータを検出する方法がありません。そのため、IGMPv2 ルータは、管理者が IGMPv1 ルータとして設定する必要があります。いずれの場合も、クエリー ルータで一致しない可能性があります。
IGMP のすべてのバージョンでは、クエリーを送信するのは IP サブネットにつき 1 台のルータだけです。このルータをクエリー ルータと呼びます。IGMPv1 では、クエリ ルータはマルチキャスト ルーティング プロトコルの支援によって選択されます。IGMPv2 および IGMPv3 では、クエリ ルータはルータの中で最も小さい IP アドレスによって選択されます。次に示すのは、いくつかの相互運用オプションです。
ルータが IGMPv3 レポートを理解しないので、すべてのホストは IGMPv1/IGMPv2 レポートを使用します。
IGMPv1/IGMPv2 ホストは IGMPv3 クエリまたは IGMPv3 メンバーシップ クエリーを認識しません。ルータは、存在する一番低い IGMP クライアント バージョンに対応する IGMP バージョンだけを使用する必要があります。IGMPv3およびIGMPv2クライアントがある場合、ルータはIGMPv2を使用します。IGMPv1、IGMPv2、およびIGMPv3クライアントがある場合、ルータはIGMPv1を使用します。
異なるバージョンのルータが同じセグメント上に存在する場合、低いバージョンのルータには高いバージョンのルータを検出する手段が用意されていません。したがって、管理者は、異なるルータを同じバージョンに設定する必要があります。このバージョンは、存在するクエリー実行の任意のルータ上での最も低いバージョンに一致する必要があります。
デフォルトで、サブネット内の特定のグループに登録されているユーザが存在しない場合、ルータはそのサブネット内のそのグループにマルチキャスト トラフィックを転送しません。つまり、ルータは、マルチキャスト ルーティング テーブルに IGMP レポートを追加し、そのグループへのトラフィックの転送を開始するために GDA 用の IGMP レポートを受信する必要があることを意味しています。
ルータでは、次のアクションを実行する必要があります。
次に示すように、グローバル モードでマルチキャスト ルーティングを有効にします。
ip multicast-routing
次に示すように、含まれているインターフェイスにマルチキャスト ルーティング プロトコルを設定します。
ip pim dense-mode
次に示すように、IGMP を監視します。
show ip igmp interface show ip igmp group show ip mroute
次に示すように、(インターフェイスについての)IGMP レポートを送信するようにルータを設定します。
ip igmp join-group [GDA_ip_address]
ip igmp version [1 | 2 | 3]
ルータは、2つのサブインターフェイスFast-Ethernet 0.2とFast-Ethernet 0.3の間をルーティングするように設定されています。両方のインターフェイスもIGMPを実行するように設定されています。次の出力では、IGMP のバージョン、参加グループなどを知ることができます。
ip multicast-routing interface FastEthernet0 no ip address no ip directed-broadcast ! interface FastEthernet0.2 encapsulation isl 2 ip address 10.2.2.1 255.255.255.0 no ip redirects no ip directed-broadcast ip pim dense-mode ! interface FastEthernet0.3 encapsulation isl 3 ip address 10.3.3.1 255.255.255.0 no ip redirects no ip directed-broadcast ip pim dense-mode !
show ip igmp interface
Fa0.2 is up, line protocol is up Internet address is 10.2.2.1/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set IGMP activity: 3 joins, 2 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 10.2.2.1 (this system) IGMP querying router is 10.2.2.1 (this system) Multicast groups joined: 224.0.1.40 Fa0.3 is up, line protocol is up Internet address is 10.3.3.1/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set IGMP activity: 1 joins, 1 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 10.3.3.1 (this system) IGMP querying router is 10.3.3.1 (this system) No multicast groups joined
show ip mroute and show ip igmp group
Router_A#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:01:15/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0.3, Forward/Dense, 00:01:16/00:00:00 (10.2.2.2, 239.10.10.10), 00:00:39/00:02:20, flags: CT Incoming interface: FastEthernet0.2, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0.3, Forward/Dense, 00:00:39/00:00:00 Router_A#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 Fa0.3 00:02:48 00:02:04 10.3.3.2 Router_A#
Catalyst スイッチにおける CGMP のサポートについては、『マルチキャスト Catalyst スイッチのサポート一覧』を参照してください。
CGMP は、L2 ネットワークでマルチキャスト トラフィックを限定するためにシスコが最初に実装しました。基本的に、スイッチは L3 パケットの内容を確認できないため、IGMP パケットを識別できません。CGMP によって、ルータはホスト間にインターフェイスを提供します。ルータは IGMP と「対話」し、スイッチは CGMP と「対話」します。
CGMPフレームは、宛先MACアドレスが01-00-0c-dd-dd-ddのイーサネットフレームで、値が0x2001のサブネットワークアクセスプロトコル(SNAP)ヘッダーを持ちます。CGMPフレームには、次のフィールドが含まれます。
バージョン1 または 2。
メッセージの種類:加入または脱退。
カウント:メッセージ内のマルチキャスト/ユニキャスト アドレス ペアの数。
GDA:マルチキャスト グループの 48 ビット MAC アドレス。
Unicast Source Address(USA; ユニキャスト発信元アドレス):GDA への加入を希望しているデバイスの 48 ビット MAC ユニキャスト アドレスです。
注:カウント フィールドの値によって、最後の 2 つのフィールドが何回表示されたのかが判断されます。
デフォルトでは、スイッチのプロセッサ(CatalystではNMPと呼ばれる)は、 show cam system
コマンドが発行されます。スイッチでCGMPを有効にすると、アドレス01-00-0c-dd-dd-ddが show cam system
コマンド出力.
次の表は、すべての可能な CGMP メッセージを示しています。
GDA | USA | 加入/脱退 | 意味 |
---|---|---|---|
マルチキャスト MAC | クライアント MAC | 加入 | グループにポートを追加します。 |
マルチキャスト MAC | クライアント MAC | 脱退 | グループからポートを削除します。 |
00-00-00-00-00-00 | ルータ MAC | 加入 | ルータ ポートを割り当てます。 |
00-00-00-00-00-00 | ルータ MAC | 脱退 | ルータ ポートの割り当てを解除します。 |
マルチキャスト MAC | 00-00-00-00-00-00 | 脱退 | グループを削除します。 |
00-00-00-00-00-00 | 00-00-00-00-00-00 | 脱退 | すべてのグループを削除します。 |
スイッチは、ルータ ポートが新しく作成されたマルチキャスト エントリに自動的に追加されるように、すべてのルータ ポートを認識する必要があります。スイッチは、ルータ MAC USA(表の中の 3 番目のタイプのメッセージ)の GDA 00-00-00-00-00-00 に CGMP 加入を受信したときにルータ ポートを学習します。 これらのメッセージは、CGMP を実行するために設定されたすべてのインターフェイスのルータによって生成されます。ただし、スイッチのルータ ポートを設定するためのスタティックな方法も存在します。
新しいクライアントは GDA 向けのトラフィックを受信するように要求するので、クライアントは IGMP メンバシップ レポート メッセージを送信します。
ルータは IGMP レポートを受信し、それを処理してスイッチに CGMP メッセージを送信します。ルータは、宛先 MAC アドレスを CGMP 加入の GDA フィールドにコピーし、送信元 MAC アドレスを CGMP 加入の USA にコピーします。次に、それをスイッチに送信し戻します。
CGMP が有効なスイッチは CGMP 01-00-0c-dd-dd-dd アドレスを傍受する必要があります。スイッチのプロセッサは、USA の CAM テーブルを調べます。CAM テーブルに USA が存在すると、スイッチはどのポートに USA があるのかを知り、次のいずれかを実行します。
GDA の新しいスタティック エントリを作成して、すべてのルータ ポートとともにそれを USA ポートにリンクします。
USA ポートをこの GDA 用のポートのリストに追加します(スタティック エントリがすでに存在する場合)。
CGMP で学習されたスタティック エントリは、スパニング ツリー トポロジの変更が VLAN で発生したり、ルータが前述の表の最後の CGMP 脱退メッセージの 1 つを送信しない限り、永続的です。
IGMPv1 がホストである場合、IGMP 脱退メッセージは送信しないでください。ルータは 3 回連続して IGMP クエリー への応答を受信しない場合、Leave メッセージを送信します。つまり、そのグループにまだ興味を示しているユーザがいれば、ポートはグループから削除されないということです。
IGMPv2 の導入と IGMP 脱退の存在によって、シスコはオリジナルの CGMP 仕様(CGMPv2)に追加しました。 この追加を CGMP 高速脱退と呼びます。
CGMP Fast-Leave 処理により、スーパーバイザ エンジン モジュールのポート上のホストによって、すべてのルータのマルチキャスト アドレス(224.0.0.2)に送信された IGMP バージョン 2 の Leaveメッセージをスイッチが検出できます。スーパーバイザ エンジン モジュールは、脱退メッセージを受信すると、クエリ応答タイマーを開始し、脱退が受信されたポートでこのマルチキャスト グループを引き続き積極的に受信しようとしているホストが存在するかどうかを判断するために、そのポートにメッセージを送信します。CGMP 加入メッセージが受信される前にこのタイマーが終了した場合、ポートは、オリジナルの脱退メッセージに指定されたマルチキャスト グループ向けのマルチキャスト ツリーからプルーニングされます。これがマルチキャスト グループの最後のポートである場合、IGMP 脱退メッセージをすべてのルータ ポートに転送します。ルータは、次にグループ固有のクエリーを送信して、通常の削除プロセスを開始します。応答は何も受信されないので、ルータは、そのインターフェイス向けのマルチキャスト ルーティング テーブルからこのグループを削除します。また、スタティック テーブルからグループを消去するスイッチに CGMP 脱退メッセージも送信します。高速脱退処理によって、複数のマルチキャスト グループが同時に使用中の場合であっても、スイッチド ネットワークのすべてのホスト向けの最適の帯域幅管理を確実にします。
CGMP Leaveが有効な場合、2つのエントリが show cam system
コマンドの出力を示します。
01-00-5e-00-00-01 01-00-5e-00-00-02
IGMP 脱退は 224.0.0.2 を使用し、IGMP クエリは 224.0.0.1 を使用します。
次の手順を使用して CGMP のトラブルシューティングを行います。
CGMP Leave 処理は Hot Standby Router Protocol(HSRP)と競合するため、デフォルトでは無効になっています。HSRP は MAC アドレス 01-00-5e-00-00-02 を使用します。これは、IGMP バージョン 2 の IGMP Leave と同じです。CGMP Fast-Leave を使用すると、すべての HSRP パケットはスイッチ CPU に送信されます。HSRP メッセージは IGMP パケットではないので、スイッチはそのようなメッセージをすべて再生成して、すべてのルータ ポートに送信します。hsrp hello または hsrp peers を受信しているルータは接続を失います。したがって、HSRP の問題をデバッグする場合は、CGMP Fast-Leave を無効にしてください。
CGMP脱退処理を有効にするには、 set cgmp leave enable
コマンドが表示されない場合もあります。
CGMP 脱退処理が有効の場合、Catalyst 5000 ファミリ スイッチは、PIM-v1、HSRP および CGMP Self-Join メッセージからルータ ポートを学習します。CGMP Leave 処理が無効の場合は、Catalyst 5000 ファミリ スイッチは、CGMP Self-Join メッセージからのみルータ ポートを知ることになります。
CGMP は、01-00-5E-00-00-00 から 01-00-5E-00-00-FF までの範囲の MAC アドレスにマップする IP マルチキャスト アドレスに対してマルチキャスト トラフィックをプルーニングしません。224.0.0.0 から 224.0.0.255 までの範囲の予約済みの IP マルチキャスト アドレスは、単一の L3 ホップでローカルな IP マルチキャスト トラフィックを転送するために使用されます。
送信元だけのネットワークは、送信元マルチキャストだけで実際のクライアントを持たないセグメントです。そのため、そのセグメントでは IGMP レポートが生成されない場合があります。ただし、CGMP は引き続きこの送信元のフラッディングを制限する必要があります(ルータでの使用の場合だけ)。ルータが IGMP レポートのない 1 つのインターフェイス上でマルチキャスト トラフィックを検出する場合、マルチキャストの送信元だけのネットワークとして識別されます。ルータはそれ自体のために CGMP 加入メッセージを生成し、スイッチはこのグループを単純に追加します(ルータ ポートのみ)。
次のコマンドは、Catalyst 4000 と 5000 シリーズ(および 2901、2902、2926、2948G、4912)の場合だけに有効です。
マルチキャスト ルータ
IP マルチキャストを有効にする(グローバル モード)。
ip multicast-routing
次のコマンドで CGMP を実行している各インターフェイスを有効にします(インターフェイス モード)。
ip pim
ip igmp
ip cgmp
次のコマンドで L2 マルチキャスト問題をデバッグします。
debug ip igmp
debug ip cgmp
Catalyst 4000 または 5000 シリーズ
次のコマンドで CGMP を有効/無効にする。
set cgmp
次のコマンドで CGMP 高速脱退をイネーブル/ディセーブルにします。
set cgmp leave
次のコマンドでマルチキャスト ルータ(スタティック)を設定します。
set multicast router
次のコマンドでマルチキャスト ルータをクリアします。
clear multicast router
次に示すのは、CGMP 処理を確認するためのさまざまなコマンドです。
show cam static
show cgmp statistic
show cgmp leave
show multicast router
show multicast group
show multicast group cgmp
show multicast group count
これは、Cisco ルータと Catalyst スイッチの設定の実例です。
この設定は、ホストがグループに加入するときに含まれる処理を示しています。この設定は、Fast-Leave を有効にして、ホストがグループから離脱(Leave)する場合の操作を示します。また、スニッファ トレースとスイッチおよびルータの設定も提供されます。
CGMP でグループに加入するときに次の手順を参照してください。
次に示すようにスイッチで CGMP をイネーブルにします。
Switch_B (enable) set cgmp en MCAST-CGMP: Set CGMP Sys Entrie MCAST-CGMP: Set CGMP Sys Entrie MCAST-CGMP: Set CGMP Sys Entrie CGMP support for IP multicast enabled. Switch_B (enable)
次に示すように、エントリ01-00-0c-dd-dd-ddは show cam system
コマンド出力.さらに、ネットワークが CGMP 高速脱退を実行しているので、01-00-5e-00-00-01 および 01-00-5e-00-00-02 用のエントリを確認できます。
Switch_B (enable) show cgmp leave CGMP: enabled CGMP leave: enabled Switch_B (enable) show cam system * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 1 00-10-2f-00-14-00 # 7/1 1 00-e0-fe-4b-f3-ff # 1/9 1 01-00-0c-cc-cc-cc # 1/9 1 01-00-0c-cc-cc-cd # 1/9 1 01-00-0c-dd-dd-dd # 1/9 1 01-00-0c-ee-ee-ee # 1/9 1 01-80-c2-00-00-00 # 1/9 1 01-80-c2-00-00-01 # 1/9 2 00-10-2f-00-14-00 # 7/1 2 01-00-0c-cc-cc-cc # 1/9 2 01-00-0c-cc-cc-cd # 1/9 2 01-00-0c-dd-dd-dd # 1/9 2 01-80-c2-00-00-00 # 1/9 2 01-80-c2-00-00-01 # 1/9 3 01-00-0c-cc-cc-cc # 1/9 3 01-00-0c-cc-cc-cd # 1/9 3 01-00-0c-dd-dd-dd # 1/9 3 01-80-c2-00-00-00 # 1/9 3 01-80-c2-00-00-01 # 1/9 Total Matching CAM Entries Displayed = 19
ルータは CGMP 加入メッセージを、ルータの USA MAC とともに GDA 00-00-00-00-00-00 に送信します。そのため、ルータ ポートはルータ ポート リストに追加されます(次の最初の例を参照)。
ルータ上:
6d01h: CGMP: Sending self Join on Fa0.3 6d01h: GDA 0000.0000.0000, USA 0060.70cd.83c9
スイッチ側
MCAST-CGMP-JOIN: recvd CGMP JOIN msg on port 3/1 vlanNo 2 MCAST-CGMP-JOIN: join GDA 00-00-00-00-00-00 MCAST-CGMP-JOIN:USA 00-60-70-cd-83-c9 MCAST-ROUTER: Adding QUERIER port 3/1, vlanNo 2 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 2 Switch_B (enable) show multi router CGMP enabled IGMP disabled Port Vlan --------- ---------------- 3/1 2-3 Total Number of Entries = 1 '*' - Configured
3/1のPCは、GDA:239.10.10.10 を含むレポートを IGMP に送信します(次のフレーム 2 を参照)。 次に示すのは、 show ip igmp group
コマンドの出力が表示されます。
これは、ルータが 224.10.10.10 用のトラフィックを fa0.3 に現在転送していることを示しています。これは、クライアント PC である 10.3.3.2 から IGMP レポートを受信した結果です。
Router_A#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 Fa0.3 00:02:48 00:02:04 10.3.3.2 Router_A#
ルータはレポートを受信し、次の情報とともにCGMP加入メッセージを送信します。
送信元 MAC:ルータの MAC アドレス
宛先 MAC:01-00-cc-dd-dd-dd
内容:クライアント PC の MAC アドレス(USA):00-00-0c-07-ac-00マルチキャスト グループの MAC アドレス:01-00-5e-0a-0a-0a(次のフレーム 3 を参照)
ルータ上:
6d01h: IGMP: Received v2 Report from 10.3.3.2 (Fa0.3) for 239.10.10.10 6d01h: CGMP: Received IGMP Report on Fa0.3 6d01h: from 10.3.3.2 for 239.10.10.10 6d01h: CGMP: Sending Join on Fa0.3
01-00-cc-dd-dd-ddを含むスイッチが show cam system
コマンド出力でCGMPが有効になっている。スイッチは、パケットを処理できます。
スイッチは、クライアント PC の MAC アドレスが存在するポートを判断するためにダイナミック CAM テーブルのルックアップを作成します。アドレスはポート3/2に配置され、スイッチは01-00-5e-0a-0a-0aのCAMテーブルにポート3/2にバインドされたスタティックエントリを作成します。また、スイッチはそのGDAのスタティックエントリにルータポート3/1を追加します。
スイッチ側
MCAST-CGMP-JOIN: recvd CGMP JOIN msg on port 3/1 vlanNo 3 MCAST-CGMP-JOIN: join GDA 01-00-5e-0a-0a-0a MCAST-CGMP-JOIN:USA 00-60-5c-f4-bd-e2 MCAST-CGMP-JOIN: 3/2/3: index 81 MCAST-CGMP-JOIN: recvd CGMP JOIN msg on port 3/1 vlanNo 2 MCAST-CGMP-JOIN: join GDA 01-00-5e-00-01-28 MCAST-CGMP-JOIN:USA 00-60-70-cd-83-c9 MCAST-CGMP-JOIN: 3/1/2: index 80
マルチキャスト グループ 239.10.10.10 向けの後に続くすべてのトラフィックは、この VLAN のこのポートだけに転送されます。次に示すのは、3/1 がルータ ポートで、3/2 がクライアント ポートである Catalyst スイッチにあるスタティック エントリです。
Switch_B (enable) show cam static * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 3 01-00-5e-0a-0a-0a 3/1-2 Total Matching CAM Entries Displayed = 3 Switch_B (enable)
次の例では、クライアントが IGMP バージョン 2 クライアントで、スイッチで Fast-Leave が有効になっている必要があります。
次の手順によって、CGMP Fast-Leave が有効になります。次の図を参照してください。 show cgmp leave
コマンド出力を使用して、有効になっているかどうかを確認します。また、 show cam system
コマンド出力を使用して、スイッチが01-00-5e-00-00-01および01-00-5e-00-00-02(leaveに使用されるアドレス)をリッスンしているかどうかを確認します。
Switch_B (enable) show cgmp leave CGMP: enabled CGMP leave: enabled Switch_B (enable) show cam sys * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 1 00-10-2f-00-14-00 # 7/1 1 00-e0-fe-4b-f3-ff # 1/9 1 01-00-0c-cc-cc-cc # 1/9 1 01-00-0c-cc-cc-cd # 1/9 1 01-00-0c-dd-dd-dd # 1/9 1 01-00-0c-ee-ee-ee # 1/9 1 01-80-c2-00-00-00 # 1/9 1 01-80-c2-00-00-01 # 1/9 2 00-10-2f-00-14-00 # 7/1 2 01-00-0c-cc-cc-cc # 1/9 2 01-00-0c-cc-cc-cd # 1/9 2 01-00-0c-dd-dd-dd # 1/9 2 01-00-5e-00-00-01 # 1/9 2 01-00-5e-00-00-02 # 1/9 2 01-80-c2-00-00-00 # 1/9 2 01-80-c2-00-00-01 # 1/9 3 01-00-0c-cc-cc-cc # 1/9 3 01-00-0c-cc-cc-cd # 1/9 3 01-00-0c-dd-dd-dd # 1/9 3 01-00-5e-00-00-01 # 1/9 3 01-00-5e-00-00-02 # 1/9 3 01-80-c2-00-00-00 # 1/9 Do you wish to continue y/n [n]? y Total Matching CAM Entries Displayed = 22
クライアントは224.0.0.2にIMPG Leaveメッセージを送信します。スイッチはこれを代行受信し、Leaveを受信したポートでIGMP Queryを送信します。次に示します debug
スイッチの出力:
MCAST-IGMP-LEAVE:Recvd leave on port 3/2 vlanNo 3 MCAST-IGMP-LEAVE:router_port_tbl[vlanNo].QueryTime = 0 MCAST-IGMP-LEAVE:deletion_timer = 1 MCAST-SEND:Transmitting IGMP Mac Based GS Query msg on port 3/2 vlanNo 3 MCAST-SEND: Transmit Succeeded for IGMP Group Specific Query msg on port 3/2 vlanNo 3
応答を受信しないので、下記の通り、Catalyst は IGMP Leave メッセージをルータに転送します。
MCAST-TIMER:IGMPLeaveTimer expired on port 3/2 vlanNo 3 GDA 01-00-5e-0a-0a-0a MCAST-TIMER:IGMPLeaveTimer expiry: Transmit IGMP Leave on port 3/1 vlanNo 3 MCAST-SEND:Transmitting IGMP Leave msg on port 3/1 vlanNo 3 MCAST-SEND: Inband Transmit Succeeded for IGMP Leave Message on port 3/1 vlanNo 3
ルータは IGMP 脱退メッセージを受信するので、CGMP 脱退メッセージをスイッチに送信し、また、自身の IGMP グループ リストからグループを削除します。以下は、 debug
コマンドの出力が表示されます。
ルータ上:
IGMP: Received Leave from 10.200.8.108 (Fa0.3) for 239.10.10.10 IGMP: Send v2 Query on Fa0.3 to 239.10.10.10 IGMP: Send v2 Query on Fa0.3 to 239.10.10.10 CGMP: Sending Leave on Fa0.3 GDA 0100.5e0a.0a0a, USA 0000.0000.0000 IGMP: Deleting 239.10.10.10 on Fa0.3
フレーム 1
フレーム1はGDA 00-00-00-00-00-00へのCGMP加入フレームです。ルータポートをルータポートリストに追加するために使用されます。
ISL: ----- ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C0000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C958B7B1000 ISL: Length = 76 ISL: Constant value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit (BPDU) = 0 ISL: Port Index = 193 ISL: Reserved ISL: ETHER: ----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast 01000CDDDDDD !--- Send to the CGMP !--- macaddress present inshow cam sys
!--- command output. ETHER: Source = Station Cisco11411E1 ETHER: 802.3 length = 24 ETHER: LLC: ----- LLC Header ----- LLC: LLC: DSAP Address = AA, DSAP IG Bit = 00 (Individual Address) LLC: SSAP Address = AA, SSAP CR Bit = 00 (Command) LLC: Unnumbered frame: UI LLC: SNAP: ----- SNAP Header ----- SNAP: SNAP: Vendor ID = Cisco1 SNAP: Type = 2001 (CGMP) SNAP: CGMP: ----- CGMP ----- CGMP: CGMP: Version = 16 CGMP: Type = 0 (Join) CGMP: Reserved CGMP: Count = 1 CGMP: CGMP: Group Destination Address and Unicast Source Address CGMP: CGMP: GDA =0000.0000.0000 CGMP: USA =0000.0C14.11E1 !--- MAC address of the router. CGMP:
フレーム 1 の結果は、3/1 がルータに接続されるポートになるスイッチ上にあります。
Frame 2
フレーム 2 は、ユーザがグループ 239.10.10.10 用のトラフィックを受信したいと要求(または確認)するためにホストによって送信される IGMP メンバシップ レポートです。
ISL: ----- ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C0000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C958B7B1000 ISL: Length = 76 ISL: Constant value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit (BPDU) = 0 ISL: Port Index = 195 ISL: Reserved ISL: ETHER: ----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast 01005E0A0A0A !--- Destination is the GDA MAC. ETHER: Source = Station Cisco176DCCA !--- Sourced by the PC connected in 3/1. ETHER: Ethertype = 0800 (IP) ETHER: IP: ----- IP Header ----- IP: IP: Version = 4, header length = 20 bytes IP: Type of service = C0 IP: 110. .... = internetwork control IP: ...0 .... = normal delay IP: .... 0... = normal throughput IP: .... .0.. = normal reliability IP: Total length = 28 bytes IP: Identification = 0 IP: Flags = 0X IP: .0.. .... = may fragment IP: ..0. .... = last fragment IP: Fragment offset = 0 bytes IP: Time to live = 1 seconds/hops IP: Protocol = 2 (IGMP) IP: Header checksum = CC09 (correct) IP: Source address = [10.1.1.2] IP: Destination address = [224.10.10.10] IP: No options IP: IGMP: ----- IGMP header ----- IGMP: IGMP: Version = 1 IGMP: Type = 6 (Ver2 Membership Report) IGMP: Unused = 0x00 IGMP: Checksum = FFEA (correct) IGMP: Group Address = [224.10.10.10] IGMP:
Frame 3
フレーム 3 は、01-00-5e-0a-0a-0a 用のスタティック エントリに追加するようにスイッチに通知するために、スイッチにルータによって送信される CGMP フレームです。
ISL: ----- ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C0000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C958B7B1000 ISL: Length = 76 ISL: Constant value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit (BPDU) = 0 ISL: Port Index = 193 ISL: Reserved ISL: ETHER: ----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast 01000CDDDDDD ETHER: Source = Station Cisco11411E1 ETHER: 802.3 length = 24 ETHER: LLC: ----- LLC Header ----- LLC: LLC: DSAP Address = AA, DSAP IG Bit = 00 (Individual Address) LLC: SSAP Address = AA, SSAP CR Bit = 00 (Command) LLC: Unnumbered frame: UI LLC: SNAP: ----- SNAP Header ----- SNAP: SNAP: Vendor ID = Cisco1 SNAP: Type = 2001 (CGMP) SNAP: CGMP: ----- CGMP ----- CGMP: CGMP: Version = 16 CGMP: Type = 0 (Join) CGMP: Reserved CGMP: Count = 1 CGMP: CGMP: Group Destination Address and Unicast Source Address CGMP: CGMP: GDA =0100.5E0A.0A0A !--- GDA MAC added inshow cam static
!--- command output. CGMP: USA =0000.0C76.DCCA !--- MAC of the PC in 3/1. CGMP:
次に示すのは、ルータとスイッチの設定です。
Router_A (router) Configuration: Router_A#write terminal Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname Router_A ! ! ip subnet-zero ip multicast-routing ip dvmrp route-limit 20000 interface FastEthernet0 no ip address no ip directed-broadcast ! interface FastEthernet0.1 encapsulation isl 1 ip address 10.1.1.1 255.255.255.0 no ip redirects no ip directed-broadcast ! interface FastEthernet0.2 encapsulation isl 2 ip address 10.2.2.1 255.255.255.0 no ip redirects no ip directed-broadcast ip pim dense-mode ip cgmp ! interface FastEthernet0.3 encapsulation isl 3 ip address 10.3.3.1 255.255.255.0 no ip redirects no ip directed-broadcast ip pim dense-mode ip cgmp ! Switch_B configuration for CGMP: #cgmp set cgmp enable set cgmp leave enable ! CGMP statistics for VLAN 3: Switch_B (enable) show cgmp sta 3 CGMP enabled CGMP statistics for vlan 3: valid rx pkts received 109 invalid rx pkts received 0 valid cgmp joins received 108 valid cgmp leaves received 1 valid igmp leaves received 1 valid igmp queries received 63 igmp gs queries transmitted 1 igmp leaves transmitted 1 failures to add GDA to EARL 0 topology notifications received 0 Switch_B (enable)
IGMP スヌーピングは IGMP フレームを直接取り込むことのできるもう 1 つの機能です。Catalyst スイッチにおける IGMP スヌーピングのサポートについては、『マルチキャスト Catalyst スイッチのサポート一覧』を参照してください。
IGMP スヌーピングは、その名前が示すように、ホストとルータの間の IGMP のやり取りをスイッチが「リッスン」できる機能です。スイッチがホストからの指定のマルチキャスト グループ用の IGMP レポートをリッスンすると、スイッチはホストのポート番号をそのグループ用の GDA リストに追加します。そして、スイッチが IGMP Leave を傍受すると、CAM テーブル エントリからホストのポートを削除します。
スイッチは IGMP スヌーピングでルータ ポートを検出するために次のメッセージをリッスンします。
01-00-5e-00-00-01 に送信される IGMP メンバーシップ クエリー
01-00-5e-00-00-02 に送信される PIMv1 hello
01-00-5e-00-00-0d に送信される PIMv2 hello
01-00-5e-00-04 に送信される DVMRP プローブ
01-00-5e-00-05 または 06 に送信される MOSPF メッセージ
スイッチでIGMPスヌーピングを有効にすると、上記のすべてのMACエントリが show cam system
コマンドの出力を調べます。ルータ ポートが検出されると、その VLAN のすべての GDA のポートのリストに追加されます。
次に示すのは 2 つの加入シナリオです。
シナリオ A:ホスト A はセグメント内のグループに参加する最初のホストです。
ホスト A は任意の IGMP メンバーシップ レポートを送信します。
スイッチは、グループに加入したかったホストによって送信された IGMP メンバシップ レポートを傍受します。
スイッチはそのグループにマルチキャスト エントリを作成し、レポートを受信したポートとすべてのルータ ポートにそのエントリをリンクします。
スイッチはすべてのルータ ポートに IGMP レポートを転送します。これによって、ルータも IGMP レポートを受信し、それに従ってそのマルチキャスト ルーティング テーブルを更新します。
シナリオ B:現在、ホスト B は、同じグループに加入する 2 番目のホストです。
ホスト B は任意の IGMP メンバシップ レポートを送信します。
スイッチは、グループに加入したいホストによって送信された IGMP メンバシップ レポートを傍受します。
スイッチは、必ずしも IGMP レポートをすべてのルータ ポートに転送するわけではありません。実際、スイッチは IGMP レポートをプロキシ レポーティングを使用してルータ ポートに転送し、10 秒内に 1 グループにつき 1 つのレポートのみ転送します。
注:グループ メンバシップを維持するために、マルチキャスト ルータが 60 秒ごとに IGMP クエリを送信します。このクエリは、スイッチによって傍受され、スイッチ上のすべてのポートに転送されます。グループのメンバであるすべてのホストはそのクエリに応答します。しかし、スイッチが応答レポートも傍受するため、他方のホストは他の各レポートを受信せず、そのため、すべてのホストがレポートを送信します(グループごとに 1 つではなく)。 次に、スイッチはプロキシ レポートも使用して、受信したすべての応答の中で 1 つのグループに 1 つのレポートだけを転送します。
ホスト A がグループを脱退したいもののホスト B が引き続きグループを受信したい状態であると仮定します。
スイッチはホスト A から IGMP 脱退メッセージを取り込みます。
スイッチは、そのポートのグループのため(なおかつそのポートだけに)にグループ固有の IGMP クエリを発行します。
スイッチは、レポートを受信しない場合、このポートをエントリから廃棄します。そのポートから応答を受信した場合は、何も行わず、脱退メッセージを廃棄します。
ホスト B は、引き続きそのスイッチ上にあるそのグループからの対象になります。これが、エントリ内の最後の非ルータ ポートになることはありません。そのため、スイッチは脱退メッセージを転送しません。
ここで、ホスト B がグループを脱退したいと思っており、ホスト B がこのセグメント内のこのグループから対象になっている最後のユーザであると仮定します。
スイッチはホスト A から IGMP 脱退メッセージを取り込みます。
スイッチは、そのポートでグループ固有 IGMP クエリーを発行します。
スイッチは、レポートを受信しない場合、このポートをエントリから廃棄します。
これは、その GDA 向けの最後の非ルータ ポートです。スイッチは IGMP 脱退メッセージをすべてのルータ ポートに転送して、そのテーブルからエントリを削除します。
ネットワークによっては、ハードウェアの制約により、すべてのスイッチで IGMP スヌーピングを実行できないことがあります。その場合、同一のネットワーク内のいくつかのスイッチで CGMP を実行する必要がある可能性もあります。
これは特殊な場合であることに注意してください。IGMP スヌーピングを実行しているスイッチは CGMP メッセージを検出して、ネットワーク内のいくつかのスイッチが CGMP を実行していることを検出します。そのため、特殊な IGMP-CGMP モードに移って、プロキシ レポートをディセーブルにします。ルータは CGMP Join を作成するために、IGMP レポートの送信元 MAC アドレスを使用するので、CGMP が正常に動作するには、この操作が必要です。CGMP を実行しているルータは、すべての IGMP レポートを確認する必要があるので、プロキシ レポートは無効にする必要があります。ルータに送信されたレポートは、IGMP スヌーピングに厳密に必要とされるレポートだけです。
セグメントが 1 つのマルチキャスト サーバ(マルチキャスト送信元)だけでクライアントを含んでいない場合、そのセグメントに IGMP パケットを何も持っていないのにたくさんのマルチキャスト トラフィックを持つことになる可能性があります。この場合、スイッチは単にそのグループからセグメントの全員にトラフィックを転送するだけです。幸いなことに、IGMP スヌーピングを実行しているスイッチは、これらのマルチキャスト ストリームを検出でき、ルータ ポートだけでそのグループ用のマルチキャスト エントリを追加します。これらのエントリは内部で mcast_source_only としてフラグが立てられ、5 分ごとまたはルータのポートが削除されるとエージング アウトされます。このエージングの後であっても、トラフィックが継続した場合には数秒以内でアドレスが再学習されます。再学習期間中に、瞬間的なフラッディングは VLAN で発生することがあります。これを回避し、エントリを保持するには、 set igmp flooding enable | disable
コマンドが表示されない場合もあります。フラッディングがディセーブルになった後、スイッチは送信元だけのエントリをエージング アウトしません。
CGMP と同様、01-00-5e-00-00-xx の範囲に収まる MAC にマップする GDA は、IGMP スヌーピングによってプルーニングされることはありません。
IGMP スヌーピングを有効/無効するには、次のコマンドを発行します。
set igmp
マルチキャスト ルータ(スタティック)を設定するには、次のコマンドを発行します。
set multicast router
clear multicast router
IGMP統計情報を監視および確認するには、次のコマンドを発行します。
show igmp statistics
show multicast router
この例のセットアップは、このドキュメントで前に使用されたその CGMP テストに似ています。唯一の相違点は、ポート 3/2 と 3/3 が両方とも同一の VLAN に接続されており、両方ともグループ 224.10.10.10 に加入するようにクライアントで設定されていることです。
次の例は、いくつかの操作を説明しており、スイッチがどのようなものかを確認し、結果の出力を調べています。次の例で、Switch_B は IGMP スヌーピングを実行している Catalyst 5500 であり、Router_A はポート 3/1 に接続されているマルチキャスト ルータです。
スイッチでIGMPスヌーピングを有効にし、 debug
コマンドが表示されない場合もあります。エントリの各セットが show cam sys
PIM、MOSPFなどを介してルータポートを検出できるコマンド出力。
Switch_B (enable) set igmp en MCAST-IGMP: Set Sys Entries MCAST-SYS-ENTRIES: Add system Entries in vlan 1 MCAST-IGMP: Set Sys Entries MCAST-SYS-ENTRIES: Add system Entries in vlan 2 MCAST-IGMP: Set Sys Entries MCAST-SYS-ENTRIES: Add system Entries in vlan 3 IGMP feature for IP multicast enabled Switch_B (enable) show cam sys * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 1 00-10-2f-00-14-00 # 7/1 1 00-e0-fe-4b-f3-ff # 1/9 1 01-00-0c-cc-cc-cc # 1/9 1 01-00-0c-cc-cc-cd # 1/9 1 01-00-0c-dd-dd-dd # 1/9 1 01-00-0c-ee-ee-ee # 1/9 1 01-00-5e-00-00-01 # 1/9 1 01-00-5e-00-00-04 # 1/9 1 01-00-5e-00-00-05 # 1/9 1 01-00-5e-00-00-06 # 1/9 1 01-00-5e-00-00-0d # 1/9 1 01-80-c2-00-00-00 # 1/9 1 01-80-c2-00-00-01 # 1/9 2 00-10-2f-00-14-00 # 7/1 2 01-00-0c-cc-cc-cc # 1/9 2 01-00-0c-cc-cc-cd # 1/9 2 01-00-0c-dd-dd-dd # 1/9 2 01-00-5e-00-00-01 # 1/9 2 01-00-5e-00-00-04 # 1/9 2 01-00-5e-00-00-05 # 1/9 2 01-00-5e-00-00-06 # 1/9 2 01-00-5e-00-00-0d # 1/9
スイッチは、ルータ Router_A から PIMv2 パケットを受信して、ルータ ポートを追加します。
MCAST-IGMPQ:recvd a PIM V2 packet of type HELLO on the port 3/1 vlanNo 2 MCAST-ROUTER: Adding port 3/1, vlanNo 2 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 2 MCAST-IGMPQ:recvd a PIM V2 packet of type HELLO on the port 3/1 vlanNo 3 MCAST-ROUTER: Adding port 3/1, vlanNo 3 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 3 Switch_B (enable) show multi router CGMP disabled IGMP enabled Port Vlan --------- ---------------- 3/1 2-3 Total Number of Entries = 1 '*' - Configured Switch_B (enable)
グループ 224.10.10.10(ポート 3/2)で新しいホストを接続します。 このホストは、IGMP メンバシップ レポートを送信します。レポートが受信され、スイッチによってスヌーピングされて、エントリが追加され、IGMP レポートはルータに転送されます。
Switch_B の場合
MCAST-IGMPQ:recvd an IGMP V2 Report on the port 3/2 vlanNo 3 GDA 224.10.10.10 MCAST-RELAY:Relaying packet on port 3/1 vlanNo 3 MCAST-SEND: Inband Transmit Succeeded for IGMP RELAY msg on port 3/1 vlanNo 3 Switch_B (enable) show cam static * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 3 01-00-5e-0a-0a-0a 3/1-2
次に示すように、ポート 3/3 で VLAN 3 にさらにユーザを追加します。
Switch_B (enable) show cam static * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 3 01-00-5e-0a-0a-0a 3/1-3
ポート3/2を削除します。ポート3/2はIGMP Leaveメッセージを送信します。スイッチは、ポート 3/2 に IGMP グループ固有のクエリを送り戻して、タイマーを開始します。タイマーは、応答を受信せずに終了したとき、グループからポートを削除します。
MCAST-IGMPQ:recvd an IGMP Leave on the port 3/2 vlanNo 3 GDA 224.10.10.10 MCAST-IGMPQ-LEAVE:router_port_tbl[vlanNo].QueryTime = 0 MCAST-DEL-TIMER: Deletion Timer Value set to Random Value 1 MCAST-SEND:Transmitting IGMP Mac Based GS Query msg on port 3/2 vlanNo 3 MCAST-SEND: Transmit Succeeded for IGMP Group Specific Query msg on port 3/2 vlanNo 3 MCAST-TIMER:IGMPLeaveTimer expired on port 3/2 vlanNo 3 GDA 01-00-5e-0a-0a-0a MCAST-TIMER:IGMPLeaveTimer:delete leave timer Switch_B (enable) show cam static * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 3 01-00-5e-0a-0a-0a 3/1,3/3
ポート 3/3 のホストは、グループを脱退し、IGMP 脱退メッセージを送信します。前回の操作と違う点は、IGMP Leave メッセージが最終的にルータ ポートに転送されることです。
MCAST-IGMPQ:recvd an IGMP Leave on the port 3/3 vlanNo 3 GDA 224.10.10.10 MCAST-SEND:Transmitting IGMP Mac Based GS Query msg on port 3/3 vlanNo 3 MCAST-SEND: Transmit Succeeded for IGMP Group Specific Query msg on port 3/3 vlanNo 3 MCAST-TIMER:IGMPLeaveTimer expired on port 3/3 vlanNo 3 GDA 01-00-5e-0a-0a-0a MCAST-TIMER:IGMPLeaveTimer expiry: Transmit IGMP Leave on port 3/1 vlanNo 3 MCAST-SEND:Transmitting IGMP Leave msg on port 3/1 vlanNo 3 MCAST-SEND: Inband Transmit Succeeded for IGMP Leave Message on port 3/1 vlanNo 3 MCAST-TIMER:IGMPLeaveTimer:delete leave timer
サブネット設定が最初に戻り、ステップ1の状態が戻ります。マルチキャストエントリは show cam static
コマンド出力.
終了するには、次の例を参照してください。 show igmp static
コマンドの出力を示します。
Switch_B (enable) show igmp stat 2 IGMP enabled IGMP statistics for vlan 2: Total valid pkts rcvd: 329 Total invalid pkts recvd 0 General Queries recvd 82 Group Specific Queries recvd 0 MAC-Based General Queries recvd 0 Leaves recvd 0 Reports recvd 82 Queries Xmitted 0 GS Queries Xmitted 0 Reports Xmitted 0 Leaves Xmitted 0 Failures to add GDA to EARL 0 Topology Notifications rcvd 0 Switch_B (enable) show igmp stat 3 IGMP enabled IGMP statistics for vlan 3: Total valid pkts rcvd: 360 Total invalid pkts recvd 0 General Queries recvd 93 Group Specific Queries recvd 6 MAC-Based General Queries recvd 0 Leaves recvd 11 Reports recvd 64 Queries Xmitted 0 GS Queries Xmitted 14 Reports Xmitted 0 Leaves Xmitted 10 Failures to add GDA to EARL 0 Topology Notifications rcvd 1 Switch_B (enable)
改定 | 発行日 | コメント |
---|---|---|
2.0 |
07-Mar-2022 |
壊れたリンクを更新および削除。 |
1.0 |
07-Feb-2014 |
初版 |