IPv6 Unspecified Address (::)
Learn about the IPv6 unspecified address :: (all zeros). Understand when it is used as a source address, in routing tables, and its equivalence to IPv4's 0.0.0.0.
IPv6 Special
Detailed Explanation
The IPv6 Unspecified Address: ::
The unspecified address `::' (all 128 bits set to zero) indicates the absence of an address. It is the IPv6 equivalent of IPv4’s 0.0.0.0.
Representations
| Format | Value |
|---|---|
| Compressed | :: |
| Expanded | 0000:0000:0000:0000:0000:0000:0000:0000 |
| CIDR | ::/128 |
When Is :: Used?
| Context | Meaning |
|---|---|
| Source address | Host has no address yet (e.g., during DHCPv6) |
| Listening socket | Bind to all interfaces (`::' = IPv6 equivalent of 0.0.0.0) |
| Routing table | Default route (::/0 = "all destinations") |
| Configuration | "No address configured" |
Programming Usage
// Listen on all IPv6 (and often IPv4) interfaces
server.listen(3000, '::');
// Equivalent to IPv4:
server.listen(3000, '0.0.0.0');
Key Rules
- Never used as a destination — you cannot send packets to ::
- Valid as source only in specific situations (DAD, DHCPv6 solicit)
- Not the same as ::1 — :: is unspecified, ::1 is loopback
- Routers must never forward packets with :: as source
Duplicate Address Detection (DAD)
When an interface first comes up, it sends a Neighbor Solicitation from :: (unspecified) to verify its tentative address is not already in use:
Source: :: (unspecified)
Destination: ff02::1:ff[last 24 bits] (solicited-node multicast)
If no reply is received, the address is considered unique and is assigned to the interface.
Use Case
A server application binds to :: (the unspecified address) on port 443, allowing it to accept incoming HTTPS connections on all network interfaces for both IPv4 and IPv6 traffic.