GuideIP AddressingIPv6

IPv6: Addresses, Prefixes, SLAAC and Neighbor Discovery

Learn IPv6 from the ground up: 128-bit notation, compression, address types, prefixes, link-local addressing, Neighbor Discovery, SLAAC, DHCPv6, and operational differences from IPv4.

IP AddressingSubnettingAll guides

What IPv6 is and why it exists

IPv6 is the current version of the Internet Protocol designed as the successor to IPv4. Its base specification is RFC 8200 and it uses 128-bit addresses instead of IPv4's 32-bit addresses.

The larger address space is the most visible change, but IPv6 also simplifies the base header, uses extension headers, removes IP broadcast, and relies on Neighbor Discovery for functions that IPv4 splits across ARP and other mechanisms.

Important: IPv6 is not simply IPv4 with longer addresses. The forwarding goal is similar, but addressing, discovery, configuration, and operational behavior differ in important ways.

How an IPv6 address is written

An IPv6 address contains 128 bits and is normally represented as eight 16-bit hexadecimal groups separated by colons.

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

Leading zeros inside a group may be omitted and one continuous run of zero groups may be compressed with ::. The address above can therefore be written as 2001:db8::1.

Only one :: compression is allowed in an address, because using it twice would make the number of omitted groups ambiguous.

IPv6 prefixes

IPv6 uses CIDR-style prefix lengths. In 2001:db8:1234:5678::1/64, the first 64 bits identify the subnet prefix and the remaining bits identify an interface identifier within that subnet.

A /64 is the normal prefix length for standard IPv6 LANs and is assumed by several mechanisms such as SLAAC. Other prefix lengths are valid for aggregation, loopbacks, point-to-point links, and special designs; do not interpret /64 as the only possible IPv6 prefix.

The organization usually receives a larger aggregate, such as a /48 or /56, and then allocates /64 subnets from that space in a structured way.

Main IPv6 address types

Global unicast

Globally routable unicast space is primarily allocated from 2000::/3. These addresses are the closest conceptual equivalent to public IPv4 unicast addresses.

Unique local

fc00::/7 is reserved for unique-local addressing, with locally assigned space commonly generated under fd00::/8. It is useful for internal communication but is not a direct one-to-one replacement for RFC 1918 design habits.

Multicast

IPv6 uses multicast extensively and does not use IP broadcast. Multicast addresses start with ff00::/8.

Loopback and unspecified

::1 is loopback and :: is the unspecified address.

Neighbor Discovery

IPv6 Neighbor Discovery, defined by RFC 4861, uses ICMPv6 messages for several local-link functions: discovering neighbors, resolving link-layer addresses, learning routers, detecting reachability, and receiving network parameters.

Neighbor Solicitation and Neighbor Advertisement messages perform the address-resolution role that ARP provides in IPv4. Router Solicitation and Router Advertisement messages help hosts discover routers and configuration information.

Blocking ICMPv6 indiscriminately can therefore break normal IPv6 operation. ICMPv6 is part of the protocol's control plane, not merely a ping mechanism.

SLAAC and DHCPv6

Stateless Address Autoconfiguration lets a host form its own address from information in Router Advertisements. DHCPv6 can provide managed addresses or additional configuration, depending on the network design.

Router Advertisements remain important even when DHCPv6 is present because they communicate routing and on-link information. IPv6 configuration is therefore not simply a copy of the DHCPv4 model.

The IPv6 header and extension headers

The IPv6 base header is fixed at 40 bytes and is simpler than the variable IPv4 header. Optional functionality is moved into extension headers. Routers do not perform IPv6 packet fragmentation in transit; the sending node is responsible for fragmentation when necessary, generally after Path MTU Discovery identifies a usable size.

The Hop Limit field replaces IPv4 TTL, and the Next Header field identifies either an extension header or the upper-layer protocol.

Important differences from IPv4

  • 128-bit address space instead of 32 bits.
  • No IP broadcast; multicast and anycast cover many related use cases.
  • Neighbor Discovery replaces ARP and provides additional functions.
  • Routers do not fragment packets in transit.
  • Link-local addressing is a normal and essential part of operation.
  • SLAAC can configure hosts without a stateful address server.
  • NAT is not a requirement for conserving global addresses.

IPv6 troubleshooting workflow

Start by checking whether the interface has a link-local address, then verify the global or unique-local address and prefix, Router Advertisement information, default route, neighbor cache, and DNS records. Test link-local reachability before testing remote networks.

Useful tools include ip -6 addr, ip -6 route, ping -6, traceroute6, and platform-specific neighbor-cache commands. Packet capture is particularly useful for Router Advertisements and Neighbor Discovery.

Next steps

Return to IP Addressing for the wider addressing model, or continue to Subnetting for practical IPv4 network division. SubnetMaster also includes IPv6 compression and prefix tools under the tools hub.