Multicast Terminology Verification in a Redundant environment

Answered Question
Jan 8th, 2010

Hi All, I have attached a basic simplified version of a topology . I would like to know if my theory on how multicast is working is correct in general


First confirmation on some terms (Please correct if incorrect)


1. IGMP Querier: Is the Router who has the lowest ip address on the Subnet. He is the person who is responsible for maintainance of the group on the receiver side and will query to see if there are any active receivers on the LAN Segment


2. PIM DR: The PIM Designated router has either the highst priority (ip pim dr-priority) os is either the highest ip address on the subnet. He is responsible for sending joins and prunes and registers towards the RP (?)building the tree whether the shortest path tree in the case of the Source segment or the shared tree in the case of the receiver segment.


3. PIM Forwarder: I believe that this function which is the device that will forward the traffic from the source to the receivers is the same as the PIM DR. I don't think it can be decoupled. Please correct me if this is incorrect.


4. What is the IGMP DR? when doing a show ip igmp interface there are 2 outputs usually. 1 is the Querier the other is the designated Router.


I am not aware of any other roles besides the above (excluding the RP ofcourse) so please add to this if there is anything that I have missed.


Based on the diagram let's assume


Source1 is sending traffic for group 225.1.1.1.

PIM DR is DL1 (since it has the highest ip address). The traffic from the source will hit both DL1 and DL2 but since DL1 is the PIM DR it will encapsulate the traffic and send it to the RP. Is that correct

Source1 has registered to the RP which is Core1 and the S,G tree has been built between the First Hop Gateway which is DL1 (since it has the highest ip address) and Core1 (Is that the correct that all things default DL1 will be the PIM DR and will send the register message to the RP and hence forward traffic for that group. I have always assumed so hence please correct if incorrect


Receiver2 is requesting the traffic

IGMP Querier is DL4 (since it has the lowest ip address.)

PIM DR is DL3 (since it is the highest ip address)

The *,G joins will be sent via DL3 to the RP to build the shared tree since it is the PIM DR on that segment.

The IGMP Querier is DL4 who will send out the IGMP queries to find out if there are any receivers who need the traffic

Traffic from the source will come to DL4 as that is the way the tree is built and DL4 will be the one who will send the traffic to the receiver on that LAN segment.


Could you please confirm that the above logic is correct. It should not make any difference that the 2 functions (IGMP Querier and PIM DR) are separate devices theoritically. Please correct me if I am wrong on this.

Attachment: 
Correct Answer by Jon Marshall about 7 years 1 month ago

vdadlaney wrote:


giuslar wrote:

about the difference between PIM DR and PIM forwarder, the second is source dependent the first is source indipendent and elected on lan segment.


Hope to help

Giuseppe

Hi Giuseppe,


Thx for replying. I apologize but I am still not clear on the functional difference between PIM DR and PIM Forwarder as you have described


Could we say the following


1. PIM DR is the device that forwards S,G or *,G joins and prunes towards the RP and in the case where it is directly attached to the source it is the device that sends the Register message to the RP also.


2. The PIM Forwarder is the device that forwards the traffic that flows down the Shared Tree (Initially) or the SPT Tree towards the Receivers LAN Segment.


If the above descriptions are correct than I don't quite understand how the PIM Forwarder is Source Dependant.


I also am not aware of any commands that would cause a decoupling of the 2 functions. Could you please explain the 2 functions in a example if possible and also advise on how they can be different. I read through your post and am just not getting it. I do apologize and appreciate your help. Thx


The PIM-DR is the router on a multi-access segment that is responsible for sending all the General and Group specific IGMP requests onto the subnet.


The PIM Forwarder is the router that is responsible for forwarding the actual multicast traffic.


There is no reason why the 2 functions have to be on the same router. And the criteria for deciding which router does what is different, hence the reason you can end up with 2 different routers for these functions ie.


PM DR - the router on that segment with the highest IP address is elected as the DR


PIM Forwarder  is a 3 step process -


1) the router advertising the lowest AD for the unicast route to the multicast source is chosen. If the AD is the same then


2) router advertising lowest metric unicast route to the multicast source is chosen. If the metric is the same then


3) router with the highest IP address is chosen


the above information is contained within an Assert message.


Jon

Correct Answer by Giuseppe Larosa about 7 years 1 month ago

Hello Vdadlaney,


>> 3. PIM Forwarder: I believe that this function which is the device that will forward the traffic from the source to the receivers is the same as the PIM DR. I don't think it can be decoupled. Please correct me if this is incorrect.


There are scenarios where PIM DR and PIM forwader can be two different routers. It is correct that the PIM forwarder is the device that puts the multicast traffic on the vlan.

However, when multiple multicast routers are connected to the same Vlan the PIM forwarder is chosen using the PIM assert message: each router declares AD, metric of route to the source of multicast traffic. The device with the better parameters wins and becomes PIM forwarder and joins the SPT (source specific tree) towards the source.

There is also a tie breaker when both routers declare equal parameters that is highest IP address on subnet.

So in your scenario PIM forwarder = PIM DR but with a different topology this may change.

So PIM forwarder role is source specific. PIM DR is elected according to priority and highest IP address on subnet.


An IGMP querier is elected as you write. I'm not aware of an IGMP DR role. All other routers in subnet start a querier interval that is if current IGMP querier stops to perform queries another device will take over.


Another important concept is the switchover to SPT: with default settings only the first packet to RP sent by source PIM DR router (the router that connects to the source) is sent inside a GRE packet to the RP address ( this is the registering). After that RP will join the SPT that is built with a root in the source PIM DR.

This is done for efficiency and because the distribution tree is unidirectional and goes far from the root. (bidirectional delivery trees are implemented in PIM bidir that is very good when there are many sources).

So you will see (S,G) entries using source specific tree and (*,G) entries using the shared tree.

Also routers dowmstream the RP do the same and join the SPT as soon as they start to receive traffic.

This is important because in some topologies this means that traffic can bypass the RP itself. This is not the case of your topology where the RP has a central role.

In your case two SPTs will be built one for source1 rooted at DL1, and one for source2 rooted at DL3.


Hope to help

Giuseppe

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (3 ratings)
Loading.
Correct Answer
Giuseppe Larosa Sat, 01/09/2010 - 02:46

Hello Vdadlaney,


>> 3. PIM Forwarder: I believe that this function which is the device that will forward the traffic from the source to the receivers is the same as the PIM DR. I don't think it can be decoupled. Please correct me if this is incorrect.


There are scenarios where PIM DR and PIM forwader can be two different routers. It is correct that the PIM forwarder is the device that puts the multicast traffic on the vlan.

However, when multiple multicast routers are connected to the same Vlan the PIM forwarder is chosen using the PIM assert message: each router declares AD, metric of route to the source of multicast traffic. The device with the better parameters wins and becomes PIM forwarder and joins the SPT (source specific tree) towards the source.

There is also a tie breaker when both routers declare equal parameters that is highest IP address on subnet.

So in your scenario PIM forwarder = PIM DR but with a different topology this may change.

So PIM forwarder role is source specific. PIM DR is elected according to priority and highest IP address on subnet.


An IGMP querier is elected as you write. I'm not aware of an IGMP DR role. All other routers in subnet start a querier interval that is if current IGMP querier stops to perform queries another device will take over.


Another important concept is the switchover to SPT: with default settings only the first packet to RP sent by source PIM DR router (the router that connects to the source) is sent inside a GRE packet to the RP address ( this is the registering). After that RP will join the SPT that is built with a root in the source PIM DR.

This is done for efficiency and because the distribution tree is unidirectional and goes far from the root. (bidirectional delivery trees are implemented in PIM bidir that is very good when there are many sources).

So you will see (S,G) entries using source specific tree and (*,G) entries using the shared tree.

Also routers dowmstream the RP do the same and join the SPT as soon as they start to receive traffic.

This is important because in some topologies this means that traffic can bypass the RP itself. This is not the case of your topology where the RP has a central role.

In your case two SPTs will be built one for source1 rooted at DL1, and one for source2 rooted at DL3.


Hope to help

Giuseppe

vdadlaney Sat, 01/09/2010 - 14:04

Hi Giuseppe,


Thx for replying. Could you please confirm what is the difference between the PIM Forwarder and the PIM DR.


In addition could you also advise if all the other stuff I had mentioned originally functions the same as I have described in my original post.


The reason I asked about the IGMP DR is because when you do a show ip igmp interface there is a line of output that show Multicast Designated Router. I think this is the same as the PIM DR but why does it show up in the IGMP output. Thx

Giuseppe Larosa Sat, 01/09/2010 - 14:29

Hello,

it makes sense that the show igmp interface  can show a parameter for meaning PIM DR on segment.


about the difference between PIM DR and PIM forwarder, the second is source dependent the first is source indipendent and elected on lan segment.


Hope to help

Giuseppe

vdadlaney Sun, 01/10/2010 - 09:10

giuslar wrote:

about the difference between PIM DR and PIM forwarder, the second is source dependent the first is source indipendent and elected on lan segment.


Hope to help

Giuseppe

Hi Giuseppe,


Thx for replying. I apologize but I am still not clear on the functional difference between PIM DR and PIM Forwarder as you have described


Could we say the following


1. PIM DR is the device that forwards S,G or *,G joins and prunes towards the RP and in the case where it is directly attached to the source it is the device that sends the Register message to the RP also.


2. The PIM Forwarder is the device that forwards the traffic that flows down the Shared Tree (Initially) or the SPT Tree towards the Receivers LAN Segment.


If the above descriptions are correct than I don't quite understand how the PIM Forwarder is Source Dependant.


I also am not aware of any commands that would cause a decoupling of the 2 functions. Could you please explain the 2 functions in a example if possible and also advise on how they can be different. I read through your post and am just not getting it. I do apologize and appreciate your help. Thx

Correct Answer
Jon Marshall Sun, 01/10/2010 - 09:36

vdadlaney wrote:


giuslar wrote:

about the difference between PIM DR and PIM forwarder, the second is source dependent the first is source indipendent and elected on lan segment.


Hope to help

Giuseppe

Hi Giuseppe,


Thx for replying. I apologize but I am still not clear on the functional difference between PIM DR and PIM Forwarder as you have described


Could we say the following


1. PIM DR is the device that forwards S,G or *,G joins and prunes towards the RP and in the case where it is directly attached to the source it is the device that sends the Register message to the RP also.


2. The PIM Forwarder is the device that forwards the traffic that flows down the Shared Tree (Initially) or the SPT Tree towards the Receivers LAN Segment.


If the above descriptions are correct than I don't quite understand how the PIM Forwarder is Source Dependant.


I also am not aware of any commands that would cause a decoupling of the 2 functions. Could you please explain the 2 functions in a example if possible and also advise on how they can be different. I read through your post and am just not getting it. I do apologize and appreciate your help. Thx


The PIM-DR is the router on a multi-access segment that is responsible for sending all the General and Group specific IGMP requests onto the subnet.


The PIM Forwarder is the router that is responsible for forwarding the actual multicast traffic.


There is no reason why the 2 functions have to be on the same router. And the criteria for deciding which router does what is different, hence the reason you can end up with 2 different routers for these functions ie.


PM DR - the router on that segment with the highest IP address is elected as the DR


PIM Forwarder  is a 3 step process -


1) the router advertising the lowest AD for the unicast route to the multicast source is chosen. If the AD is the same then


2) router advertising lowest metric unicast route to the multicast source is chosen. If the metric is the same then


3) router with the highest IP address is chosen


the above information is contained within an Assert message.


Jon

vdadlaney Sun, 01/10/2010 - 11:26

Hi Jon,


Thx for responding. I re-read both yours and Giuseppe's post and seem to have a better understanding. Appreciate your help. I have uploaded another diagram but have changed the topology a bit to indicate the scenario where the PIM DR and the PIM Forwarder will be different. I have removed the link between DL4 and Core1.


Now if we assume that DL4 is the PIM-DR f(via the ip pim dr-priority command) and the PIM Forwarder is DL3 would DL3 have the interface that leads to LAN segment 10.32.0.0/24 (Let's say its VLAN32) in its S,G oil list and what would refresh that entry in the S,G. The reason I ask this is because DL3 is the not the PIM DR hence even though he would see the IGMP joins from the receiver he would not do anything with it since he is no the PIM DR and hence he would not be the one to build the tree towards the RP. DL4 would send out *,G joins towards the RP and even though the path is through DL3 the OIL on DL3 should have the Port-channel interface in the OIL list and not the directly attached VLAN32 LAN segment. Just trying to understand what would be the behaviour in this scenario. Thx so much for all your help.

Attachment: 
Giuseppe Larosa Sun, 01/10/2010 - 13:54

Hello Vdadlaney,


I'm glad that Jon has helped.


in short:


the IGMP querier is the one that interacts with hosts performing IGMP queries

the PIM DR is the device in charge to join the shared tree towards the RP as it sees the IGMP joins of receivers.


As soon as the source is known, the switchover to the SPT (source based tree rooted at source PIM DR) starts.

On the shared segment the two routers enter in competition on the question of who should foward traffic for multicast group G when the source is S.

This competition is decided by an exchange of PIM assert message,where each router declares the parameters of the route to the source S.

The winner builds the SPT that is rooted at the source PIM DR.


For this reason I said that PIM forwarder is source dependent and PIM DR is elected on the segment.


In practice, it is difficult to see the shared tree in action for this switchover to the SPT as soon as traffic starts to flow.


Hope to help

Giuseppe

Peter Paluch Sun, 01/10/2010 - 14:20

Hello Jon,


You wrote:


The PIM-DR is the router on a multi-access segment that is responsible for sending all the General and Group specific IGMP requests onto the subnet.


Please correct me if I am wrong but this is a description of an IGMP Querier, is it not? However, a PIM-DR is not the same as IGMP Querier - in fact, if there are two or more routers on a common segment then the PIM-DR and the IGMP Querier will be different.


Per RFC 2236 (IGMPv2):  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.


Per RFC 4601 (PIM-SM):


The function for computing the DR on interface I is:

     host
     DR(I) {
         dr = me
         for each neighbor on interface I {
             if ( dr_is_better( neighbor, dr, I ) == TRUE ) {
                 dr = neighbor
             }
         }
         return dr
     }

   The function used for comparing DR "metrics" on interface I is:

     bool
     dr_is_better(a,b,I) {
         if( there is a neighbor n on I for which n.dr_priority_present
                 is false ) {
             return a.primary_ip_address > b.primary_ip_address
         } else {
             return ( a.dr_priority > b.dr_priority ) OR
                    ( a.dr_priority == b.dr_priority AND
                      a.primary_ip_address > b.primary_ip_address )
         }
     }


So, the IGMP Querier is the router with the lowest IP on the segment while the PIM-DR is the router having the highest priority, or in the case of a tie, the highest IP address. However, this clearly indicates that the PIM-DR cannot send "all the General and Group specific IGMP requests onto the subnet" because it must become a Non-Querier in the presence of an IGMP-enabled router with a lower IP.


Perhaps I am overlooking something here.


Best regards,

Peter

Jon Marshall Sun, 01/10/2010 - 14:31

Peter


So, the IGMP Querier is the router with the lowest IP on the segment while the PIM-DR is the router having the highest priority, or in the case of a tie, the highest IP address. However, this clearly indicates that the PIM-DR cannot send "all the General and Group specific IGMP requests onto the subnet" because it must become a Non-Querier in the presence of an IGMP-enabled router with a lower IP.

Perhaps I am overlooking something here.


No you are not, and i was just about to add to this thread because i realised i had made a mistake in what i said.


You are correct in what you say as regards IGMPv2, the functions of IGMP querier and PIM-DR are 2 separate functions with different election criteria. I was getting mixed up with IGMPv1 as v1 does not have the ability to have an IGMP querier election so the PIM-DR router is also the IGMP querier.


My mistake, apologies to the OP for confusing the issue. Thanks for clearing that up Peter, as always a very good addition to the thread.


Jon

Jon Marshall Sun, 01/10/2010 - 14:55

Peter


Think while you are dusting off those QOS books i'll be doing the same with my multicast stuff. Looks like we both have a bit of reading to do


Jon

vdadlaney Sun, 01/10/2010 - 15:05

Hi All,


Thanks for your help. Could you please help me out with the scenario i described a couple posts above where the PIM DR and the PIM forwarder are different what should happen in that case with the OIL on the PIM forwarder and the PIM DR.I also attached a diagram to that post. Thx for your help.


vdadlaney wrote:


Hi Jon,


Thx for responding. I re-read both yours and Giuseppe's post and seem to have a better understanding. Appreciate your help. I have uploaded another diagram but have changed the topology a bit to indicate the scenario where the PIM DR and the PIM Forwarder will be different. I have removed the link between DL4 and Core1.


Now if we assume that DL4 is the PIM-DR f(via the ip pim dr-priority command) and the PIM Forwarder is DL3 would DL3 have the interface that leads to LAN segment 10.32.0.0/24 (Let's say its VLAN32) in its S,G oil list and what would refresh that entry in the S,G. The reason I ask this is because DL3 is the not the PIM DR hence even though he would see the IGMP joins from the receiver he would not do anything with it since he is no the PIM DR and hence he would not be the one to build the tree towards the RP. DL4 would send out *,G joins towards the RP and even though the path is through DL3 the OIL on DL3 should have the Port-channel interface in the OIL list and not the directly attached VLAN32 LAN segment. Just trying to understand what would be the behaviour in this scenario. Thx so much for all your help.


Jon Marshall Sun, 01/10/2010 - 16:50

vdadlaney wrote:


Hi All,


Thanks for your help. Could you please help me out with the scenario i described a couple posts above where the PIM DR and the PIM forwarder are different what should happen in that case with the OIL on the PIM forwarder and the PIM DR.I also attached a diagram to that post. Thx for your help.


vdadlaney wrote:


Hi Jon,


Thx for responding. I re-read both yours and Giuseppe's post and seem to have a better understanding. Appreciate your help. I have uploaded another diagram but have changed the topology a bit to indicate the scenario where the PIM DR and the PIM Forwarder will be different. I have removed the link between DL4 and Core1.


Now if we assume that DL4 is the PIM-DR f(via the ip pim dr-priority command) and the PIM Forwarder is DL3 would DL3 have the interface that leads to LAN segment 10.32.0.0/24 (Let's say its VLAN32) in its S,G oil list and what would refresh that entry in the S,G. The reason I ask this is because DL3 is the not the PIM DR hence even though he would see the IGMP joins from the receiver he would not do anything with it since he is no the PIM DR and hence he would not be the one to build the tree towards the RP. DL4 would send out *,G joins towards the RP and even though the path is through DL3 the OIL on DL3 should have the Port-channel interface in the OIL list and not the directly attached VLAN32 LAN segment. Just trying to understand what would be the behaviour in this scenario. Thx so much for all your help.



Think Giuseppe has answered this but to clarify.


Host 10.32.0.2 sends out an IGMP join for 225.1.1.1. At this point no multicast traffic is being sent from the source.


DL4 is the DR. So it is responsible for sending the join/prune messages to the RP. So it sends a join message to DL3. DL3 then sends it on to core1. But is important to note that DL3 also received the IGMP join for 225.1.1.1 from host 10.32.0.2. And DL3 has a directly connected interface to the LAN segment 10.32.0.0/24.


Now from the testing i did at this stage both DL3 and DL4 has *,G entries for 225.1.1.1. However DL4 is pruned and has no outgoing interfaces whereas DL3 has an OIL of the interface connected to LAN segment 10.32.0.0/24. This is before the source has started sending traffic. This happened regardless of whether DL3 was the IGMP querier or DL4.


It is almost as if an assert has happened based on the path to the RP (as opposed to the path to the source) and obviously DL3 would have a better metric to the RP. But i was under the impression the assert message was used for actual multicast traffic so probably need some more testing on this.


Once traffic starts to be sent DL3 & DL4 both have additional entries of S,G for the group 225.1.1.1. Again the OIL on DL3 is the interface connected to the LAN segment. The OIL on DL4 is empty and the entry shows as pruned.


So that's what happens. Personally i thought the process may be slightly different but ended up with the same result because once data starts flowing from the source both DL3 and DL4 would forward the traffic and an assert message would show DL3 to have a better metric to the source, just as Giuseppe explained.


However this seems to happen before data starts flowing so i probably need to test a few more scenarios to get to the bottom of it.


Jon

Actions

This Discussion