TechKnowSurge
Cisco CCNA 1.7 Cisco CCNA 4.1 Cisco CCST Networking 2.1 CompTIA Network+ 1.7 Cisco CCNA 1.8 Cisco CCNA 1.9 Cisco CCST Networking 2.3 CompTIA Network+ 3.4
VideoNetworkFree

IPv6 Overview

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.

Complete this video to capture a CTF flag worth 1 point.

About this video

IPv6 emerged from the repeated limitations of IPv4, which progressed through a series of RFCs — from classful addressing in RFC 791, to subnetting in RFC 950, to variable-length subnet masking and CIDR notation, and finally to private addressing and NAT in RFC 1918. Each of these developments extended the usable life of IPv4, but the explosive growth of internet-connected devices ultimately exhausted the 32-bit address space, which supports roughly 4.3 billion unique addresses. IPv6 responds to this by expanding the address space to 128 bits, yielding 2 to the 128th power possible addresses — a number large enough to accommodate foreseeable demand well into the future. Beyond scale, IPv6 also introduces improvements in efficiency, simplified header structures, and built-in support for modern networking requirements. An IPv6 address consists of eight hextets, each 16 bits wide and expressed in hexadecimal, totaling 128 bits. By default, the first four hextets represent the network portion and the last four represent the interface identifier, with a prefix length — commonly /64 — marking the boundary between the two. IPv6 defines three primary address types: unicast for one-to-one communication, multicast for one-to-many delivery, and anycast for one-to-nearest routing among a group of eligible devices. Broadcast does not exist in IPv6; its functional equivalent is handled through specific multicast groups. Within unicast, there are link-local addresses, which are confined to a single network segment; global unicast addresses, which are publicly routable on the internet; and unique local addresses, which are privately routable within an organization but not intended for internet routing. IPv6 addresses can be assigned in several ways. Link-local addresses are generated automatically when an interface comes online, either randomly or through the EUI-64 method derived from the device's MAC address. Global unicast addresses can be configured statically, assigned by a DHCPv6 server, or self-assigned through Stateless Address Autoconfiguration (SLAAC). With SLAAC, a device generates its own interface identifier locally and then uses Neighbor Discovery Protocol to query the local router for the network prefix, combining the two to produce a globally unique address without requiring a central assignment authority. Neighbor Discovery Protocol (NDP) is fundamental to IPv6 operation, replacing ARP for MAC address resolution and facilitating the router solicitation and router advertisement process that makes SLAAC possible.

What you'll learn

What's covered

IPv6 Overview

Aligned to

Cisco CCNA
1.7 Describe private IPv4 addressing
4.1 Configure and verify inside source NAT using static and pools
1.8 Configure and verify IPv6 addressing and prefix
1.9 Describe IPv6 address types
Cisco CCST Networking
2.1 Compare and contrast private addresses and public addresses
2.3 Identify IPv6 addresses and prefix formats
CompTIA Network+
1.7 Given a scenario, use appropriate IPv4 network addressing
3.4 Given a scenario, implement IPv4 and IPv6 network services

Key terms

Internet Protocol
IP
The principal communications protocol for routing packets across network boundaries.
IP Address
A numerical label assigned to each device connected to a network that uses the Internet Protocol.
Network Address Translation
NAT
A method that maps private IP addresses to a public IP address, allowing multiple devices to share a single public IP.
Dynamic Host Configuration Protocol
DHCP
A network protocol that automatically assigns IP addresses and other configuration parameters to devices on a network.
IPv6
The sixth version of the Internet Protocol, using 128-bit addresses written in hexadecimal and separated by colons to provide a vastly larger address space than IPv4's 32-bit addresses. IPv6 also introduces built-in features like SLAAC, NDP, and mandatory support for IPsec.
Unicast
A transmission type in which a packet is sent from one source directly to one specific destination device, identified by its unique IP or MAC address. Unicast is the standard delivery method for most internet traffic such as web browsing and file downloads.
Multicast
A transmission type in which data is sent from one source to a specific group of devices that have subscribed to a multicast group address, rather than to all devices or just one. This differs from broadcast (all devices) and unicast (one device).
Anycast
A transmission type where data is sent to an anycast address and delivered to only one of several devices associated with that address, typically the nearest or best-available one.
Stateless Address Autoconfiguration
SLAAC
An IPv6 mechanism that allows devices to automatically generate a globally unique IPv6 address using the network prefix from a Router Advertisement combined with a locally generated interface identifier, without requiring a DHCP server. SLAAC uses the EUI-64 process or a random interface ID to create the host portion of the address.
Neighbor Discovery Protocol
NDP
An IPv6 protocol that replaces ARP and handles router discovery, address autoconfiguration, and address resolution on local links.

Topics

Ipv6 Ipv4 Network Addressing Dhcpv6 Neighbor Discovery Protocol Networking

Transcript

IP address history

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.

Why we need IPv6

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.

IPv6 formatting

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.

IPv6 address types

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.

Unicast address types

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.

Assigning addresses

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.

Neighbor discovery protocol

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.

About TechKnowSurge

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 →