IPv6 was developed to solve the IPv4 address exhaustion problem. While an IPv4 address uses 32 bits, IPv6 uses 128-bit addressing, providing a mathematically vast number of available addresses.
Notation and Compression
An IPv6 address is written in hexadecimal and separated by colons into eight groups of four hex digits.
Example: 2001:0db8:1234:0001:0000:0000:0000:0010/64
To make writing addresses easier, zero compression rules apply:
- Leading zeros in a group can be omitted:
0db8becomesdb8. - The
::symbol can replace a contiguous sequence of zero groups. However,::can only be used once in an address to prevent ambiguity.
Compressed example: 2001:db8:1234:1::10/64
Common Address Types
- Global Unicast: Publicly routable addresses, conceptually similar to public IPv4 addresses. Documentation prefix example:
2001:db8::/32 - Link-Local (
fe80::/10): Automatically generated addresses used for communication on a single local network segment. They are not routable across a router. - Unique Local (
fc00::/7): Conceptually similar to private RFC1918 IPv4 addresses, intended for local communications within a site. - Loopback (
::1): The localhost address, equivalent to IPv4's 127.0.0.1.
Key Differences from IPv4
IPv6 fundamentally alters local network mechanics. It does not use broadcast in the IPv4 sense. Instead, it relies heavily on Multicast and ICMPv6.
Neighbor Discovery Protocol (NDP): Replaces the old IPv4 ARP broadcast mechanism for MAC address resolution using targeted multicast.
Addressing and Routing: IPv6 does not universally require DHCPv6. Devices can autoconfigure their own addresses using SLAAC (Stateless Address Autoconfiguration). Furthermore, default gateway discovery normally comes through Router Advertisements (RA) rather than DHCPv6.
Commands
Testing IPv6 connectivity relies on standard networking commands, occasionally requiring a flag depending on OS support:
# Windows IP configuration
ipconfig
Get-NetIPAddress
# Windows Routing Table
Get-NetRoute
# Ping IPv6
ping 2001:db8::1
ping -6 example.com