cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1353
Views
0
Helpful
6
Replies

Multicast Dense Mode vs IGMP snooping

Godwin_S
Level 1
Level 1

Hi All,

 

I have a small doubt and need your help to clarify it.

I know that in multicast PIM sparse mode, the multicast traffic will be distributed only if receiver request for it. While receiver send IGMP report message L2 switch will learn the multicast MAC through IGMP snooping and this will be maintained by subsequent IGMP Membership Query and Report messages between last hop router and receiver and L2 forwarding happen based on snooping table.

 

Question is regarding PIM dense mode as in below.

1) As the multicast traffic gets flooded from sender towards the downstream routers and finally get pruned as required, will the initial multicast packet gets flooded by L2 switch, as there will be no multicast MAC learned until the first report message come from one of receiver? or switch will drop the traffic until the first report message come from one of receiver?


2) Lets assume there is no active receivers and hence no IGMP report messages yet. In this case, will the router send IGMP membership query and wait for the report message, so the router can decide to prune the OIL or not?

 

3) If the answer to 2 question is yes, then in this case will there be any IGMP member query message sent between point-to-point links between 2 PIM routers? Question is mainly about how router know if it needs to send IGMP query member query message or not through is downstream link.

 

Thanks and Regards,

Godwin. S

2 Accepted Solutions

Accepted Solutions

Hi @Godwin_S 

Your scenario needs a bit of perspective from LAN (receivers) perspective.

You said that "initially router will have all PIM interfaces as OIL except the used in incoming interface". This means that there are listeners in the LAN. That there was a membership report received on Router1. Otherwise, the R1 will not update the OIL with the interfaces facing LAN and will not forward traffic out.

Continuing with this in mind, the R1 will continue to query the LAN and receivers will continue to respond to queries. If they are not interested anymore in receiving mcast traffic, the client will send a IGMP leave message. When R1 will receive this msg, the router will send a group specific query (to make sure there are no other listeners for this group) and if nobody responds it will remove the interface from OIL.

 

Question1: Does Router1 repeat Step3, to check and ensure no listeners are present yet on LAN.

Answered above

 

Question2: Assume that in LAN there is another PIM router (Router2), for which the router1 form PIM neighborship. In this case the IGMP Query Message from Router1 as in step3 will be sent to Router2 as well and will Router 2 ignore it, as IGMP is for end hosts?

In a LAN, if there are more PIM enabled routers, there will be a process called Querier Election. This is a feature added with IGMPv2. This process is needed to elect the IGMP Query Router for the LAN. There will be only one Query Router in a LAN.

The process is as following:

  1. IGMPv2 process starts on both (or more) routers. They will both send a general query message (to 224.0.0.1) using their interface IP as Source IP.
  2. When the other router receives the General Query, it will ompare the source IP of the message with it's own interface IP address. The router with the lower IP address on the subnet will be elected as the IGMP querier.
  3. The non-elected router will periodically refresh a timer when receiving another IGMP general query from the IGMP Querier (elected router). If the timer expires, it will assume that the IGMP querier went down and the election process starts again.

 

Question3: Assume same scenario mentioned in Q2 with point-to-point link instead of multiaccess LAN. Will Router1 still send IGMP query to Router2? Or in first place how Router1 know if it is in point-to-point or multiaccess LAN network.

If it is point-to-point or multiaccess, there is no difference on how IGMP works. In the end, IGMP is used to query about receivers and informing about intention to join/leave a group.

 

Feel free to ask if you still have any queries, but I will suggest you have a look over this book:

Developing IP Multicast Networks, volume 1, by Beau Williamson.

It will help you cover the basics of how the IGMP and PIM works, why, how and when are they used, how they work under the hood.

 

Stay safe!

 

Regards,

Sergiu

 

View solution in original post

1) As the multicast traffic gets flooded from sender towards the downstream routers and finally get pruned as required, will the initial multicast packet gets flooded by L2 switch, as there will be no multicast MAC learned until the first report message come from one of receiver? or switch will drop the traffic until the first report message come from one of receiver?

No thats not true it will come till Router but will not go to the switch as router will not have any OIL to send the traffic to switch.
OIL will be formed only when it receives an IGMP report message in that port.

2) Lets assume there is no active receivers and hence no IGMP report messages yet. In this case, will the router send IGMP membership query and wait for the report message, so the router can decide to prune the OIL or not?
This will not happen.

3) There is IGMP member query sent every 180 sec even if we dont have the receiver.

Please do not hesitate to click the STAR button if you are satisfied with my answer.

View solution in original post

6 Replies 6

Sergiu.Daniluk
VIP Alumni
VIP Alumni

Hi @Godwin_S 

Allow me to try answering your queries:

1) As the multicast traffic gets flooded from sender towards the downstream routers and finally get pruned as required, will the initial multicast packet gets flooded by L2 switch, as there will be no multicast MAC learned until the first report message come from one of receiver? or switch will drop the traffic until the first report message come from one of receiver?

First, multicast mac addresses are not learned by switches. They can be configured statically in some cases (NLB for example), but the MAC addresses will point to interfaces where you want to flood the traffic.

If the switch have IGMP snooping enabled, and there are no listeners, then the multicast traffic is dropped. If IGMP snooping is disabled, multicast traffic is flooded on all ports in the VLAN traffic is received.

 

2) Lets assume there is no active receivers and hence no IGMP report messages yet. In this case, will the router send IGMP membership query and wait for the report message, so the router can decide to prune the OIL or not?

When you enable PIM on a router interface, you also enable IGMP. This will periodically generate IGMP membership queries on the interface towards server/hosts.

In the moment when multicast traffic is received on a router, it looks in the (S,G) entry, and if the OIL is Null, it will set the P flag in the (S,G) and sends a (S,G) Prune to the upstream router (to source).

 

3) If the answer to 2 question is yes, then in this case will there be any IGMP member query message sent between point-to-point links between 2 PIM routers? Question is mainly about how router know if it needs to send IGMP query member query message or not through is downstream link.

To respond to this question, since is related on point-to-point links between 2 PIM routers, maybe is better to get into details on how traffic if forwarded in PIM-DM.

Let's say we have following topology:  Source ---- R1 ---- R2.

Also, lets asume there is no mcast traffic at all sent in the network, but PIM is configured between R1 and R2.

To make sure that R1 will flood mcast traffic to R2, there are a couple of rules (general rules and PIM DM specific rules) the R1 will react to:

1. (general rule) Whenever is necessary to create a (S,G) entry and corresponding parent (*,G) entry does not exist, a new (*,G) entry is automatically created first.

2. (PIM DM rule) The outgoing interface list of a dense mode (*,G) entry reflects the interfaces where (1) other PIM-DM neighbors exists or (2) directly connected members of the group exists

3. (General rule) The incoming interface (RPF interface) of a multicast forwarding entry must never appear in its outgoing interface list

With this two rules, when the first multicast packet is generated by Source and received by R1:

1. (*,G) is created and populated with interface towards R2 and interface to server (rule 1)

2. (S,G) is created and populated with interface listed under (*,G), and removes interface  to server from OIL (rule 2 and 3)

3. Flood traffic to R2

Going further on R2, same things happen (point 1 and point 2 from above), however, since the OIL remains NULL (after rule #3), prune is sent back to R1.

 

I hope this answers your questions.

 

best regards,

Sergiu

 

Hi Sergiu,

I am clear on the answer for question 1. Thanks for that.

 

Reg Q2, does it mean regardless of listeners present or not, Router keeps sending IGMP member Query message and keeps pruning? 

 

Reg Q3, as you mentioned IGMP will be enabled along with enabling PIM. So in case of point-to-point links (ex: R1 to R2) what is the role of IGMP? It simply do nothing? If yes, how R1/R2 knows no need to send  IGMP member Query message as it is in Q2.

 

Thanks and Regards,

Godwin. S

Hello @Godwin_S 

Reg Q2, does it mean regardless of listeners present or not, Router keeps sending IGMP member Query message and keeps pruning?

No. What I mentioned is: In the moment when multicast traffic is received on a router, it looks in the (S,G) entry, and if the OIL is Null, it will set the P flag in the (S,G) and sends a (S,G) Prune to the upstream router (to source).

The OIL will be Null when:

  • There are no receivers for a mcast group (are not sending IGMP joins on-demand or in response to IGMP queries)
  • The only PIM neighbor of the last hop router is the one towards the source. This interface is removed from OIL of (S,G) as per rule 3 mentioned above.

When the there is a listener for a group, it will send the IGMP join / membership report and the router will update the (S,G) OIL.

 

Reg Q3, as you mentioned IGMP will be enabled along with enabling PIM. So in case of point-to-point links (ex: R1 to R2) what is the role of IGMP? It simply do nothing? If yes, how R1/R2 knows no need to send IGMP member Query message as it is in Q2.

The IGMP is used only for communication with server/clients, in one word mcast receivers. Routers will communicate using PIM messages.As always, a graphical image always help. I found this cool image on wikipedia:

IGMP_basic_architecture.png

The reason why you see IGMP arrow between Router and Switch and then another IGMP arrow  between switch and client is because of IGMP snooping. The role of IGMP snooping is:

  • avoid mcast flooding on all ports, and only forward it to ports where there are receivers
  • to filter and contain all IGMP messages between clients and send a lower number of join/leave messages to router

Reference of the image: https://en.wikipedia.org/wiki/Internet_Group_Management_Protocol 

 

I hope it is more clear now, but let me know if you still have any questions.

 

Regards,

Sergiu

Hi Sergiu,

Thanks for your explanation. I still would like to have more clarity. Let me put my query in steps.

In Dense Mode:

Step1: Last hop Router(Router 1) receives multicast traffic and look for (S,G) and initially router will have all PIM interfaces as OIL except the used in incoming interface. 

Step2: So far Router1 did not send any IGMP Query message out to LAN and hence router1 sends out the multicast traffic to L2 switch (where none of the hosts are listeners) which connected to OIL. At this stage router1 does not know if any listeners present on the LAN or not.

Step3: Now Router1 sends IGMP Query message out to the LAN and as no listeners present on LAN, it receive no IGMP report messages and Router remove the interface from OIL.

 

Question1: Does Router1 repeat Step3, to check and ensure no listeners are present yet on LAN.

 

Question2: Assume that in LAN there is another PIM router (Router2), for which the router1 form PIM neighborship. In this case the IGMP Query Message from Router1 as in step3 will be sent to Router2 as well and will Router 2 ignore it, as IGMP is for end hosts?

 

Question3: Assume same scenario mentioned in Q2 with point-to-point link instead of multiaccess LAN. Will Router1 still send IGMP query to Router2? Or in first place how Router1 know if it is in point-to-point or multiaccess LAN network.

 

Thanks and Regards,

Godwin. S

 

Hi @Godwin_S 

Your scenario needs a bit of perspective from LAN (receivers) perspective.

You said that "initially router will have all PIM interfaces as OIL except the used in incoming interface". This means that there are listeners in the LAN. That there was a membership report received on Router1. Otherwise, the R1 will not update the OIL with the interfaces facing LAN and will not forward traffic out.

Continuing with this in mind, the R1 will continue to query the LAN and receivers will continue to respond to queries. If they are not interested anymore in receiving mcast traffic, the client will send a IGMP leave message. When R1 will receive this msg, the router will send a group specific query (to make sure there are no other listeners for this group) and if nobody responds it will remove the interface from OIL.

 

Question1: Does Router1 repeat Step3, to check and ensure no listeners are present yet on LAN.

Answered above

 

Question2: Assume that in LAN there is another PIM router (Router2), for which the router1 form PIM neighborship. In this case the IGMP Query Message from Router1 as in step3 will be sent to Router2 as well and will Router 2 ignore it, as IGMP is for end hosts?

In a LAN, if there are more PIM enabled routers, there will be a process called Querier Election. This is a feature added with IGMPv2. This process is needed to elect the IGMP Query Router for the LAN. There will be only one Query Router in a LAN.

The process is as following:

  1. IGMPv2 process starts on both (or more) routers. They will both send a general query message (to 224.0.0.1) using their interface IP as Source IP.
  2. When the other router receives the General Query, it will ompare the source IP of the message with it's own interface IP address. The router with the lower IP address on the subnet will be elected as the IGMP querier.
  3. The non-elected router will periodically refresh a timer when receiving another IGMP general query from the IGMP Querier (elected router). If the timer expires, it will assume that the IGMP querier went down and the election process starts again.

 

Question3: Assume same scenario mentioned in Q2 with point-to-point link instead of multiaccess LAN. Will Router1 still send IGMP query to Router2? Or in first place how Router1 know if it is in point-to-point or multiaccess LAN network.

If it is point-to-point or multiaccess, there is no difference on how IGMP works. In the end, IGMP is used to query about receivers and informing about intention to join/leave a group.

 

Feel free to ask if you still have any queries, but I will suggest you have a look over this book:

Developing IP Multicast Networks, volume 1, by Beau Williamson.

It will help you cover the basics of how the IGMP and PIM works, why, how and when are they used, how they work under the hood.

 

Stay safe!

 

Regards,

Sergiu

 

1) As the multicast traffic gets flooded from sender towards the downstream routers and finally get pruned as required, will the initial multicast packet gets flooded by L2 switch, as there will be no multicast MAC learned until the first report message come from one of receiver? or switch will drop the traffic until the first report message come from one of receiver?

No thats not true it will come till Router but will not go to the switch as router will not have any OIL to send the traffic to switch.
OIL will be formed only when it receives an IGMP report message in that port.

2) Lets assume there is no active receivers and hence no IGMP report messages yet. In this case, will the router send IGMP membership query and wait for the report message, so the router can decide to prune the OIL or not?
This will not happen.

3) There is IGMP member query sent every 180 sec even if we dont have the receiver.

Please do not hesitate to click the STAR button if you are satisfied with my answer.
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Innovations in Cisco Full Stack Observability - A new webinar from Cisco