Useful Articles


Multicast Distribution Trees

Multicast Distribution Trees

While the multicast traffic is sent, a connectivity or a path is formed between a receiver and the multicast source which is analogous to a Tree like formation known as Multicast Distribution Trees in which Source is the root and receivers are the leaves of the Multicast Tree. There are two types of Multicast Trees.
  • Source Tree 
  • Shared Tree
 Let us discuss both types in details.

Source Trees or Shortest Path Trees

A source tree is the simplest form of distribution tree. The source host of the multicast traffic is located at the root of the tree, and the receivers are located at the ends of the branches. Multicast traffic travels from the source host down the tree toward the receivers. The forwarding decision on which interface a multicast packet should be transmitted out is based on the multicast forwarding table. This table consists of a series of multicast state entries that are cached in the router. State entries for a source tree use the notation (S, G) pronounced S comma G. The letter S represents the IP address of the source, and G represents the group address.

  • A source tree implies that the route between the multicast source and receivers is the shortest available path, therefore, source trees are also referred to as shortest path trees (SPTs).
  • Source of Multicast Traffic is located at root of the tree. Receivers are located at the end of branches.
  • Multicast traffic flows from source down the tree towards the receivers using multicast forwarding table (show ip mroute). The multicast forwarding table consists of series of (S,G) entries, pronounced as S comma G, where S is a Source and G is the multicast group joined by receivers who are interested for multicast feed. Below diagram shows two source servers and sending the multicast traffic to receivers and respectively through a shortest path tree (blue and red arrows respectively).
Multicast Distribution Trees, Source Tree
  • A separate source tree exists for every source that is transmitting multicast packets, even if those sources are transmitting data to the same group. This means that there will be an (S, G) forwarding state entry for every active source in the network.
  • Examples of SPT are Source Specific Multicast (SSM). Another example can be be used from Shared tree while the receiver comes  to know about the Source through RP (first packet it receives from RP with S,G entry) and immediately sends PIM join to the Source using shortest path (SPT) in the network. This when (*,G) converges to (S,G).

Shared Tree

  • Shared trees differ from source trees in that the root of the tree is a common point  somewhere in the network, referred to as the Rendezvous Point (RP). Details to configure an RP are explained later in this article.
  • The RP is the point at which hosts/receivers join to learn of active sources. Multicast sources must transmit their traffic to the RP. When receivers join a multicast group on a shared tree, the root of the tree is always the RP, and multicast traffic is transmitted from the RP down toward the receivers.
  • An RP can be the root for all multicast groups in the network, or different ranges of multicast groups can be associated with different RPs.
  • Multicast forwarding entries for a shared tree use the notation (*, G), pronounced as star comma G. This is because all sources for a particular group share the same tree.  Therefore, the '*' represents all sources. The ultimate aim is to learn source using the RP and once the RP discovers both Source and Receivers, the tree gets complete. RP acts as a got-between that helps Receivers discovers the source and converting (*,G) entry to (S,G).
  •  Shared tree is insecure way of running multicast services because any source can send multicast to the receivers who have joined a particular group. The receivers are only interested for the multicast traffic for the group they have joined without considering the source identity which can be a hacker. 
  • Below Diagram shows the shared tree.  Receiver1 and Receiver 2 send (*,G) PIM join to RP (root or the tree). Also Source update RP about its presence using PIM 'Register' message. RP then updates source and group (S,G) details to last hop routers down the tree completing the tree. 
  • Examples of Shared tree are Any Source Multicast (ASM) using PIM Sparse-mode.

Multicast Distribution Trees, Shared Tree

Rendezvous Point

When configuring PIM-SM on a network, at least one router must be designated as a Rendezvous Point (RP). An RP is a meeting point and is required in shared tree to help the  source information passed to the receiver. The RP could be configured manually, or dynamically through Cisco's Auto-RP or PIMv2's Bootstrap Router (BSR) method. Regardless of which method is used, an RP performs a critical function: it establishes a common reference point from which multicast trees are grown. The methods to configure the RP on a router are explained below:

RP Configuration - Manual

Router(config)# ip pim rp-address ip-address [access-list-number] [override]

You can limit the range of multicast groups supported by the RP by using an access list. The
override keyword causes this RP to be preferred over any that is automatically determined. The RP must be defined on every router in the PIM domain, including the RP itself.

RP Configuration - Dynamically (Auto-RP   - Cisco Proprietary method)

Cisco also provides a proprietary means to automatically inform PIM-SM routers of the appropriate RP for a group. This is known as Auto-RP. This method is generally used for the routers running PIM version 1. This is done by identifying a centrally located and well connected router to function as the mapping agent. The mapping agent learns of all candidate RPs that are announced over the Cisco-RP-Announce multicast address To define a router as a mapping agent, use the following global configuration command:

Router(config)# ip pim send-rp-disovery scope ttl

The mapping agent sends RP-to-group mapping information to all PIM routers over the Cisco-RP Discovery multicast address The Time-To-Live (TTL) value is set in these messages to limit the scope of the mapping. This limits how many router hops away the information will still be valid.

You must then explicitly define each candidate RP router. Once a router knows it can be an RP, it begins sending announcements to the mapping agent. Configure a router as an RP with the following global configuration command:

Router(config)# ip pim send-rp-announce type mod/num scope ttl group-list access-list number

The interface given corresponds to the advertised RP address. The announcement’s scope is limited by the number of router hops (TTL). The router will also advertise itself as a candidate RP for the multicast groups permitted in the access list.

RP Configuration - Dynamically (Bootstrap Router - Open Standard)

The second version of PIM also includes a dynamic RP-to-group mapping advertisement
mechanism. This is known as the Boostrap Router method, and is standards-based. PIMv2 is similar to the Cisco auto-RP method. First, a bootstrap router (BSR) is identified; this router learns about RP candidates for a group and advertises them to PIM routers. You need to configure only the BSR and candidate RPs; all other PIM routers learn of the appropriate RP from the BSR. Define a BSR using the following global configuration command:

Router(config)# ip pim bsr-candidate type mod/num hash-mask-length [priority]

The interface used determines the BSR address. RP selection for a group is based on a hashing function. The length of the hash mask controls the number of consecutive multicast groups that hash to the same RP.

Next, you must identify each of the candidate RP routers. Configure each RP with the following global configuration command:

Router(config)# ip pim rp-candidate type mod/num ttl group-list access-list-number

Finally, by default, the bootstrap messages propagate the entire PIM domain. You can limit the scope of the advertisements by defining PIMv2 border routers, which will not forward the bootstrap messages. Use the following global configuration command:

Router(config)# ip pim border

For Further Reading