ネットワーク マネージャからは、マルチキャストの送信側と受信側が同じ VLAN 上にある場合に、スイッチ上でマルチキャスト トラフィックを制限できるかどうか、この設定のために必要な条件は何か、ルータが必要かどうかといった問い合せが頻繁に寄せられます。
それは可能であり、ほとんどの場合はルータが必要になるというのが、この回答です。
注:Catalyst 6500/6000シリーズスイッチのCatOS 7.1以降のバージョンでは、Internet Group Management Protocol(IGMP)スヌーピングクエリアと呼ばれる新機能が使用できます。この機能を使用すると、マルチキャストの送信側と受信側が同じ VLAN にある場合にマルチキャスト トラフィックを制限するのに、ルータを使用する必要がなくなります。IGMP スヌーピング クエリアでは、マルチキャスト トラフィックのルーティングが不要なので Protocol Independent Multicast(PIM)と IGMP が設定されていない VLAN 上で、IGMP スヌーピングがイネーブルにされます。
この文書を読むには、次の知識が必要です。
マルチキャストの送信側とすべての受信側が同じ VLAN にある場合に、スイッチ上でのマルチキャスト トラフィックを制限するために必要になる基本的な要件は、次のとおりです。
スイッチでは、Cisco Group Management Protocol(CGMP)または Internet Group Management Protocol(IGMP)スヌーピングが有効にされている必要があります。レイヤ 2 デバイスでのマルチキャストを制限する別の方式である GARP Multicast Registration Protocol(GMRP)は、ここでは扱いません。
ルータの送信側と受信側がある VLAN に接続されているインターフェイスでは、Protocol-Independent Multicast(PIM)が有効になっている必要があります。
CGMP を使用している場合は、ルータの送信側と受信側がある VLAN に接続されているインターフェイスで、CGMP が有効になっている必要があります。
注:マルチキャストを単一のVLANに制限し、マルチキャストトラフィックを他のインターフェイスまたはサブネットに転送する予定がない場合は(ip multicast-routingグローバルコンフィギュレーションコマンドを使用して)、ルータでマルチキャストルーティングを有効にする必要はありません。
このドキュメントでは、CatOS が稼働する Catalyst スイッチでのマルチキャスト トラフィックの制限について説明しています。Cisco IOS(R) システム ソフトウェア(ネイティブ モード)が稼働する Catalyst 4000 および 6000 スイッチでマルチキャスト トラフィックを制限するには、次のドキュメントを参照してください。
このドキュメントの例を作成するにあたっては、次のデバイスをラボ環境で使用しました。
Cisco IOS 12.0(7)W5(15d) が稼働している Catalyst 4908G-L3 スイッチ ルータ
Catalyst OS 5.5(2) が稼働している Catalyst 4003 スイッチ
Catalyst OS 5.5(2) が稼働している Catalyst 6009 スイッチ
Catalyst OS 5.5(2) が稼働している Catalyst 5509 スイッチ
IGMP スヌーピング クエリア機能については 8.1(3) および 7.6(2a) が稼働している Catalyst 6500/6000 シリーズのスイッチ 2 台
マルチキャストの受信側(ホスト)として動作する、ルータ 2 台(この場合は Catalyst 2948G-L3 1 台と Cisco 7000 1 台)
IP マルチキャスト ストリームを送信できるトラフィック ジェネレータ(SmartBits 2000)
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
CGMP と IGMP スヌーピングは、各 Catalyst スイッチで次のようにサポートされています。
Catalyst 4000 ファミリ:CGMP のみ
Catalyst 6000 ファミリ:IGMP スヌーピングのみ
Catalyst 5000 ファミリ:IGMP スヌーピング(スーパーバイザ エンジン III/IIIF(NFFC または NFFC II)、またはスーパーバイザ エンジン IIG/IIIG が必要)と CGMP
特定のハードウェアやソフトウェアに関する要件などを含む詳細については、Catalyst 4000/5000 および Catalyst 6000 のマルチキャストに関するドキュメントを参照してください。
このドキュメントの設定は、外部に接続されていないラボ環境で実装されたものです。ここでの設定を実践する前に、各設定やコマンドがネットワークにどのように影響するかを理解してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
この例では、マルチキャストの送信側と受信側が同じ VLAN 上にある基本的なネットワーク環境を示しています。目的とする動作は、スイッチ上でのマルチキャストの転送を、そのマルチキャスト ストリームを要求しているポート宛てだけに限定することです。
この例のネットワーク トポロジを図 1 に示します。
図 1:CGMP 例 パート 1
トラフィック ジェネレータは、マルチキャスト UDP パケットの 1 Mbps のストリームを、VLAN 50 のグループ アドレス 239.10.10.10(Catalyst 4003 のポート 3/19)に送信しています。
4908G-L3 ルータが VLAN 50 のポート 3/1 で Catalyst 4003 に接続されています。GigabitEthernet1 インターフェイスでは次の設定が適用されます(このルータではインターフェイス経由でのマルチキャスト トラフィックのルーティングは行っていないので、グローバルに設定されている ip multicast-routing コマンドはない点に注意してください)。
interface GigabitEthernet1 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode ip cgmp
Catalyst 4003 スイッチでは CGMP と CGMP fastleave がイネーブルになっています(set cgmp enable と set cgmp leave enable)。
Catalyst 4003には2つのホスト(マルチキャストレシーバ)が接続されています。ホストAはVLAN 50のポート3/3に接続されています。ホストBはVLAN 50のポート3/12に接続されています。これらのホストは、実際には端末として設定されているルータです(ルーティングやその他の機能は設定されていません)。 Host A には IP アドレス 192.168.50.13/24 に設定されたインターフェイスがあり、Host B には IP アドレス 192.168.50.75/24 に設定されたインターフェイスがあります。この例の後の方で、ip igmp join-group インターフェイス設定コマンドを使用して、これらのホストをマルチキャスト グループに加入させます。
次の出力は、VLAN 50 でグループ アドレス 239.10.10.10 に対してトラフィック ジェネレータが転送していながら、スイッチでは受信側がないという場合に、Catalyst 4908G-L3 で採取したものです。
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 GigabitEthernet1 v2/Dense 0 30 192.168.50.11 4908g-l3#show ip igmp interface gig 1 GigabitEthernet1 is up, line protocol is up Internet address is 192.168.50.11/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is enabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 2 joins, 1 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 2579 periodic_counter 77065 dmvrp_counter 0 timer_couter 77065 ast ray 0 4908g-l3# 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 X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:15/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1, Forward/Dense, 00:02:15/00:00:00 (192.168.50.50, 239.10.10.10), 00:02:16/00:00:43, flags: PCT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
太字の出力に注意してください。
show ip pim interfaceの出力は、IPアドレスが192.168.50.11のGigabitEthernet1インターフェイスでPIM-DenseMode(PIM-DM)が実行されていることを示しています。
show ip igmp interface gig 1 コマンドでは、インターフェイスで IGMP と CGMP がイネーブルにされていて、PIM が稼働していることが示されています。
show ip mroute コマンドでは、ルータには 239.10.10.10 の(ソース、グループ)エントリがあり、発信元が 192.168.50.50(トラフィック ジェネレータ)であることが示されています。 発信インターフェイスのリスト(Outgoing interface list)が空(Null)であることに注意してください。これは、このルータが、実際にはそのインターフェイス間でマルチキャスト ルーティングを実行していないためです。実行しているサービスは、VLAN 50 での IGMP の加入と脱退の監視と、スイッチへの CGMP メッセージの送信だけです。
次の出力は、VLAN 50 でグループ アドレス 239.10.10.10 に対してトラフィック ジェネレータが転送していながら、スイッチでは受信側がないという場合に、Catalyst 4003 スイッチで採取したものです。
4003> (enable) show cgmp leave CGMP: enabled CGMP leave: enabled 4003> (enable) show multicast router Port Vlan ---------- ---------------- 3/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable 4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1 Total Number of Entries = 2 4003> (enable)
太字の出力に注意してください。
show cgmp leave 出力には、スイッチで CGMP と CGMP fastleave がイネーブルにされていることが示されています。
show multicast routerコマンドは、スイッチがVLAN 50(4908G-L3)のポート3/1で1つのマルチキャストルータを認識していることを示します。
show multicast groupコマンドは、スイッチがVLAN 50のMACアドレス01-00-5e-0a-0a-0a(239.10.10.10がマップするマルチキャストMACアドレス)宛てのトラフィックを、マルチキャストルータポートのポート3/1だけに制限していることを示しています。
ここで、ホストAとホストBをグループアドレス239.10.10.10のマルチキャスト受信側として設定します。これは、ip igmp join-groupインターフェイス設定コマンドを使用して行います。
Host A(FastEthernet13 インターフェイスに接続されている Catalyst 2948G-L3)
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 FastEthernet13 00:00:05 never 192.168.50.13 HostA#
Host B(Ethernet1/0 インターフェイスに接続されている Cisco 7000)
HostB# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostB(config)# interface ethernet1/0 HostB(config-if)# ip igmp join-group 239.10.10.10 HostB(config-if)# ^Z HostB# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 Ethernet1/0 00:00:10 never 192.168.50.75 HostB#
次の出力は、Host A と Host B がマルチキャスト グループ 239.10.10.10 に加入した後で Catalyst 4003 から得られたものです。
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/3,3/12 Total Number of Entries = 2 4003> (enable)
今回は、スイッチが VLAN 50 のポート 3/3(Host A)およびポート 3/12(Host B)に、トラフィック 01-00-5e-0a-0a-0a(239.10.10.10)へのトラフィックを転送していることが分かります。
ここで、Host A がマルチキャスト グループから脱退します。
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# no ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA#
スイッチによって、ポート 3/3 が 01-00-5e-0a-0a-0a 宛てのマルチキャスト転送テーブルから削除されます。
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 Total Number of Entries = 2 4003> (enable)
ここで、トラフィック ジェネレータが新たに 1 Mbps のマルチキャスト ストリームを 239.85.85.85(MAC アドレス 01-00-5e-55-55-55)宛てに送信し始めます。 図 2 を参照してください。
図 2:CGMP 例 パート 2
次の出力では、Catalyst 4908G-L3 のマルチキャスト ルーティング テーブルを示しています。
4908g-l3# 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 X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:01:35/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:01:36/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
各マルチキャスト ストリームについて、(S,G) および (*,G) のエントリがあることに注意してください。
Catalyst 4003 の場合、マルチキャスト転送テーブルは次のようになります。
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1 Total Number of Entries = 3 4003> (enable)
このスイッチには、VLAN 50、ポート 3/1 の 01-00-5e-55-55-55 に対するエントリが追加されていることに注意してください。
これで、ip igmp join-group 239.85.85.85 インターフェイス設定コマンドを使用して、Host A と Host B の両方が 239.85.85.85 のグループに加入したことになります。Host A と Host B がグループに加入した後、このスイッチのマルチキャスト転送テーブルは、次のようになります。
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1,3/3,3/12 Total Number of Entries = 3 4003> (enable)
VLAN 50 の 01-00-5e-55-55-55 に対するエントリに、3/3 と 3/12 が追加されたことに注意してください。
この例では、マルチキャストの送信側と受信側がすべて同じ VLAN 上にある、別の基本的なネットワーク環境を示しています。目的とする動作は、これらのスイッチ上でのマルチキャストの転送を、そのマルチキャスト ストリームを要求しているポート宛てだけに限定することです。
この例のネットワーク トポロジを図 3 に示します。
図 3:IGMP スヌーピング 例 パート 1
トラフィック ジェネレータは、マルチキャスト UDP パケットの 1 Mbps のストリームを、VLAN 50 のグループ アドレス 239.10.10.10(Catalyst 6009 のポート 3/13)に送信しています。
4908G-L3 ルータは、Catalyst 6009 のポート 1/1 に接続されています。このリンクは、VLAN トランクとして設定されています。GigabitEthernet1.50 サブインターフェイスには、次の設定が適用されます(このルータではインターフェイス経由でのマルチキャスト トラフィックのルーティングは行っていないので、グローバルに設定されている ip multicast-routing コマンドはない点に注意してください)。
interface GigabitEthernet1.50 encapsulation isl 50 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode
レイヤ 2 スイッチで IGMP スヌーピングしか使用していない場合は、ip cgmp インターフェイス設定コマンドが不要であることに注意してください。
Catalyst 6009 スイッチと Catalyst 5509 スイッチでは、IGMP スヌーピングと IGMP fastleave がイネーブルにされています(set igmp enable と set igmp fastleave enable)。 Catalyst 6009 は、ポート 4/1 のトランク リンクを経由して、Catalyst 5509 のポート 2/1 へ接続されています。
この例には、2 つのホスト(マルチキャスト受信側)があります。Host A は、VLAN 50 のポート 3/37 で Catalyst 6009 に接続されています。Host B は、VLAN 50 のポート 3/9 で Catalyst 5509 に接続されています。CGMP の例と同様に、これらのホストは、実際にはルータであり、端末として設定されています(つまり、ルーティングや、それに類似した機能は設定されていません)。 Host A には IP アドレス 192.168.50.13/24 に設定されたインターフェイスがあり、Host B には IP アドレス 192.168.50.75/24 に設定されたインターフェイスがあります。この例の後の方で、ip igmp join-group インターフェイス設定コマンドを使用して、これらのホストをマルチキャスト グループに加入させます。
次の出力は、VLAN 50 でグループ アドレス 239.10.10.10 に対してトラフィック ジェネレータが転送していながら、スイッチでは受信側がないという場合に、Catalyst 4908G-L3 で採取したものです。
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 Gi1.50 v2/Dense 0 30 192.168.50.11 4908g-l3# show ip igmp interface gig1.50 Gi1.50 is up, line protocol is up Internet address is 192.168.50.11/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 Last member query response interval is 1000 ms 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 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 85 periodic_counter 4777 dmvrp_counter 0 timer_couter 4777 astray 0 4908g-l3# 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 X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:10/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:02:11/00:00:48, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
次に、太字の出力の詳細を説明します。
show ip pim interface 出力には、IP アドレス 192.168.50.11 の GigabitEthernet1 インターフェイスが PIM dense モード(PIM-DM)で動作していることが示されています。
show ip igmp interface gig 1.50 コマンドでは、インターフェイスで IGMP がイネーブルに、CGMP がディセーブルにされていて、PIM が稼働していることが示されています。
show ip mroute コマンドでは、ルータには 239.10.10.10 の(ソース、グループ)エントリがあり、発信元が 192.168.50.50(トラフィック ジェネレータ)であることが示されています。 発信インターフェイスのリスト(Outgoing interface list)が空(Null)であることに注意してください。これは、このルータが、実際にはそのインターフェイス間でマルチキャスト ルーティングを実行していないためです。実行しているサービスは、VLAN 50 での IGMP の加入と脱退の監視だけです。
次の出力は、VLAN 50 でグループ アドレス 239.10.10.10 に対してトラフィック ジェネレータが転送していながら、スイッチでは受信側がないという場合に、Catalyst 6009 スイッチで採取したものです。
Cat6009> (enable) show multicast protocols status IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat6009> (enable) show multicast router Port Vlan ---------- ---------------- 1/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1 Total Number of Entries = 2 Cat6009> (enable)
次に、太字の出力の詳細を説明します。
show multicast protocols status 出力には、スイッチで IGMP と IGMP fastleave が有効にされていることが示されています。
show multicast router コマンドでは、VLAN 50 のポート 1/1 で 1 つのマルチキャスト ルータ(4908G-L3)がスイッチで認識されていることが示されています。
show multicast group コマンドでは、マルチキャスト ルータ ポートであるポート 1/1 に対してのみ、VLAN 50 で MAC アドレス 01-00-5e-0a-0a-0a(239.10.10.10 がマッピングされるマルチキャスト MAC アドレス)を宛先とするトラフィックがスイッチで制限されていることが示されています。
次の出力は、VLAN 50 でグループ アドレス 239.10.10.10 に対してトラフィック ジェネレータが転送していながら、スイッチでは受信側がないという場合に、Catalyst 5509 スイッチで採取したものです。
Cat5509> (enable) show multicast protocols status CGMP disabled IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat5509> (enable) show multicast router Port Vlan ---------- ---------------- 2/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- Total Number of Entries = 0 Cat5509> (enable)
次に、太字の出力の詳細を説明します。
show multicast protocols status 出力には、スイッチで IGMP と IGMP fastleave が有効にされていることが示されています。
show multicast router コマンドでは、VLAN 50 のポート 2/1 で 1 つのマルチキャスト ルータ(6009 スイッチへのトランク)がスイッチで認識されていることが示されています。
show multicast group コマンドでは、スイッチで認識されているマルチキャスト ルータはないことが示されています。これは、6009 がすでにマルチキャスト トラフィックをこのルータのポートだけに制限しているためです。そのため、5509 は VLAN 50 の MAC アドレス 01-00-5e-0a-0a-0a に宛てられたトラフィックを受信しません。
ここで、ip igmp join-group 239.10.10.10 インターフェイス設定コマンドを入力して、Host A(VLAN 50 のポート 3/37 で 6009 に接続)をグループ アドレス 239.10.10.10 のマルチキャスト受信側として設定します。
次の出力は、Host A がマルチキャスト グループ 239.10.10.10 に加入した後で Catalyst 6009 スイッチから得られたものです。
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37 Total Number of Entries = 2 Cat6009> (enable)
ポート 3/37 が、このマルチキャスト グループに対するマルチキャスト転送テーブルに追加されたことが分かります。Catalyst 5509 の転送テーブルは変更されていません(マルチキャストのエントリなし)。これは、Catalyst 6009 では、マルチキャスト トラフィックが 5509 へのトランク リンクを通過することを、まだ阻止しているためです。
ここで、ip igmp join-group 239.10.10.10 インターフェイス設定コマンドを入力して、Host B(VLAN 50 のポート 3/9 で 5509 に接続)をグループ アドレス 239.10.10.10 のマルチキャスト受信側として設定します。
次の出力は、Host B がマルチキャスト グループ 239.10.10.10 に加入した後で Catalyst 6009 スイッチから得られたものです。
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37,4/1 Total Number of Entries = 2 Cat6009> (enable)
Catalyst 6009 で、ポート 4/1(Catalyst 5509 へのトランク ポート)が、マルチキャスト グループの転送テーブルに追加されたことが分かります。
次の出力は、Host B がマルチキャスト グループ 239.10.10.10 に加入した後で Catalyst 5509 スイッチから得られたものです。
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 Total Number of Entries = 1 Cat5509> (enable)
Catalyst 5509 で、マルチキャスト グループ(MAC 01-00-5e-0a-0a-0a)に対するマルチキャスト転送エントリが追加され、トランク ポート(2/1)と Host B のポート(3/9)が含まれていることが分かります。
ここで、Host A がマルチキャスト グループから脱退します(no ip igmp join-group 239.10.10.10 インターフェイス設定コマンドを使用)。
6009 スイッチで、ポート 3/37 が 01-00-5e-0a-0a-0a に対するマルチキャスト転送テーブルから削除されます。
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 Total Number of Entries = 2 Cat6009> (enable)
5509 のマルチキャスト転送テーブルは変更されていません。
ここで、トラフィック ジェネレータが新たに 1 Mbps のマルチキャスト UDP パケットを、グループ アドレス 239.85.85.85(MAC アドレス 01-00-5e-55-55-55)に送信し始めます。 図 4 を参照してください。
図 4:IGMP スヌーピング 例 パート 2
4908G-L3 では、新しいグループ アドレスに対して、(*,G) および (S,G) というエントリを作成します。
4908g-l3# 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 X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:00:37/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:00:38/00:02:21, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:13:44/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1.50, Forward/Dense, 00:13:44/00:00:00 (192.168.50.50, 239.10.10.10), 00:00:38/00:02:21, flags: PCT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
6009 では、新しいマルチキャスト MAC アドレスに対する送信元だけの転送エントリを作成します。これには、VLAN 50 にあるマルチキャスト ルータ ポート(1/1)だけが含まれています。
t6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1 Total Number of Entries = 3 Cat6009> (enable)
これで、ip igmp join-group 239.85.85.85 インターフェイス設定コマンドを使用して、Host A と Host B の両方が 239.85.85.85 のグループに加入したことになります。
次の出力は、Host A と Host B がマルチキャスト グループ 239.85.85.85 に加入した後で Catalyst 6009 から得られたものです。
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1,3/37,4/1 Total Number of Entries = 3 Cat6009> (enable)
スイッチで VLAN 50 の 01-00-5e-55-55-55 に対するエントリに、ポート 3/37(Host A)と 4/1(5509 へのトランク)が追加されたことに注意してください。
次の出力は、Host A と Host B がマルチキャスト グループ 239.85.85.85 に加入した後で Catalyst 5509 から得られたものです。
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 50 01-00-5e-55-55-55 2/1,3/9 Total Number of Entries = 2 Cat5509> (enable)
スイッチで VLAN 50 の 01-00-5e-55-55-55 に対するエントリが追加され、ポート 2/1(6009 へのトランク)とポート 3/9(Host B)が追加されたことが分かります。
これまでの説明で、送信側と受信側が同じ VLAN 上にあり、マルチキャスト トラフィックをその関連する受信者だけに送られるようにする場合には、その VLAN に対応するルータ インターフェイスで PIM が有効にされており、CGMP または IGMP スヌーピングを使用する必要がありました。
しかし、Catalyst 6500/6000 シリーズ スイッチの CatOS バージョン 7.1 からは、IGMP スヌーピング クエリアという新しい機能が導入されました。この機能により、他の VLAN へはマルチキャスト トラフィックが送信されないという理由で PIM および IGMP が設定されていない VLAN で、IGMP スヌーピングが使用できるようになります。送信側と受信側の間で、マルチキャスト トラフィックを送りたい VLAN 上にマルチキャスト ルータがない場合は、IGMP スヌーピング クエリア機能を有効にして、この設定が正しく動作するようにする必要があります。
ある VLAN に対して IGMP クエリア機能が設定されている場合は、スイッチが IGMP の通常のクエリを 125 秒ごとに送信し、また、他のスイッチから送られる通常のクエリを受信します。ある VLAN に対して IGMP クエリアを有効にしているスイッチが複数ある場合は、どのスイッチにクエリアの役割を続けさせるかを決めるための選択が行われます。選択されなかったスイッチは、タイマーを起動し、その時間内にクエリーを受信できなかった場合には、新しいクエリアの再選択を行います。
この機能のテストには、2 台の Catalyst 6000 スイッチを使用しています。そのうち、1 台は CatOS ソフトウェア バージョン 8.1(3) を、もう 1 台は CatOS ソフトウェア バージョン 7.6(2a) を実行しています。トポロジは次のとおりです。
図 5:IGMP クエリア 例
送信側と受信側は、すべて VLAN 9 上にあります。IGMP クエリアは、両方のスイッチで有効にされています。
Didju (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9 Cust (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9
この機能が動作するには、この設定ですでに十分ですが、いくつか細かい調整をする必要があります。
Cust (enable) set igmp querier 9 ? qi Query Interval for the vlan(s) oqi Other Querier Interval for the vlan(s)
デフォルトでは 125 秒の Query Interval は、クエリアに選出されたスイッチが一般的 IGMP クエリを送出する頻度を指定します。
デフォルトでは 300 秒の Other Querier Interval は、非クエリア ステートにあるスイッチがクエリア スイッチからの一般的 IGMP クエリを待機する時間数を指定します。設定した時間間隔内に、選択されたクエリア スイッチから通常のクエリーを受信できなかった場合は、クエリア スイッチの次の候補が、クエリア スイッチになります。この仕組みは、「デッド タイマー」と同様です。
両方のスイッチでの IGMP クエリアの現在の状態を調べるには、次のようにします。
Cust (enable) show igmp querier information 9 VLAN Querier State Query Tx Count QI (seconds) OQI (seconds) ---- --------------------- -------------- ------------ ------------- 9 QUERIER 4 125 300 Cust (enable) Didju (enable) show igmp querier information VLAN Querier Address Querier State Query Tx Count QI (sec) OQI (sec) ---- --------------- --------------------- -------------- -------- -------- 9 0.0.0.0 NON-QUERIER 0 125 300 Didju (enable)
上記の出力から、「Cust」というスイッチがクエリアに選出され、クエリ間隔が125秒、非クエリアの「dead timer」が300秒であることがわかります。
この例では、マルチキャスト発信元がグループ 239.10.10.10 にトラフィックを送信してしますが、これはレイヤ 2 の MAC アドレス 01-00-5E-0A-0A-0A に対応しています。
ここで、IGMP によってマルチキャスト グループに追加されたポートを確認します。
Didju (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 2/7-8 Total Number of Entries = 1 Didju (enable) !--- Port 2/7 is the port connected to PC 1 and !--- Port 2/8 connects to Cust, the second 6000.
Cust では、次のように表示されます。
Cust (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 3/13-14 Total Number of Entries = 1 Cust (enable) !--- Port 3/13 connects to PC 2 and 3/14 to Didju.
show multicast router コマンドでは、IGMP クエリを実行中のルータの場所が表示されます。
Cust では、次のように IGMP クエリアに選出されたスイッチからの出力はありません。
Cust (enable) show multicast router Port Vlan -------------- ---------------- Total Number of Entries = 0 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Cust (enable)
2 つ目のスイッチ Didju では、次のように表示されます。
Didju (enable) show multicast router Port Vlan -------------- ---------------- 2/7 @ 9 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Didju (enable)
ここでは、マルチキャスト ルータ ポートはポート 2/7(Cust に接続するポート)で、'@' 記号で示されています。これは、IGMP クエリア機能が使用中であることを示しています。