Multicast Question #1 – Answered


So the first question was:

* If the host is receiving data for group 239.0.1.23, which router (A or B) is forwarding the data to SW1 and the host?

Answer: Let’s consider the Sparse Mode case first. In Sparse Mode, the receivers must express their interest in joining the group through IGMP. So the answer to this is simply the router to which the IGMP packet was sent to. It is this router that sends the PIM join message toward the RP. So which router does the host send the IGMP packet to? When a host decides that it wants to join a multicast stream, it sends an IGMP membership report. The destination address that it uses to send the membership report to is the group address that the host wishes to join. So we still haven’t answered the question! Time for alittle experimentation with GNS3.

R1#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.0.1.23), 06:52:35/00:02:05, RP 0.0.0.0, flags: SJC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:01:05/00:02:05

R1 is forwarding group traffic out toward the host through interface Fa0/0.

R2#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor                      Interface                                   Uptime/Expires              Ver   DR
Address                                                                                                                                                                             Prio/Mode
10.0.1.254                 FastEthernet0/0    07:05:52/00:01:31     v2    1 / DR S

Why did R1 get chosen? Look at the PIM DR for the segment. Remember that the PIM DR is based upon two values:

  1. The DR Priority (the default is 1 and highest wins)
  2. The IP address (highest IP address wins)

So the DR by default would be R1 because it’s IP address is higher. To test that theory, let’s set the priority of R2 to 100 so it becomes the DR.

R2#config t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int f0/0
R2(config-if)#ip pim dr-priority 100

Now look at the PIM Neighbors on both R1 and R2 to verify that R2 is now the DR:

R1#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor          Interface                                Uptime/Expires           Ver            DR
Address                                                     Prio/Mode
10.0.1.253             FastEthernet0/0              00:10:25/00:01:41     v2               100/ DR S
R2#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor           Interface                    Uptime/Expires                Ver           DR
Address                                                                                                                                                                          Prio/Mode
10.0.1.254               FastEthernet0/0        00:10:20/00:01:43     v2      1 / S

R2 is now the DR and has a priority of 100! The final step is to verify that it’s forwarding traffic for the group:

R2#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.0.1.23), 00:04:16/00:02:17, RP 0.0.0.0, flags: SJC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:04:16/00:02:17

R2 is indeed now forwarding group traffic from 239.0.1.23 out F0/0 toward the host.

What about the Dense Mode solution, you cry? Remember that in Dense Mode, the routers just spew the data out all of their multicast interfaces. So assuming that R1 and R2 both get added to the tree, they will both want to send data out their Fa0/0 interfaces toward the host. This of course makes the assumption that the Fa0/0 interface on both R1 and R2 pass the RPF check (more on that to come).  PIM Dense Mode is smart enough to realize that both routers sending the multicast stream into the LAN segment means that each host will receive multiple copies of the same data.  To stop this, the PIM routers detect each other and decide on one router to forward the stream on the segment using Assert messages.  Essentially, the routers decide which router has the lowest administrative distance to the source.  In the event that they have same administrative distance (which is likely), the lowest metric in that unicast routing protocol wins.  If they have the same metric, the router with the highest IP address wins.  Thus, R1 would win.   The winner of the Assert process can be seen with an ‘A’ in the ’show ip mroute’ command.

(192.168.0.1, 239.0.1.23), 00:00:02/00:02:57, flags: T
Incoming interface: FastEthernet0/1, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 00:00:02/00:00:00, A
  1. No comments yet.
(will not be published)

  1. No trackbacks yet.