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

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

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2005 年 12 月 13 日) | 英語版 (2015 年 10 月 7 日) | フィードバック


目次


概要

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

前提条件

要件

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

使用するコンポーネント

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

  • Supervisor Engine 720 が付いている Catalyst 6500 Cisco IOS を実行するか。 ソフトウェア リリース 12.2(18)SXD5

  • Catalyst 3750?that は Cisco IOS ソフトウェア リリース 12.2(25)SEB2 イメージを実行します

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

関連製品

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

表記法

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

問題

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

図 1 –マルチキャストソースおよびレシーバとのネットワーク セットアップ

cat_multicast_prob.gif

マルチキャスト ソースは Switch 1 に接続されています。このスイッチは、Cisco IOS ソフトウェアを実行するスーパーバイザ エンジン 720 を搭載した Catalyst 6500 です。 レシーバ 1 は 1 を切り替えるために接続され 2.スイッチ 2 を切り替えるためにレシーバ 2 はです Catalyst 3750 接続されます。 レイヤ2 リンクが、スイッチ 1 とスイッチ 2.間のアクセスかトランク、あります。

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

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

持っている異なるオプションおよびソリューションを探索する前に、レイヤ2 マルチキャストのある特定のキーコンセプトでクリアである必要があります。 このセクションでは、これらの概念について定義します。

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

IGMP

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

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

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

IGMP スヌーピング

IGMP スヌーピングは、レシーバが取り付けられているポートだけにマルチキャスト トラフィックを制限するためのメカニズムです。 メカニズムは選択式にそれらを必要とするポートだけのマルチキャスト パケットを送信することをレイヤ2スイッチが可能にするので効率を追加します。 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 ポートを認識していません。

スイッチ 1 のソースがマルチキャストトラフィックを流し始めるときスイッチ 1 はその結果レシーバ 1.からの IGMP レポート、スイッチ 1 渡しますマルチキャスト ポート ギガビット イーサネット 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 Router/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: レイヤ2 Catalyst スイッチのイネーブル IGMPクエリア 機能

IGMPクエリアはレイヤ2スイッチの比較的 新しい 機能です。 マルチキャスト ルータとして動作し、スイッチの mrouter ディスカバリを提供できるルータがネットワークや VLAN にない場合は、IGMP クエリア機能を有効にできます。 機能はマルチキャスト ルータのためのプロキシにレイヤ2スイッチを可能にし、そのネットワークの定期的な 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

スイッチ 1 は今ポート ギグ 2/46 が mrouter ポートとして 2 を切り替えるためにリンクすることを見ます。

Switch1#show ip igmp snooping mrouter 
vlan??????????? ports
-----+----------------------------------------
?? 1? Gi2/46

スイッチ 1 のソースがマルチキャストトラフィックを流し始めるときスイッチ 1 は IGMP Snooping (すなわち、ポート ギグ 2/48)によって見つけられるレシーバ 1 と mrouter ポート(すなわち、ポート ギグ 2/46)にマルチキャストトラフィックを転送します。

解決策 3: スイッチの Mrouter 静的なポートを設定して下さい

マルチキャストトラフィックはスイッチの mrouter ポートの欠如が理由で同じレイヤ2 VLAN の内で理解が問題および Solutions セクション論議するので、失敗します。 すべてのスイッチに 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

!--- Note: This command should be on one line.

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

!--- Note: This command should be on one line.

Switch2#show mac-address-table multicast vlan 1
Vlan??? Mac Address?????? Type?????? Ports
----??? -----------?????? ----?????? -----
?? 1??? 0100.5e6f.efef?? ?USER??????? Fa1/0/47

ソリューション 5: すべてのスイッチのディセーブル IGMP Snooping

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

Switch1(config)#no ip igmp snooping

Switch2(config)#no ip igmp snooping

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

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


関連情報


Document ID: 68131