Contents

Introdução

Pré-requisitos

Componentes Utilizados

Informações de Apoio

Topologia

Explicação

Encaminhamento do lado do receptor

Encaminhamento do lado do remetente/origem

Introdução

Este documento descreve como o recurso Internet Group Management Protocol (IGMP) nos switches da série Catalyst 9K funciona com depurações.

Pré-requisitos

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Entendimento básico dos protocolos L2 e Switching

- Noções básicas de PIM e IGMP Multicast

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Catalyst 9300 versão 17.9.4a

- Catalyst 9500x Versão 17.13.1

- PC Windows 10 com VLC player

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

Sem os recursos de IGMP, um switch de camada 2 encaminhará um quadro multicast para todas as portas (exceto a porta de entrada), o que é um desperdício de recursos do switch.

O rastreamento de IGMP permite que o switch envie quadros de dados de multicast somente para os receptores que se unem a um grupo específico, ouvindo relatórios/deixando mensagens dos hosts. Por padrão, esse recurso é ativado em um switch de camada 2 da Cisco. Se quiser habilitar somente para uma VLAN específica, você poderá desabilitá-la globalmente e configuráip igmp snooping vlan vlan-id-la com a VLAN-id necessária.

Quando o cliente conectado ao switch L2 solicita tráfego multicast, o switch rastreia essas informações e cria a tabela multicast para que o switch possa encaminhar o tráfego para as portas de destinatário pretendidas, em vez de inundar todas as portas do switch.

Topologia

Topologia Multicast

Explicação

Para obter uma compreensão abrangente da sinalização de IGMP e do fluxo de tráfego na comunicação multicast, é crucial examiná-la da perspectiva do receptor e da origem.

Encaminhamento do lado do receptor

Para entender o processo IGMP, você precisa entender o conceito de porta do roteador mrouter e consultante IGMP.

Geralmente, quando o PIM é ativado em uma interface de roteador ou no SVI do switch, ele começa a enviar consultas IGMP periodicamente no respectivo domínio de broadcast da VLAN. A interface do roteador que envia as consultas não é nada além do consultante IGMP e a interface do Switch que recebe as consultas é a porta mrouter do switch para essa VLAN.

Qualquer dispositivo em um domínio de broadcast específico tem apenas uma porta mrouter. O switch começa a criar a tabela de grupos de rastreamento IGMP na respectiva porta mrouter.

Observação: no caso de várias consultas no mesmo domínio de broadcast, o processo de eleição ocorre.

SW1 e SW2 são switches de Camada 2 puros sem roteamento.

As depurações nos permitem compreender o processo de espionagem de IGMP.

#debug ip igmp snooping

PC21 conectado à Gi 1/0/17 de SW2, precisa de fluxo multicast 239.1.2.3. Então o PC21 enviou o relatório de união ao switch.

SW2 recebeu o relatório conjunto sobre Gi em 1/0/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

Nesse caso, como não há nenhum consultante no domínio de broadcast, não há nenhuma porta mrouter no switch para a VLAN.

Portanto, o switch não tem escolha a não ser descartar o relatório IGMP que chega 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 um cliente IGMP V2 desejar cancelar a assinatura de um fluxo de multicast, ele poderá fazer isso enviando ao switch uma mensagem IGMP-leave.

O exemplo de relatório IGMP-Leave é mencionado aqui.

Em geral, quando o switch recebe a saída IGMP, ele remove a entrada da tabela de grupos de rastreamento 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

Como o switch não tem a porta mrouter, ele não pode criar a tabela de grupos de rastreamento IGMP. Portanto, ele não tem a entrada de IGMP para a porta Gi 1/0/17. Portanto, não pode localizar o mesmo.

*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

A criação da porta do roteador Mé é a primeira etapa vital para que o switch inicie o rastreamento IGMP com êxito.

Como mencionado anteriormente, as consultas gerais de IGMP dependem do PIM, portanto, o modo denso de PIM foi ativado em R2 G1/0/45. (Comandoip pim dense-mode do Modo de Configuração de Interface ).

*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

O switch cria a porta mrouter para a respectiva VLAN na qual recebe a consulta geral do consultado.

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)

O consultante envia a consulta geral de IGMP a cada 60 segundos.

~

*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

~

O host conectado à porta Gi 1/0/17 (PC21) precisa do fluxo multicast destinado a 239.1.2.3, portanto, o PC21 envia o relatório destinado a 239.1.2.3 destinado ao consultante 172.17.1.254.

O switch rastreia o mesmo pacote e cria uma entrada na tabela de rastreamento 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 o switch receber tráfego de dados destinado ao grupo multicast 239.1.2.3 do uplink Gi1/0/1 ou de qualquer outra porta na VLAN 2717, o switch apenas o encaminhará para a interface Gi 1/0/17 e não o encaminhará para qualquer outra porta na VLAN 2717.

Além disso, o relatório IGMP alcança o consultante (R2) da porta mrouter do SW2 e o consultante cria a respectiva entrada de grupo IGMP para o mesmo. Se R2 receber tráfego de dados multicast destinado a 239.1.2.3, ele será encaminhado para SW2.

Encaminhamento do lado do remetente/origem

PC11, 172.16.1.1 está conectado à Gi 1/0/3 do SW1, enviando tráfego multicast destinado à porta UDP 1234 239.1.2.3.

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)

No SW1, o snooping IGMP está habilitado e o switch já tem a porta mrouter, o switch encaminhará por padrão o tráfego de dados multicast recebido na porta mrouter para o consultante.

EPC na interface Gi 1/0/3 de origem.

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

Transmissão de dados multicast entrando no switch SW1 e saindo de Te 1/1/1 em direção ao roteador PIM ou Querier 172.16.1.254.

O roteamento multicast e o PIM estão habilitados para 10.0.10.0/24, 10.0.20.0/24,172.16.1.0/24 e 172.17.1.0/24 no Core, R1 e R2. O roteamento multicast garante o encaminhamento do fluxo multicast na rede L3 e, finalmente, o fluxo alcança R2. Como R2 tem a entrada da tabela de grupos IGMP aprendida anteriormente através do processo de relatório IGMP, R2 encaminha o fluxo para 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

Finalmente, PC21 recebe o fluxo multicast. OutMcastPkts em Gi incrementando 1/0/17.

EPC na interface Gi 1/0/17 do 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

~

~

Transmissão de dados multicast entrando no switch SW2 a partir da Gi 1/0/1 e saindo da Gi 1/0/17 em direção ao host que solicita a transmissão multicast.