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 126.96.36.199.
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.
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
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.
>> 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