TECHNICAL FIELD

The disclosure relates to computer networks and, more particularly, to distribution of multicast traffic over computer networks.

BACKGROUND

A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network the computing devices communicate data by dividing the data into small blocks called packets. Certain devices within the network, such as routers and switches, maintain routing and/or forwarding information that describe paths through the network. In this way, the packets may be individually transmitted across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.

Examples of computer networks include enterprise networks, branch networks, service provider networks, home networks, virtual private networks (VPNs), local area network (LANs), virtual LANs (VLANs) and the like. In any case, the computer networks may enable remotely located sources and receivers to share data. In some cases, the computer network may be configured to support multicast traffic, such as Internet Protocol Television (IPTV), desktop conferences, corporate broadcasts, music and video web casts, and other forms of multimedia content. For example, the computer network may utilize protocol independent multicast (PIM) as a multicast routing protocol to build distribution trees through the computer network for the transmission of multicast traffic between sources and receivers within customer sites for particular multicast groups. PIM may operate in several different modes, including Dense Mode (DM), Sparse Mode (SM) in Source-Specific Multicast (SSM) mode or Any Source Multicast (ASM) mode, and Bidirectional (BIDIR) mode.

In addition, the computer network may be configured to support multicast VPNs (MVPNs) to enable Internet Protocol (IP) multicast traffic to travel between sources and receivers within customer sites. For one or more Border Gateway Protocol (BGP) MVPNs, provider edge (PE) routers coupled to the customer sites may conceptually build a multicast tree to carry multicast traffic from a multicast source through the public network so that the customer sites receive the multicast traffic as if the customer sites were directly attached to the same private network as the source.

SUMMARY

In general, this disclosure describes techniques for flexibly distributing multicast join messages to enable tailored delivery of multicast traffic. The techniques allow ingress network devices of a network to send upstream weight advertisements to an egress network device, which the egress network device then uses to flexibly distribute multicast join messages for a multicast source and group among upstream ingress network devices. The egress network device may receive messages from each of the ingress network devices that specify an upstream multicast hop (UMH) weight value for the corresponding ingress network device. The egress network device selects, based on the upstream multicast hop weight values specified by the received messages, one of the ingress network devices to which to send a multicast join message of a plurality of multicast join messages for the multicast source and multicast group.

As one example, this disclosure defines a new Transitive BGP Extended Community Attribute called “UMH-Weight” to indicate Upstream Multicast Hop Weight of a BGP-MVPN PE router. The UMH-Weight community attribute may be included in MVPN auto discovery (Type-1) messages sent by the ingress network devices. As one example, this disclosure sets forth extensions to a BGP MVPN Join Load Balance algorithm to flexibly distribute MVPN Join messages. In other examples, such as in a native PIM deployment instead of BGP MVPN, the UMH-Weight value may be a field in a PIM message. In some examples, the egress network device uses the received upstream multicast hop weight values of the ingress network devices to determine a proportion of multicast join messages to send to each ingress network device.

In one example aspect, a method includes receiving, by an egress network device for a network, messages from each of a plurality of ingress network devices for the network, wherein each of the messages specifies a multicast source, a multicast group, and an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group; selecting, by the egress network device and based on the upstream multicast hop weight values specified by the received messages, one of the plurality of ingress network devices to which to send a multicast join message of a plurality of multicast join messages for the multicast source and multicast group; and sending, by the egress network device, the multicast join message to the selected one of the plurality of ingress network devices.

In another example, a network device includes a memory; and one or more processors implemented in circuitry and configured to: receive messages from each of a plurality of ingress network devices for a network, wherein each of the messages specifies a multicast source, a multicast group, and an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group; select, based on the upstream multicast hop weight values specified by the received messages, one of the plurality of ingress network devices to which to send a multicast join message of a plurality of multicast join messages for the multicast source and multicast group; and send the multicast join message to the selected one of the plurality of ingress network devices.

In a further example, a method includes determining, by an ingress network device for a network and based on an amount of upstream access bandwidth between the ingress network device and a customer edge device, an upstream multicast hop weight value for multicast traffic for a multicast source and a multicast group, the customer edge device being positioned between the ingress network device and the multicast source; and sending, by the ingress network device and to one or more peer network devices for the network, a message specifying the upstream multicast hop weight value for the multicast traffic, wherein the message further specifies the multicast source and the multicast group.

The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

