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.
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.
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.
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:
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.
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.
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:
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 184.108.40.206/4 address space. In other words, they range from 220.127.116.11 to 18.104.22.168.
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:
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:
The fields that do not appear in the old format are described below:
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:
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:
Next, we configure R3 as the candidate RP:
Then we configure R2 as the BSR to advertise R3 as the RP:
Now we configure our host R1 to join a multicast group. Let’s use the FF07::7 multicast address for this:
Let’s check to see if R2 has found a valid RP:
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 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:
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 22.214.171.124/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.
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.
Learn the benefits of IPv6 in areas such as addressing, security, and multicasting, and delve into the details with our multi-chapter guide.
Learn how IPv6 handles multicast more efficiently than IPv4 while still using Protocol Independent Multicast (PIM) and follow in-depth examples.
Learn how to configure iptables for IPv6, covering the basics of installing, configuring, viewing, editing, and persistence.
Learn about IPv6 pinholing and understand how it’s different from creating firewall holes in an IPv4 environment.
Learn about IPv6 security features like the Authentication Header and Encapsulation Security Payload and compare them to IPv4.
Learn about IPv6 proxy features, operation, implementation options, and benefits, and see examples of how IPv6 proxies can be used.
IPv6 includes a new feature called Stateless Address Auto-Configuration (SLAAC) that allows devices to determine their own IPv6 addresses. Learn how it works and how it can save you time and money with our free guide.
Understand how IPv6 tunnelling is used to encapsulate IPv6 packets in IPv4 and follow examples with configuration instructions.
What is IPv6 address compression? How does it work? Why do you need it? Find out all the details, including rules for using it, in our short but complete free guide.