スイッチ : Cisco Catalyst 6500 シリーズ スイッチ

Catalyst スイッチで同一 VLAN 内でのマルチキャストが機能しない

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      関連製品
      表記法
問題
マルチキャストの重要な概念の再確認
      IGMP
      IGMP スヌーピング
      mrouter ポート
      L2 でのマルチキャスト
問題とそのソリューションについて
ソリューション
      ソリューション 1:レイヤ 3(L3)ルータ/VLAN インターフェイスで PIM を有効にする
      ソリューション 2:L2 Catalyst スイッチで IGMP クエリアを有効にする
      ソリューション 3:スイッチに静的 mrouter ポートを設定する
      ソリューション 4:すべてのスイッチに静的マルチキャスト MAC エントリを設定する
      ソリューション 5:すべてのスイッチで IGMP スヌーピングを無効にする
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、Cisco Catalyst スイッチ ネットワークにマルチキャスト アプリケーションを初めて導入したときにマルチキャストが機能しないという、よくある問題について説明します。 さらに、クラスタやハイ アベイラビリティな運用にマルチキャスト パケットを使用する一部のサーバやアプリケーションは、スイッチを適切に設定しないと、動作しない場合があります。 このドキュメントでは、この問題についても説明します。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco IOS(R) ソフトウェア リリース 12.2(18)SXD5 が稼働する、スーパーバイザ エンジン 720 を搭載した Catalyst 6500

  • Cisco IOS ソフトウェア リリース 12.2(25)SEB2 イメージが稼働する Catalyst 3750

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

関連製品

このドキュメントは、次のバージョンのハードウェアとソフトウェアにも使用できます。

表記法

ドキュメントの表記法の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

問題

同じ VLAN 内であっても、マルチキャスト トラフィックが Catalyst スイッチを通過しないように見えます。 図 1 に典型的なシナリオを示します。

図 1 - マルチキャストのソースとレシーバを含むネットワークのセットアップ

cat_multicast_prob.gif

マルチキャスト ソースは Switch 1 に接続されています。このスイッチは、Cisco IOS ソフトウェアを実行するスーパーバイザ エンジン 720 を搭載した Catalyst 6500 です。 Receiver 1 は Switch 1 に接続され、Receiver 2 は Switch 2 に接続されています。 Switch 2 は Catalyst 3750 です。 Switch 1 と Switch 2 の間には、アクセスまたはトランクによるレイヤ 2(L2)リンクが存在します。

このセットアップでは、ソースと同じスイッチに接続されている Receiver 1 は、マルチキャスト ストリームを問題なく受け取ります。 しかし、Receiver 2 はマルチキャスト トラフィックをまったく受け取りません。 このドキュメントでは、この問題を解決します。

マルチキャストの重要な概念の再確認

ソリューションとさまざまな選択肢を調べる前に、L2 マルチキャストの重要な概念をいくつか明確にしておく必要があります。 このセクションでは、これらの概念について定義します。

注:このセクションでは、この特定の問題にだけ焦点を当てて、非常に簡単で直接的な説明をしています。 これらの用語の詳細な説明については、このドキュメントの「関連情報」のセクションを参照してください。

IGMP

IGMP は、エンド ホスト(レシーバ)がそのエンド ホストのマルチキャスト ルータ(IGMP クエリア)に、特定のマルチキャスト トラフィックを受信するということを通知できるようにするプロトコルです。 したがって、これはルータとエンド ホストの間で実行されるプロトコルであり、次のことが可能です。

  • ルータは、エンド ホストに、特定のマルチキャスト ストリームが必要かどうかを問い合せることができます(IGMP クエリー)。

  • エンド ホストは、ルータに、特定のマルチキャスト ストリームを要求するかどうかを通知または応答できます(IGMP レポート)。

IGMP スヌーピング

IGMP スヌーピングは、レシーバが取り付けられているポートだけにマルチキャスト トラフィックを制限するためのメカニズムです。 このメカニズムを使用すると、L2 スイッチはマルチキャストを必要とするポートにだけマルチキャスト パケットを選択的に送信できるので、効率が上がります。 IGMP スヌーピングを使用しないと、スイッチはすべてのポートにパケットをフラッディングします。 スイッチは、ルータとエンド ホストによる IGMP メッセージの交換を「リッスン」します。 このようにして、スイッチは IGMP スヌーピング テーブルを作成します。このテーブルには、特定のマルチキャスト グループを要求したすべてのポートのリストが含まれます。

mrouter ポート

mrouter ポートは、スイッチから見ると単にマルチキャスト ルータに接続しているポートのことです。 IGMP スヌーピングの動作がスイッチ間で機能するためには、少なくとも 1 つの mrouter ポートが存在することが必要不可欠です。 この要件の詳細については、このドキュメントの「問題とそのソリューションについて」セクションで説明しています。

L2 でのマルチキャスト

宛先 IP が 224.0.0.0 から 239.255.255.255 の範囲の IP バージョン 4(IPv4)トラフィックはすべて、マルチキャスト ストリームです。 すべての IPv4 マルチキャスト パケットは、01.00.5e.xx.xx.xx という形式の、定義済み IEEE MAC アドレスにマッピングされます。

注:IGMP スヌーピングは、マルチキャストの MAC アドレスが、この IEEE 準拠の MAC 範囲にマッピングされている場合にだけ機能します。 一部の予約済みマルチキャスト範囲は、設計上スヌーピングから除外されています。 これに準拠しないマルチキャスト パケットがスイッチド ネットワーク上に送信されると、パケットはその VLAN 全体にフラッディングされます。つまりブロードキャスト トラフィックと同じように扱われることになります。

問題とそのソリューションについて

Catalyst スイッチの IGMP スヌーピングは、デフォルトで有効になっています。 IGMP スヌーピングでは、スイッチはすべてのポートで IGMP メッセージをスヌープ(リッスン)します。 スイッチは、基本的にマルチキャスト グループをそのグループを要求したすべてのスイッチ ポートにマッピングする、IGMP スヌーピング テーブルを作成します。

事前に何も設定されていない状態で、Receiver 1 と Receiver 2 が、239.239.239.239 に対するマルチキャスト ストリームを受信する意向を通知したものとします。239.239.239.239 は、01.00.5e.6f.ef.ef の L2 マルチキャスト MAC アドレスにマッピングされています。 Switch 1 と Switch 2 はどちらも、レシーバが生成した IGMP レポートに応答して、これらのレシーバに対するエントリを自分のスヌーピング テーブルに作成します。 Switch 1 はポート Gigabit Ethernet 2/48 をテーブルに入力し、Switch 2 はポート Fast Ethernet 1/0/47 をテーブルに入力します。

注:この時点では、マルチキャスト ソースはトラフィックを開始しておらず、どのスイッチもスイッチ mrouter ポートを認識していません。

Switch 1 上のソースがマルチキャスト トラフィックのストリームを開始するときには、Switch 1 は Receiver 1 からの IGMP レポートを「見て」います。 その結果、Switch 1 はポート Gigabit Ethernet 2/48 にマルチキャストを配信します。 しかし、IGMP スヌーピング プロセスの一部として、Switch 2 は Receiver 2 からの IGMP レポート「だけを見て」いるので、Switch 1 ではポート Gigabit Ethernet 2/46 の IGMP レポート(マルチキャスト要求)は見えません。 その結果、Switch 1 が Switch 2 にマルチキャスト トラフィックを送信することはありません。 したがって、Receiver 2 は、同じ VLAN 内に存在しながらもマルチキャスト ソースとは異なるスイッチに接続されているため、マルチキャスト トラフィックを受け取りません。

この問題の原因は、IGMP スヌーピングは、mrouter のない Catalyst プラットフォームでは実際にはサポートされないということです。 メカニズムは mrouter ポートがないと正常に機能しません。 この問題を解決するには、スイッチに何らかの方法で mrouter ポートを学習または認識させる必要があります。 このドキュメントの「ソリューション」セクションでは、この手順について説明します。 しかし、スイッチに mrouter ポートが存在すると、なぜこの状況が解決されるのでしょうか。

基本的に、スイッチが mrouter ポートについて学習する、または mrouter ポートを静的に認識していると、2 つの重要な事が起こります。

  • スイッチは、IGMP レポートをレシーバから mrouter ポートに「リレー」します。つまり、IGMP レポートはマルチキャスト ルータの方向に進みます。 スイッチはすべての IGMP レポートをリレーするわけではありません。 代わりに、スイッチは一部のレポートだけを mrouter に送信します。 この説明では、レポートの数は重要ではありません。 マルチキャスト ルータが知る必要があるのは、まだマルチキャストを要求しているレシーバがダウンストリームに 1 つでも存在するかどうかということです。 これを判断するため、マルチキャスト ルータは、IGMP クエリーに応答する IGMP レポートを定期的に受信します。

  • レシーバがまた「参加」していないソースだけのマルチキャスト シナリオでは、スイッチは mrouter ポートにだけマルチキャスト ストリームを送信します。

スイッチが mrouter ポートを認識していると、Switch 2 は Receiver 2 から受信した IGMP レポートを mrouter ポートにリレーします。 このポートは Fast Ethernet 1/0/33 です。 Switch 1 は、この IGMP レポートをスイッチ ポート Gigabit Ethernet 2/46 で受け取ります。 Switch 1 から見ると、スイッチは単にもう 1 つの IGMP レポートを受け取ったことになります。 スイッチは、そのポートを自分の IGMP スヌーピング テーブルに追加し、そのポートに対してもマルチキャスト トラフィックの送信を開始します。 この時点で、両方のレシーバが要求したマルチキャスト トラフィックを受信し、アプリケーションは意図したとおりに動作するようになります。

ところで、このように単純な環境で IGMP スヌーピングが意図通りに動作するために、スイッチはどのように mrouter ポートを識別しているのでしょうか。 「ソリューション」セクションでは、いくつかの回答を示します。

ソリューション

この問題を解決するには、次のソリューションを使用します。

ソリューション 1:レイヤ 3(L3)ルータ/VLAN インターフェイスで PIM を有効にする

すべての Catalyst プラットフォームは、mrouter ポートを動的に学習する機能を備えています。 スイッチは、マルチキャスト ルータが定期的に送信する Protocol Independent Multicast(PIM)の hello または IGMP クエリー メッセージを、受動的にリッスンします。

この例では、ip pim sparse-dense-mode を使用して Catalyst 6500 上の VLAN 1 Switched Virtual Interface(SVI; スイッチ仮想インターフェイス)を設定します。

 Switch1#show run interface vlan 1
 !
 interface Vlan1
  ip address 1.1.1.1 255.255.255.0
  ip pim sparse-dense-mode
 end
 
 Switch 1 now reflects itself (Actually the internal router port) as an Mrouter port. 
 
 Switch1#show ip igmp snooping mrouter 
 vlan            ports
 -----+----------------------------------------
    1  Router
 
 Switch 2 receives the same PIM hellos on its Fa 1/0/33 interface. So it assigns that 
 port as its Mrouter port.
 
 Switch2#show ip igmp snooping mrouter 
 Vlan    ports
 ----    -----
    1    Fa1/0/33(dynamic)
 

ソリューション 2:L2 Catalyst スイッチで IGMP クエリアを有効にする

IGMP クエリアは、L2 スイッチの比較的新しい機能です。 マルチキャスト ルータとして動作し、スイッチの mrouter ディスカバリを提供できるルータがネットワークや VLAN にない場合は、IGMP クエリア機能を有効にできます。 この機能を使用すると、L2 スイッチはマルチキャスト ルータのプロキシとして動作し、そのネットワークに IGMP クエリーを定期的に送信できます。 この動作によって、スイッチは自身を mrouter ポートと認識します。 ネットワーク内の他のスイッチは、それぞれの mrouter ポートを、この IGMP クエリーを受信したインターフェイスとして単純に定義します。

 Switch2(config)#ip igmp snooping querier
 
 Switch2#show ip igmp snooping querier 
 Vlan      IP Address     IGMP Version   Port               
 -------------------------------------------------------------
 1         1.1.1.2        v2             Switch                   
 
 Switch1 now sees port gig 2/46 linking to Switch 2 as Mrouter port.
 
 Switch1#show ip igmp snooping mrouter 
 vlan            ports
 -----+----------------------------------------
    1  Gi2/46
 

ソリューション 3:スイッチに静的 mrouter ポートを設定する

問題とそのソリューションについて」セクションで説明したように、スイッチに mrouter ポートがないと、同じ L2 VLAN 内でのマルチキャスト トラフィックは失敗します。 すべてのスイッチに mrouter ポートを固定的に設定すると、IGMP レポートはその VLAN 内のすべてのスイッチにリレーされます。 その結果、マルチキャストが可能になります。 したがって、この例では、Catalyst 3750 スイッチの Fast Ethernet 1/0/33 を mrouter ポートとして固定的に設定する必要があります。

この例では、固定的な mrouter ポートが必要なのは Switch 2 だけです。

 Switch2(config)#ip igmp snooping vlan 1 mrouter interface fastethernet 1/0/33
 
 Switch2#show ip igmp snooping mrouter
 Vlan    ports
 ----    -----
    1    Fa1/0/33(static)
 

ソリューション 4:すべてのスイッチに静的マルチキャスト MAC エントリを設定する

すべてのスイッチに、すべてのレシーバのポートおよびダウンストリームのスイッチのポートに対するマルチキャスト MAC アドレスの Content-Addressable Memory(CAM; 連想メモリ)エントリを作成できます。 すべてのスイッチは、静的 CAM エントリのルールに従い、CAM テーブルで指定されているすべてのインターフェイスにパケットを送信します。 多くのマルチキャスト アプリケーションが存在する環境では、これは最もスケーラビリティの低いソリューションです。

 Switch1(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface 
 gigabitethernet 2/46 gigabitethernet 2/48

 !--- 注: このコマンドは、1 行にする必要があります。
 Switch1#show mac-address-table multicast vlan 1
 
  vlan   mac address     type   learn qos             ports
 -----+---------------+--------+-----+---+--------------------------------
    1  0100.5e6f.efef    static  Yes          -   Gi2/46,Gi2/48
 
 
 Switch2(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface 
 fastethernet 1/0/47

 !--- 注: このコマンドは、1 行にする必要があります。 
 Switch2#show mac-address-table multicast vlan 1
 Vlan    Mac Address       Type       Ports
 ----    -----------       ----       -----
    1    0100.5e6f.efef    USER        Fa1/0/47
 

ソリューション 5:すべてのスイッチで IGMP スヌーピングを無効にする

IGMP スヌーピングを無効にすると、すべてのスイッチはマルチキャスト トラフィックをブロードキャスト トラフィックとして扱います。 その結果、そのマルチキャスト ストリームの受信対象のポートかどうかに関係なく、トラフィックはその VLAN 内のすべてのポートにフラッディングされます。

 Switch1(config)#no ip igmp snooping
 
 Switch2(config)#no ip igmp snooping
 

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

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


関連情報