はじめに
このドキュメントでは、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からマルチキャストストリームを要求しているホストに向けて出力されるマルチキャストデータストリーミング。