IGMP Version 3

Hi Laz,

Is that correct that we have an exception for IGMPv2? General membership queries are sent to 224.0.0.1 but Membership queries following a leave are sent to the Multicast Group address?
That’s what we see in the previous lesson in the wireshark screenshot

Thanks,

Hello David

Thanks for pointing this out. Let me clarify.

General membership queries are sent to the all-hosts multicast address 224.0.0.1. These queries are sent by the multicast router to periodically check if there are still members in a multicast group.

Group-specific membership queries are sent to the multicast group address in response to a Leave Group message. When a host wants to leave a multicast group, it sends a Leave Group message to the all-routers multicast address 224.0.0.2. The router then sends a group-specific membership query to the multicast group address to check if there are any remaining members in that group. If no other hosts respond, the router stops forwarding packets for that multicast group.

I hope this has been helpful!

Laz

1 Like

Hi,

Great content. It would be even better if it explains EXCLUDE and other IGMPv3 group modes as well

Hello Ram

IGMPv3 uses two filter modes that provide a lot more flexibility and granularity in managing multicast traffic compared to previous versions. These modes are INCLUDE and EXCLUDE. These are not explicitly configured on a Cisco device but are part of the operation of the IGMPv3 protocol itself. They are used to determine how a host receiver wants to receive multicast traffic from various sources.

According to RFC 3376, the filter mode is further described as follows:

"filter-mode" may be either INCLUDE or EXCLUDE.  In INCLUDE mode,
 reception of packets sent to the specified multicast address is
 requested *only* from those IP source addresses listed in the
 source-list parameter.  In EXCLUDE mode, reception of packets sent
 to the given multicast address is requested from all IP source
 addresses *except* those listed in the source-list parameter.

In the lesson, you see an example of how the INCLUDE mode is used. Again, it’s not explicitly configured, however, it is inferred by the IGMP protocol based on the configuration. Under what circumstances would we see an EXCLUDE mode? Here is an example:

Router(config)# interface gigabitethernet0/0
Router(config-if)# ip igmp join-group 239.1.1.1 source 192.168.1.1

In this situation, the router is acting as a multicast host that is requesting to join the 239.1.1.1 multicast group. By configuring the source of the multicast traffic, it is essentially excluding the addresses stated in the source list. In the above case, that is the 192.168.1.1 address. Based on the above description from the RFC, this should give us an EXCLUDE mode in the IGMPv3 message.

I hope this has been helpful!

Laz

Hi Team,

I am testing IGMPv3 in my lab and have noticed something that I think needs to be corrected in the lesson.

  1. Enable IGMPv3 also on Host H1 which is not done otherwise it will send IGMPv2 report by default. Below debug on R1 you will see it received IGMPv2 query from H1 until I changed the version on H1 to v3.
*Aug 25 06:50:13.400: IGMP(0): Received v2 Report on GigabitEthernet0/0 from 192.168.1.101 for 239.1.1.1
*Aug 25 06:50:13.400: IGMP(0): Received Group record for group 239.1.1.1, mode 2 from 192.168.1.101 for 0 sources
*Aug 25 06:50:13.401: IGMP(0): Setting v2 old host timer for 239.1.1.1 on GigabitEthernet0/0
*Aug 25 06:50:13.401: IGMP(0): Updating EXCLUDE group timer for 239.1.1.1
*Aug 25 06:50:13.402: IGMP(0): MRT Add/Update GigabitEthernet0/0 for (*,239.1.1.1) by 0
*Aug 25 06:50:39.056: IGMP(0): Received v3 Report for 1 group on GigabitEthernet0/0 from 192.168.1.101
*Aug 25 06:50:39.056: IGMP(0): Received Group record for group 239.1.1.1, mode 5 from 192.168.1.101 for 1 sources
*Aug 25 06:50:39.057: IGMP(0): Create source 1.1.1.1
*Aug 25 06:50:39.057: IGMP(0): Updating expiration time on (1.1.1.1,239.1.1.1) to 180 secs
*Aug 25 06:50:39.058: IGMP(0): Setting source flags 4 on (1.1.1.1,239.1.1.1)
*Aug 25 06:50:40.089: IGMP(0): Received v3 Report for 1 group on GigabitEthernet0/0 from 192.168.1.101
*Aug 25 06:50:40.089: IGMP(0): Received Group record for group 239.1.1.1, mode 5 from 192.168.1.101 for 1 sources
*Aug 25 06:50:40.090: IGMP(0): Updating expiration time on (1.1.1.1,239.1.1.1) to 180 secs

  1. Below command syntax seems to incorrect:

It should be as shown below:

ip igmp join-group 239.1.1.1 source 1.1.1.1

Hello Rahul

Indeed you are correct on both counts. IGMPv3 should be activated on the host in order for the lab to behave as described in the lesson. Also, the syntax of the command is

ip igmp join-group 239.1.1.1 source 1.1.1.1

and not

ip igmp join-group source 239.1.1.1 1.1.1.1

as shown in this CIsco command reference:

Although for the latter I tried to discover if this syntax belongs to an older version of IOS, but I was unable to find such an indication. In any case, thanks for pointing this out, I will let Rene know to make the appropriate changes.

Laz

1 Like