Inleiding
In dit document wordt beschreven hoe de functie Internet Group Management Protocol (IGMP) op Catalyst 9K-serie switches werkt met foutopsporing.
Voorwaarden
Cisco raadt kennis van de volgende onderwerpen aan:
- Basiskennis van L2-protocollen en schakelen
- Basiskennis van PIM en IGMP Multicast
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Catalyst 9300 versie 17.9.4a
- Catalyst 9500x versie 17.13.1
- Windows 10-pc met VLC-speler
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Zonder IGMP-mogelijkheden stuurt een laag 2-switch een multicast-frame door naar alle poorten (behalve de binnenkomende poort), wat een verspilling is van switch-bronnen.
Met IGMP-snooping kan de switch multicast-gegevensframes alleen verzenden naar ontvangers die zich bij een bepaalde groep aansluiten door te luisteren naar rapporten / berichten van de hosts achter te laten. Deze functie is standaard ingeschakeld op een Cisco Layer 2-switch. Als u alleen voor een bepaald VLAN wilt inschakelen, kunt u dit globaal uitschakelen en configureren ip igmp snooping vlan vlan-id met de vereiste VLAN-id.
Wanneer de client die is aangesloten op de L2-switch multicastverkeer aanvraagt, bekijkt de switch deze informatie en bouwt de multicasttabel op, zodat de switch het verkeer naar de beoogde ontvangerpoorten kan doorsturen in plaats van alle poorten van de switch te overspoelen.
Topologie
multicasttopologie
verklaring
Om een volledig inzicht te krijgen in IGMP-signalering en verkeersstroom in multicast-communicatie, is het van cruciaal belang om het te onderzoeken vanuit zowel het ontvanger- als het bronperspectief.
doorsturen aan de ontvangstzijde
Om het IGMP-proces te begrijpen, moet u het concept van de router-poort en de IGMP-querier begrijpen.
Wanneer PIM is ingeschakeld op een routerinterface of de SVI van de switch, begint deze in het algemeen periodiek IGMP-query's te verzenden in het respectieve VLAN-uitzenddomein. De routerinterface die de query's verzendt, is niets anders dan de IGMP-querier en de Switch-interface die de query's ontvangt, is de routerpoort van de switch voor dat VLAN.
Elk apparaat in een specifiek broadcast-domein heeft slechts één mrouter-poort. De switch begint met het bouwen van de IGMP-snuffelgroeptafel onder de respectievelijke mrouterpoort.
Opmerking: bij meerdere query's in hetzelfde broadcast-domein vindt het selectieproces plaats.
SW1 en SW2 zijn pure Layer 2-switches zonder routering.
Debugs stellen ons in staat om het proces van IGMP-snooping te begrijpen.
#debug ip igmp snooping
PC21 aangesloten op Gi 1/0/17 van SW2, heeft 239.1.2.3 multicast stream nodig. Dus PC21 stuurde het join rapport naar de switch.
SW2 heeft het gezamenlijk verslag over GI op 1/0/17 ontvangen.
*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 dit geval is er geen querier in het broadcast-domein en is er geen mrouter-poort op de switch voor het VLAN.
De switch heeft dus geen andere keuze dan het IGMP-rapport dat binnenkomt van Gi 1/0/17 te laten vallen.
*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
Als een IGMP V2-client zich wenst af te melden voor een multicast-stream, kan dat door de switch een IGMP-leave-bericht te sturen.
Het voorbeeld van het IGMP-Leave rapport wordt hier genoemd.
In het algemeen, wanneer de switch het IGMP-verlof ontvangt, verwijdert de switch de vermelding van de IGMP-snooping-groepstabel.
*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
Aangezien de switch niet over de mrouterpoort beschikt, kan deze geen IGMP-snuffelgroeptabel maken. Het heeft dus geen IGMP voor poort Gi 1/0/17. Het kan dus niet hetzelfde vinden.
*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
Het maken van de Mrouter-poort is de eerste en belangrijkste stap voor de switch om de IGMP-snooping met succes te starten.
Zoals eerder vermeld, zijn algemene IGMP-query's afhankelijk van PIM. Daarom is de dichte modus PIM ingeschakeld op R2 G1/0/45. (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
De switch maakt de mrouterpoort voor het betreffende VLAN waarin de algemene query van de gezochte server wordt ontvangen.
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)
Querier verzendt elke 60 seconden een algemene IGMP-query.
~
*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
~
De host die is aangesloten op poort Gi 1/0/17 (PC21) heeft de multicaststroom nodig die is bestemd voor 239.1.2.3, dus verzendt PC21 het rapport dat is bestemd voor 239.1.2.3 dat is bedoeld voor querier 172.17.1.254.
Switch snuffelt hetzelfde pakket en maakt een vermelding in de IGMP-snuffeltafel.
*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
Als de switch gegevensverkeer ontvangt dat bestemd is voor multicastgroep 239.1.2.3, hetzij vanaf de uplink Gi1/0/1 of vanaf een andere poort in VLAN 2717, stuurt de switch het alleen door naar interface Gi 1/0/17 en stuurt het niet door naar een andere poort in VLAN 2717.
Het IGMP-rapport bereikt ook Querier (R2) vanaf de routerpoort van SW2 en Querier maakt de respectieve IGMP-groepsinvoer voor hetzelfde. Als R2 multicast-dataverkeer ontvangt dat bestemd is voor 239.1.2.3, wordt het doorgestuurd naar SW2.
Doorsturen van afzender/bron
PC11, 172.16.1.1 is aangesloten op SW1 Gi 1/0/3 en verzendt multicast-verkeer naar 239.1.2.3 UDP-poort 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)
Op SW1 is IGMP-snooping ingeschakeld en heeft de switch al een routerpoort, switch forwards standaard het ontvangen multicast-gegevensverkeer op de routerpoort naar de querier.
EPC op broninterface 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-gegevensstreaming die de switch SW1 binnenkomt en van Te 1/1/1 naar de PIM-router of Querier 172.16.1.254 gaat.
Multicast-routering en PIM zijn ingeschakeld voor 10.0.10.0/24, 10.0.20.0/24,172.16.1.0/24 en 172.17.1.0/24 op Core, R1 en R2. De multicast-routering zorgt ervoor dat de multicast-stroom in het L3-netwerk wordt doorgestuurd en ten slotte bereikt de stroom R2. Aangezien R2 de IGMP-groepstabel heeft ingevoerd die eerder is geleerd via het IGMP-rapportproces, stuurt R2 de stroom door naar 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
Tot slot ontvangt PC21 de multicast-stream. OutMacPets op Gi 1/0/17 verhogen.
EPC op interface Gi 1/0/17 van 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 Data streaming die binnenkomt in de switch SW2 van Gi 1/0/1 en uitgaat van Gi 1/0/17 naar de host die de multicast stream aanvraagt.