FR FieldReady Academy
Unit 4ConceptsObjective 1.810 min read

IPv6 Addressing

Unit 4: IP Addressing and Subnetting. Lesson 15 of 49 in NetPlus Academy.

IPv6 exists because the 4.3 billion IPv4 addresses ran out. An IPv6 address is 128 bits, written as eight groups of four hex digits separated by colons.

Writing addresses

2001:0db8:0000:0000:0000:ff00:0042:8329 shortens by two rules: drop leading zeros in each group, and replace one run of consecutive all-zero groups with :: (only once). Result: 2001:db8::ff00:42:8329. The network prefix is written CIDR style, and a standard LAN is a /64: 64 bits of network, 64 bits of interface identifier.

Address types

  • Global unicast: routable on the internet, currently allocated from 2000::/3 (addresses starting 2 or 3).
  • Link-local: fe80::/10. Every IPv6 interface has one automatically. Used for neighbor discovery and routing protocol traffic on the local link only; never routed. The IPv6 cousin of APIPA, but present on every host all the time.
  • Unique local: fc00::/7, in practice starting fd. Private addressing, routable inside the organization but not on the internet.
  • Multicast: ff00::/8. Replaces broadcast entirely. ff02::1 is all nodes on the link, ff02::2 is all routers.
  • Anycast: any unicast address assigned to more than one interface; the nearest one answers.
  • Loopback: ::1.

How hosts get addresses

  • SLAAC (stateless address autoconfiguration): the router sends a router advertisement with the /64 prefix; the host builds its own interface ID. With EUI-64 the host takes its 48-bit MAC, inserts ff:fe in the middle, and flips the seventh bit. Modern systems usually use a random interface ID instead for privacy.
  • DHCPv6: stateful, like IPv4 DHCP, or stateless to hand out DNS servers while SLAAC provides the address.
  • Neighbor Discovery Protocol (NDP) replaces ARP. Neighbor solicitation and advertisement resolve MAC addresses over ICMPv6 multicast.
Exam tip: an address starting fe80 is link-local and tells you nothing about internet connectivity. "Hosts build their own address from a router advertisement" is SLAAC.
Remember
128 bits, /64 LANs. 2000::/3 global, fe80 link-local, fd unique local, ff multicast, ::1 loopback. SLAAC builds from the RA.
Deeper explanation

IPv6 Addressing, explained slowly

Why IPv6 looks the way it does

IPv4 has about 4.3 billion addresses and the world has many more devices than that. IPv6 uses 128 bits, enough to give every grain of sand its own network. Because 128 bits is far too long to write in decimal, it is written in hexadecimal: eight groups of four hex digits, separated by colons.

2001:0db8:0000:0000:0000:ff00:0042:8329

Shortening: two rules

  1. Drop leading zeros inside each group. 0db8 becomes db8, 0000 becomes 0, 0042 becomes 42.
  2. Replace one run of consecutive all-zero groups with ::. Only once per address, or nobody could tell how many groups were removed.
2001:0db8:0000:0000:0000:ff00:0042:8329
2001:db8:0:0:0:ff00:42:8329          after rule 1
2001:db8::ff00:42:8329               after rule 2

Network and host, IPv6 style

The prefix works like CIDR: 2001:db8:1:2::/64 means the first 64 bits are the network. A normal LAN is always a /64: 64 bits of network, 64 bits of interface identifier (the host part). Nobody counts hosts in IPv6 subnets; every /64 has more addresses than the entire IPv4 internet.

Address types by prefix

Starts with        Type              Meaning
2 or 3 (2000::/3)  global unicast    routable on the internet
fe80::/10          link-local        automatic on every interface, never routed
fc00::/7 (fd..)    unique local      private, like RFC 1918
ff00::/8           multicast         ff02::1 all nodes, ff02::2 all routers
::1                loopback          this host

The one that surprises people: every IPv6 interface always has a link-local fe80 address, whether or not it has anything else. It is used to talk to the router and neighbors on the local link only. Seeing fe80 tells you nothing about internet connectivity. IPv4's APIPA appears only when DHCP fails; IPv6's link-local is always there.

There is no broadcast. Multicast does the job: ff02::1 reaches all nodes on the link.

How a host gets its address

  • SLAAC (stateless address autoconfiguration). The router periodically sends a router advertisement containing the /64 prefix. The host takes the prefix and builds its own interface ID. No server needed.
  • EUI-64 is one way to build that ID from the MAC address: split the 48-bit MAC in half, insert ff:fe in the middle, and flip the seventh bit of the first byte.
MAC:       00:1A:2B:3C:4D:5E
split:     00:1A:2B  |  3C:4D:5E
insert:    00:1A:2B:FF:FE:3C:4D:5E
flip bit:  02:1A:2B:FF:FE:3C:4D:5E     (00 becomes 02)
result:    021a:2bff:fe3c:4d5e

Modern systems usually generate a random interface ID instead, for privacy, but the exam still expects you to recognize EUI-64.

  • DHCPv6 works like IPv4 DHCP. Stateful DHCPv6 hands out addresses. Stateless DHCPv6 hands out only extras, such as DNS servers, while SLAAC provides the address.

NDP replaces ARP

IPv4 uses ARP broadcasts to find a neighbor's MAC address. IPv6 uses the Neighbor Discovery Protocol over ICMPv6 multicast: a neighbor solicitation asks, a neighbor advertisement answers. NDP also delivers router advertisements and detects duplicate addresses.

How the exam asks it

  • "Hosts build their own address from information the router sends": SLAAC.
  • "An address starting fe80": link-local, local link only.
  • "Which replaces ARP in IPv6": NDP.
  • "Shorten 2001:0db8:0000:0000:0001:0000:0000:0001": 2001:db8::1:0:0:1 or 2001:db8:0:0:1::1 (only one :: allowed).

What to memorize

  • 128 bits, hex, /64 LANs. 2000::/3 global, fe80 link-local, fd unique local, ff multicast, ::1 loopback.
  • SLAAC builds from the router advertisement. EUI-64: insert ff:fe, flip the seventh bit.