NewAI Content Creation is now live in Early Access
Turning Point Academyby Training Center
Skip to content
0%
IP Networks: Addressing and SubnettingLesson 8 of 8
Video lesson

IPv6: The Modern Address Space

BeginnerVideo lesson
22 min videoBeginner

IPv6: The Modern Address Space

Example prompt

Where you are: Module 4, lesson 8 of 8 — the finale of the addressing module. You know IPv4 inside out now: its structure, its subnets, its gateways, and (last lesson) the NAT machinery keeping its too-small address space alive. This lesson meets the protocol built to end that scarcity for good. IPv6 is not "IPv4 with longer numbers" — it rethinks notation, address types and even the existence of broadcast. It already carries roughly half the Internet's users, so this is not a preview of the future; it is the other half of the present.

What you'll learn

  • Read, write and correctly compress IPv6 addresses (with the :: rule that trips everyone)
  • Identify the address types you will actually meet: global, link-local, unique local, multicast — and anycast, properly understood
  • Explain what replaced broadcast (and gently correct a textbook slip about it)
  • Describe, at awareness level, how hosts get IPv6 addresses: SLAAC and DHCPv6
  • Place IPv6 adoption honestly, using the two live measurements professionals cite

This lesson builds on Chapter 6 of Dr. Tahseen Al-Doori's Network Essentials, whose IPv6 section correctly foresaw the transition and taught the compression rule you will drill below. Because the book's coverage is brief and predates the deployment era, this lesson carries more modernization weight than any other in the module — including two corrections to the book's figures, made plainly and kindly, the way we corrected ICMP's layer in Module 2.

Why a new Internet Protocol

Last lesson ended with IPv4's arithmetic: 32 bits, about 4.3 billion addresses, pool empty since 2011, the world running on translation tricks. IPv6's answer is brute mathematical force: 128-bit addresses.

How many is 2^128? Here the book needs its first correction. Its printing renders the figure as "340 quadrillion" — a slip of magnitude, not of idea, and easy to make with numbers this alien. The true count is about 3.4 × 10^38 — 340 undecillion — a number 23 orders of magnitude beyond a quadrillion. The book's other framing of the same fact is actually right on the money: the IPv6 space is about 79 octillion times the entire IPv4 Internet. Numbers this size stop meaning anything by comparison, so try one scale check: 340 undecillion addresses is enough to give every human alive tens of octillions of addresses each — personally. The practical meaning is simple: scarcity is over. No rationing, no address anxiety — and, as you will see, no NAT required for ordinary connectivity.

Abundance changes design habits you just learned. In IPv4, subnetting meant squeezing host counts (a /26 here, a /28 there). In IPv6, the universal convention is that every ordinary subnet is a /64 — half the bits name networks, half name hosts, and every LAN gets more addresses than the whole IPv4 Internet squared. The sizing ladder from three lessons ago simply retires; network design becomes counting subnets, never hosts.

Reading and writing IPv6 addresses

A 128-bit address is written as eight groups of four hexadecimal digits, separated by colons — hex being the compact bit-notation you learned in this module's first lesson:

2001:0db8:0000:0000:0000:0000:0c3a:0001

Nobody writes them long-form. Two compression rules produce the addresses you will actually see:

  1. Drop leading zeros in each group. 0db8db8, 00011, and a group of all zeros becomes a single 0. (Trailing zeros stay — 4a00 never shrinks.)
  2. Compress one run of consecutive all-zero groups to ::. The double colon means "fill with as many zero groups as needed to reach eight." Because that fill is elastic, the book's caution is exactly right and worth engraving: :: may appear only once per address. Two :: would leave the address ambiguous — no way to know how many zeros each one hides. One further limit the standard adds: :: may only replace a run of two or more all-zero groups. A lone zero group is always written as a plain 02001:db8:0:1:1:1:1:1, never 2001:db8::1:1:1:1:1.

Applying both: 2001:0db8:0000:0000:0000:0000:0c3a:00012001:db8::c3a:1. Two conventions finish the craft: write hex digits in lowercase, and when two zero runs compete for the ::, compress the longer one (the leftmost, if tied) — the tidy-writing rules the industry standardized.

Practice — compress these five. Answers follow; no peeking until all five are done.

  1. 2001:0db8:0000:0000:0000:0000:0000:0001
  2. fe80:0000:0000:0000:02a4:6bff:fe12:3456
  3. 2001:0db8:00ab:0000:0000:0000:c001:0001
  4. fd00:0000:0000:0001:0000:0000:0000:0005
  5. 0000:0000:0000:0000:0000:0000:0000:0001

Answers. 1 — 2001:db8::1. 2 — fe80::2a4:6bff:fe12:3456 (leading zeros drop; 3456 keeps everything). 3 — 2001:db8:ab::c001:1. 4 — fd00:0:0:1::5 — the trap: two zero runs, and only the longer (three groups) may become ::; the two-group run is written out as 0:0. Writing fd00::1::5 is invalid — one :: only, ever. 5 — ::1, an address you will meet again two sections from now.

Prefixes work exactly as CIDR taught you: 2001:db8:9d21:4a00::/64 names a subnet — the first 64 bits — and your subnetting instincts transfer unchanged.

One exception mirrors the /31 story from the subnetting lessons: on a link joining exactly two routers, RFC 6164 endorses a /127 — two addresses, one per end, and no room wasted on a subnet that will never hold anything else. Ordinary LANs stay /64; the narrow prefix is for point-to-point links only.

The address types you'll meet

IPv4 taught you unicast, broadcast, multicast, plus special ranges. IPv6 reorganizes the cast — recognizing each member by its opening digits is a genuinely useful skill, because a glance then tells you an address's scope and job.

Global unicast (GUA) — begins with 2 or 3 (the block 2000::/3). The public, Internet-routable addresses: IPv6's equivalent of IPv4 public space, except there is enough for every device to have its own. No NAT, no translation table — a global address is reachable end to end (with a firewall, not a translator, providing the protection — Module 7's territory).

Link-local — begins fe80. Every IPv6 interface gives itself one, automatically, always — no router, no server, no configuration. It works only on the local link (routers never forward it), and the machinery of the local network runs on it: neighbor discovery, router discovery, gateway addresses. If IPv4's APIPA was a symptom of failure, link-local is the same idea promoted to a design principle — mandatory, permanent, and load-bearing.

Unique local (ULA) — begins fd in practice (the fc00::/7 block, with the locally-generated half starting fd). The spiritual heir of RFC 1918: private addressing for internal use, not routable on the Internet. Unlike IPv4 private space, the standard has you generate a random 40-bit chunk inside the prefix, making accidental collisions between two organizations wildly unlikely — a lesson learned from decades of everyone using the same 192.168.1.0/24.

Multicast — begins ff. Delivery to a group, as in IPv4 but far more central. Two group addresses worth knowing by sight: ff02::1 reaches all nodes on the link, ff02::2 all routers on the link.

Anycast — the subtle one, and the site of the book's second correction, coming next. An anycast address has no reserved range you can spot: it is an ordinary unicast address deliberately configured in several places at once, and routing delivers each packet to the nearest copy. One-of-many delivery — perfect for replicated services (the DNS root servers are the textbook example: one address, many sites worldwide, everyone reaches a close one).

And the two specials: ::1 is loopback — your exercise 5, IPv6's whole answer to 127.0.0.1 — and :: alone means "no address yet."

No broadcast — and what took its job

Here is IPv6's most surprising design decision for an IPv4-trained mind: there is no broadcast address. At all. IPv4's habit of shouting at every device on the network — every ARP request interrupting every host — does not exist in IPv6.

The book, contrasting the protocols, says broadcast's role passes to anycast. That attractive guess deserves the kind correction, because the standard settled it differently: broadcast's job went to multicast. Where IPv4 shouted at everyone, IPv6 speaks to a group — and only members of that group are interrupted. The all-nodes group ff02::1 can reproduce broadcast's effect when truly needed, but the everyday machinery is more surgical than that. Address resolution — ARP's old job — is handled by the Neighbor Discovery Protocol (NDP), which asks its "who has this address?" question via a cleverly narrow solicited-node multicast group that typically only the target host is listening to. One host asked, one host interrupted, instead of everyone. Anycast, meanwhile, is not a replacement for talking-to-all but the opposite: delivery to exactly one of many — nearest wins. Keep the triple straight — multicast: all of a group · anycast: nearest of a set · broadcast: retired — and you own a distinction that trips up plenty of working engineers.

Getting an address without asking: SLAAC and DHCPv6

You have never typed an IPv6 address into a settings page, yet your devices carry them. Two mechanisms do the work — awareness level here, details when DHCP returns in Module 5.

SLAAC (stateless address autoconfiguration) is the IPv6-native way and needs no server at all. Routers periodically announce the network's prefix on the link (a router advertisement, carried by NDP). A booting host listens, takes the prefix, appends an interface identifier of its own making, and simply has an address — plus the router's own link-local address as its gateway, from the same announcement. The book describes the host deriving that identifier from its MAC address, which was the original method (EUI-64, recognizable by ff:fe sitting in the middle of the identifier); modern systems default to randomized identifiers instead, precisely so your address does not broadcast your hardware identity wherever you roam — the same privacy turn you met with MAC randomization in lesson 3. Windows has randomized them by default since Vista, so expect no ff:fe marker in your own output; you will still meet EUI-64 identifiers on some Linux and embedded stacks, and on routers. "Stateless" is the key property: no server keeps a ledger of who holds what.

DHCPv6 is the managed alternative: a server hands out addresses and records the lease — stateful, like the IPv4 DHCP you know. Organizations choose it when they want that ledger (auditing, fixed assignments); flags in the router's advertisements tell hosts which regime the network runs, and blends of both are common.

Expect plurality either way: a normal interface carries its link-local address, one or more global addresses (often including short-lived "temporary" ones for outbound privacy), all simultaneously. In IPv4, one address per interface was the rule; in IPv6, several is normal and by design — you will see your own collection in the lab.

Dual stack: how adopted is IPv6, really?

The transition strategy that actually worked is dual stack: run IPv4 and IPv6 side by side on the same devices and links, let applications prefer IPv6 when both ends offer it, fall back to IPv4 otherwise. Your phone almost certainly does this daily without telling you.

So how far along is the transition? Professionals answer with two live measurements — and the numbers disagree, instructively:

  • Google's measurement — the share of users reaching Google over IPv6 — crossed the symbolic 50% line for the first time in March 2026, and hovers around half.
  • APNIC's measurement — a per-country capability estimate, weighted differently and drawing on ad-delivered tests — puts the worldwide figure in the low 40s percent over the same period.

Both are honest; they measure different populations by different methods, and the gap between them is a permanent lesson in reading Internet statistics: always ask what exactly was measured. The defensible summary for 2026: roughly half the Internet's users reach major services over IPv6 — some large networks are near-fully IPv6, others barely started. Check the current values yourself — these are living dashboards, not frozen facts: Google's tracker at google.com/intl/en/ipv6/statistics.html and APNIC's at stats.labs.apnic.net/ipv6 (figures above as of mid-2026). That split reality is why everything stays dual-stacked, why NAT and CGNAT persist alongside a NAT-free IPv6 world, and why a 2026 network professional must be fluent in both protocols — which, as of this lesson, you are beginning to be.

Watch: IPv6 from scratch — the very basics of IPv6 explained

Why this video earns its place. OneMarcFifty's explainer takes an unusual and healthy approach: instead of presenting IPv6 as IPv4-with-longer-addresses, it designs IPv6 from a blank slate — the author's own cure for years of struggling to map one protocol onto the other. Having just arrived from five lessons of IPv4, you are exactly the audience that benefits from seeing the protocol stand on its own. It runs about fifteen minutes, calm and concrete, and pairs naturally with the sections you just read.

As you watch, notice:

  • The shortening rules in action — leading zeros dropped, one :: per address — matching the five compressions you just did by hand.
  • The tour of scopes — global, unique local, link-local, localhost — and how the opening digits give each away, just as in our type gallery.
  • A host holding several addresses of different scopes at the same time, the plurality you will verify on your own machine in a moment.
  • The practical tooling asides — IPv6 ping and traceroute forms, and square brackets around addresses in a browser — which preview this lesson's lab.

Caveats folded in. The video introduces SLAAC only briefly — its sequel dives into address assignment properly, and our SLAAC/DHCPv6 section above already carries what you need at this level. It also predates the adoption milestones discussed above: the addressing content is standards-based and stable, but for how far the transition has come, use this lesson's numbers and live links, not any impression from the video's era.

The video reinforces visually what you just learned — the lesson is complete without it.

Lab: Meet Your Own IPv6 Addresses

Objective. Find your machine's real IPv6 addresses, classify each by type on sight, identify your IPv6 gateway, and ping it — meeting the one practical wrinkle (the zone ID) that catches every newcomer.

Setup. Your own computer on its normal network. Read-only: nothing will be changed. Have this lesson's type gallery at hand. (Whether your network offers global IPv6 depends on your ISP — the lab teaches either way.)

Steps.

  1. List your IPv6 addresses. Windows: ipconfig. Linux: ip -6 addr. Authored Windows excerpt of the kind you should expect:
code
Wireless LAN adapter Wi-Fi:

   IPv6 Address. . . . . . . . . . . : 2001:db8:9d21:4a00:b41c:7e2a:5f03:9c44
   Temporary IPv6 Address. . . . . . : 2001:db8:9d21:4a00:d1c5:80aa:29e3:cf2b
   Link-local IPv6 Address . . . . . : fe80::b41c:7e2a:5f03:9c44%12
   IPv4 Address. . . . . . . . . . . : 192.168.10.57
  1. Classify what you see, by opening digits: anything starting fe80 is your link-local (there will always be one); anything starting 2 or 3 is a global address (there may be several — a stable one and temporary ones); fd-something would be a unique local address. Note your machine's full collection — plurality is the norm, as promised.
  2. Note the number after the % on Windows link-local lines (after the % on the sample: interface number twelve). That is the zone ID — hold that thought for step 5.
  3. Find your IPv6 gateway. Windows: the Default Gateway line of ipconfig — typically an fe80-something address (your router's link-local, learned from router advertisements — SLAAC at work). Linux: ip -6 route show default, which prints default via fe80::... naming the same thing.
  4. Ping the gateway — with the wrinkle. A link-local address alone is ambiguous: every interface has its own private fe80 universe, so the OS must be told which interface you mean. That is the zone ID's job. Windows: append % and your interface number from step 3 to the gateway address (as in ping fe80::be24:11ff:fea9:3c01%12 — using your own values). Linux: append % and the interface name (%wlan0, %eth0) or use ping -6.
  5. Expect replies with low times — this never leaves your local link.
  6. If step 2 found a global address, test the wider world: ping -6 google.com (Windows and Linux both accept -6 to insist on IPv6). Replies mean you are on the IPv6 Internet right now — no NAT involved, end to end.

Expected result. At minimum: a link-local address found, your gateway identified, and gateway pings answered. On IPv6-enabled ISPs: one or more global addresses and successful -6 pings to the outside.

Verify. You can point at each address in your own output and name its type from its opening digits alone — and you can explain to a rubber duck why the gateway ping needed that % suffix.

Questions.

  1. Your gateway came back as an fe80-something address. Why is it not a problem that your router's gateway address is link-local rather than global?
  2. In the sample output the stable global address and the link-local share the same interface identifier, while the Temporary address does not. What does that tell you about how each was built?
  3. Why does ping need a zone ID for link-local targets but not for global ones?

(Answers: 1 — the gateway is only ever reached across the local link (one hop — the same truth you proved with MAC addressing), so a link-local address is exactly sufficient, and SLAAC hands it out automatically. 2 — the stable global and the link-local were built from one interface identifier appended to two different prefixes (the router-advertised global prefix, and fe80:: for the link) — the SLAAC construction; the "Temporary" address, with its unrelated tail, is the rotating privacy variant, generated separately. 3 — a global address is unique across all interfaces, so the OS can route it unaided; every interface has an identical-looking fe80 universe, so link-local targets are ambiguous until the zone ID picks the interface.)

If it goes wrong.

  • No global address at all — only fe80. Not a failure of the lab: your ISP or network simply has not enabled IPv6 (you have plenty of company — that is what "roughly half the Internet" means from the other side). All steps except seven still work; note the finding as your result.
  • Windows: pinging the bare fe80 gateway fails or errors out (typically transmit failed, general failure or destination unreachable). Almost always the missing zone ID — re-check step 5. The interface number must be yours, read from your own ipconfig link-local line, not copied from this page.
  • Wrong zone ID. Same symptoms as missing: the ping went looking on a different interface's fe80 universe. List interfaces (ipconfig shows the % number per adapter; ip link on Linux shows names) and retry.
  • ping -6 google.com reports no host found or fails while step 6 worked. Your resolver returned no IPv6 record for the name on your network, or v6 reaches only the local link (router advertising, ISP not delivering). Interesting data, not an error — record it.
  • Output shows more addresses than the sample. Expected — temporary addresses rotate and several may linger. Classify them all; they will all start with the same few digit patterns you know.

Reset/cleanup. Nothing to reset. Keep your address inventory in your notes: the capstone's documentation phase asks for exactly this kind of interface census.

Check yourself

  1. Compress fe80:0000:0000:0000:0000:0000:0000:00c8 fully, and state the rule that forbids compressing 2001:0db8:0000:00ff:0000:0000:0000:0001 as 2001:db8::ff::1.
  2. Classify each by type, from opening digits alone: fd12:3456:789a::1 · ff02::2 · 2001:db8:4a00::e77 · fe80::9eff:fe12:aa04 · ::1.
  3. A study partner declares: "IPv6 dropped broadcast, and anycast replaced it." Deliver the kind, complete correction — including what anycast actually does.
  4. Your laptop shows a link-local address, a global address and two "temporary" global addresses, all at once. Is something misconfigured? Explain.
  5. On Windows, ping to your router's bare fe80 address fails, yet the same address with a % suffix answers instantly. Explain the mechanism, not just the fix.
  6. In a report you write "IPv6 adoption is 50%." A reviewer objects: "APNIC says low forties." Resolve the disagreement in two sentences, professionally.

Answers

  1. fe80::c8 — drop leading zeros, compress the single zero run. The forbidden form uses :: twice; since each :: expands to any number of zero groups, a double use is ambiguous (the eight groups could be split between them in several ways), so the rule is one :: per address, always.
  2. fd12:... — unique local (private-style, the fd giveaway). ff02::2 — multicast, the all-routers group (ff = multicast). 2001:... — global unicast (starts with 2). fe80::... — link-local. ::1 — loopback, the machine itself.
  3. Broadcast is indeed gone — but its duties passed to multicast plus the Neighbor Discovery Protocol: group delivery (ff02::1 for all nodes when truly needed) and the narrow solicited-node multicast that replaced ARP's shout. Anycast is something else entirely: one address configured in many places, with routing delivering to the nearest copy — one-of-many delivery for replicated services, not all-of-them delivery. The book's phrasing conflates the two; the standard separates them.
  4. Nothing is wrong — this is IPv6's designed plurality. The link-local address is mandatory and permanent; the stable global address is for being reached; the temporary ones are privacy addresses that rotate for outbound connections. One interface, several simultaneous addresses, each with a job.
  5. Every interface carries its own fe80 link-local universe, and identical link-local addresses can legally exist on different links. A bare link-local target is therefore ambiguous — the OS cannot infer which interface to use. The zone ID (% plus interface number on Windows, % plus interface name on Linux) resolves the ambiguity by naming the interface, at which point delivery is a one-hop certainty.
  6. Both figures are current and honest: Google measures the share of its own users arriving over IPv6 (crossed half in March 2026), while APNIC estimates capability per country with different weighting, landing in the low forties. Cite the measure with its source and date — "roughly half by Google's user measure, low-forties by APNIC's, as of mid-2026" — rather than a single naked number.

Key terms

  • IPv6 — the current-generation Internet Protocol: 128-bit addresses, about 3.4 × 10^38 of them.
  • Hex group notation — eight colon-separated groups of four hex digits; leading zeros droppable per group.
  • :: (double colon) — compresses one run of all-zero groups; usable exactly once per address.
  • Global unicast address (GUA) — Internet-routable IPv6 space, beginning with 2 or 3 (2000::/3).
  • Link-local address — the automatic fe80 address every interface always has; valid on its own link only; carries the local machinery.
  • Unique local address (ULA) — private-use space beginning fd (from fc00::/7); the RFC 1918 spirit, with randomized prefixes.
  • Multicast — group delivery, addresses beginning ff; with NDP, the replacement for broadcast. Know ff02::1 (all nodes) and ff02::2 (all routers).
  • Anycast — one address in many places; routing delivers to the nearest instance. One-of-many, not all.
  • NDP (Neighbor Discovery Protocol) — IPv6's ARP-and-more: address resolution and router discovery over multicast.
  • SLAAC — stateless autoconfiguration: hosts build their own addresses from router-advertised prefixes; no server, no ledger.
  • DHCPv6 — the stateful alternative: server-assigned, lease-tracked addressing.
  • Temporary (privacy) address — a rotating SLAAC address with a randomized identifier, used for outbound traffic.
  • Zone ID — the % suffix that names an interface when targeting link-local addresses.
  • Dual stack — running IPv4 and IPv6 side by side; the transition's working reality.
  • ::1 — the IPv6 loopback; the whole 127.x block's job in one address.

Summary

  • IPv6 ends address scarcity with 128-bit addresses — about 3.4 × 10^38 (340 undecillion; correcting the book's "quadrillion" slip), and with abundance comes design change: every ordinary subnet is a /64, and NAT is no longer needed for reachability.
  • Notation: eight hex groups; drop leading zeros; compress one zero run with :: — once per address, ever.
  • Type recognition by opening digits: 2/3 global · fe80 link-local · fd unique local · ff multicast · ::1 loopback.
  • Broadcast is gone: multicast plus NDP (solicited-node groups replacing ARP's shout) took its job; anycast — corrected from the book — is nearest-of-many delivery, a different tool entirely.
  • Addresses arrive by SLAAC (stateless, router-advertised, modernized with randomized identifiers) or DHCPv6 (stateful, ledgered); interfaces normally hold several addresses at once.
  • Adoption, honestly stated: about half of users by Google's live measure (first crossing half in March 2026), low forties by APNIC's — different methods, both true; cite measure, source and date.
  • Dual stack is the operating reality, which is why both this lesson and the seven before it will stay professionally relevant for years.
  • You inventoried your own machine's IPv6 addresses, classified them on sight, and pinged your gateway across the zone-ID wrinkle.

Next lesson

Module 4 gave every device its addresses; Module 5 puts them to work in conversations. First up: the two personalities of the transport layer — TCP's careful, acknowledged delivery versus UDP's speed — and a Wireshark capture of a real handshake, on the wire, from your own machine.

Sources and further study