Why IPv6 Exists
IPv4's roughly 4.3 billion addresses, discussed earlier in this series, proved insufficient for a world with billions of connected devices, even with NAT, also discussed earlier in this series, extending its practical lifespan by allowing many devices to share few public addresses. IPv6 was designed specifically to solve this shortage permanently, using a dramatically larger address space along with several structural improvements over IPv4.
The Structure of an IPv6 Address
An IPv6 address is 128 bits long — four times the length of an IPv4 address's 32 bits — written as eight groups of four hexadecimal digits, separated by colons.
Full IPv6 address example:
2001:0db8:0000:0000:0000:ff00:0042:8329
Each group represents 16 bits, and the total
address space is 2^128 addresses — an almost
incomprehensibly large number, roughly 340
undecillion possible addressesShorthand Notation Rules
Writing full 128-bit addresses in every configuration and diagram would be cumbersome, so IPv6 defines two compression rules that are essential to recognize and apply correctly.
Rule 1: Leading zeros within each group can be omitted
2001:0db8:0000:0000:0000:ff00:0042:8329
becomes
2001:db8:0:0:0:ff00:42:8329
Rule 2: One (and only one) consecutive run of
all-zero groups can be replaced with a double colon (::)
2001:db8:0:0:0:ff00:42:8329
becomes
2001:db8::ff00:42:8329The restriction that :: can only be used once in an address is critical: since it represents "however many zero groups fill the remaining space," using it twice would make the address ambiguous — there would be no way to determine how many zero groups each instance represents.
Correct: 2001:db8::ff00:42:8329
Invalid (ambiguous): 2001::db8::ff00 -- never do thisThe Three Main IPv6 Address Types
Unlike IPv4, which relies heavily on broadcast, discussed earlier in this series, IPv6 eliminates broadcast entirely and defines three distinct address types instead.
Unicast: identifies a single specific interface,
delivered to exactly one destination
(the IPv6 equivalent of a normal IPv4 address)
Multicast: identifies a group of interfaces,
delivered to all members of that group
(IPv6 uses multicast for functions that IPv4
handled with broadcast, such as neighbor discovery)
Anycast: identifies a group of interfaces, but
delivered to only the nearest one (based on
routing distance) — used for services where any
one of several equivalent servers can respondThe complete absence of a broadcast address type is a deliberate design improvement: IPv6 relies on multicast for the same functions IPv4 handled with broadcast, reducing unnecessary processing on devices that have no interest in a particular message.
Global Unicast Versus Link-Local Addresses
Within the unicast category, two address scopes matter most for everyday configuration.
Global Unicast Address (GUA):
Routable across the internet, the IPv6
equivalent of a public IPv4 address
Typically begins with 2000::/3
Link-Local Address (LLA):
Valid only on the local network segment,
never routed beyond it
Always begins with FE80::/10
Automatically assigned to every IPv6-enabled
interface, even without any manual configurationEvery IPv6-enabled interface automatically generates a link-local address the moment IPv6 is enabled, regardless of whether a global address is also configured — this address is used extensively for local operations like neighbor discovery and routing protocol communication between directly connected devices.
Configuring IPv6 on a Cisco Interface
Router(config)# ipv6 unicast-routing
-- enables IPv6 routing globally on the device
Router(config)# interface gigabitethernet 0/0
Router(config-if)# ipv6 address 2001:db8:1::1/64
Router(config-if)# no shutdown
Router# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::250:56FF:FEAA:1122
2001:DB8:1::1Notice that both a link-local address (automatically generated) and the manually configured global address appear on the same interface — this is normal and expected behavior, not a misconfiguration, since both address types serve distinct purposes simultaneously.
The /64 Convention for Subnetting
While IPv6 subnetting follows the same conceptual approach as IPv4 subnetting, discussed earlier in this series, standard practice almost universally uses a /64 prefix length for any subnet containing end-user hosts.
A /64 subnet provides 2^64 possible host addresses
on a single subnet — a number so large that address
exhaustion within any single subnet is not a
practical concern, unlike the careful VLSM
calculations required for IPv4
This convention exists partly because certain IPv6
features, such as automatic address generation
using EUI-64, are specifically designed around
a 64-bit host portionVerifying IPv6 Connectivity
Router# ping 2001:db8:1::2
Router# show ipv6 route
C 2001:DB8:1::/64 [0/0]
via GigabitEthernet0/0, directly connectedThe basic verification commands mirror their IPv4 counterparts closely, discussed earlier in this series — ping and show ipv6 route function identically in concept to their IPv4 equivalents, making the transition to IPv6 troubleshooting relatively intuitive once the addressing structure itself is understood.
Why IPv6 Fluency Is Increasingly Essential
While many networks still run primarily on IPv4, often alongside NAT to manage address scarcity, IPv6 adoption continues to grow steadily worldwide, and modern network designs increasingly run both protocols simultaneously in a configuration called dual-stack. Understanding IPv6's address structure, shorthand notation, and the distinct roles of global unicast and link-local addresses is no longer optional specialized knowledge — it is a core competency expected of any network professional working with contemporary infrastructure.