When in doubt, always go back to the original definition of the standard, which in this case for IGMPv2 is RFC 2236 and on Page 4 of that document it says:
There is normally only one Querier per physical network. All multicast routers start up as a Querier on each attached network. If a multicast router hears a Query message from a router with a lower IP address, it MUST become a Non-Querier on that network. If a router has not heard a Query message from another router for [Other Querier Present Interval], it resumes the role of Querier.
For completeness, I’ve checked the RFC for IGMPv3 (RFC 3376) and it states that the same process is used for the election.
So looks like Chris Bryant and Rene Molenaar got it right!
Yes, multicast routing on Cisco IOS routers is disabled by default. In order for a router to participating in multicast routing, you must issue the ip multicast-routing command in global configuration mode. You must also keep in mind that there are two types of multicast routing protocols used: Dense Mode and Sparse mode. You can find out more about them and how they operate at the following lesson:
You can also see an example of how multicast routing is enabled at the following lesson, where PIM dense mode is configured:
Hi
what is use of 224.0.1.40 (Cisco-RP-Discovery) multicast address. i see the below log on while enabling igmp protocol version 2 and 3
R1(config-if)#
*Sep 22 17:55:05.123: IGMP(0): Switching IGMP version from 2 to 3 on FastEthernet0/0
*Sep 22 17:55:05.127: IGMP(0): Building v3 Report on FastEthernet0/0
*Sep 22 17:55:05.127: IGMP(0): Add Group Record for 224.0.1.40, type 2
*Sep 22 17:55:05.127: IGMP(0): Send unsolicited v3 Report with 1 group records on FastEthernet0/0
*Sep 22 17:55:05.127: IGMP(0): Received v3 Report for 1 group on FastEthernet0/0 from 192.168.100.1
*Sep 22 17:55:05.131: IGMP(0): Received Group record for group 224.0.1.40, mode 2 from 192.168.100.1 for 0 sources
one more question
except Source filtering any other difference is there between IGMP 2 and IGMP3?
In IGMP3 all host send membership report to the router. but in IGMP2 any one host will send membership report to the router. am i right?
if its right, then why each and every host send membership reports the router even though source and multicast ip address are same?
The 224.0.1.40 multicast address is a reserved address used specifically for sending Rendezvous Point (RP) mapping packets. This is part of a mechanism known as Multicast PIM Auto RP which is used with PIM sparse mode. You can find out more about it here:
Source filtering is the primary addition of IGMPv3, but it also includes membership report aggregation which reduces the number of membership reports you will see on the network.
Not sure what you mean here. Do you mean that IGMPv3 obligates all hosts to send a report while IGMPv2 hosts will optionally send one? Can you clarify this question so we can answer it more clearly? Thanks!
IGMP v2 ( multiple host on same subnet for same multicast address)only 1 host send membership report to the Router when compare to IGMP v1. In IGMP V1 all host send Membership report to router. In IGMP v3 there is new feature add as source specific compare to IGMP v2 but in IGMP v3 same like IGMP v1 all the host send membership report to the router right.
The feature that you are describing is called host report suppression. A host would cancel sending a pending membership report if a similar report was detected from another member on the same subnet. This feature has indeed been removed from IGMPv3, and the reasons for this are described in the following link to RFC 3376 for IGMPv3.
Hi Rene/Laz,
This was a great lesson. I was labbing the same topology and noticed that the router received a group membership report following the leave group message. For example in your output, when Host2 send the leave group, R1 sent a group specific query and then Host1 replied with a membership report.
I got the same in mine, however I also got a group membership report from Host2. Additionally I didn’t see any sending of membership report on Host2 following the leave group message being sent. Was wondering what the purpose of this is. Is it some kind of acknowledgment?
Thanks
H2#
*May 8 13:52:38.899: IGMP(0): IGMP delete group 239.1.1.1 on Ethernet0/0
*May 8 13:52:38.899: IGMP(0): Send Leave for 239.1.1.1 on Ethernet0/0
R1#
*May 8 13:52:38.900: IGMP(0): Received Leave from 192.168.1.102 (Ethernet0/0) for 239.1.1.1
*May 8 13:52:38.900: IGMP(0): Received Group record for group 239.1.1.1, mode 3 from 192.168.1.102 for 0 sources
*May 8 13:52:38.900: IGMP(0): Lower expiration timer to 2000 msec for 239.1.1.1 on Ethernet0/0
*May 8 13:52:38.900: IGMP(0): Send v2 Query on Ethernet0/0 for group 239.1.1.1
*May 8 13:52:38.901: IGMP(0): Received v2 Report on Ethernet0/0 from 192.168.1.102 for 239.1.1.1
*May 8 13:52:38.901: IGMP(0): Received Group record for group 239.1.1.1, mode 2 from 192.168.1.102 for 0 sources
*May 8 13:52:38.901: IGMP(0): Updating EXCLUDE group timer for 239.1.1.1
*May 8 13:52:38.901: IGMP(0): MRT Add/Update Ethernet0/0 for (*,239.1.1.1) by 0
*May 8 13:52:39.936: IGMP(0): Received v2 Report on Ethernet0/0 from 192.168.1.101 for 239.1.1.1
Could it be a coincidence that H2 sent a membership report just before it left? When I debug this, I only get this on R1:
*May 12 08:54:56.468: IGMP(0): Received Leave from 192.168.1.102 (GigabitEthernet0/1) for 239.1.1.1
*May 12 08:54:56.468: IGMP(0): Received Group record for group 239.1.1.1, mode 3 from 192.168.1.102 for 0 sources
*May 12 08:54:56.468: IGMP(0): Lower expiration timer to 2000 msec for 239.1.1.1 on GigabitEthernet0/1
*May 12 08:54:56.469: IGMP(0): Send v2 Query on GigabitEthernet0/1 for group 239.1.1.1
*May 12 08:54:57.489: IGMP(0): Send v2 Query on GigabitEthernet0/1 for group 239.1.1.1
*May 12 08:54:58.489: IGMP(0): Switching to INCLUDE mode for 239.1.1.1 on GigabitEthernet0/1
*May 12 08:54:58.489: IGMP(0): MRT delete GigabitEthernet0/1 for (*,239.1.1.1) by 0
Could you try a ip igmp join-group 239.1.1.1 and no ip igmp join-group 239.1.1.1 a couple of times on H2 to see if it’s consistent?
Thanks for the lesson, in the video you did not see the leave message because of report suppression, only the last host to send a membership report will send a leave message, other hosts will leave silently without sending a leave.
i think the above is something that you need to add for the lesson to avoid confusion
On a switch with IGMP snooping enabled, hosts never see each other IGMP membership reports because the switch intercepts these. This prevents hosts from using the report suppression mechanism and it means that each host will send a membership report.
First of all thank you for all the great lessons. I am getting addicted to your lessons.
Now a membership Query
IGMP membership group specific query message from the router right after receiving leave msg from H2 seems to have different values for Max Resp Time from other query msgs.
Other Query Msgs:
Max Resp Time: 10,0
Group specific Query right after receiving the leave msg from H2:
Max Resp Time: 1,0
Is there any significance of this change?
Guess:
Because router quickly wants to decide whether to remove this group entry or not.
Please confirm.
“above we see the leave group membership that H2 sends to destination 224.0.0.2 (all routers multicast group address)”
Why we can’t see the group 224.0.0.2 in the mroute table ? Does it means what multicast groups 224.0.0.0 – 224.0.0.255 are enabled by default (under router interfaces) but it is not visible ?..
The address range of 224.0.0.0/24 is known as the local subnetwork address range of the multicast IPv4 address space. These IP addresses are not routable. That means that they, by definition, must remain within the network segment within which they originate. This is why they don’t appear in the multicast routing table.
This is expected behavior. This has to do with a variable in IGMP called the Last Member Query Interval, which has a default value of 1 second. You will see from RFC3326 that:
The Last Member Query Interval is the Max Response Time inserted into
Group-Specific Queries sent in response to Leave Group messages, and
is also the amount of time between Group-Specific Query messages.
And it is described in further detail in this section with the following explanation:
When a Querier receives a Leave Group message for a group that has
group members on the reception interface, it sends [Last Member Query
Count] Group-Specific Queries every [Last Member Query Interval] to
the group being left. These Group-Specific Queries have their Max Response time set to [Last Member Query Interval]. If no Reports are
received after the response time of the last query expires, the
routers assume that the group has no local members, as above. Any
Querier to non-Querier transition is ignored during this time; the
same router keeps sending the Group-Specific Queries.
Think I’m getting the hang of this now (thanks!) but I still have one unanswered question - as the hosts are choosing their reply-time at random within the MRT-period, what happens when two hosts randomly choses the same time? Does it just mean that there will be multiple responses in that circumstance? And do they choose a new time for every query, or will the multiple responses keep happening whilst those hosts continue being members of this group?