Keywords: Multicast, IGMP, IGMP Snooping, PIM, MBGP, MSDP, and SSM Mapping
Abstract: The multicast technology implements high-efficiency point-to-multipoint data transmission over IP networks. Multicast greatly saves network bandwidth and reduces network load, and therefore is widely used in scenarios such as real-time data transmission, multimedia conferencing, data duplication, online games, and emulation. This document describes the basic multicast concepts, generally used multicast protocols, and multicast networking solutions.
Internet Assigned Numbers Authority
Internet Group Management Protocol
Multicast Border Gateway Protocol
Multi-Protocol Border Gateway Protocol
Multicast Source Discovery Protocol
Protocol Independent Multicast-Dense Mode
Protocol Independent Multicast-Sparse Mode
Reverse path forwarding
Rendezvous point tree
Shortest path tree
Table of Contents
Traditional IP communications fall into two modes: point-to-point communications between a source host and a destination host, known as unicast, and point-to-multipoint communications between a source host and all other hosts on the same subnet with the source host, known as broadcast. With broadcast, the information is delivered to all hosts, rather than some specific hosts that need the information, resulting in waste of network bandwidth. In addition, broadcasts are confined only to the local subnet. With unicast, as a separate copy of information is sent to each host, the duplicate IP packets not only use a tremendous amount of network bandwidth but also add to the burden of the source host. Therefore, the conventional unicast and broadcast technologies cannot effectively address the issue of point-to-multipoint data transmission.
Multicast provides a best-effort service to deliver data packets to a specific set of receiver hosts, known as a multicast group, on the network. With multicast, the source host, known as a multicast source, sends only one copy of data packets destined for a multicast group address, and each receiver host of the multicast group can receive the data packets. Only the hosts that have joined the multicast group can receive the traffic addressed to the multicast group, while hosts out of the multicast group cannot.
Compared with unicast and broadcast, the multicast technique effectively addresses the issue of point-to-multipoint data transmission. By allowing high-efficiency point-to-multipoint data transmission over an IP network, multicast greatly saves network bandwidth and reduces network load. More importantly, multicast allows convenient deployments of new value-added services in Internet-based information service areas, such as live Webcasting, Web TV, distance learning, telemedicine, Web radio, and real-time videoconferencing.
Multicast implementation needs to resolve the following issues:
l Multicast Addressing Mechanism: As a multicast source sends information to a certain group of receivers, a multicast addressing mechanism is needed to identify multicast groups.
l Group Membership Management: As a receiver host needs to join a multicast group before receiving the traffic destined for that group, a group membership management mechanism is needed to allow receiver hosts to join or leave a multicast group dynamically.
l Multicast Packet Forwarding: The process a multicast stream is forwarded and delivered to the receiver hosts over the network.
l Multicast Routing Protocol: Multicast routing protocols for constituting multicast forwarding trees.
An IP multicast address identifies a specific IP multicast group. IANA has assigned the Class D address space (22.214.171.124 to 126.96.36.199) for multicast.
As shown in Figure 1, the high-order four bits of a multicast address are 1110. Figure 2 shows the specific address blocks and usages.
l 188.8.131.52 to 184.108.40.206 are reserved permanent group addresses. The IP address 220.127.116.11 is reserved and other IP address can be used by routing protocols and for topology searching, protocol maintenance, and so on. Addresses in this range identify local subnets, namely, a packet destined for an address in this block will not be forwarded beyond the local subnet regardless of the Time to Live (TTL) value.
l 18.104.22.168 to 22.214.171.124 are user-available, globally scoped group addresses, among which 126.96.36.199/8 are SSM group addresses while the others are ASM group addresses. For details about ASM and SSM, refer to 2.5 Multicast Models.
l 188.8.131.52 to 184.108.40.206 are administratively scoped multicast addresses, which are considered to be locally rather than globally unique ASM group addresses. In other words, these addresses can be reused in domains administered by different organizations without causing conflicts.
Some addresses in the 220.127.116.11/24 segment have also been reserved by IANA for particular multicast applications. For example, 18.104.22.168 has been reserved for the Network Time Protocol (NTP).
As for link-layer multicast, this document focuses on the multicast implementations of the Ethernet protocol only, and the multicast implementations of other link-layer protocols are out of the scope of this document.
IANA assigned MAC addresses 01:00:5E:00:00:00 to 01:00:5E:7F:FF:FF for multicast. This requires the 28-bit IP multicast address space to be mapped to the 23-bit multicast MAC address space. To be specific, the low-order 23 bits of the IP multicast address space are mapped to the low-order 23 bits of the multicast MAC address space, as shown in Figure 3.
Group membership management means the establishment and maintenance of multicast group memberships on a multicast router or switch for the subnets directly connected to it, namely, the management of multicast group members attached to the interfaces or ports of the multicast device.
The Internet Group Management Protocol (IGMP) runs between IP hosts and the immediately connected router. IGMP functions in both directions: A host informs the router of its interest in specific multicast groups through IGMP, and a multicast router uses IGMP to periodically query group memberships on the local subnet to collect and maintain the group memberships. Through IGMP, a router learns whether a specific multicast group has active members on the local subnet, rather than the interrelationships between a multicast group and a host.
So far, there are three IGMP versions:
l IGMPv1 (documented in RFC 1112) defines the group member query and report processes;
l IGMPv2 (documented in RFC 2236) adds a leave-group mechanism based on IGMPv1;
l A major enhancement in IGMPv3 (documented in RFC 3376) is that it allows hosts to specify a list of sources they expect or do not expect multicast data from. The Source-Specific Multicast (SSM) model needs the support of IGMPv3.
This section mainly describes how IGMPv2 works.
As shown in Figure 4, when multiple IGMP routers are connected to a subnet, a unique querier needs to be chosen from these routers through the querier election mechanism provided by IGMPv2. A querier periodically sends general query messages (often referred to as general queries) to learn the group memberships and a host responds with an IGMP report. A router also responds to the queries as a receiver host if it has joined a multicast group.
A host sends an unsolicited IGMP report when it needs to join a multicast group, without having to wait for an IGMP query. When a host leaves a multicast group, it sends a leave group message (often referred to as leave message). Upon receiving the leave message, the router sends group-specific queries to that group to determine whether the group still has any active members on the local subnet.
Through the mechanism discussed above, a router creates a table that records the multicast group members on the subnet attached to each of its interfaces. When receiving multicast traffic destined for multicast group G, the router forwards the traffic only to the interfaces with members of multicast group G. The forwarding of multicast traffic between multicast routers is not implemented by IGMP but by the multicast routing protocols.
As a protocol designed for IP multicast at the network layer, IGMP maintains only the relationships between Layer 3 interfaces and IP multicast addresses. In most situations, however, multicast traffic inevitably goes through some Layer 2 switches. Without a mechanism to establish mappings between Layer 2 ports and multicast MAC addresses, multicast traffic will be flood to all ports of a switch, and this wastes a great deal of system resource.
IGMP Snooping is used to address this issue. When an IGMP Snooping switch hears an IGMP report message a host sent to the IGMP querier, the switch creates a mapping between the port connected to the host and the multicast MAC address corresponding to the reported multicast group. Then, upon receiving multicast data for that group, the switch forwards the multicast data just to that port based on the created mapping.
Multicast packets travel along tree-shaped forwarding paths known as multicast forwarding trees over the network to the receivers. Multicast forwarding trees fall into two types: source tree and shared tree.
1. Source tree
Rooted at the multicast source, a source tree is a forwarding tree with the shortest path from the multicast source to the receivers; therefore, it is also called a shortest path tree (SPT). An SPT needs to be constructed per source per group.
As the shortest forwarding path between a multicast source and the receivers, the source tree minimizes the end-to-end transmission latency. However, this does come at a price. As the router must maintain the routing information for each multicast source, a great deal of system resource is used and the routing table is very large.
2. Shared tree
Rooted at a router called a rendezvous point (RP), a shared tree is a forwarding tree with the shortest path from the RP to each receiver. It is also called a rendezvous point tree (RPT). There is only one RPT per multicast group on the network. All multicast sources and receivers use the RPT tree for multicast data transmission and reception. The multicast sources send data to the RP and the RP forwards the data down the RPT to all the receivers.
The main advantage of an RPT is that it allows a router to maintain a small number of routing entries. However, as the multicast traffic from a multicast source must pass through the RP before it reaches the receivers, this forwarding tree is not the shortest path from the source to the receivers, and the RP must be highly reliable and powerful.
Upon receiving a multicast packet, a router searches its multicast forwarding table according to the destination address and then forwards the packet accordingly. Forwarding a multicast packet is more complex than forwarding a unicast packet. In unicast, a router does not care about the source address; it cares only about the destination address of the packet, based on which the router determines the interface to forward the packet to. In multicast, multicast traffic is destined for to a group of receivers identified by a logical address known as multicast address. Upon receiving a multicast packet, a router checks whether the packet has arrived to the correct incoming interface, namely whether the incoming interface leads to the multicast source, based on the source address before forwarding the packet out the outgoing interface. This process is known as the reverse path forwarding (RPF) check.
The basis for the RPF check is the existing unicast routing table. The router forwards only those packets received on the interface connected to the upstream neighbor on the unicast route to the source. This incoming interface is called RPF interface. The RPF check not only ensures multicast data forwarding along the correct forwarding path but also helps avoid loops.
The RPF check process is as follows: The router searches the unicast routing table for the RPF interface toward the multicast source (when an SPT is used) or the RP (when an RPT is used). If the packet is received on the RPF interface, it passes the RPF check and then forwarded to downstream node; otherwise, the packet is discarded.
Similar to unicast protocols, multicast routing protocols fall into intra-domain and inter-domain protocols:
l Based on the group memberships maintained by IGMP, an intra-domain multicast routing protocol builds multicast distribution trees according to certain multicast routing algorithms and creates multicast routing state entries on multicast routers, which forward multicast traffic as per the routing state entries.
l Based on the inter-domain multicast routing policy configured in the network, an inter-domain multicast routing protocol propagates multicast source information and exchanges multicast routing information among autonomous systems (ASs), thus ensuing multicast forwarding among different domains.
Among a variety of intra-domain multicast routing protocols, Protocol Independent Multicast (PIM) is a popular one. Based on the forwarding mechanism, PIM falls into two modes – dense mode (referred to as PIM-DM) and sparse mode (referred to as PIM-SM).
In a PIM-DM domain, routers use periodical PIM Hello messages for PIM neighbor discovery, determination of leaf routers and leaf networks, and designated router (DR) election on a multi-access network. Although PIM-DM does not require a DR, one must be elected among multiple routers on a multi-access network running IGMPv1 in a PIM-DM domain to act as the IGMPv1 querier on that multi-access network.
As a dense mode multicast routing protocol, PIM-DM uses the “push” mode for multicast forwarding, and is suitable for small-sized networks with densely distributed multicast members. PIM-DM works as follows:
l PIM-DM assumes that at least one multicast group member exists on each subnet of a network, and therefore multicast data is flooded to all nodes on the network. Then, branches without receivers downstream are pruned from the forwarding tree, leaving only those branches with receivers. This “flood and prune” process takes place periodically, that is, pruned branches resume multicast forwarding when the pruned state times out and then data is re-flooded down these branches, and then are pruned again.
In a PIM-SM domain, routers periodically sends PIM Hello messages for PIM neighbor discovery and DR election on a multi-access network, where the DR sends join/prune messages toward the root of the multicast forwarding tree for the receiver host attached to it, or forwards multicast traffic from the directly connected multicast source onto the multicast distribution tree.
As a sparse mode multicast routing protocol, PIM-SM uses the “pull” mode for multicast forwarding, and is suitable for large- and medium-sized networks with sparsely and widely distributed multicast members. The basic implementation of PIM-SM is as follows:
l PIM-SM assumes that no hosts need to receive multicast data. In the PIM-SM mode, and delivers multicast data only to those hosts that have explicitly requested for the data. The core task for PIM-SM in multicast forwarding is to build and maintain rendezvous point trees (RPTs). An RPT is rooted at a router in the PIM domain as the common node, referred to as the rendezvous point (RP), through which the multicast data travels down the RPT to the receivers.
l When a receiver is interested in the multicast data addressed to a specific multicast group, the router connected to this receiver sends a join message to the RP for that multicast group. The path along which the message goes hop by hop to the RP forms a branch of the RPT.
l When a multicast source sends multicast data to a multicast group, the source-side DR first registers the multicast source with the RP by sending register messages to the RP by unicast. The arrival of a register message at the RP triggers the establishment of an SPT. Then, the multicast source sends subsequent multicast packets along the SPT to the RP. Upon reaching the RP, the multicast packet is duplicated and delivered to the receivers down the RPT.
Inter-domain multicast routing protocols are used to propagate multicast information among different ASs. So far, mature solutions include:
l Multicast Border Gateway Protocol (MBGP) is used for exchanging multicast routing information between ASs.
The exchange of routing information (reachability information) between different ASs is the first-line issue to address for inter-domain communications. Because different ASs may be operated by different service providers, unlike intra-domain routing information, inter-domain routing information needs to contain not only the distance information but also the service provider policies.
The multicast topology may be different from the unicast topology due to both physical and policy-related reasons. Some routers on the network may support only unicast, while some others, though multicast capable, may be configure not forward multicast packets. In order to construct inter-domain multicast forwarding trees, in addition to unicast routing information, the multicast topology information is also needed. In short, an inter-domain multicast routing protocol needs to meet the following requirements:
l Able to differentiate the unicast topology and the multicast topology.
l Having a set of stable methods for peering and policy control.
As the most popular inter-domain unicast routing protocol so far, the Border Gateway Protocol version 4 (BGP-4) already satisfies the latter requirement and is proven to be effective and stable. Therefore, a reasonable solution for inter-domain propagation of multicast routing information is to enhance and extend BGP-4 rather than to devise a set of entirely new protocols. Multiprotocol extensions for BGP are defined in RFC 2858. The extended BGP (known as MP-BGP or BGP-4+) can carry not only IPv4 unicast routing information but also the routing information for other network layer protocols (such as multicast and IPv6). The capability of carrying multicast routing information is only one of the functions of these extensions. The multicast extension of BGP is referred to as multicast BGP (MBGP).
With MBGP, both unicast routing information and multicast routing information can be exchanged in the same process, but are stored in different routing tables. MBGP is an enhanced version of BGP-4; therefore, all the common policies and configuration methods supported by BGP-4 can be applied to multicast.
In the basic PIM-SM mode, a multicast source registers only with the RP in the local PIM-SM domain, and the multicast source information of a domain is confined within the domain. As a result, the RP is aware of the source information only within the local domain and multicast distribution trees are built only within the local domain to deliver multicast data from a local multicast source to local receivers. A service provider does not want to rely on other ISPs’ RP routers to forward multicast traffic to its own customers, but it does want to be able to get information from multicast sources, wherever the RPs for these sources are, and send the information to its customers.
The Multicast Source Discovery Protocol (MSDP) is an inter-domain multicast solution developed to discover multicast sources in other PIM-SM domains thus to allow interconnection among these domains. With MSDP, an RP in one domain can establish peering relationships with RPs in other domains. Based on these peering relationships, RPs in different domains are interconnected and multicast source information is exchanged between the RPs.
In addition to inter-domain propagation of multicast source information, MSDP has a special application for PIM-SM: anycast RP. Anycast RP refers to such an application that implements load balancing and redundancy backup between two or more RPs within a PIM-SM domain by configuring the same IP address for, and establishing MSDP peering relationships between, these RPs.
Based on how the receivers treat the multicast sources, there are two multicast models:
l ASM model: Any-source multicast model. In the ASM model, any sender can be a multicast source sending multicast information to a multicast group, and receivers can join a multicast group identified by a group address and obtain multicast information addressed to that multicast group. In this model, receivers are not aware of the location of the multicast source in advance. However, they can join or leave the multicast group at any time.
l SSM model: Source-specific multicast model. In actual situations, users may be interested in the multicast data only from certain specific multicast sources. The SSM model provides a transmission service that allows users to specify the multicast sources they are interested in at the client side.
The multicast routing protocols mentioned in the section above are mainly for the ASM model. In ASM, receivers cannot specify the multicast sources they are interested in; instead, they passively receive multicast streams from all multicast sources. Unlike the ASM model, The SSM model allows hosts to specify the multicast sources.
In the SSM model, the multicast address range is different from that in the ASM model and dedicated multicast forwarding paths between receivers and the specified multicast sources are established through PIM-SM. In SSM, receivers know exactly where a multicast source is located by means of advertisements, consultancy, and so on. Therefore, no RP is needed, no RPT is required, there is no source registration process, and there is no need of using MSDP for discovering sources in other PIM-SM domains. Moreover, routers with receivers on the subnet can learn the multicast source information specified by the receivers when joining a multicast group in the following two ways:
l With IGMPv3 running on the receivers, multicast source addresses are contained in IGMPv3 report messages.
l With IGMPv1 or IGMPv2 running on the receivers, no source addresses are specified in IGMPv1 or IGMPv2 report messages. In such cases, static SSM mappings must be configured on the router to map the (*, G) information carried in these reports to the (G, INCLUDE, (S1, S2…)) information.
Currently, PIM-SM is the recognized standard protocol for implementing intra-domain multicast. In a single-AS network or a PIM-SM domain, multicast can be implemented with PIM-SM alone running in the network. In such a network, multiple RPs can be configured to implement anycast RP to enhance the RP reliability and achieve load-balancing and redundancy backup.
Figure 5 shows the network diagram for intra-domain multicast through PIM-SM.
Currently, a mature solution for implementing inter-domain multicast is the combined PIM-SM+MBGP+MSDP solution, which requires all ASs to support PIM-SM, MBGP, and MSDP simultaneously. As shown in Figure 6, PIM-SM runs in all ASs, and MBGP and MSDP run among these PIM-SM domains.
This solution is an extension of PIM-SM in an inter-domain environment. If the entire PIM-SM+MBGP+MSDP solution is considered as PIM-SM, the RPs in all the domains put together can be considered as the RP in the PIM-SM domain with two more processes:
(1) Flooding of multicast source information within the RP set so that the multicast sources and receivers meet at the “RP”.
(2) Exchange of multicast routing information between different domains to ensure the normal forwarding of multicast traffic between the domains. In these processes, the multicast topology information propagated by MBGP is leveraged to establish the reverse forwarding paths from the RPs in one AS to the peers in another AS.
In the PIM-SM+MBGP+MSDP solution, it is required that exterior MBGP peering relationships to be established between the routers at AS borders, exterior MSDP peering relationships to be established between RPs of different ASs, interior MBGP peering relationships to be established between routers in the same AS, and interior MSDP peering relationships to be established between RPs in the same AS, anycast RP to be configured, and PIM-SM to be enabled in all ASs. PIM-SM is responsible for collecting multicast and routing and multicast source information within each PIM-SM domain, MBGP for exchanging multicast topology information, and MSDP for exchanging multicast source information among the domains.
As shown in Figure 7, to provide multicast service while the routers on the backbone network is not multicast capable or not multicast enabled, run PIM-SM on each metropolitan area network (MAN), set up a virtual network by establishing tunnels between the RPs on different MANs, and run PIM-SM, MBGP, and MSDP on this virtual network. The advantage of this solution is that the backbone network does not need to support PIM-SM, MBGP, or MSDP. In other words, multicast traffic is transparent to the backbone network. This avoids the influence on the device performance during multicast traffic transmission. However, this solution requires that PIM-SM, MBGP and MSDP tunnels must be simultaneously supported between RPs. The configuration and management are complex and the devices must be highly powerful.
As shown in Figure 8, to provide multicast service while the routers on the backbone network is not multicast capable or not multicast enabled, run PIM-SM on each metropolitan area network (MAN), set up a virtual network by establishing tunnels between the RPs on different MANs, and run PIM-DM on this virtual network. This solution features that the backbone network does not need to support PIM-SM, MBGP, or MSDP. In other words, multicast traffic is transparent to the backbone network. Therefore, the routers on the backbone network do not need to maintain a great deal of multicast routing state information. However, as PIM-DM runs between RPs in different domains, it periodically floods multicast traffic onto the networks, which results in bandwidth waste on the backbone network.
As shown in Figure 9, if multicast-capable networks are separated by a multicast-incapable network (such as the Internet) or across firewalls configured with NAT or IPSec VPN, the routers across the Internet or firewalls cannot establish PIM neighboring relationships with each other and thus cannot implement multicast routing. In this scenario, a GRE tunnel can be configured to interconnect these multicast networks, thus allowing multicast implementation.
Twenty years has passed since the multicast technology came into being in 1988, and many international organizations have done a lot for technical researches and service development of multicast. With the increasingly growing multimedia services over IP networks, multicast is becoming a transmission basis for such services.
The multicast technology involves the addressing mechanism, group membership management, and route establishment, and multicast address allocation, inter-domain routing, and security issues are still hot topics in research. Currently, IGMPv2 is widely used for group membership management, PIM-SM is preferred for intra-domain multicast because of its excellent scalability and RPT-to-SPT switchover capability, and the PIM-SM+MBGP+MSDP combination solution is generally adopted for inter-domain multicast.
Multicast supports a variety of broadband value-added services, such as streaming media delivery, videoconferencing, IPTV, and so on. However, implementation of these services also depends on effective service management, monitoring and security control. Based on the understanding of and experience in service operation and management, H3C will continue to offer users operable and manageable multicast solutions, and push forward the progress of the multicast technology, popularization of multicast services, and the improvement of multicast features.
Copyright ©2004-2008 Hangzhou H3C Technologies Co., Ltd. All rights reserved.
No part of this manual may be reproduced or transmitted in any form or by any means without prior written consent of Hangzhou H3C Technologies Co., Ltd.
The information in this document is subject to change without notice.