Inhalt

Einleitung

Voraussetzungen

Einleitung

In diesem Dokument wird beschrieben, wie die IGMP-Funktion (Internet Group Management Protocol) auf Catalyst Switches der Serie 9K mit Debugging-Anwendungen funktioniert.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- Grundlegendes Verständnis von L2-Protokollen und Switching

- Grundlegende Informationen zu PIM und IGMP-Multicast

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- Catalyst 9300 Version 17.9.4a

- Catalyst 9500x Version 17.13.1

- Windows 10-PC mit VLC-Player

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Hintergrundinformationen

Ohne IGMP-Funktionen leitet ein Layer-2-Switch einen Multicast-Frame an alle Ports weiter (mit Ausnahme des Eingangsports), was zu einer Verschwendung von Switch-Ressourcen führt.

IGMP-Snooping ermöglicht dem Switch, Multicast-Daten-Frames nur an Empfänger zu senden, die einer bestimmten Gruppe angehören, indem er auf Berichte wartet oder Nachrichten von den Hosts hinterlässt. Standardmäßig ist diese Funktion auf einem Cisco Layer-2-Switch aktiviert. Wenn Sie die Funktion nur für ein bestimmtes VLAN aktivieren möchten, können Sie sie global deaktivieren und mit der erforderlichen VLAN-ID konfigurierenip igmp snooping vlan vlan-id.

Wenn der mit dem L2-Switch verbundene Client Multicast-Datenverkehr anfordert, tastet der Switch diese Informationen ab und erstellt die Multicast-Tabelle, sodass der Switch den Datenverkehr an die vorgesehenen Empfängerports weiterleiten kann, anstatt alle Ports des Switches zu fluten.

Topologie

Multicast-Topologie

Erläuterung

Um ein umfassendes Verständnis der IGMP-Signalisierung und des Datenverkehrsflusses bei der Multicast-Kommunikation zu gewinnen, ist es wichtig, diese sowohl aus der Empfänger- als auch aus der Quellperspektive zu untersuchen.

Empfängerseitige Weiterleitung

Um den IGMP-Prozess zu verstehen, müssen Sie das Konzept von Router-Port und IGMP Querier verstehen.

Wenn PIM an einer Router-Schnittstelle oder der SVI des Switches aktiviert ist, beginnt das System in der Regel damit, IGMP-Abfragen regelmäßig in die entsprechende VLAN-Broadcast-Domäne zu senden. Die Router-Schnittstelle, die die Abfragen sendet, ist nichts anderes als der IGMP Querier. Die Switch-Schnittstelle, die die Abfragen empfängt, ist der Router-Port des Switches für dieses VLAN.

Jedes Gerät in einer bestimmten Broadcast-Domäne verfügt nur über einen Router-Port. Der Switch beginnt mit der Erstellung der IGMP-Snooping-Gruppentabelle unter dem entsprechenden Router-Port.

Hinweis: Bei mehreren Abfragen in derselben Broadcast-Domäne findet der Auswahlprozess statt.

SW1 und SW2 sind reine Layer-2-Switches ohne Routing.

Mit Debugs können wir den IGMP-Snooping-Prozess verstehen.

#debug ip igmp snooping

PC21, der mit Gi 1/0/17 von SW2 verbunden ist, benötigt einen 239.1.2.3-Multicast-Stream. PC21 sendete daraufhin den Join-Bericht an den Switch.

SW2 erhielt den gemeinsamen Bericht über Gi am 1.01.2017.

*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

In diesem Fall gibt es keinen Router-Port am Switch für das VLAN, da in der Broadcast-Domäne kein Querier vorhanden ist.

Der Switch hat also keine andere Wahl, als den IGMP-Bericht aus Gi 1/0/17 zu löschen.

*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

Wenn ein IGMP V2-Client die Abbestellung eines Multicast-Streams beenden möchte, kann er dies tun, indem er dem Switch eine IGMP-Leave-Nachricht sendet.

Das IGMP-Leave-Berichtsbeispiel wird hier erwähnt.

Im Allgemeinen entfernt der Switch den Eintrag aus der IGMP-Snooping-Gruppentabelle, wenn er den IGMP-Status erhält.

*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

Da der Switch nicht über den Router-Port verfügt, kann er keine IGMP-Snooping-Gruppentabelle erstellen. Daher verfügt er nicht über den IGMP-Eintrag für Port Gi 1/0/17. Daher kann es nicht das gleiche zu finden.

*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

Die Router-Port-Erstellung ist der erste und entscheidende Schritt für den Switch, um das IGMP-Snooping erfolgreich zu starten.

Wie bereits erwähnt, hängen allgemeine IGMP-Abfragen vom PIM ab. Daher wurde der PIM Dense Mode auf R2 G1/0/45 aktiviert (Interface Configuration Mode Command 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

Der Switch erstellt den Router-Port für das jeweilige VLAN, in dem er die allgemeine Abfrage von dem abgefragten Gerät empfängt.

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)

Der Abfrager sendet alle 60 Sekunden eine allgemeine IGMP-Abfrage.

~

*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

~

Der Host, der mit Port Gi 1/0/17 (PC21) verbunden ist, benötigt den Multicast-Stream, der für 239.1.2.3 bestimmt ist. PC21 sendet daher den Bericht für 239.1.2.3, der für Abfrage 172.17.1.254 bestimmt ist.

Der Switch tastet dasselbe Paket ab und erstellt einen Eintrag in der IGMP-Snooping-Tabelle.

*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

Wenn der Switch Datenverkehr, der an die Multicast-Gruppe 239.1.2.3 gerichtet ist, entweder vom Uplink Gi1/0/1 oder von einem anderen Port im VLAN 2717 empfängt, leitet der Switch diesen nur an die Schnittstelle Gi 1/0/17 weiter und leitet ihn nicht an einen anderen Port im VLAN 2717 weiter.

Außerdem erreicht der IGMP-Bericht den Querier (R2) vom Router-Port von SW2, und Querier erstellt den entsprechenden IGMP-Gruppeneintrag für denselben. Empfängt R2 Multicast-Datenverkehr für 239.1.2.3, wird er an SW2 weitergeleitet.

Absender-/Quellseitige Weiterleitung

PC11, 172.16.1.1 ist mit SW1 Gi 1/0/3 verbunden und sendet Multicast-Datenverkehr an den 239.1.2.3 UDP-Port 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)

Auf SW1 ist IGMP-Snooping aktiviert, und der Switch verfügt bereits über einen Router-Port. Der Switch leitet den empfangenen Multicast-Datenverkehr auf dem Router-Port standardmäßig an den Abfrager weiter.

EPC an der Quellschnittstelle Gi 1/0/3.

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

Multicast-Daten-Streaming, das in den Switch SW1 eingeht und von Te 1/1/1 in Richtung PIM-Router oder Querier 172.16.1.254 weitergeleitet wird.

Multicast-Routing und PIM sind für 10.0.10.0/24, 10.0.20.0/24,172.16.1.0/24 und 172.17.1.0/24 auf Core, R1 und R2 aktiviert. Das Multicast-Routing stellt sicher, dass der Multicast-Stream im L3-Netzwerk weitergeleitet wird und schließlich R2 erreicht. Da R2 über den IGMP-Gruppentabelleneintrag verfügt, der zuvor über den IGMP-Berichtsprozess gelernt wurde, leitet R2 den Stream an SW2 weiter.

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

Schließlich empfängt PC21 den Multicast-Stream. OutMcastPakete auf Gi 1/0/17 inkrementieren.

EPC an Schnittstelle Gi 1/0/17 von SW2.

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

~

~

Multicast-Daten-Streaming, das in den Switch SW2 von Gi 1/0/1 eingeht und von Gi 1/0/17 an den Host weitergeleitet wird, der den Multicast-Stream anfordert.