05-05-2020 07:19 AM
I have a question about a very simple L2 network. Please look at the picture and explain the traffic flow. I understand that before the traffic can be sent to the receiving host, the traffic has to go the querier (SW1). How and when does SW2 forward the multicast data to the receiving host? I understand that the preferred design is to have the source on or nearest the querier. But what happens in this scenario? Thanks.
Solved! Go to Solution.
05-05-2020 08:09 AM
Hello @SCUBA_Todd ,
thanks for your kind remarks.
the source generated multicast stream might be propagated only to a fully functional multicast router running PIM and IGMP.
if SW1 is only an IGMP querier it is only using a subset of the features of a multicast enabled router. it is only sending IGMP general queries every 120 seconds (IGMPv2).
In other words there is no real need for SW2 to send the multicast stream to SW1 until at least one reicever is present on SW1's ports.
Sending the multicast stream to SW1 on the other hands could help SW1 in understanding which group specific queries can be needed in the near future.
If SW2 classifies the port to Sw1 as a mrouter port yes it will send the multicast stream to Sw1 in any case.
As far as I remember an mrouter port is classified in this way by noting the reception of IGMP queries and/or PIM messages.
So I would agree that the multicast stream might be sent to the IGMP querier even before any receiver on SW1 joins the group.
To be noted there is no election mechanism for the IGMP querier if needed only one device must be configured as the IGMP querier in each VLAN/broadcast domain.
Hope to help
Giuseppe
05-05-2020 08:38 AM
Hi @SCUBA_Todd
Allow me to answer your question.
Basically there are two scenarios:
There are two scenarios:
1. SW2 is not configured with IGMP snooping.
In this case, regardless if you have IGMP/PIM configured on SW1, the multicast traffic (let's say 224.2.2.2) will be flooded on all ports in the received vlan, thus both SW1 and Multicast Receiver will receive traffic at the same time.
2. SW2 is configured with IGMP snooping
SW1 sends the IGMP general membership queries (224.0.0.1) to SW2; Because the SW2 receives the IGMP query, it will install the uplink to sw1 as mrouter port, in the snooping table. SW2 will flood the query in the received vlan. If the multicast receiver wants to join the group, let's say 224.2.2.2, it will respond with a IGMP Membership report message destined to 224.2.2.2, saying he is interested in listening to that group. This join message will update the snooping table on SW2 with the interface towards the receiver for group 224.2.2.2
Now the multicast traffic is generated. When it is received by the SW2, mcast traffic will be forwared, at the same time, to mrouter port and all mcast receivers, at the same time.
In other words, it all depends on the IGMP Snooping table and, of course, if snooping is enabled. If there are listeners for a specific group, the traffic will be forwarded to them. There is no reason for a querier to receive traffic first.
Also, a small correction of what @Giuseppe Larosa said: there actually is an IGMP election. if there are 2 or more IGMP Queriers in a LAN, the router with the lowest IP address on the subnet is elected as the IGMP querier. All other non-querier routers will start a querier timer (2x query interval or 250 seconds) and restart it every time an IGMP query is received. If the querier timer expires, the non-querier routers will assume the old IGMP querier is down and the election process starts again (lowest IP wins).
Stay safe,
Sergiu
05-05-2020 07:36 AM
Hello @SCUBA_Todd ,
SW1 acts as a IGMP querier by sending out periodic general Queries. These are needed in order to make IGMP snooping to work correctly on SW1 itself and in all other switches that take part in the vlan topology.
Each switch with IGMP snoping enabled allows the IGMP queries to reach all the hosts in the Vlans and then they take note of the IGMP reports of each host in order to build the OSI layer2 equivalent of an OI LIST for each multicast address G.
So for PIM Sparse mode the starting point is an explicit join to a group G made by a receiver regardless of the position of the source that can even be in the same Vlan in a different port like in your network diagram.
Until the multicast receiver does not send an IGMP report for group G it will not receive any frame for group G and this is actually the job of IGMP snooping.
To be noted IGMP snooping does not block the permanent groups of type 224.0.0.X but these are used by routing protocols and also by IGMP or PIM.
There are optimizations performed by an IGMP snooping enabled switch that they propagate to the multicast router only one IGMP report per group and they do not propagate the IGMP report to other possible receivers to avoid IGMP report suppression. In this way the IGMP snooping switch knows what hosts want to receive a group G at any given time. The switch propagates the IGMP report of the first responder to the router and use all other IGMP reports to keep an updated list of the receivers for the group G.
Hope to help
Giuseppe
05-05-2020 07:54 AM
Thank you for the reply, Giuseppe. However, I am still a little confused. Assume these switches are not running PIM. When the source begins sending a multicast stream, that has to be sent to the querier first before ANY switch (including SW2) begins to forward the stream to interested receivers. Am I incorrect with that assumption?
If that is correct, SW2 would forward that stream to SW1 because it is the querier even though there aren't any interested receivers upstream. Is that correct?
05-05-2020 08:09 AM
Hello @SCUBA_Todd ,
thanks for your kind remarks.
the source generated multicast stream might be propagated only to a fully functional multicast router running PIM and IGMP.
if SW1 is only an IGMP querier it is only using a subset of the features of a multicast enabled router. it is only sending IGMP general queries every 120 seconds (IGMPv2).
In other words there is no real need for SW2 to send the multicast stream to SW1 until at least one reicever is present on SW1's ports.
Sending the multicast stream to SW1 on the other hands could help SW1 in understanding which group specific queries can be needed in the near future.
If SW2 classifies the port to Sw1 as a mrouter port yes it will send the multicast stream to Sw1 in any case.
As far as I remember an mrouter port is classified in this way by noting the reception of IGMP queries and/or PIM messages.
So I would agree that the multicast stream might be sent to the IGMP querier even before any receiver on SW1 joins the group.
To be noted there is no election mechanism for the IGMP querier if needed only one device must be configured as the IGMP querier in each VLAN/broadcast domain.
Hope to help
Giuseppe
05-05-2020 08:38 AM
Hi @SCUBA_Todd
Allow me to answer your question.
Basically there are two scenarios:
There are two scenarios:
1. SW2 is not configured with IGMP snooping.
In this case, regardless if you have IGMP/PIM configured on SW1, the multicast traffic (let's say 224.2.2.2) will be flooded on all ports in the received vlan, thus both SW1 and Multicast Receiver will receive traffic at the same time.
2. SW2 is configured with IGMP snooping
SW1 sends the IGMP general membership queries (224.0.0.1) to SW2; Because the SW2 receives the IGMP query, it will install the uplink to sw1 as mrouter port, in the snooping table. SW2 will flood the query in the received vlan. If the multicast receiver wants to join the group, let's say 224.2.2.2, it will respond with a IGMP Membership report message destined to 224.2.2.2, saying he is interested in listening to that group. This join message will update the snooping table on SW2 with the interface towards the receiver for group 224.2.2.2
Now the multicast traffic is generated. When it is received by the SW2, mcast traffic will be forwared, at the same time, to mrouter port and all mcast receivers, at the same time.
In other words, it all depends on the IGMP Snooping table and, of course, if snooping is enabled. If there are listeners for a specific group, the traffic will be forwarded to them. There is no reason for a querier to receive traffic first.
Also, a small correction of what @Giuseppe Larosa said: there actually is an IGMP election. if there are 2 or more IGMP Queriers in a LAN, the router with the lowest IP address on the subnet is elected as the IGMP querier. All other non-querier routers will start a querier timer (2x query interval or 250 seconds) and restart it every time an IGMP query is received. If the querier timer expires, the non-querier routers will assume the old IGMP querier is down and the election process starts again (lowest IP wins).
Stay safe,
Sergiu
05-05-2020 08:49 AM
Hello Sergiu,
I was meaning there is no election for the IGMP snooping querier as you noted when dealing with multiple multicast routers the one with the lowest IP address on the LAN is elected as the IGMP querier (IGMPv2)
And the one with the highest IP address on LAN is elected PIM DR
Best Regards
Giuseppe
05-05-2020 09:11 AM
Thanks Sergiu. This is very helpful and gives a clear picture of how the traffic flows. I really appreciate the information.
05-06-2020 02:03 PM
I have one more question related to this topic. Let's say that switch 2 was the querier, but switch 1 was also configured for IGMP snooping. That would make the port on switch 2 connecting to switch 1 a mrouter port, correct? Does that mean that when switch 2 receives the multicast stream from the source, it would forward the traffic to the receiver (assuming it requested it) as well as to switch 1? Again, PIM is not running in this example.
05-06-2020 02:17 PM - edited 05-06-2020 02:18 PM
Mrouter port is the one towards the querier. So if you have SW1 ---- SW2 --- SRC/RCV, and SW2 is the querier, then SW1 will have the port towards SW2 as mrouter port. On SW2, the only ports present in snooping table would be the ones connecting to RCV.
Sergiu
05-06-2020 02:24 PM
Thank you for the quick reply. However, Cisco documentation (Implementing Layer-2 Multicast with IGMP
Snooping) states: Multicast router ports(mrouter ports)—These are ports to which a multicast-enabled router is connected.
If that is true, SW2 would label the interface to SW1 a mrouter port, even if SW2 is the querier. If an IGMP snooping enabled switch sends the multicast stream to the subscribers and out any mrouter port, then it would also send to SW1, correct?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide