IPv6 length, hexadecimal notation, and hextets

IPv6 addresses are 128 bits, usually displayed as eight 16-bit hextets in hexadecimal.

  • Expanded: 2001:0db8:0000:0001:0000:0000:0000:0042
  • Compressed: 2001:db8:0:1::42

Compression and expansion rules

  1. Leading zeros in each hextet may be removed.
  2. One longest run of zero hextets may be replaced with ::.
  3. :: may appear only once per address.
Expand addresses before policy reviews to avoid ambiguity in matching and documentation.

Prefix lengths, network/interface split, and common allocations

The prefix defines network bits, and the remainder is interface identifier space. /64 is common for LAN segments because SLAAC and many operational practices assume 64-bit interface IDs.

Prefix Typical use Count perspective
/48Site allocationCan provide 65,536 /64s
/56Smaller site or customer blockCan provide 256 /64s
/60Small branch groupingCan provide 16 /64s
/64Most LAN and host-facing segmentsStandard subnet size for SLAAC domains
/127Point-to-point routed linksTwo-address link model
/128Host route or loopbackSingle address
Not all IPv6 networks must be /64. /127 and /128 are common exceptions for routed links and host routes.

IPv6 address types

  • Global unicast: Internet-routable assignments.
  • Link-local (fe80::/10): local-link communication, required on interfaces.
  • Unique local (fc00::/7, commonly fd00::/8): private-use addressing.
  • Multicast (ff00::/8): one-to-many delivery.
  • Loopback (::1/128): local host stack test.
  • Unspecified (::): no assigned address.
  • Documentation (2001:db8::/32): examples and training only.

IPv6 has no broadcast address. Neighbor Discovery Protocol uses multicast instead of ARP broadcast behavior.

Subnetting a /48 into /64s

Going from /48 to /64 adds 16 subnet bits. Number of /64s is 2^16 = 65,536. This is BigInt-safe conceptually because the exponent is exact and does not require floating-point approximation.

Example parent: 2001:db8:1200::/48

  • 2001:db8:1200:0000::/64
  • 2001:db8:1200:0001::/64
  • ...
  • 2001:db8:1200:ffff::/64

Subnetting a /56 into /64s

Going from /56 to /64 adds 8 subnet bits. Number of /64s is 2^8 = 256.

Example parent: 2001:db8:2200:1200::/56

  • 2001:db8:2200:1200::/64
  • 2001:db8:2200:1201::/64
  • ...
  • 2001:db8:2200:12ff::/64

SLAAC, DHCPv6, and Neighbor Discovery

Neighbor Discovery (NDP) replaces ARP. SLAAC allows hosts to form addresses from router advertisements and local interface identifiers. DHCPv6 can provide additional stateful addressing and options depending on policy.

Reverse DNS nibble concept

IPv6 reverse DNS under ip6.arpa uses reversed hexadecimal nibbles. Reverse zones are delegated on nibble boundaries, so prefix planning should consider DNS delegation operationally.

Common IPv6 mistakes

  • Compressing with :: multiple times in the same address.
  • Assuming broadcast exists in IPv6 troubleshooting workflows.
  • Ignoring link-local addresses during control-plane diagnosis.
  • Using non-documentation prefixes in published examples.
  • Assuming every segment must be /64 without considering /127 and /128 use cases.

FAQ

Is /64 mandatory for every IPv6 network?

No. /64 is standard for most host LANs, but /127 and /128 are valid and common for specific routed and host-route scenarios.

Why are address counts so large in IPv6?

IPv6 uses 128-bit space, so subnet and host counts grow exponentially with many practical planning advantages.

Do I still need DHCPv6 if I use SLAAC?

Depends on policy. Some environments use SLAAC only, others combine SLAAC with DHCPv6 options, and some use stateful DHCPv6.

Analyze prefixes with the IPv6 Calculator

Use IPv6 Calculator, then continue with MAC Addresses, OUI, and Layer 2 Forwarding.