IPv6 eliminates broadcast traffic in favor of three address types—unicast, multicast, and anycast—each serving a distinct communication role across local and global networks.
IPv6 Address Types
IPv6 does not have broadcasts. What it does have is unicast, multicast and anycast. Unicast is from one device to one device, one to one. Multicast is from one device to multiple devices, one to many. And anycast is from one device to one of potentially many devices.
So an example of an anycast message: if an anycast message was sent out and it was destined to a particular address, and multiple devices had that same anycast address, it would be the first device, or the closest device, that would respond to that anycast message, and the other devices would not need to do that. So anycast is a one-to-one, but it's a one-to-one out of many different options.
We also talked about these unicast messages having multiple types of unicast message. One of them is a link local address, one that can communicate on your local area network. We also talked about a unique local address, and a unique local address communicates on your private network, so it can extend beyond the boundaries of just a subnet, but it doesn't extend beyond the boundaries of what is owned equipment. It doesn't get routed on the internet. And then we have the global unicast address, and the global unicast address can go out on the internet because it's globally unique.
If you have a device that has a network interface on a network that is enabled with IPv6, then it does get a link local address. Every interface that is capable of doing IPv6 must have a link local address. Link local addresses are integrated into the core of how IPv6 works and communicates, so just know for now that IPv6 requires this link local address.
It is automatically generated. Because it's required, it will automatically generate it, and it will be a unique address that is on the network. There are several ways that it can create this, but it does need to be unique on that local network.
It cannot be routed. When you have a link local address it will not go beyond the boundaries of your router, so it stays local; it's local communication only. It's used for things like next hops, so if you're talking about routers and they're communicating, a lot of times they just use link local addresses to communicate back and forth. And then it also can be for neighbor discovery. The neighbor discovery protocol is associated with the IPv6 protocol. Neighbor discovery can be used for things like discovering where the default gateway is and how to get out of the network, and it can also be used to discover things like the MAC address of other machines.
So how do your devices generate a link local address? There are a couple of different ways that it can generate it. If you have a machine and you plug it into the network and it has IPv6 enabled on it, it does need a link local address; it's pretty critical to how IPv6 operates.
This machine will either randomly generate an IP address for this. What it's randomly generating is this: the first 64 bits are specified, so that's going to remain the same, but it's randomly generating the last 64 bits of this address. Or it uses EUI-64, which is a way of taking the MAC address and then making an address out of the MAC address. If it's a MAC address, it's pretty much almost guaranteed to be unique on your network, right, because the MAC address should be unique to that interface. It's a burned-in address, it's unique in the world. MAC addresses are supposed to be that way; they're not always that way, but it's supposed to be that way. So the idea, if you're using EUI-64, is that you're going to get a unique address with that.
Even with the randomly generated one you run the risk of accidentally choosing the same IP address that some other device on the network has, and it needs to be unique, so it goes through a process to double check it. We'll talk about those processes of checking this, but just know at this point that there are two ways that your device gets a link local address: it either randomly generates it, or it uses a process called EUI-64 to generate an IP address, and it uses the MAC address to generate that.
The link local address is going to start with an fe8::, and the first 64 bits are already specified, which means it gives you a range from fe80::, which means all zeros at the end of that, to fe8:: fff ffff f f f f f fff. The last 64 bits are all ones in that case. So we'll randomly choose a number in between that. That is the link local address range.
Then you have that global unicast address. The global unicast address is globally unique, so if you have a global unicast address on your machine, there is no other device in the world that has that same global unicast address. That allows you to be routed to the outside world and be able to get to other devices.
Which seems a little strange, you know: this is an address that's just specifically to your machine, after we've gone years with using private addressing. But at one point in time IPv4 was the same way. You had to have a specific IP address that was specific to your machine to get out onto the rest of the world. Now it's just that a lot of our networks use private addressing. So this global unicast address is not a new concept at all, but we're revitalizing it with IPv6.
For your machine to communicate to the rest of the world using IPv6, it's going to need a global unicast address. Although some of that global unicast address is going to be generated from the machine on your network to do the communications and stuff, some of it must come from an entity outside, something that is going to assign this to you.
So let's say you're in a business and you go to an internet service provider and you ask for a block of addresses that you can use. It could actually vary depending on what your provider is and what your needs are, and there's possibly a cost that's involved in it, so there's just going to be a host of different scenarios in here. But generally speaking, what the ISP is going to assign you is the first three hextets. They're going to give you an address that is a /48, the first 48 bits. That's going to be assigned to you.
Then what you will see is that the next 16 bits, so now we're going to a /64, you have some leeway to assign to subnets, and you can assign these different addresses to subnets. And then the final 64 bits, so from here to the end, with 128 bits total, these then would be assigned to the individual interfaces. So you'll see these /48s and /64s quite often. Most of our networks, when you're talking about IPv6, are going to be /64s.
So what does that look like from a subnetting standpoint? You're just going to count up. This is what I said would be the subnet hextet, and you just count up: zero, one, two, three, four, and once you get to, once again it's hexadecimal, nine, a, b, c, d, e, f, and then it's going to count up to one zero. So this is going to count up, and subnetting with IPv6 is much easier than all of the stuff that we have to do for subnetting with IPv4.
So what does the range look like for a global unicast address? The range is large, is huge. It's going to be 2000::/3. That means that the first three bits are going to be zero zero one, and then it'll be either a zero or one, so that the first bit here is either going to be a two or a three. Those are the two possibilities there. So that means our range is going to be anywhere from 2000:: to 3fff fff, and then really all f's after that. And that gives us a possibility of 2 to the 125th possible combinations. So this gives us how many possible combinations there are with that. So that is a global unicast address.
The next type of address we'll talk about is the unique local. When we say local, what we're actually meaning by that is local to your organization. So this could go beyond your subnet, whereas link local is just your subnet, but with a unique local that could be your whole organization. It just cannot be routed to the outside, cannot be routed globally; it cannot go beyond into your internet service provider or into the rest of the world.
The idea behind it is that these won't get translated. So if you have a machine that's sensitive and you want it to be able to communicate to the rest of your network, but you don't want it to have access to the outside world, this might be a good use of a unique local address.
So what does the range of a unique local address look like? It will be fc00::/7. So the first seven bits are going to be f c or f d. So we see the range is fc00:: to fd and then all s. And what this does is it gives us a range of 2 to the 121st power.
Then we have a multicast address, or actually your computer probably has many multicast addresses. For now, just know that the two that we're most concerned with as we're talking about IPv6 are well-known multicast addresses that we'll be using, and solicited node multicast addresses. It's a very unique thing to IPv6, so we'll get involved with that solicited node multicast address as well.
So what does the multicast range look like? That is going to be ff00::/8. So the range of it is anywhere from ff00:: to all f's, and that gives us 2 to the 120th power, which means that there are a lot of different combinations with these.
There are a few special addresses that you should know.
One of them is everything, or the default route. The default route looks like ::/0. This is similar to a quad zero that you see with IP version 4, and so it will be anything from :: to all f's. This is the whole range, so this is why I say it's all, or the default route. A router will say, if you're going to everything, or anything, then this is the gateway to do it, or this is the next hop to go out to the rest of the world, or this is the default route. So this is the all-inclusive way of saying everything.
Then we have the unspecified, which is ::/128. The unspecified is a range from :: to ::, and so there's only one address; it's all zeros. What this is saying is essentially, I don't know. So sometimes we'll see it within some of the frames that we send out, or within the packets that we send out, before it assigns certain addresses to it. So this is the I don't know, or the unspecified.
Then we have the host itself. The host is ::1/128, so the range is from ::1 to ::1. So just one option here. This specifies the host itself. This is similar to a 127.0.0.1, or the 127.0.0.0 range, the whole range really. So this specifies the host.
So there's the chart as a whole. These are the ones we talked about, and the chart itself is actually a lot bigger; there are a lot more addresses, and it specifies specific ranges. But just know that these are the basic ones. This gives you the foundation, and in fact even our global unicast addresses has actually opened up and there's a few more ranges now. Pretty much anything that's not defined by something else is a global unicast address. So just know that in general we've got these ranges in there, and this table actually shows you them all in order, so it's a good visual to see kind of how they all lay out into this address space.
TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.
Explore free tools and programs →