This manual chiefly
focuses on the IP multicast technology and device operations. Unless otherwise
stated, the term “multicast” in this document refers to IP
multicast.
As a technique coexisting 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 a network, multicast greatly saves
network bandwidth and reduces network load.
With the multicast technology, a network
operator can easily provide new value-added services, such as live Webcasting,
Web TV, distance learning, telemedicine, Web radio, real-time
videoconferencing, and other bandwidth- and time-critical information services.
I. Unicast
In unicast, the information source sends a
separate copy of information to each host that needs the information, as shown
in Figure 1-1.

Figure 1-1 Unicast transmission
Assume that Hosts B, D and E need this
information. The information source establishes a separate transmission channel
for each of these hosts.
In unicast transmission, the traffic over
the network is proportional to the number of hosts that need the information.
If a large number of users need the information, the information source needs
to send a copy of the same information to each of these users. This means a
tremendous pressure on the information source and the network bandwidth.
As we can see from the information
transmission process, unicast is not suitable for batch transmission of
information.
In broadcast, the information source sends
information to all hosts on the network, even if some hosts do not need the
information, as shown in Figure
1-2.

Figure 1-2 Broadcast transmission
Assume that only Hosts B, D, and E need the
information. If the information source broadcasts the information, Hosts A and
C also receive it. In addition to information security issues, this also causes
traffic flooding on the same network.
Therefore, broadcast is disadvantageous in
transmitting data to specific hosts; moreover, broadcast transmission is a
significant usage of network resources.
III. Multicast
As discussed above, the unicast and
broadcast techniques are unable to provide point-to-multipoint data transmissions
with the minimum network consumption.
The multicast technique has solved this
problem. When some hosts on the network need multicast information, the
multicast source (Source in the figure) sends only one copy of the information.
Multicast distribution threes are built for the multicast packets through
multicast routing protocols, and the packets are replicated only on nodes where
the trees branch, as shown in Figure 1-3:

Figure 1-3 Multicast transmission
Assume that Hosts B, D and E need the
information. To receive the information correctly, these hosts need to join a
receiver set, which is known as a multicast group. The routers on the network
duplicate and forward the information based on the distribution of the
receivers in this set. Finally, the information is correctly delivered to Hosts
B, D, and E.
To sum up, multicast has the following
advantages:
l
Over unicast: As multicast traffic flows to the
node the farthest possible from the source before it is replicated and
distributed, an increase of the number of hosts will not remarkably add to the
network load.
l
Over broadcast: As multicast data is sent only
to the receivers that need it, multicast uses the network bandwidth reasonably
and brings no waste of network resources, and enhances network security.
The following roles are involved in
multicast transmission:
l
An information sender is referred to as a
Multicast Source (“Source” in Figure 1-3).
l
Each receiver is a Multicast Group Member
(“Receiver” in Figure
1-3).
l
All receivers interested in the same information
form a Multicast Group. Multicast groups are not subject to geographic
restrictions.
l
A router that supports Layer 3 multicast is
called multicast router or Layer 3 multicast device. In addition to providing
the multicast routing function, a multicast router can also manage multicast
group members.
For a better understanding of the multicast
concept, you can assimilate multicast transmission to the transmission of TV
programs, as shown in Table
1-1.
Table 1-1 An
analogy between TV transmission and multicast transmission
|
Step
|
TV transmission
|
Multicast transmission
|
|
1
|
A TV station transmits a TV program
through a channel.
|
A multicast source sends multicast data
to a multicast group.
|
|
2
|
A user tunes the TV set to the channel.
|
A receiver joins the multicast group.
|
|
3
|
The user starts to watch the TV program
transmitted by the TV station via the channel.
|
The receiver starts to receive the
multicast data that the source sends to the multicast group.
|
|
4
|
The user turns off the TV set or tunes to
another channel.
|
The receiver leaves the multicast group
or joins another group.
|
l
A multicast source does not necessarily belong
to a multicast group. Namely, a multicast source is not necessarily a multicast
data receiver.
l
A multicast source can send data to multiple
multicast groups at the same time, and multiple multicast sources can send data
to the same multicast group at the same time.
I. Advantages of multicast
Advantages of the multicast technique
include:
l
Enhanced efficiency: reduces the CPU load of
information source servers and network devices.
l
Optimal performance: reduces redundant traffic.
l
Distributive application: Enables
point-to-multiple-point applications at the price of the minimum network
resources.
II. Applications of multicast
Applications of the multicast technique
include:
l
Multimedia and streaming applications, such as
Web TV, Web radio, and real-time video/audio conferencing.
l
Communication for training and cooperative
operations, such as distance learning and telemedicine.
l
Data warehouse and financial applications (stock
quotes).
l
Any other point-to-multiple-point data
distribution application.
Based on how the receivers treat the
multicast sources, there are two multicast models:
I. ASM model
In the ASM model, any sender can send
information to a multicast group as a multicast source, and numbers of
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 position of multicast sources in advance.
However, they can join or leave the multicast group at any time.
II. SSM model
In the practical life, users may be
interested in the multicast data from only certain 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 radical difference between the SSM
model and the ASM model is that in the SSM model, receivers already know the
locations of the multicast sources by some other means. In addition, the SSM
model uses a multicast address range that is different from that of the ASM
model, and dedicated multicast forwarding paths are established between
receivers and the specified multicast sources.
IP multicast addresses the following
questions:
l
Where should the multicast source transmit
information to? (multicast addressing)
l
What receivers exist on the network? (host
registration)
l
Where is the multicast source from which the
receivers need to receive multicast data? (multicast source discovery)
l
How should information be transmitted to the
receivers? (multicast routing)
IP multicast falls in the scope of
end-to-end service. The multicast architecture involves the following four
parts:
1)
Addressing mechanism: Information is sent from a
multicast source to a group of receivers through a multicast address.
2)
Host registration: Receiver hosts are allowed to
join and leave multicast groups dynamically. This mechanism is the basis for
group membership management.
3)
Multicast routing: A multicast distribution tree
(namely a forwarding path tree for multicast data on the network) is
constructed for delivering multicast data from a multicast source to receivers.
4)
Multicast applications: A software system that
supports multicast applications, such as video conferencing, must be installed
on multicast sources and receiver hosts, and the TCP/IP stack must support
reception and transmission of multicast data.
To allow communication between multicast
sources and multicast group members, network-layer multicast addresses, namely,
multicast IP addresses must be provided. In addition, a technique must be
available to map multicast IP addresses to link-layer multicast MAC addresses.
Internet Assigned Numbers Authority (IANA)
assigned the Class D address space (224.0.0.0 to 239.255.255.255) for IPv4
multicast. The specific address blocks and usages are shown in Table 1-2.
Table 1-2 Class D IP address blocks and
description
|
Address block
|
Description
|
|
224.0.0.0 to 224.0.0.255
|
Reserved permanent group addresses. The IP
address 224.0.0.0 is reserved, and other IP addresses can be used by routing
protocols and for topology searching, protocol maintenance, and so on.
Commonly used permanent group addresses are listed in Table 1-3. 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 in the IP header.
|
|
224.0.1.0 to 238.255.255.255
|
Globally scoped group addresses. This
block includes two types of designated group addresses:
l
232.0.0.0/8: SSM group addresses, and
l
233.0.0.0/8: Glop group addresses; for
details, see RFC 2770.
|
|
239.0.0.0 to 239.255.255.255
|
Administratively scoped multicast
addresses. These addresses are considered to be locally rather than globally
unique, and can be reused in domains administered by different organizations
without causing conflicts. For details, refer to RFC 2365.
|
l
The membership of a group is dynamic. Hosts can
join or leave multicast groups at any time.
l
“Glop” is a mechanism for assigning
multicast addresses between different autonomous systems (ASs). By filling an
AS number into the middle two bytes of 233.0.0.0, you get 255 multicast
addresses for that AS.
Table 1-3 Some reserved multicast
addresses
|
Address
|
Description
|
|
224.0.0.1
|
All systems on this subnet, including
hosts and routers
|
|
224.0.0.2
|
All multicast routers on this subnet
|
|
224.0.0.3
|
Unassigned
|
|
224.0.0.4
|
Distance Vector Multicast Routing
Protocol (DVMRP) routers
|
|
224.0.0.5
|
Open Shortest Path First (OSPF) routers
|
|
224.0.0.6
|
OSPF designated routers/backup designated
routers
|
|
224.0.0.7
|
Shared Tree (ST) routers
|
|
224.0.0.8
|
ST hosts
|
|
224.0.0.9
|
Routing Information Protocol version 2
(RIPv2) routers
|
|
224.0.0.11
|
Mobile agents
|
|
224.0.0.12
|
Dynamic Host Configuration Protocol (DHCP) server/relay agent
|
|
224.0.0.13
|
All Protocol Independent Multicast (PIM) routers
|
|
224.0.0.14
|
Resource Reservation Protocol (RSVP)
encapsulation
|
|
224.0.0.15
|
All Core-Based Tree (CBT) routers
|
|
224.0.0.16
|
Designated Subnetwork Bandwidth Management (SBM)
|
|
224.0.0.17
|
All SBMs
|
|
224.0.0.18
|
Virtual Router Redundancy Protocol (VRRP)
|
As defined in RFC 4291, the format of an
IPv6 multicast is as follows:

Figure 1-4 IPv6 multicast format
l
0xFF: 8 bits, indicating that this address is an
IPv6 multicast address.
l
Flags: 4 bits, of which the high-order flag is
reserved and set to 0; the definition and usage of the second bit can be found
in RFC 3956; and definition and usage of the third bit can be found in RFC
3306; the low-order bit is the Transient (T) flag. When set to 0, the T flag
indicates a permanently-assigned multicast address assigned by IANA; when set
to 1, the T flag indicates a transient, or dynamically assigned multicast
address.
l
Scope: 4 bits, indicating the scope of the IPv6
internetwork for which the multicast traffic is intended. Possible values of
this field are given in Table
1-4.
l
Reserved: 80 bits, all set to 0 currently.
l
Group ID: 112 bits, identifying the multicast
group. For details about this field, refer to RFC 3306.
Table 1-4 Values of the Scope field
|
Value
|
Meaning
|
|
0, 3, F
|
Reserved
|
|
1
|
Node-local scope
|
|
2
|
Link-local scope
|
|
4
|
Admin-local scope
|
|
5
|
Site-local scope
|
|
6, 7, 9 through D
|
Unassigned
|
|
8
|
Organization-local scope
|
|
E
|
Global scope
|
III. Ethernet multicast MAC
addresses
When a unicast IP packet is transmitted over
Ethernet, the destination MAC address is the MAC address of the receiver. When
a multicast packet is transmitted over Ethernet, however, the destination
address is a multicast MAC address because the packet is directed to a group
formed by a number of receivers, rather than to one specific receiver.
1)
IPv4 multicast MAC addresses
As defined by IANA, the high-order 24 bits
of an IPv4 multicast MAC address are 0x01005e, bit 25 is 0x0, and the low-order
23 bits are the low-order 23 bits of a multicast IPv4 address. The IPv4-to-MAC
mapping relation is shown in Figure 1-5.

Figure 1-5 IPv4-to-MAC address mapping
The high-order four bits of a multicast
IPv4 address are 1110, indicating that this address is a multicast address, and
only 23 bits of the remaining 28 bits are mapped to a MAC address, so five bits
of the multicast IPv4 address are lost. As a result, 32 multicast IPv4
addresses map to the same MAC address. Therefore, in Layer 2 multicast
forwarding, a device may receive some multicast data addressed for other IPv4
multicast groups, and such redundant data needs to be filtered by the upper
layer.
2)
IPv6 multicast MAC addresses
The high-order 16 bits of an IPv6 multicast
MAC address are 0x3333, and the low-order 32 bits are the low-order 32 bits of
a multicast IPv6 address. Figure
1-6 shows an example of mapping an IPv6 multicast address,
FF1E::F30E:0101, to a MAC address.

Figure 1-6 An example of IPv6-to-MAC
address mapping
1.3.2 Multicast Protocols
l
Generally, we refer to IP multicast working at
the network layer as Layer 3 multicast and the corresponding multicast
protocols as Layer 3 multicast protocols, which include IGMP/MLD, PIM/IPv6 PIM,
and MSDP; we refer to IP multicast working at the data link layer as Layer 2
multicast and the corresponding multicast protocols as Layer 2 multicast
protocols, which include IGMP Snooping/MLD Snooping, and multicast VLAN/IPv6
multicast VLAN.
l
IGMP Snooping, IGMP, multicast VLAN, PIM and
MSDP are for IPv4, MLD Snooping, MLD, IPv6 multicast VLAN, and IPv6 PIM are for
IPv6.
This section provides only general descriptions about applications
and functions of the Layer 2 and Layer 3 multicast protocols in a network. For
details of these protocols, refer to the respective chapters.
I. Layer 3 multicast protocols
Layer 3 multicast protocols include
multicast group management protocols and multicast routing protocols. Figure 1-7 describes
where these multicast protocols are in a network.

Figure 1-7 Positions of Layer 3
multicast protocols
1)
Multicast management protocols
Typically, the internet group management
protocol (IGMP) or multicast listener discovery protocol (MLD) is used between
hosts and Layer 3 multicast devices directly connected with the hosts. These
protocols define the mechanism of establishing and maintaining group
memberships between hosts and Layer 3 multicast devices.
2)
Multicast routing protocols
A multicast routing protocol runs on Layer
3 multicast devices to establish and maintain multicast routes and forward
multicast packets correctly and efficiently. Multicast routes constitute a
loop-free data transmission path from a data source to multiple receivers,
namely, a multicast distribution tree.
In the ASM model, multicast routes come in
intra-domain routes and inter-domain routes.
l
An intra-domain multicast routing protocol is
used to discover multicast sources and build multicast distribution trees
within an AS so as to deliver multicast data to receivers. Among a variety of
mature intra-domain multicast routing protocols, protocol independent multicast
(PIM) is a popular one. Based on the forwarding mechanism, PIM comes in two
modes – dense mode (often referred to as PIM-DM) and sparse mode (often
referred to as PIM-SM).
l
An inter-domain multicast routing protocol is
used for delivery of multicast information between two ASs. So far, mature
solutions include multicast source discovery protocol (MSDP).
For the SSM model, multicast routes are not
divided into inter-domain routes and intra-domain routes. Since receivers know
the position of the multicast source, channels established through PIM-SM are
sufficient for multicast information transport.
II. Layer 2 multicast protocols
Layer 2 multicast protocols include IGMP
Snooping/MLD Snooping and multicast VLAN/IPv6 multicast VLAN. Figure 1-8
shows where these protocols are in the network.

Figure 1-8 Position of Layer 2 multicast
protocols
1)
IGMP Snooping/MLD Snooping
Running on Layer 2 devices, Internet Group
Management Protocol Snooping (IGMP Snooping) and Multicast Listener Discovery
Snooping (MLD Snooping) are multicast constraining mechanisms that manage and
control multicast groups by listening to and analyzing IGMP or MLD messages
exchanged between the hosts and Layer 3 multicast devices, thus effectively
controlling the flooding of multicast data in a Layer 2 network.
2)
Multicast VLAN/IPv6 multicast VLAN
In the traditional multicast-on-demand
mode, when users in different VLANs on a Layer 2 device need multicast
information, the upstream Layer 3 device needs to
forward a separate copy of the multicast data to each VLAN of the Layer 2 device. With the multicast VLAN or IPv6 multicast
VLAN feature enabled on the Layer 2 device, the Layer 3 multicast device needs
to send only one copy of multicast to the multicast VLAN or IPv6 multicast VLAN
on the Layer 2 device. This avoids
waste of network bandwidth and extra burden on the Layer 3 device.
1.4 Multicast Packet Forwarding Mechanism
In a multicast model, a multicast source
sends information to the host group identified by the multicast group address in
the destination address field of IP multicast packets. Therefore, to deliver
multicast packets to receivers located in different parts of the network,
multicast routers on the forwarding path usually need to forward multicast
packets received on one incoming interface to multiple outgoing interfaces.
Compared with a unicast model, a multicast model is more complex in the
following aspects.
l
To ensure multicast packet transmission in the
network, unicast routing tables or multicast routing tables specially provided
for multicast must be used as guidance for multicast forwarding.
l
To process the same multicast information from
different peers received on different interfaces of the same device, every
multicast packet is subject to a reverse path forwarding (RPF) check on the
incoming interface. The result of the RPF check determines whether the packet
will be forwarded or discarded. The RPF check mechanism is the basis for most
multicast routing protocols to implement multicast forwarding.
When configuring IGMP Snooping, go to the
following sections for information you are interested in:
l
IGMP
Snooping Overview
l
IGMP
Snooping Configuration Task List
l
Displaying and Maintaining IGMP Snooping
l
IGMP Snooping Configuration Examples
l
Troubleshooting
IGMP Snooping Configuration
2.1 IGMP Snooping Overview
Internet Group Management Protocol Snooping
(IGMP Snooping) is a multicast constraining mechanism that runs on Layer 2
devices to manage and control multicast groups.
By analyzing received IGMP messages, a
Layer 2 device running IGMP Snooping establishes mappings between ports and
multicast addresses and forwards multicast data based on these mappings.
As shown in Figure 2-1, when IGMP Snooping is not
running on the switch, multicast packets are broadcast to all devices at Layer
2. When IGMP Snooping is running on the switch, multicast packets for known
multicast groups are multicast to the receivers, rather than broadcast to all
hosts, at Layer 2.

Figure 2-1 Before and after IGMP Snooping is enabled on the Layer 2 device
I. IGMP Snooping related ports
As shown in Figure 2-2, Router A connects to the
multicast source, IGMP Snooping runs on Switch A and Switch B, Host A and Host
C are receiver hosts (namely, multicast group members).

Figure 2-2 IGMP Snooping related ports
Ports involved in IGMP Snooping, as shown
in Figure 2-2,
are described as follows:
l
Router port: A router port is a port on the
Ethernet switch that leads switch towards the Layer 3 multicast device (DR or
IGMP querier). In the figure, Ethernet 1/0/1 of Switch A and Ethernet 1/0/1 of
Switch B are router ports. The switch registers all its local router ports
(including static and dynamic router ports) in its router port list.
l
Member port: A member port is a port on the
Ethernet switch that leads switch towards multicast group members. In the
figure, Ethernet 1/0/2 and Ethernet 1/0/3 of Switch A and Ethernet 1/0/2 of
Switch B are member ports. The switch registers all the member ports (including
static and dynamic member ports) on the local device in its IGMP Snooping
forwarding table.
l
Whenever mentioned in this document, a router
port is a port on the switch that leads the switch to a Layer 3 multicast
device, rather than a port on a router.
l
An IGMP-snooping-enabled switch deems that all
its ports on which IGMP general queries with the source address other than
0.0.0.0 or PIM hello messages are received to be router ports.
II. Aging timers for dynamic ports
in IGMP Snooping and related messages and actions
Table 2-1 Aging timers for dynamic ports
in IGMP Snooping and related messages and actions
|
Timer
|
Description
|
Message before expiry
|
Action after expiry
|
|
Router port aging timer
|
For each router port, the switch sets a
timer initialized to the aging time of the route port.
|
IGMP general query of which the source
address is not 0.0.0.0 or PIM hello
|
The switch removes this port from its
router port list.
|
|
Member port aging timer
|
When a port joins a multicast group, the
switch sets a timer for the port, which is initialized to the member port
aging time.
|
IGMP membership report
|
The switch removes this port from the
multicast group forwarding table.
|
The port aging mechanism of IGMP Snooping works only for dynamic
ports; a static port will never age out.
A switch running IGMP Snooping performs different
actions when it receives different IGMP messages, as follows:
I. When receiving a general query
The IGMP querier periodically sends IGMP
general queries to all hosts and routers (224.0.0.1) on the local subnet to
find out whether active multicast group members exist on the subnet.
Upon receiving an IGMP general query, the
switch forwards it through all ports in the VLAN except the receiving port and
performs the following to the receiving port:
l
If the receiving port is a router port existing
in its router port list, the switch resets the aging timer of this router port.
l
If the receiving port is not a router port
existing in its router port list, the switch adds it into its router port list
and sets an aging timer for this router port.
II. When receiving a membership
report
A host sends an IGMP report to the
multicast router in the following circumstances:
l
Upon receiving an IGMP query, a multicast group
member host responds with an IGMP report.
l
When intended to join a multicast group, a host
sends an IGMP report to the multicast router to announce that it is interested
in the multicast information addressed to that group.
Upon receiving an IGMP report, the switch
forwards it through all the router ports in the VLAN, resolves the address of
the reported multicast group, and performs the following:
l
If no forwarding table entry exists for the
reported group, the switch creates an entry, adds the port as member port to
the outgoing port list, and starts a member port aging timer for that port.
l
If a forwarding table entry exists for the
reported group, but the port is not included in the outgoing port list for that
group, the switch adds the port as a member port to the outgoing port list, and
starts a member port aging timer for that port.
l
If a forwarding table entry exists for the
reported group and the port is included in the outgoing port list, which means
that this port is already a member port, the switch resets the member port
aging timer for that port.
A switch does not forward an IGMP report through a non-router port.
The reason is as follows: Due to the IGMP report suppression mechanism, if the
switch forwards a report message through a member port, all the attached hosts
listening to the reported multicast address will suppress their own reports
upon hearing this report, and this will prevent the switch from knowing whether
any hosts attached to that port are still active members of the reported
multicast group.
III. When receiving a leave group
message
When an IGMPv1 host leaves a multicast
group, the host does not send an IGMP leave group message, so the switch cannot
know immediately that the host has left the multicast group. However, as the
host stops sending IGMP reports as soon as it leaves a multicast group, the
switch deletes the forwarding entry for the member port corresponding to the
host from the forwarding table when its aging timer expires.
When an IGMPv2 or IGMPv3 host leaves a
multicast group, the host sends an IGMP leave group message to the multicast
router.
When the switch hears a group-specific IGMP
leave group message on a member port, it first checks whether a forwarding
table entry for that group exists, and, if one exists, whether its outgoing
port list contains that port.
l
If the forwarding table entry does not exist or
if its outgoing port list does not contain the port, the switch discards the
IGMP leave group message instead of forwarding it to any port.
l
If the forwarding table entry exists and its
outgoing port list contains the port, the switch forwards the leave group
message to all router ports in the VLAN. Because the switch does not know
whether any other hosts attached to the port are still listening to that group
address, the switch does not immediately removes the port from the outgoing
port list of the forwarding table entry for that group; instead, it resets the
member port aging timer for the port.
Upon receiving the IGMP leave group message
from a host, the IGMP querier resolves from the message the address of the multicast
group that the host just left and sends an IGMP group-specific query to that
multicast group through the port that received the leave group message. Upon
hearing the IGMP group-specific query, the switch forwards it through all its
router ports in the VLAN and all member ports for that multicast group, and
performs the following:
l
If any IGMP report in response to the
group-specific query is heard on a member port before its aging timer expires,
this means that some host attached to the port is receiving or expecting to
receive multicast data for that multicast group. The switch resets the aging
timer of the member port.
l
If no IGMP report in response to the
group-specific query is heard on a member port before its aging timer expires,
this means that no