内容

はじめに

前提条件

使用するコンポーネント

背景説明

トポロジ

説明

受信側の転送

送信側/送信側の転送

はじめに

このドキュメントでは、Catalyst 9000シリーズスイッチのInternet Group Management Protocol(IGMP)機能がデバッグでどのように動作するかについて説明します。

前提条件

次の項目に関する知識があることが推奨されます。

- L2プロトコルとスイッチングの基本的な知識

- PIMおよびIGMPマルチキャストの基本

使用するコンポーネント

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

- Catalyst 9300バージョン17.9.4a

- Catalyst 9500xバージョン17.13.1

- VLCプレーヤーを搭載したWindows 10 PC

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

IGMP機能がないと、レイヤ2スイッチはマルチキャストフレームをすべてのポート（着信ポートを除く）に転送するため、スイッチリソースの浪費になります。

IGMPスヌーピングを使用すると、ホストからのレポートや脱退メッセージをリッスンすることで、特定のグループに参加しているレシーバだけにマルチキャストデータフレームを送信できます。デフォルトでは、この機能はCiscoレイヤ2スイッチで有効になっています。特定のVLAN上でだけイネーブルにするには、グローバルにディセーブルにして、必要なVLAN IDでip igmp snooping vlan vlan-idを設定します。

L2スイッチに接続されたクライアントがマルチキャストトラフィックを要求すると、スイッチはこの情報をスヌーピングしてマルチキャストテーブルを構築し、スイッチのすべてのポートにフラッディングするのではなく、目的の受信者ポートにトラフィックを転送できるようにします。

トポロジ

マルチキャストトポロジ

説明

マルチキャスト通信におけるIGMPシグナリングとトラフィックフローを包括的に理解するには、受信側と発信元の両方の観点から確認することが重要です。

受信側の転送

IGMPプロセスを理解するには、マルチキャストルータポートとIGMPクエリアの概念を理解する必要があります。

一般に、ルータインターフェイスまたはスイッチのSVIでPIMが有効になると、それぞれのVLANブロードキャストドメインで定期的にIGMPクエリの送信が開始されます。クエリーを送信するルータインターフェイスはIGMPクエリアに過ぎず、クエリーを受信するスイッチインターフェイスはそのVLANのスイッチのmrouterポートです。

特定のブロードキャストドメイン内のデバイスには、mrouterポートが1つだけあります。スイッチは、それぞれのmrouterポートの下にIGMPスヌーピンググループテーブルの構築を開始します。

注：同じブロードキャストドメインに複数のクエリーがある場合は、選出プロセスが実行されます。

SW1とSW2は、ルーティングを行わない純粋なレイヤ2スイッチです。

デバッグを使用すると、IGMPスヌーピングのプロセスを理解できます。

#debug ip igmp snooping

SW2のGi 1/0/17に接続されたPC21には、239.1.2.3マルチキャストストリームが必要です。そのため、PC21はスイッチに参加レポートを送信しました。

SW2は、1/0/17にGiに関する共同レポートを受信しました。

*Apr 2 15:49:54.353: IGMPSN: Received IGMPv2 Report for group 239.1.2.3 received on Vlan 2717, port Gi1/0/17

*Apr 2 15:49:54.353: IGMPSN: NEW report: Call process_report port:Gi1/0/17 Querier is IGMPv1, Vlan 2717, quer_ver numeric 0.

*Apr 2 15:49:54.353: IGMPSN: Group: Received IGMPv2 report for mcast group 239.1.2.3 from Client 172.16.1.1. Received on Vlan 2717, port Gi1/0/17.

*Apr 2 15:49:54.353: IGMPSN: group: Adding client ip 172.16.1.1, port_id Gi1/0/17, on vlan 2717

この場合、ブロードキャストドメインにはクエリアがないため、スイッチにはVLAN用のmrouterポートはありません。

したがって、スイッチはGi 1/0/17から受信したIGMPレポートを廃棄する以外に選択肢はありません。

*Apr 2 15:49:54.353: IGMPSN: No mroute detected: Drop IGMPv2 report for group 239.1.2.3 from client 172.16.1.1 received on Vlan 2717, port Gi1/0/17

IGMP V2クライアントがマルチキャストストリームの購読を解除する場合は、スイッチにIGMP脱退メッセージを送信します。

ここでは、IGMP-Leaveレポートの例について説明します。

一般に、スイッチはIGMP脱退を受信すると、IGMPスヌーピンググループテーブルからエントリを削除します。

*Apr 2 15:52:11.237: IGMPSN: Received IGMP Leave for group 239.1.2.3 received on Vlan 2717, port Gi1/0/17

*Apr 2 15:52:11.238: IGMPSN: group: Leave for group 239.1.2.3 from Client 172.16.1.1 received on Vlan 2717, port Gi1/0/17, mvr group (No)

*Apr 2 15:52:11.238: IGMPSN: group: Skip client info adding - src_addr 172.16.1.1, client_addr 172.16.1.1, port_id Gi1/0/17, on vlan 2717

*Apr 2 15:52:11.238: IGMPSN: MCAST IP address 239.1.2.3, MAC address 0100.5e01.0203

スイッチにはmrouterポートがないため、IGMPスヌーピンググループテーブルを作成できません。したがって、ポートGi 1/0/17のIGMPエントリはありません。したがって、同じものを見つけることができません。

*Apr 2 15:52:11.238: IGMPSN: Can not Locate gce 0100.5e01.0203, on Vlan 2717

*Apr 2 15:52:11.238: IGMPSN: group: Group does not exist - Leave for group 239.1.2.3 from Client 172.16.1.1 received on Vlan 2717, port Gi1/0/17 send to router port

*Apr 2 15:52:11.238: IGMPSN: Call platform_l2mc_snoop_send_mrouter

mrouterポートの作成は、スイッチがIGMPスヌーピングを正常に開始するための最初の重要なステップです。

前述のように、IGMPの一般的なクエリはPIMに依存するため、PIMデンスモードはR2 G1/0/45で有効になっています(インターフェイスコンフィギュレーションモードコマンドip pim dense-mode)。

*Apr 2 15:53:30.730: IGMPSN: router: Received non igmp pak on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.730: IGMPSN: router: PIMV2 Hello packet received in 2717

*Apr 2 15:53:30.730: IGMPSN: l2mc_mrd_learn_router_port_internal Gi1/0/1 on Vlan 2717

*Apr 2 15:53:30.730: IGMPSN: router: Is not a router port on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.730: IGMPSN: router: Is not a router port on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.730: IGMPSN: router: Created router port on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.730: IGMPSN: mgt: Reverting flood mode to only multicast router ports for Vlan 2717.

*Apr 2 15:53:30.730: IGMPSN: Adding router port Gi1/0/1 to all GCEs in Vlan 2717

*Apr 2 15:53:30.730: IGMPSN: added rport Gi1/0/1 on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: Notify others Gi1/0/1 on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: After l2mcm_rport_add-1 Gi1/0/1 on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: router: Calling HA mrouter sync Iport:Gi1/0/1 p_type:1 mrt_enable:0

*Apr 2 15:53:30.734: IGMPSN: igmpsn_ha_sync_mrouter_port_info enter Port Gi1/0/1 in vlan 2717

*Apr 2 15:53:30.734: IGMPSN: router: Learning port: Gi1/0/1 as rport on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: router: Received IGMP pak on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.734: IGMPSN: l2mc_mrd_learn_router_port_internal Gi1/0/1 on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: router: Is a router port on Vlan 2717, port Gi1/0/1

*Apr 2 15:53:30.734: IGMPSN: router: Learning port: Gi1/0/1 as rport on Vlan 2717

*Apr 2 15:53:30.734: IGMPSN: Received IGMP Query for group 0.0.0.0 received on Vlan 2717, port Gi1/0/1 *****

*Apr 2 15:53:30.734: IGMPSN: IGMPv2 General Query received on Vlan 2717, port Gi1/0/1 Resp time 2500 (25 100) msecs, LLQ interval 2000 (2, 1000)

*Apr 2 15:53:30.734: IGMPSN: IGMP general queries received on Vlan 2717 updates all groups

*Apr 2 15:53:30.734: IGMPSN: timer: start report_timer 2500 msecs of vlan 2717

スイッチは、問い合わせから一般クエリーを受信する各VLANのmrouterポートを作成します。

SW2#show ip igmp snooping vlan 2717

Vlan 2717:

--------

IGMP snooping : Enabled

Pim Snooping : Disabled

IGMPv2 immediate leave : Enabled

Explicit host tracking : Enabled

Multicast router learning mode : pim-dvmrp

CGMP interoperability mode : IGMP_ONLY

Robustness variable : 2

Last member query count : 2

Last member query interval : 1000

SW2#show ip igmp snooping querier

Vlan IP Address IGMP Version Port

-------------------------------------------------------------

2717 172.17.1.254 v2 Gi1/0/1

SW2#show ip igmp snooping mrouter

Vlan ports

---- -----

2717 Gi1/0/1(dynamic)

クエリアは60秒ごとにIGMP一般クエリーを送信します。

~

*Apr 6 10:37:02.793: IGMPSN: Received IGMP Query for group 0.0.0.0 received on Vlan 2717, port Gi1/0/1

*Apr 6 10:37:02.793: IGMPSN: IGMPv2 General Query received on Vlan 2717, port Gi1/0/1 Resp time 10000 (100 100) msecs, LLQ interval 2000 (2, 1000)

*Apr 6 10:37:02.793: IGMPSN: IGMP general queries received on Vlan 2717 updates all groups

~

~

*Apr 6 10:38:02.793: IGMPSN: Received IGMP Query for group 0.0.0.0 received on Vlan 2717, port Gi1/0/1

*Apr 6 10:38:02.793: IGMPSN: IGMPv2 General Query received on Vlan 2717, port Gi1/0/1 Resp time 10000 (100 100) msecs, LLQ interval 2000 (2, 1000)

*Apr 6 10:38:02.793: IGMPSN: IGMP general queries received on Vlan 2717 updates all groups

~

ポートGi 1/0/17(PC21)に接続されているホストには239.1.2.3宛てのマルチキャストストリームが必要であるため、PC21はクエリア172.17.1.254を宛先とする239.1.2.3宛てのレポートを送信します。

スイッチは同じパケットをスヌーピングし、IGMPスヌーピングテーブルにエントリを作成します。

*Apr 6 10:38:03.714: IGMPSN: Received IGMPv2 Report for group 239.1.2.3 received on Vlan 2717, port Gi1/0/17

*Apr 6 10:38:03.714: IGMPSN: NEW report: Call process_report port:Gi1/0/17 Querier is IGMPv1, Vlan 2717, quer_ver numeric 2.

*Apr 6 10:38:03.714: IGMPSN: Group: Received IGMPv2 report for mcast group 239.1.2.3 from Client 172.17.1.1. Received on Vlan 2717, port Gi1/0/17.

*Apr 6 10:38:03.714: IGMPSN: group: Adding client ip 172.17.1.1, port_id Gi1/0/17, on vlan 2717

*Apr 6 10:38:03.714: IGMPSN: MCAST IP address 239.1.2.3, MAC address 0100.5e01.0203

*Apr 6 10:38:03.714: IGMPSN: Locate gce 0100.5e01.0203, on Vlan 2717

*Apr 6 10:38:03.714: IGMPSN: locate group 239.1.2.3, on Vlan 2717

*Apr 6 10:38:03.714: IGMPSN: Add v2 group 239.1.2.3 member port Gi1/0/17, on Vlan 2717

*Apr 6 10:38:03.714: IGMPSN: group: Added port Gi1/0/17 to group 239.1.2.3

*Apr 6 10:38:03.714: TIMER_START for group239.1.2.3 for time 10000 * 100

*Apr 6 10:38:03.714: IGMPSN: group: Forwarding 239.1.2.3 report to router ports

*Apr 6 10:38:03.714: IGMPSN: Call platform_l2mc_snoop_send_mrouter

SW2#show ip igmp snooping group

Vlan         Group           Type       Version      Port List

-----------------------------------------------------------------------

2717         239.1.2.3      igmp       v2           Gi1/0/17

スイッチがアップリンクGi1/0/1またはVLAN 2717内の他のポートのいずれかから、マルチキャストグループ239.1.2.3宛てのデータトラフィックを受信した場合、スイッチはそのトラフィックをインターフェイスGi 1/0/17にのみ転送し、VLAN 2717内の他のポートには転送しません。

また、IGMPレポートはSW2のmrouterポートからクエリア(R2)に到達し、クエリアは同じへのそれぞれのIGMPグループエントリを作成します。R2が239.1.2.3宛てのマルチキャストデータトラフィックを受信すると、SW2に転送されます。

送信側/送信側の転送

PC11の172.16.1.1はSW1 Gi 1/0/3に接続され、239.1.2.3 UDPポート1234宛てのマルチキャストトラフィックを送信しています。

SW1#show int gigabitEthernet 1/0/3

GigabitEthernet1/0/3 is up, line protocol is up (connected)

Hardware is Gigabit Ethernet, address is 2416.9d7a.1083 (bia 2416.9d7a.1083)

~

~

5 minute input rate 1857000 bits/sec, 170 packets/sec

5 minute output rate 0 bits/sec, 0 packets/sec

9410 packets input, 12890025 bytes, 0 no buffer

Received 9394 broadcasts (9394 multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 9394 multicast, 0 pause input

0 input packets with dribble condition detected

~

~

SW1#show int gigabitEthernet 1/0/3 counters

Port       InOctets     InUcastPkts InMcastPkts InBcastPkts

Gi1/0/3  12890593  17            9396        0

!

SW1#show int te 1/1/1 counters

Port       InOctets      InUcastPkts InMcastPkts InBcastPkts

Te1/1/1 1166336    3940           1251            14

Port OutOctets    OutUcastPkts  OutMcastPkts OutBcastPkts

Te1/1/1 3229106605    2731           2358824      6

!

SW1#show ip igmp snooping querier

Vlan IP     Address           IGMP Version    Port

-------------------------------------------------------------

2716        172.16.1.254      v2                Te1/1/1

!

SW1#show ip igmp snooping mrouter

Vlan ports

---- -----

2716 Te1/1/1(dynamic)

SW1で、IGMPスヌーピングが有効になっており、スイッチにはすでにmrouterポートがあります。デフォルトでは、スイッチはmrouterポートで受信したマルチキャストデータトラフィックをクエリアに転送します。

発信元インターフェイスGi 1/0/3のEPC。

SW1#show monitor capture file flash:mycap1.pcap

Starting the packet display ........ Press Ctrl + Shift + 6 to exit

1 0.000000 172.16.1.1 -> 239.1.2.3 RTCP 102 Sender Report Source description

2 0.000100 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

3 0.000140 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

4 0.000178 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

5 0.000234 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

スイッチSW1に着信し、1/1/1からPIMルータまたはクエリア172.16.1.254に向けて発信するマルチキャストデータストリーミング。

コア、R1、およびR2で10.0.10.0/24、10.0.20.0/24,172.16.1.0/24、および172.17.1.0/24に対してマルチキャストルーティングおよびPIMが有効になっている。マルチキャストルーティングにより、L3ネットワークでマルチキャストストリームが確実に転送され、最終的にストリームがR2に到達します。R2にはIGMPレポートプロセスを通じて以前に学習したIGMPグループテーブルエントリがあるため、R2はストリームをSW2に転送します。

SW2#show int gigabitEthernet 1/0/17 counters

Port InOctets InUcastPkts InMcastPkts InBcastPkts

Gi1/0/17 200 1709 103 0

Port OutOctets OutUcastPkts OutMcastPkts OutBcastPkts

Gi1/0/17 3661503 3 2667 0

最後に、PC21はマルチキャストストリームを受信します。Gi 1/0/17のOutMcastPktsが増加しています。

SW2のインターフェイスGi 1/0/17のEPC。

SW2#show monitor capture file flash:mycap1.pcap

Starting the packet display ........ Press Ctrl + Shift + 6 to exit

~

~

14 18.002140 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

15 18.002178 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

16 18.002234 172.16.1.1 -> 239.1.2.3 UDP 1370 59218 -> 1234 Len=1328

~

~

スイッチSW2でGi 1/0/1から入力され、Gi 1/0/17からマルチキャストストリームを要求しているホストに向けて出力されるマルチキャストデータストリーミング。