Learn

IPv6 Multicast Address

Communication on a network can take several forms depending upon the needs of the particular network application in use. Specifically, it can take place in one of three fundamental ways:

  • Unicast: This is one-to-one communication from one device to another, the type most people are familiar with.
  • Broadcast: This term refers to communication from one device to all devices on a network segment. 
  • Multicast: In its simplest form, multicast refers to communication from one device to a group of devices. This means transmitting to many (but not all) devices that may be on the same network segment or different ones.

Multicast communication is useful for applications such as videoconferencing, some types of VoIP telephony applications, and live video streaming. It dramatically improves the network efficiency of transmitting these types of traffic.

The functionality of multicast is primarily dealt with within the Network Layer of the OSI model. This is where the Internet Protocol resides.

IPv4, which has been around for a very long time, has a very mature and robust suite of multicast protocols and mechanisms. IPv6 has built upon the successes of IPv4 and has been designed to make multicast communication even more streamlined and efficient. In fact, IPv6 has abolished the use of broadcasts completely, replacing them with multicast communication. This is true of the IPv6 control plane mechanisms as well, which are used by protocols such as the Neighbor Discovery Protocol (NDP).

In this article, we’ll be taking a closer look at IPv6 multicast addresses and how they operate.

Summary of key concepts

The following are the main concepts examined in this article.

Concept Description
Multicast network communication Multicast is a method used to send network traffic from one source to a group of receivers.
IPv6 multicast address range IPv6 uses the range of addresses specified via the notation ff00::/8 for multicast.
Benefits of multicast communication Multicast makes one-to-many communication much more efficient because only the interested receivers are sent the traffic.
Implementation of multicast in IPv6 Multicast is implemented similarly to IPv4, using Protocol Independent Multicast (PIM) routing.
Importance of multicast for IPv6 IPv6 actually abolishes broadcast communication completely, replacing it with IPv6 multicast, which makes all IPv6 mechanisms more efficient.

In the following sections, we’ll expand on the various concepts involved in implementing multicast in general and the use of IPv6 multicast addresses in particular.

{{banner-13="/design/banners"}}

When is multicast more efficient than unicast?

To understand the benefits of multicast, it is helpful to imagine a typical video conference among a small group of people within an enterprise network. Imagine that you are using a collaboration application where you can see all of your colleagues in small windows on your screen. All participants see all their colleagues in a similar manner. For the sake of this example, let’s assume that the videoconferencing application allows participant computers to communicate directly.

A videoconference between two endpoints involves relatively simple communication procedures because all audio and video are transmitted directly between the two participating parties, as shown below.

Unicast communication between two videoconferencing endpoints

However, when more than two video endpoints take part, the method of communication becomes more complex because each participant will have to see all the other participants simultaneously. This means your video endpoint will have to send its audio and video to every other participant while they do the same, as illustrated below:

Unicast communication between multiple video conferencing endpoints

Doing this using unicast communication results in multiple communication channels between all pairs of endpoints in a full-mesh fashion. 

Considering that a single high-definition quality audiovisual data stream can consume over 5 Mbps, an HD teleconference with 10 participants will consume well over 50 Mbps for a single endpoint. 

What happens if you get 20, 50, or 100 participants? On a network with multiple video endpoints, you can quickly see how this kind of bandwidth usage is extremely inefficient and does not scale well.

Multicast solves this by allowing each device to send a single stream of packets to a single multicast destination address. The network will take care of duplicating those packets and sending them to all devices participating in a particular multicast group.

Multicast traffic from one videoconferencing source to many receivers

Each participating PC becomes a multicast source, sending one stream of packets, thus using the bandwidth of only a single stream and reducing network usage by a large factor.

Other applications where multicast is used extensively include VoIP telephone conferences with three or more participants, VoIP music on hold (MOH) applications for contact centers, and broadcast TV over IP networks, to name a few.

{{banner-9="/design/banners"}}

Network communication types

Unicast and broadcast communication are generally easy to implement. You use the appropriate destination address of the host you want to reach or the broadcast address, and your packet is sent to either a single host or all hosts on the subnet.

Multicast communication is more complicated because of the additional requirements associated with managing groups and routing traffic within them:

  • It is necessary to define groups of receivers and introduce mechanisms that allow hosts to join and leave these groups.
  • Multicast traffic must be routed so that all hosts that have joined a group will receive this traffic regardless of the subnet in which they reside.
  • Multicast routers must have mechanisms to efficiently route multicast traffic to avoid unnecessary network resource usage. Some of these mechanisms include the following:some text
    • Routers that receive multicast traffic must forward only one copy of a packet to neighboring multicast routers.
    • They must send multicast packets to an adjacent router only if there is an interested receiver downstream from that router.
    • Replication of multicast packets must occur at the edge router closest to the interested receivers.

The multicast address space

An essential component of multicast network operation is the use of a special multicast address space. In both IPv4 and IPv6, a specific range of addresses has been set aside to be used only for multicast. Each multicast address defines a multicast group that hosts can join to become receivers of that group. Any packet with that multicast address in the destination IP field will reach all hosts that are members of that group.

IPv4 multicast addresses belong to the 224.0.0.0/4 address space. In other words, they range from 224.0.0.0 to 239.255.255.255.

Similarly, IPv6 multicast addresses fall in the ff00::/8 address space. The definition of the range of these addresses is a little more complicated than in IPv4 because the address space includes some bits reserved for specific purposes. This additional complexity engenders a much richer and more useful feature set for multicast routing in IPv6, enabling even more features and possibilities for the use of multicast. We’ll talk a little bit more about the structure of the IPv6 multicast address shortly.

Use of IPv6 multicast in network protocols

One of the most effective ways that IPv6 multicast addresses are used is by eliminating the need for broadcasts in network control protocols. For example, in IPv4, the Address Resolution Protocol (ARP) is used to determine the MAC address of the destination host (or the default gateway) so that the IP packet can be encapsulated into an Ethernet frame with the appropriate destination MAC address. ARP sends out a broadcast asking for the appropriate host to respond. Similarly, DHCP uses broadcasts to accomplish its purpose.

IPv6 has eliminated the need for broadcasts by replacing them with multicast communication, vastly increasing network efficiency. For example, IPv4 requires that you limit the number of hosts within a subnet to avoid too many broadcasts resulting in network slowdowns. IPv6 can support larger effective subnet sizes with even thousands of IPv6 hosts in a single subnet due to not using broadcasts.

Protocols such as the Network Discovery Protocol (NDP), which is essentially the IPv6 counterpart of ARP, use IPv6 multicast addresses extensively to perform their functions.

Detailed structure of IPv6 multicast addresses

The IPv6 multicast address is more complex than its IPv4 counterpart, and these addresses come in two types. These are casually referred to as the “old format” described in RFC 2373 and the “new format” described in RFC 7371. The new format is essentially an extension of the old one; it adds several fields that include additional information to support more features or are reserved for future use.

Old IPv6 multicast address format

The old format takes the following form:

Bits Field
8 prefix
4 flags
4 scope
112 group ID

Where:

  • prefix is simply the prefix 0xff, which is the same for all multicast addresses.
  • flags is a set of four bits that act as information flags. The first three (higher-order) bits are reserved and are always set to zero, while the fourth flag indicates the multicast address type:some text
    • 0 indicates a permanently assigned (“well-known”) multicast address set by the global Internet numbering authority.
    • 1 indicates an impermanent (“transient”) multicast address.
  • scope is a 4-bit multicast scope value used to limit the scope of the multicast group. The value used indicates if it is a link-local or global scope and essentially defines how “wide” the multicast network is, among other things.

New IPv6 multicast address format

The new format has a slightly different structure, including multiple fields that provide information and flags to support additional features to futureproof the protocol:

Bits Field
8 prefix
4 ff1
4 scope
4 ff2
4 reserved
8 plen
64 network prefix
32 group ID

The fields that do not appear in the old format are described below:

  • ff1 is the first set of four flags, three of which have been defined. The highest order (leftmost) bit is reserved for future use and must remain 0. The other three, in order of highest to lowest order (left to right), are known as R, P, and T:some text
    • R (Rendezvous Point): This flag indicates whether or not an RP is embedded.
    • P (Prefix): This bit indicates whether or not the address is derived using a network prefix.
    • T (Transient): This bit indicates whether the address is well-known or dynamically assigned. This corresponds to the lowest-order bit in the flags field in the old format for backward compatibility.
  • ff2 is a second set of four flags currently reserved for future use.
  • reserved is a set of four bits also reserved for future use.
  • plen indicates the actual number of bits in the network prefix field that identify the subnet when the P flag is set to 1.

{{banner-10="/design/banners"}}

Deploying IPv6 multicast

The following example shows how to enable IPv6 multicast on a network of Cisco routers. The example will make use of two router roles, defined as follows:

  • Rendezvous Point (RP): The router in this role acts as a “meeting point” for multicast traffic. Multicast routers send all their multicast traffic to the RP and can also request that multicast traffic be sent to them from the RP.
  • Bootstrap Router (BSR): The router in this role automatically and dynamically chooses the RP for the multicast topology.

More information about these can be found in the link at the end of this section. 

In this scenario, we will statically configure the RP and the BSR using the following topology:

IPv6 multicast topology

Note the following:

  • R1 plays the role of our IPv6 host in this example, acting as a multicast receiver.
  • R2 plays the role of the BSR.
  • R3 plays the role of the RP.
  • IPv6 routing has already been configured among all routers using EIGRP.
  • Loopback interfaces with the shown addresses have been created on R2 and R3 to act as the BSR and RP sources, respectively.

Note that in a typical multicast implementation, multicast receivers are actually user devices (PCs, tablets, IP phones, videoconferencing stations, etc.) and not routers, as is the case in this topology. We are using R1 to simulate an IPv6 multicast receiver out of convenience for this example. So wherever you see R1 in this scenario, think “end-user device.”

We start by enabling multicast routing for IPv6 on all devices:

R1,R2 & R3:
(config)#ipv6 multicast-routing

Next, we configure R3 as the candidate RP:

R3(config)#ipv6 pim bsr candidate rp 2001::3

Then we configure R2 as the BSR to advertise R3 as the RP:

R3(config)#ipv6 pim bsr candidate rp 2001::3

Now we configure our host R1 to join a multicast group. Let’s use the FF07::7 multicast address for this:

R1(config)#interface gigabitethernet 0/0
R1(config-if)#ipv6 mld join-group FF07::7

Let’s check to see if R2 has found a valid RP:

R2#show ipv6 pim bsr rp-cache 
PIMv2 BSR C-RP Cache

BSR Candidate RP Cache

Group(s) FF00::/8, RP count 1
  RP 2001::3 SM
    Priority 192, Holdtime 150
    Uptime: 00:00:12, expires: 00:01:21

We can see from the output above that R2 recognizes R3 as the RP for the entire IPv6 multicast address space.

Let’s now take a look at the IPv6 multicast routing table on R2 and see what IPv6 multicast groups are included there:

R2#show ipv6 mroute 
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, 
       C - Connected, L - Local, I - Received Source Specific Host Report,
       P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
       J - Join SPT 
Timers: Uptime/Expires
Interface state: Interface, State

(*, FF07::7), 00:01:53/never, RP 2001::3, flags: SCJ
  Incoming interface: GigabitEthernet0/1
  RPF nbr: FE80::C006:23FF:FE22:0
  Immediate Outgoing interface list:
    GigabitEthernet0/0, Forward, 00:01:53/never

R2 has inserted a (*,G) entry for the FF07::7 IPv6 multicast group, and the incoming interface is GigabitEthernet 0/1, which is the interface facing the RP, as expected.

Finally, let’s generate some multicast traffic and see if it does indeed reach the receiver R1:

R3#ping ff07::7           
Output Interface: GigabitEthernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FF07::7, timeout is 2 seconds:
Packet sent with a source address of 2001::3

Reply to request 0 received from 2001:12::1, 9 ms
Reply to request 1 received from 2001:12::1, 8 ms
Reply to request 2 received from 2001:12::1, 9 ms
Reply to request 3 received from 2001:12::1, 4 ms
Reply to request 4 received from 2001:12::1, 8 ms
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/9 ms
5 multicast replies and 0 errors.

The ping to the IPv6 multicast group address was successful. 

For more detailed information on how to configure IPv6 multicast on Cisco devices and a more in-depth explanation of some of the concepts applied here, refer to this related Cisco documentation

Multicast over the Internet

Multicast traffic is not routable over the Internet because of the huge bandwidth that would be required to do so: Almost all ISPs will drop any packets with a multicast destination address. Multicast is typically applied within enterprise networks to accommodate internal applications that require it. Multicast can be tunneled over the Internet to allow remote sites to participate in multicast applications, but it cannot be natively transmitted over the Internet.

Having said that, there was an attempt to make multicast available over the public Internet using what is known as the GLOP multicast address space, as defined in RFC 3180. This is an experimental, public, statically assigned multicast address space for ISPs and other entities to source multicast content on the Internet. The GLOP address space consists of the 233.0.0.0/8 IPv4 address range.

GLOP addressing defines a multicast address allocation method that provides a block of 255 addresses that are determined by their 16-bit autonomous system number (ASN) allocation. The middle two octets of the GLOP address are formed by the assigned ASN.

GLOP was only experimental and has not been widely implemented or adopted on the Internet. With only 256 multicast addresses available to each ASN, it was inadequate for large-scale broadcasters.

IPv6 multicast addresses present a new opportunity to apply multicast over the Internet. The global scope multicast IPv6 address space has been defined as ffxe::/16, where “x” is any hex value. Global scope multicast addresses, as defined in RFC 4291, present a much larger address space that can be used on the Internet. Even so, adoption has been slow, especially since a large portion of the Internet has yet to be converted to IPv6.

{{banner-sre="/design/banners"}}

Conclusion

Multicast increases the efficient use of network resources by sending a single stream of packets to multiple receivers. Multicast routers duplicate those packets wherever necessary to ensure that the multicast stream reaches all intended recipients.

Multicast is an important part of networking and is a vital feature without which many network applications would not be able to function. IPv6 multicast delivers extensive improvements to the multicast functionality of IPv4, delivering a larger multicast address space and also much more functionality than its predecessor.

The promises of the IPv6 multicast address space are many, and the way IPv6 multicast is implemented provides great potential for its use in the future as the Internet slowly but surely transitions toward a full IPv6 implementation.

What's Next?