Multicast over Frame Relay or ATM WANs

Multicast over Frame Relay or ATM WANs

Problem

You want to use sparse-mode PIM to multicast over an NBMA network.

Solution

When using PIM-SM on an nonbroadcast multiple access (NBMA) network, such as a Frame Relay or ATM WAN, you must configure the ip pim nbma-mode interface command:

Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip multicast-routing
Router1(config)#interface Serial0/0
Router1(config-if)#encapsulation frame-relay
Router1(config-if)#ip pim sparse-mode
Router1(config-if)#ip pim nbma-mode
Router1(config-if)#end
Router1#

Discussion

PIM-SM can suffer from some very interesting and difficult to troubleshoot problems on an NBMA network such as a Frame Relay WAN. Specifically, consider the case where Router1 connects to two downstream PIM-SM neighbors, Router2 and Router3, through a single nonbroadcast interface. If both of the neighboring routers are members of the same group, and Router2 issues a prune command to leave a group, then Router1 will prune the interface, causing Router3 to stop receiving the multicast group as well.

Also, if any of the downstream neighbors on an NBMA interface joins a group, all of the other downstream neighbors will start to receive this group. This is a less serious problem, as everybody who wants the group receives it, but since all of these multicast packets are unicast separately to each downstream neighbor, it can cause bandwidth problems on busy networks.

The solution to both of these problems is to configure the ip pim nbma-mode command on the multicast interface. This instructs the router to track all PIM-SM joins and prunes by neighbor. It will then send the appropriate multicast groups to the appropriate neighbors via unicast packets.

Note that this is only relevant on PIM-SM networks and on NBMA networks. If your Frame Relay or ATM network is configured to emulate broadcasts using the frame-relay map broadcast interface command, or if you use point-to-point subinterfaces, then multicasts will work correctly without this command. This command should not be used on networks that have native multicast capabilities, such as Ethernet, for example, because it will increase the processing and memory overhead on the router unnecessarily.

See Also