IPv6 is the next-generation internet addressing protocol, designed to replace IPv4 with a vastly larger address space and improved networking capabilities. This overview covers the evolution of IP addressing, IPv6 address formatting, address types, assignment methods, and Neighbor Discovery Protocol.
IPv6 Overview
Looking at the IP address history lets us know why IP addresses are the way they are and how they function. I have already covered IPv4 history and how it was developed over time, so I am not going to go real in depth into this, but I am just going to mention a few of the highlights.
One thing we talked about is those RFCs and how they define different functionality and how this is set up. One of the first iterations of IPv4 was RFC 760, where it talked about and defined how IPv4 addresses looked. With that, it just said these first eight bits are the network and the last 24 bits are the host portion. That clearly doesn't allow for as many networks as we have, and that was way too many hosts for the networks, because having that many hosts on the network can burden it and cause problems.
So then, very quickly, 791 came out. RFC 791 started defining that we are going to allot some of these addresses, some of the address space or the scope, and say those are class A, so only the first eight bits are going to define the network. Then we'll have a class B, and with class B the first 16 bits will define the network. Then we have a class C, and that means the first 24 bits will define the network. There are a few others as well on top of that, but that's just the highlights of RFC 791.
Then we said that's still not giving us enough flexibility, so RFC 950 came out. When 950 came out it said we'll still use this classful system in here with A, B and C, but we can further break down those networks by doing subnetting. RFC 950 introduced subnetting, so you can start breaking these big networks, these class A's, down into smaller segments, or class B into smaller segments, or class C into smaller segments.
Then we see a couple of other developments with RFC 1817 and 1878. Around the same time VLSM came out, CIDR notation came out, and classless routing came out. So around the same time there are some different RFCs that came out, and it pretty much said that now you can really vary this up and you don't have to be so strict with your subnetting, so you can actually have variable length subnetting. It took a lot of these boundaries down.
Each time along the way we run out of addresses and start looking at how we can further utilize this IPv4 space, this IPv4 scope. Then we developed RFC 1918, and 1918 created some private addresses. Those private addresses can be used on your local area network, but then they get translated into some sort of public address when it goes out the router or the firewall. So that's where we get NAT and PAT involved.
That worked for quite a while. That gave us definitely some momentum with IPv4 and was able to extend out the use of IPv4, but we're still running into problems with the IPv4 scope or address space, and we need more. That is the reason for IP version 6. It is the solution to giving us a lot more time with IP addressing, and to equip us with the future needs, and that we continue to need more address space.
So how does IPv6 help with this? There are actually a lot of reasons why IPv6 really helps out with equipping us for the next stage in our network communication. There are a lot of efficiencies and security that come involved with this, and we'll talk about all of those efficiencies and things that are involved with making IPv6 what we need moving forward.
But the really big thing is that it just gives us a lot more scope, a lot more addresses that we have to work with. When we created IPv4 there was just no idea that it was going to be as big as it is, so we need now a much bigger address space.
To give you an idea how much bigger it is, IP version 4 uses 2 to the 32nd power. There are 32 bits, so 2 times 2 times 2 times 2, 32 times, which is pretty big. When it was created it was thought of as, well, this is going to last us a long time, and truthfully it did last us a long time. But now, with the explosion of the amount of end devices that need IP addressing, we need a new system. Where the new system comes into play is IPv6, and it is 2 to the 128th power. So it is an incredible number, a much larger scope, a much larger space that we have to work with, and that is the biggest reason for IP version 6.
So what does an IPv6 address look like? Well, it is very large. This is an example of an IPv6 address, and we'll go more in depth into all of the components of this, but really just from a highlight standpoint, each one of these is called a hextet. It actually goes by several different names, but generally speaking we call this a hextet, and each one of these is a hexadecimal number. So this 2 right here is actually four bits, and the zero is another four bits, and this zero right here is another four bits, and this one right here is four bits. So each hextet is 16 bits long, and you can see that 16 times 8 here is 128. So we've got a lot more bits that we work with versus IPv4, which is just the 32 bits.
Generally speaking — now this can vary and it can change — the last four hextets are the host side, or what we call the interface side; it defines an interface. And the first four here is the network portion. We then have a prefix that will define where that line is. In this case right here the prefix is 64, so it defines that the bits on this side are the network side, and then on this side we have the host side. So that's a little bit about the IP version 6 address and what it looks like.
Just a note here though: those IPv6 addresses don't need to look that crazy. It could be as simple as this. We can concatenate or shrink the address, and this would be an example of just a really short address. This happens to be a multicast address, but this is a short address that does exist.
So what are the different address types? A few of the big address types, some of the categories, are unicast. Unicast, remember, is one device sending data to another device. It's a specific device on the network; it could be a remote network or it could be something locally. So a unicast address is a one to one.
Then we have a multicast address. The multicast address is similar to IP version 4 — well, it's pretty much exactly the same thing — as a device to many different devices. So this can send out a multicast address and it could potentially go to multiple devices that are on the network, either the local network or possibly even outside in a remote network. So we've got a multicast address, which would be one to many devices.
Then we have anycast. The anycast is similar to a multicast except that it's going to go to the first available device. Where with a multicast it could be sent out to many different devices at the same time, with anycast there are many devices that can help this device, or can facilitate this device, or can respond to this device, but it is only going to go to one of those devices. So perhaps there are multiple servers, or multiple let's say routers, that are on this network here, and it could respond to this machine right here. Where a multicast may go out and hit every single one of those routers, with anycast the switch is only going to forward this on to one of those devices, and it's going to be the first device from a path standpoint — what is the closest device. So it's going to send it to the closest device. So it is still a one to one, but it has multiple options to choose from. That is the anycast.
Notice that there is no broadcast. Within IPv6, broadcast has pretty much gone away. There is no broadcast address that gets sent out to all devices. However, there is a multicast address that can look much like a broadcast, meaning that most devices are going to subscribe to that multicast address, and so you can send out to a lot of different devices. But it's still considered a multicast; it isn't a broadcast.
Let's get a little further into some different unicast options that we have, different unicast addresses that we have.
First of all we have a link local address. A link local address is similar to, in IPv4, if we have an APIPA address. That's the addresses that automatically get assigned to your devices when there's no DHCP server. So you start up a Windows machine, it doesn't find a DHCP server, and then it will automatically assign a 169.25 address to it, and that is the APIPA address. The link local address is similar to that. It's an IPv6 link local address, but in IP version 6 they're much more important — they play a very critical role with IPv6 addressing. So we're going to talk about link local addresses and how they function.
Then I'm going to jump to this global unicast address. A global unicast address is just a public IP address. In IPv4 we just call them public addresses; they're routable on the internet. That is what a global unicast address is, or a GUA, and we are going to definitely get more in depth into what those global unicast addresses are as well.
Then we've got the unique local. For the unique local address, let me just give an example. This link local address can only go into this local area network; it will not go beyond this router. Whereas a global unicast address can go out to the internet and to the outside world. So let's say then this is all some privately owned network right here. The unique local cannot be sent out to the internet. It's not routable back to this network at all, but it can be routed within this private network right here. So that is a unique local address. You can think of it similar to the private addressing that's in the IP version 4 space — that's the 10. and then, or the 192.168 networks. So it is the private addressing that happens. The difference with this though is it was never intended, was never developed, to be translated to the outside world. So it only stays within your local network here — your meaning your privately owned network — and is not meant to be routed out to the internet.
So how do your machines get all of these addresses? How does it develop them?
Well, the link local address has a couple of different methods of actually creating it. One is that it's randomly assigned to it; Windows machines randomly assign it. Another option is, like Cisco equipment by default will use the EUI-64 to assign addresses to that link local address. So there's a couple of ways that the link local address can get generated, and we'll talk about those different ways.
The other one that I just want to mention is the global unicast address. The global unicast address can be assigned several different ways. One is we could statically assign it, so we could statically assign an address to a machine and then that will be the address that it uses.
The other way is DHCP. DHCP is an IPv4 protocol and it's used to assign addresses to a machine so that way it can get out to the internet, so that's the DHCP server that will assign those. Well, there is a DHCP version 6, and so DHCP version 6 is the equivalent to what DHCP is for IPv4. You have DHCP version 6 for IPv6, so you do have that.
Another method is using SLAAC, and we are going to get more in depth into what SLAAC is. It's the recommended way now to assign IP addresses to machines, and so a lot of this course is going to build up to that point where we can discuss what SLAAC is, so we understand what SLAAC does and how it operates. Sometimes we actually couple these two and we use SLAAC, but then it also references some DHCP options, so we can actually use those in combination with each other as well.
Your machine needs a global unicast address for it to be able to get out onto the internet and have information be able to be returned to that machine, and so you need an address that's capable of doing that. That's why it's called a global unicast address. Somehow it needs to get that. The answer to that in the past with IPv4 was a DHCP server. I've already mentioned how SLAAC can do that, but that's actually a little misleading. SLAAC doesn't assign IP addresses to the machine. In fact, SLAAC, this protocol, allows a machine to assign an IP address to itself.
That's very interesting on how that works. It assigns a globally — globally in the world — unique address to itself. It's kind of crazy, but yes, it's assigning a globally unique address to itself. How it does that is it has these interface bits. The last 64 bits of this address right here is the interface bits on this. And your machine already, with the link local, has a mechanism to generate something that's going to be unique on the local network. So this right here gets generated somehow, either randomly or through the EUI-64, and it's unique to the network — no other machine on the network has that address.
Then all it needs to function is it just needs to know what network it's on, and then it's got a globally unique address. So what will happen is, through neighbor discovery protocol, it will send out some messages and do what's called a router solicitation and ask the router, hey, what network are we on. That router will reply to it and it will give it this information right here. Then it will take this information, tag it onto the information that it's already generated, and now it is a global unicast address; it's unique to the world. So that is how SLAAC works. Generally speaking, that's how SLAAC works, and the machine is able to generate an IP address that's specific to that machine, that's unique and doesn't overlap with any other machine out there.
The reason SLAAC is able to do that is through this neighbor discovery protocol. Neighbor discovery protocol is something that interfaces with IPv6 capabilities, uses to actually do some configuration and create that global unicast address. It can also do some other discoveries on the network. It's a replacement for ARP. IPv6 does not have ARP, and so we somehow still need to find out the MAC addresses, so neighbor discovery protocol does that as well.
We're going to start building upon these concepts and learn how the link local address plays into the neighbor discovery protocol, which plays into doing the router solicitation and getting a router advertisement back, and then that plays into SLAAC and how SLAAC operates. We'll just continually go through this and build upon this information.
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 →