IP : IP マルチキャスト

CGMP とスパニング ツリー トポロジの変更に関するマルチキャスト エントリの再構築

2004 年 2 月 11 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 7 月 20 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
CGMP とトポロジの変更
     安定状態
     トポロジ変更中と変更後
     トポロジ変更通知後の 2 つの IGMP 一般クエリ
CGMP の改良
     スイッチとルータ間の通信
     ルータの動作
     Catalyst スイッチの動作
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書では、スパニング ツリー トポロジ の変更発生後に、CGMP のマルチキャスト エントリの再構築に関して、Cisco Catalyst スイッチと Cisco IOS(R) ルータ上で、Cisco Group Management Protocol(CGMP)がどのように動作しているかを説明します。

前提条件

要件

この文書の読者は次の項目に関する知識が必要です。

  • スイッチ、ルータ、およびマルチキャスティングの基本動作

  • スパニング ツリー、CGMP、および Internet Group Management Protocol(IGMP; インターネット グループ管理プロトコル)の基本動作

使用するコンポーネント

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Catalyst 3550 バージョン 12.1(9)EA1c

  • Catalyst 2900/3500XL バージョン 12.0(5)WC3b

  • Catalyst 4000 スーパーバイザ エンジン III バージョン 12.1(11b)EW

  • Catalyst 4000 スーパーバイザ エンジン I/II バージョン 7.2(2)

  • Cisco Catalyst 6500 シリーズ スーパーバイザ エンジン IOS ソフトウェア リリース 12.1(11b)EX

  • Catalyst 6500 Catalyst OS(CatOS)バージョン 7.2(2)

  • Catalyst 5500 CatOS バージョン 4.5(13a)

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。 この文書で使用するすべてのデバイスは、クリアな状態(デフォルト)から設定作業を始めています。 対象のネットワークが実稼動中である場合には、すべてのコマンドによる潜在的な影響について確実に理解しておく必要があります。

表記法

文書表記の詳細は、『Cisco テクニカル ティップスの表記法』を参照してください。

CGMP とトポロジの変更

このセクションでは、CGMP が使用されている VLAN 上でスパニング ツリー トポロジの変更が検出された場合、マルチキャスト トラフィックがすべてのポートでフラッディングしないように、どのような動作が行われるか、およびどのような問題が発生する可能性があるかを、順を追って説明します。 次の例に示すように、この文書で説明するネットワークは、1 台のルータ、1 台のスイッチ、および 4 台の PC から構成されています。

154-a.gif

  • ポート 1 - レシーバ PC 1

  • ポート 2 - レシーバ PC 2

  • ポート 3 - レシーバ PC 3

  • ポート 4 - 非レシーバ PC 4

  • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

  • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

この文書では、レシーバ PC で IGMP を使用しており、スイッチで CGMP が動作していることを前提としています。 Cisco IOS ルータでは、別のインターフェイスでビデオ サーバからマルチキャスト ストリームを受信する IGMP と CGMP が動作しています。 このインターフェイスは、IP マルチキャスト グループ 239.100.100.100 に送信します。

安定状態

すべてのデバイスが起動し、レシーバ PC がグループ 239.100.100.100 に対して IGMP 加入メッセージを送信すると、これらのデバイスはすべて、CGMP によって対応するレイヤ 2(L2)グループ(MAC アドレス 01-00-5e-64-64-64)に追加されます。

次のリストでは、Cisco IOS ルータを介して着信するマルチキャスト ストリームを受信する、スイッチ上のポートを太字で示しています。

  • ポート 1 - レシーバ PC 1

  • ポート 2 - レシーバ PC 2

  • ポート 3 - レシーバ PC 3

  • ポート 4 - 非レシーバ PC 4

  • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

  • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

注:Cisco IOS ルータもマルチキャスト グループに追加されますが、このルータは送信元であるため、自分のパケットを受信することはありません。 

Cisco IOS ルータは、すべてのクエリー インターバルで IGMP 一般クエリーを送信します(これはマルチキャスト グループ 224.0.0.1 に送信されるため、他のすべてのコンポーネントにフラッディングされます)。 この状態になると、239.100.100.100 グループの IGMP レポートの作成がすべてのレシーバで開始します。 レシーバはこのレポートを IP マルチキャスト グループ 239.100.100.100(L2 MAC アドレス 01-00-5E-64-64-64)に送り返します。 このレポートはグループ アドレスに送信されるため、すべてのレシーバは、他のレシーバが送信したレポートと、最初のレシーバが送り返したレポートを受信します。 このため、他のレシーバ PC は、このグループに対するレポートをキャンセルします。 つまり、このグループには、最初に応答した PC のソース MAC アドレスを使用して CGMP 加入メッセージが 1 つしか送信されないことになります。 この状態は長期間継続し、すべてのレシーバ PC がビデオ ブロードキャストを受信します。

トポロジ変更中と変更後

この時点で、ネットワーク内の他のスイッチによりトポロジ変更が発生します。 トポロジ変更を受信すると、CGMP 仕様に従って、スイッチは CGMP を介して認識したマルチキャスト エントリをすべてクリアします。 ルータからのマルチキャスト トラフィックは、スイッチ上のすべてのポートにフラッディングされます。

次のリストでは、Cisco IOS ルータを介して着信するマルチキャスト ストリームを受信する、スイッチ上のポートを太字で示しています。

  • ポート 1 - レシーバ PC 1

  • ポート 2 - レシーバ PC 2

  • ポート 3 - レシーバ PC 3

  • ポート 4 - 非レシーバ PC 4

  • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

  • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

トラフィックはすべてのポートにフラッディングされるため、レシーバ PC は違いを認識せず、ビデオ ブロードキャストの受信を継続します。 ただし、トラフィックはすべてのポートにフラッディングされるので、レシーバでない PC 4 および他のスイッチでは、要求しなくてもマルチキャスト ストリームを受信するようになります。 この状態は、Cisco IOS ルータが周期的な IGMP 一般クエリーを再び送信するまで続きます。 Cisco IOS ルータでは、このデフォルト値が 60 秒に設定されています(IP IGMP クエリー インターバルを使用して設定)。

トポロジ変更通知後の 2 つの IGMP 一般クエリ

Cisco IOS ルータが最初の IGMP 一般クエリーを送信すると、すべてのレシーバ PC で 239.100.100.100 グループの IGMP レポートの作成が開始します。 その内の 1 台(この文書では PC 3)が、最初に IGMP レポートを送り返します。 スイッチ上ではマルチキャスト エントリがまだ構築されていないので、このレポートはすべての PC で受信され、他のレシーバ PC は自分の IGMP レポートをキャンセルします。 Cisco IOS ルータはそのレポートを受信し、レシーバ PC 3 の送信元アドレスを付加して、以降の CGMP 加入メッセージを送信します。

スイッチはグループ 01-00-5e-64-64-64 に対してマルチキャスト エントリを再度作成し、ポート 3 をそのエントリに追加します。これはポート 3 が CGMP 加入パケットの送信元アドレスであることを示します。 ポート 5 はマルチキャスト ルータ ポートであるため、ポート 5 はマルチキャスト グループにも追加されます。 したがって、レシーバ PC 3 だけがビデオ ストリームを受信し、PC1 と PC 2 のビデオ ストリームは静止したままです。

次のリストでは、Cisco IOS ルータを介して着信するマルチキャスト ストリームを受信する、スイッチ上のポートを太字で示しています。

  • ポート 1 - レシーバ PC 1

  • ポート 2 - レシーバ PC 2

  • ポート 3 - レシーバ PC 3

  • ポート 4 - 非レシーバ PC 4

  • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

  • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

Cisco IOS ルータは、IGMP クエリー インターバルの最後で別の IGMP 一般クエリーを送信します。 クエリーが受信されると、すべてのレシーバ PC で 239.100.100.100 グループのレポートが作成されます。 ただし今回は他の PC からのレポートはレシーバ PC 3 と Cisco IOS ルータしか受信しません (ルータのポートは、すべてのマルチキャスト グループに自動的に追加されます)。

レシーバ PC 1 と PC 2 は他のレシーバからのレポートを受信しないため、PC1 と PC 2 は両方とも自分のレポートを送信します。 次に Cisco IOS ルータは、それぞれの PC の 送信元 MAC アドレスを付加した CGMP 加入メッセージを送信するため、2 台の PC は両者とも追加され、Cisco IOS ルータ経由のマルチキャスト ストリームの受信を再開します。

次のリストでは、Cisco IOS ルータを介して着信するマルチキャスト ストリームを受信する、スイッチ上のポートを太字で示しています。

  • ポート 1 - レシーバ PC 1

  • ポート 2 - レシーバ PC 2

  • ポート 3 - レシーバ PC 3

  • ポート 4 - 非レシーバ PC 4

  • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

  • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

設定が元の安定状態に戻り、再び正常に動作します。 実際の動作の詳細を次に示します。

  1. トポロジ変更が発生する。

  2. すべてのポートに対してフラッディングが発生する。

  3. 最初の IGMP 一般クエリーが送信される。

  4. フラッディングが停止する。

  5. 一部のレシーバのみマルチキャスト ストリームを受信する。

  6. 2 番目の IGMP 一般クエリーが送信される。

  7. すべてのレシーバが追加され、マルチキャスト ストリームを再度受信する。

CGMP の改良

PC の場合、マルチキャスト ストリームの 1 分間(デフォルトの IGMP クエリ間隔)の損失は必ずしも許容範囲ではないため、CGMP を実行しているルータとスイッチの両方が改良されています。

スイッチとルータ間の通信

ルータはレイヤ 3(L3)デバイスであり、発生したスパニング ツリーとトポロジの変更を通常は認識しないため、ネットワーク内のスイッチがトポロジの変更をルータに警告する必要があります。 このために、IGMP グローバル Leave メッセージが定義されました。

この IGMP グローバル Leave メッセージは、グループ 0.0.0.0 を終了するよう要求するためにスイッチが送信できる IGMP リーブです。

IGMP グローバル Leave メッセージでルータに過負荷がかからないようにするため、トポロジの変更終了後、スパニング ツリー ドメインのルート スイッチだけが、この IGMP グローバル Leave メッセージの送信の役割を負います。

ルータの動作

ルータが Cisco IOS ソフトウェアを実行しているインターフェイス上でこの IGMP グローバル Leave メッセージを受信すると、そのインターフェイスでスパニング ツリー トポロジの変更が発生したことを認識し、マルチキャスト レシーバのマルチキャスト トラフィックの損失を制限するため、次のアクションを実行します。

  1. IGMP グローバル Leave メッセージを受信した後の CGMP 一括加入メッセージの送信。 ルータは自分の MAC アドレスを付加した CGMP 加入メッセージを、そのインターフェイスに対する IGMP キャッシュに保存しているすべてのマルチキャスト グループのユーザ送信元アドレスとして送信します。 このような CGMP 自己加入メッセージを送信することによって、CGMP スイッチはルータ ポートだけが記入された各グループのエントリを自動的に作成します。

    次のリストは、この文書で使用されたネットワーク(CGMP 一括加入後)を示しています。 太字で示されているように、Cisco IOS ルータだけがマルチキャスト グループに追加されています。

    注:この文書の前述の例では、マルチキャスト ルータからトラフィックを受信するポートを太字で示しましたが、次の例ではすべてのポートがスイッチ上でマルチキャスト グループに追加されることが示されています。 

    • ポート 1 - レシーバ PC 1

    • ポート 2 - レシーバ PC 2

    • ポート 3 - レシーバ PC 3

    • ポート 4 - 非レシーバ PC 4

    • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

    • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

  2. IGMP 一般クエリの送信。 すべてのレシーバがこの IGMP 一般クエリを受信し、レシーバが加入したすべてのグループに対してレポートを作成します。 CGMP スイッチでは、ルータのみをレシーバとしてグループごとにマルチキャスト エントリがすでに構築されているので、レポートはすべてルータのみに送信されます。 すべてのレシーバを対応するグループに追加するため、ルータは後続の CGMP 加入メッセージを送信します。

    すべてのレシーバが IGMP レポートを送り返し、ルータが対応する CGMP 加入メッセージを送信すると、すべてのレシーバがマルチキャスト グループに再度追加されているはずです。

  3. 10 秒後(デフォルトの IGMP 最大応答時間)、すべてのレシーバが追加されたことを確認するため、別の IGMP 一般クエリがもう一度送信されます。 すべてのレシーバがマルチキャスト グループ再加入を確認するために、このステップが数回繰り返されます。

    この例では、マルチキャスト グループに追加されている必要があるすべてのポートを太字で示します。

    • ポート 1 - レシーバ PC 1

    • ポート 2 - レシーバ PC 2

    • ポート 3 - レシーバ PC 3

    • ポート 4 - 非レシーバ PC 4

    • ポート 5 - 他のスイッチ(このスイッチにはレシーバやルータは備わっていません。)

    • ポート 48 - IGMP と CGMP を実行している Cisco IOS ルータ

Catalyst スイッチの動作

Catalyst スイッチは、種類によってその動作に多少の違いがあります。 CGMP 対応のすべてのスイッチは、この文書の「CGMP トポロジの変更」のセクションで説明したように動作します。 ただし、CGMP に加えた改良はすべてのプラットフォームで実装されているわけではありません。 次の表で、Catalyst スイッチのリストと、Catalyst スイッチの CGMP に対する反応を記述します。

 

CGMP スイッチ

CGMP ルータ

Spanning Tree Protocol(STP; スパニング ツリー プロトコル)ルート時にグローバル Leave を送信する

Cisco IOS ソフトウェアが動作する Catalyst 6500

N

Y

Y

CatOS が動作する Catalyst 6500

N

N

N

Catalyst 5500、Catalyst 2926/2926G

Y

N

Y

Catalyst 4000 スーパーバイザ エンジン I/II、Catalyst 2948G/2980G、Catalyst 4912G

Y

N

Y

Catalyst 4000/4500 スーパーバイザ エンジン III/IV

N

Y

Y

Catalyst 2900XL/3500XL

Y

N

Y

Catalyst 2940

N

N

N

Catalyst 2950

N

N

N

Catalyst 2970

N

N

N

Catalyst 3550

N

Y

Y

Catalyst 3750

N

Y

Y

注:スーパーバイザ エンジン III/IV を搭載した Catalyst 4000/4500 では、トポロジ変更と CGMP に関する動作が設定可能です。  Catalyst 4000 がスパニング ツリーのルートでない場合に、IGMP グローバル Leave メッセージを送信するかどうかを設定するには、次のコマンドを実行します。

  • ip igmp snooping tcn query solicit

注:グローバル Leave メッセージの送信をディセーブルするには、このコマンドの「no」形式を実行します。 

  • no ip igmp snooping tcn query solicit


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 24100