Sommario

Introduzione

Prerequisiti

Componenti usati

Premesse

Topologia

Spiegazione

Receiver Side Forwarding

Inoltro laterale mittente/origine

Introduzione

In questo documento viene descritto come usare la funzione IGMP (Internet Group Management Protocol) sugli switch Catalyst serie 9K con i debug.

Prerequisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Conoscenze base di protocolli L2 e switching

- Conoscenze base di PIM e IGMP Multicast

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- Catalyst 9300 versione 17.9.4a

- Catalyst 9500x versione 17.13.1

- PC Windows 10 con lettore VLC

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

Senza le funzionalità IGMP, uno switch di layer 2 inoltra un frame multicast a tutte le porte (ad eccezione della porta in ingresso), sprecando risorse dello switch.

Lo snooping IGMP consente allo switch di inviare frame di dati multicast solo ai ricevitori che si uniscono a un particolare gruppo ascoltando i report/lasciando i messaggi dagli host. Per impostazione predefinita, questa funzione è abilitata su uno switch Cisco layer 2. Per abilitare la VLAN solo su una determinata VLAN, è possibile disabilitarla globalmente e configurarla ip igmp snooping vlan vlan-id con l'ID VLAN richiesto.

Quando il client connesso allo switch L2 richiede traffico multicast, lo switch ignora queste informazioni e crea la tabella multicast in modo che lo switch possa inoltrare il traffico alle porte del destinatario previste invece di inviare il traffico a tutte le porte dello switch.

Topologia

Topologia Multicast

Spiegazione

Per ottenere una comprensione completa della segnalazione IGMP e del flusso del traffico nella comunicazione multicast, è fondamentale esaminarla sia dal punto di vista del ricevitore che da quello dell'origine.

Receiver Side Forwarding

Per comprendere il processo IGMP, è necessario comprendere il concetto di porta del router e di query IGMP.

In genere, quando il protocollo PIM è abilitato sull'interfaccia di un router o sulla SVI dello switch, inizia a inviare periodicamente query IGMP sul dominio di broadcast della VLAN interessata. L'interfaccia del router che invia le query non è altro che il querier IGMP e l'interfaccia dello switch che riceve le query è la porta del router dello switch per quella VLAN.

Ogni dispositivo in uno specifico dominio di broadcast ha solo una porta router. Lo switch inizia a creare la tabella dei gruppi di snooping IGMP sotto la rispettiva porta del router.

Nota: in caso di più query nello stesso dominio di trasmissione, viene eseguito il processo di selezione.

SW1 e SW2 sono switch puri di layer 2 senza routing.

I debug consentono di comprendere il processo dello snooping IGMP.

#debug ip igmp snooping

PC21 collegato a Gi 1/0/17 di SW2, richiede uno streaming multicast 239.1.2.3. Il PC21 ha quindi inviato il rapporto di join allo switch.

SW2 ha ricevuto la relazione congiunta su Gi il 1/01/17.

*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 questo caso, poiché non vi sono interrogatori nel dominio di broadcast, non vi è alcuna porta del router sullo switch per la VLAN.

Quindi, lo switch non ha altra scelta che eliminare il report IGMP in arrivo da Gi 1/0/17.

*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

Se un client IGMP V2 desidera annullare la sottoscrizione a un flusso multicast, può farlo inviando allo switch un messaggio IGMP-leave.

Di seguito è riportato l'esempio del report IGMP-Leave.

In generale, quando lo switch riceve il congedo IGMP, rimuove la voce dalla tabella dei gruppi di snooping 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

Poiché lo switch non dispone della porta del router, non può creare la tabella dei gruppi di snooping IGMP. Quindi, non ha la voce IGMP per la porta Gi 1/0/17. Quindi non può individuare lo stesso.

*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

La creazione della porta del router è il primo e fondamentale passaggio per l'avvio corretto dello snooping IGMP da parte dello switch.

Come accennato in precedenza, le query generali IGMP dipendono da PIM; pertanto, la modalità PIM dense è stata abilitata in R2 G1/0/45. (Comando della modalità di configurazione interfaccia 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

Lo switch crea la porta del router per la VLAN corrispondente in cui riceve la query generale dalla VLAN interrogata.

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 invia una query generale IGMP ogni 60 secondi.

~

*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

~

L'host connesso alla porta Gi 1/0/17 (PC21) richiede il flusso multicast destinato alla porta 239.1.2.3, quindi PC21 invia il report destinato alla porta 239.1.2.3 destinata alla query 172.17.1.254.

Lo switch snooping lo stesso pacchetto e crea una voce nella tabella di snooping 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

Se lo switch riceve il traffico di dati destinato al gruppo multicast 239.1.2.3 dal collegamento in uplink Gi1/0/1 o da qualsiasi altra porta della VLAN 2717, lo switch lo inoltra solo all'interfaccia Gi 1/0/17 e non all'interfaccia Gi 2717.

Inoltre, il report IGMP raggiunge Querier (R2) dalla porta del router di SW2 e Querier crea la voce di gruppo IGMP corrispondente. Se R2 riceve traffico di dati multicast destinato a 239.1.2.3, viene inoltrato a SW2.

Inoltro laterale mittente/origine

PC11, 172.16.1.1 è collegato a SW1 Gi 1/0/3, inviando il traffico multicast destinato alla porta 1234 239.1.2.3 UDP.

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)

Sul software SW1, lo snooping IGMP è abilitato e lo switch ha già una porta router. Per impostazione predefinita, lo switch inoltra il traffico di dati multicast ricevuto sulla porta router al querier.

EPC su interfaccia di origine 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

Streaming di dati multicast in entrata nello switch SW1 e in uscita da Te 1/1/1 verso il router PIM o Query 172.16.1.254.

Il routing multicast e PIM sono abilitati per 10.0.10.0/24, 10.0.20.0/24,172.16.1.0/24 e 172.17.1.0/24 sui core, R1 e R2. Il routing multicast assicura l'inoltro del flusso multicast nella rete L3 e, infine, il flusso raggiunge R2. Poiché R2 dispone della voce IGMP della tabella dei gruppi appresa in precedenza mediante il processo di report IGMP, R2 inoltra il flusso a 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

Infine, PC21 riceve il flusso multicast. OutMcastPkts su Gi 1/0/17 incrementale.

EPC sull'interfaccia Gi 1/0/17 di 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

~

~

Streaming di dati multicast in ingresso nello switch SW2 da Gi 1/0/1 e in uscita da Gi 1/0/17 verso l'host che richiede lo streaming multicast.