Wiki Internet Protocol Multicast
Wiki Internet Protocol Multicast
Page 1 of 19
Contents
1 Background
1.1 Figure: Multicast Transmission Sends a Single
Multicast Packet Addressed to All Intended
Recipients
2 Multicast Group Concept
3 IP Multicast Addresses
3.1 IP Class D Addresses
3.2 Reserved Link Local Addresses
3.2.1 Table: Link Local Addresses
3.3 Globally Scoped Address
3.4 Limited Scope Addresses
3.5 Glop Addressing
3.6 Layer 2 Multicast Addresses
3.6.1 Figure: IEEE 802.3 MAC Address
Format
3.7 Ethernet MAC Address Mapping
3.7.1 Figure: Mapping of IP Multicast to
Ethernet/FDDI MAC Address
3.7.2 Figure: MAC Address Ambiguities
4 Internet Group Management Protocol
4.1 IGMP Version 1
4.1.1 Figure: IGMP Version 1 Packet
Format
4.2 IGMP Version 2
4.2.1 Figure: IGMPv2 Message Format
5 Multicast in the Layer 2 Switching Environment
5.1 Cisco Group Management Protocol
5.1.1 Figure: Basic CGMP Operation
5.2 IGMP Snooping
6 Multicast Distribution Trees
6.1 Source Trees
6.1.1 Figure: Host A Shortest Path Tree
6.2 Shared Trees
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
Guide Contents
Internetworking Basics
LAN Technologies
WAN Technologies
Internet Protocols
Bridging and Switching
Routing
Network Management
Voice/Data Integration Technologies
Wireless Technologies
Cable Access Technologies
Dial-up Technology
Security Technologies
Quality of Service Networking
Network Caching Technologies
IBM Network Management
Multiservice Access Technologies
04/01/2012
Page 2 of 19
Background
IP Multicast delivers source traffic to multiple receivers without adding any additional burden on the
source or the receivers while using the least network bandwidth of any competing technology. Multicast
packets are replicated in the network by Cisco routers enabled with Protocol Independent Multicast
(PIM) and other supporting multicast protocols resulting in the most efficient delivery of data to
multiple receivers possible. All alternatives require the source to send more than one copy of the data.
Some even require the source to send an individual copy to each receiver. If there are thousands of
receivers, even low-bandwidth applications benefit from using Cisco IP Multicast. High-bandwidth
applications, such as MPEG video, may require a large portion of the available network bandwidth for a
single stream. In these applications, the only way to send to more than one receiver simultaneously is by
using IP Multicast.
Figure: Multicast Transmission Sends a Single Multicast Packet Addressed to All Intended Recipients
demonstrates how data from one source is delivered to several interested recipients using IP multicast.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 3 of 19
Figure: Multicast Transmission Sends a Single Multicast Packet Addressed to All Intended Recipients
IP Multicast Addresses
Multicast addresses specify an arbitrary group of IP hosts that have joined the group and want to receive
traffic sent to this group.
IP Class D Addresses
The Internet Assigned Numbers Authority (IANA) controls the assignment of IP multicast addresses. It
has assigned the old Class D address space to be used for IP multicast. This means that all IP multicast
group addresses will fall in the range of 224.0.0.0 to 239.255.255.255.
Note: This address range is only for the group address or destination address of IP multicast traffic.
The source address for multicast datagrams is always the unicast source address.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 4 of 19
Address
Usage
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 5 of 19
range from flowing outside an autonomous system (AS) or any user-defined domain. Within an
autonomous system or domain, the limited scope address range can be further subdivided so those local
multicast boundaries can be defined. This also allows for address reuse among these smaller domains.
Glop Addressing
RFC 2770 proposes that the 233.0.0.0/8 address range be reserved for statically defined addresses by
organizations that already have an AS number reserved. The AS number of the domain is embedded into
the second and third octets of the 233.0.0.0/8 range.
For example, the AS 62010 is written in hex as F23A. Separating out the two octets F2 and 3A, we get
242 and 58 in decimal. This would give us a subnet of 233.242.58.0 that would be globally reserved for
AS 62010 to use.
This bit indicates that the frame is destined for an arbitrary group of hosts or all hosts on the network (in
the case of the broadcast address, 0xFFFF.FFFF.FFFF).
IP multicast makes use of this capability to transmit IP packets to a group of hosts on a LAN segment.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 6 of 19
This allocation allows for 23 bits in the Ethernet address to correspond to the IP multicast group address.
The mapping places the lower 23 bits of the IP multicast group address into these available 23 bits in the
Ethernet address (shown in Figure: Mapping of IP Multicast to Ethernet/FDDI MAC Address).
Figure: Mapping of IP Multicast to Ethernet/FDDI MAC Address
Because the upper 5 bits of the IP multicast address are dropped in this mapping, the resulting address is
not unique. In fact, 32 different multicast group IDs all map to the same Ethernet address (see Figure:
MAC Address Ambiguities).
Figure: MAC Address Ambiguities
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 7 of 19
IGMP Version 1
RFC 1112 defines the specification for IGMP Version 1. A diagram of the packet format is found in
Figure: IGMP Version 1 Packet Format.
Figure: IGMP Version 1 Packet Format
IGMP Version 2
RFC 2236 defines the specification for IGMP Version 2.
A diagram of the packet format follows in the following figure.
Figure: IGMPv2 Message Format
Membership query
Version 1 membership report
Version 2 membership report
Leave group
IGMP Version 2 works basically the same as Version 1. The main difference is that there is a leave
group message. The hosts now can actively communicate to the local multicast router their intention to
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 8 of 19
leave the group. The router then sends out a group-specific query and determines whether there are any
remaining hosts interested in receiving the traffic. If there are no replies, the router times out the group
and stops forwarding the traffic. This can greatly reduce the leave latency compared to IGMP Version 1.
Unwanted and unnecessary traffic can be stopped much sooner.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 9 of 19
IGMP Snooping
IGMP snooping requires the LAN switch to examine, or snoop, some Layer 3 information in the IGMP
packets sent between the hosts and the router. When the switch hears the IGMP host report from a host
for a particular multicast group, the switch adds the host's port number to the associated multicast table
entry. When the switch hears the IGMP leave group message from a host, it removes the host's port from
the table entry.
Because IGMP control messages are transmitted as multicast packets, they are indistinguishable from
multicast data at Layer 2. A switch running IGMP snooping examine every multicast data packet to
check whether it contains any pertinent IGMP must control information. If IGMP snooping has been
implemented on a low-end switch with a slow CPU, this could have a severe performance impact when
data is transmitted at high rates. The solution is to implement IGMP snooping on high-end switches with
special ASICs that can perform the IGMP checks in hardware. CGMP is ideal for low-end switches
without special hardware.
Source Trees
The simplest form of a multicast distribution tree is a source tree whose root is the source of the
multicast tree and whose branches form a spanning tree through the network to the receivers. Because
this tree uses the shortest path through the network, it is also referred to as a shortest path tree (SPT).
Figure: Host A Shortest Path Tree shows an example of an SPT for group 224.1.1.1 rooted at the source,
Host A, and connecting two receivers, hosts B and C.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 10 of 19
The special notation of (S,G), pronounced "S comma G," enumerates an SPT in which S is the IP
address of the source and G is the multicast group address. Using this notation, the SPT for the example
in Figure 43-7 would be (192.1.1.1, 224.1.1.1).
The (S,G) notation implies that a separate SPT exists for each individual source sending to each group,
which is correct. For example, if Host B is also sending traffic to group 224.1.1.1 and hosts A and C are
receivers, then a separate (S,G) SPT would exist with a notation of (192.2.2.2,224.1.1.1).
Shared Trees
Unlike source trees that have their root at the source, shared trees use a single common root placed at
some chosen point in the network. This shared root is called the rendezvous point (RP).
Figure: Shared Distribution Tree shows a shared tree for the group 224.2.2.2 with the root located at
Router D. When using a shared tree, sources must send their traffic to the root, and then the traffic is
forwarded down the shared tree to reach all receivers.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 11 of 19
In this example, multicast traffic from the source hosts A and D travels to the root (Router D) and then
down the shared tree to the two receivers, hosts B and C. Because all sources in the multicast group use
a common shared tree, a wildcard notation written as (*, G), pronounced "star comma G," represents the
tree. In this case, * means all sources, and the G represents the multicast group. Therefore, the shared
tree shown in the figure would be written as (*, 224.2.2.2).
Both SPT and shared trees are loop-free. Messages are replicated only where the tree branches.
Members of multicast groups can join or leave at any time, so the distribution trees must be dynamically
updated. When all the active receivers on a particular branch stop requesting the traffic for a particular
multicast group, the routers prune that branch from the distribution tree and stop forwarding traffic down
that branch. If one receiver on that branch becomes active and requests the multicast traffic, the router
dynamically modifies the distribution tree and starts forwarding traffic again.
Shortest path trees have the advantage of creating the optimal path between the source and the receivers.
This guarantees the minimum amount of network latency for forwarding multicast traffic. This
optimization does come with a price, though: The routers must maintain path information for each
source. In a network that has thousands of sources and thousands of groups, this can quickly become a
resource issue on the routers. Memory consumption from the size of the multicast routing table is a
factor that network designers must take into consideration.
Shared trees have the advantage of requiring the minimum amount of state in each router. This lowers
the overall memory requirements for a network that allows only shared trees. The disadvantage of
shared trees is that, under certain circumstances, the paths between the source and receivers might not be
the optimal paths-which might introduce some latency in packet delivery. Network designers must
carefully consider the placement of the RP when implementing an environment with only shared trees.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 12 of 19
Multicast Forwarding
In unicast routing, traffic is routed through the network along a single path from the source to the
destination host. A unicast router does not really care about the source address-it only cares about the
destination address and how to forward the traffic towards that destination. The router scans through its
routing table and then forwards a single copy of the unicast packet out the correct interface in the
direction of the destination.
In multicast routing, the source is sending traffic to an arbitrary group of hosts represented by a
multicast group address. The multicast router must determine which direction is upstream (toward the
source) and which direction (or directions) is downstream. If there are multiple downstream paths, the
router replicates the packet and forwards the traffic down the appropriate downstream paths-which is not
necessarily all paths. This concept of forwarding multicast traffic away from the source, rather than to
the receiver, is called reverse path forwarding.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 13 of 19
A multicast packet from source 151.10.3.21 is received on interface S0. A check of the unicast route
table shows that the interface that this router would use to forward unicast data to 151.10.3.21 is S1.
Because the packet has arrived on S0, the packet will be discarded.
Figure: RPF Check Succeeds shows an example of a successful RPF check.
Figure: RPF Check Succeeds
This time the multicast packet has arrived on S1. The router checks the unicast routing table and finds
that S1 is the correct interface. The RPF check passes and the packet is forwarded.
Protocol-Independent Multicast
Protocol-independent multicast (PIM) gets its name from the fact that it is IP routing protocolindependent. PIM can leverage whichever unicast routing protocols are used to populate the unicast
routing table, including EIGRP, OSPF, BGP, or static routes. PIM uses this unicast routing information
to perform the multicast forwarding function, so it is IP protocol-independent. Although PIM is called a
multicast routing protocol, it actually uses the unicast routing table to perform the reverse path
forwarding (RPF) check function instead of building up a completely independent multicast routing
table. PIM does not send and receive multicast routing updates between routers like other routing
protocols do.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 14 of 19
Sparse-Dense Mode
Cisco has implemented an alternative to choosing just dense mode or just sparse mode on a router
interface new IP. This was necessitated by a change in the paradigm for forwarding multicast traffic via
PIM that became apparent during its development. It turned out that it was more efficient to choose
sparse or dense on a per group basis rather than a per router interface basis. Sparse-dense mode
facilitates this ability.
Network administrators can also configure sparse-dense mode. This configuration option allows
individual groups to be run in either sparse or dense mode, depending on whether RP information is
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 15 of 19
available for that group. If the router learns RP information for a particular group, it will be treated as
sparse mode; otherwise, that group will be treated as dense mode.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 16 of 19
received by a receiver's last hop router, the last-hop may also join the shortest path tree to the source.
The source's RP periodically sends SAs, which include all sources within that RP's own domain.
Figure: MSDP Example shows how data would flow between a source in domain A to a receiver in
domain E.
Figure: MSDP Example
MDSP was developed for peering between Internet Service Providers (ISPs). ISPs did not want to rely
on an RP maintained by a competing ISP to service their customers. MSDP allows each ISP to have
their own local RP and still forward and receive multicast traffic to the Internet.
Anycast RP-Logical RP
A very useful application of MSDP is called anycast RP. This is a technique for configuring a multicast
sparse-mode network to provide for fault tolerance and load sharing within a single multicast domain.
Two or more RPs are configured with the same IP address on loopback interfaces-say, 10.0.0.1, for
example (refer to Figure: Anycast RP). The loopback address should be configured as a 32 bit address.
All the downstream routers are configured so that they know that their local RP's address is 10.0.0.1. IP
routing automatically selects the topologically closest RP for each source and receiver. Because some
sources might end up using one RP and some receivers a different RP, there needs to be some way for
the RPs to exchange information about active sources. This is done with MSDP. All the RPs are
configured to be MSDP peers of each other. Each RP will know about the active sources in the other
RP's area. If any of the RPs fail, IP routing will converge and one of the RPs will become the active RP
in both areas.
Note: The Anycast RP example above uses IP addresses from RFC 1918. These IP addresses are
normally blocked at interdomain borders and therefore are not accessible to other ISPs. You
must use valid IP addresses if you want the RPs to be reachable from other domains.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 17 of 19
Figure: Anycast RP
Note: The RPs are used only to set up the initial connection between sources and receivers. After
the last-hop routers join the shortest path tree, the RP is no longer necessary.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 18 of 19
Review Questions
Q - What is the range of available IP multicast addresses?
A - 224.0.0.0 to 239.255.255.255.
Q - What is the purpose of IGMP?
A - IGMP is used between the hosts and their local multicast router to join and leave multicast groups.
Q - What is an advantage of IGMPv2 over IGMPv1?
A - IGMPv2 has a leave group message that can greatly reduce the latency of unwanted traffic on a
LAN.
Q - What is a potential disadvantage of IGMP snooping over CGMP on a low-end Layer 2 switch?
A - IGMP snooping requires the switch to examine every multicast packet for an IGMP control
message. On a low-end switch, this might have a severe performance impact.
Q - What is an advantage of shortest path (or source) trees compared to shared trees?
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012
Page 19 of 19
A - Source trees guarantee an optimal path between each source and each receiver, which will minimize
network latency.
Q - What is an advantage of using shared trees?
A - Shared trees require very little state to be kept in the routers, which requires less memory.
Q - What information does the router use to do an RPF check?
A - The unicast routing table.
Q - Why is protocol-independent multicast called "independent"?
A - PIM works with any underlying IP unicast routing protocol-RIP, EIGRP, OSPF, BGP or static
routes.
Q - What is the main advantage of MBGP?
A - Providers can have noncongruent unicast and multicast routing topologies.
Q - How do RPs learn about sources from other RPs with MSDP?
A - RPs are configured to be MSDP peers with other RPs. Each RP forwards source active (SA)
messages to each other.
Q - What is the purpose of the anycast RP?
A - Load balancing and fault tolerance.
http://docwiki.cisco.com/wiki/Internet_Protocol_Multicast
04/01/2012