Introduction to IPv6: Address Structure, Types, and Fundamentals
Master IPv6 addressing architecture, notation rules, address types, EUI-64 format, and understand how IPv6 fundamentally improves upon IPv4
Table of Contents
- IP Address Allocation History
- Why IPv6? Business and Technical Reasons
- The IPv6 Address Space
- IPv6 Address Structure
- IPv6 Address Expression and Notation
- Classification: Unicast, Multicast, and Anycast
- Global Unicast Addresses
- Link-Local and Unique Local Addresses
- IEEE EUI-64 Address Format
- IPv6 Multicast Addresses
- Address Validation Exercises
IP Address Allocation History
IPv4: Four Decades of Growth
The Internet Protocol version 4 (IPv4) has served as the backbone of the internet since its inception. Understanding IPv4's allocation history helps us appreciate why IPv6 became necessary.
- 1981 - IPv4 protocol published (RFC 791)
- 1985 - 1/16 of total address space allocated
- 1990 - 1/8 of total address space allocated
- 1995 - 1/4 of total address space allocated
- 2000 - 1/2 of total address space allocated
- Today - 86.1% allocated (~3.7 billion addresses)
Conservation Efforts
As address exhaustion loomed, the networking community implemented several conservation strategies:
- VPN / DHCP - Dynamic address sharing
- CIDR (Classless Inter-Domain Routing) - Efficient address allocation
- NAT (Network Address Translation) - Multiple devices behind single public IP
- Address Reclamation - Recovery of unused allocations
Non-Optimal IPv4 Address Allocation
IPv4 theoretically provides 4.3 billion addresses. However, early allocation practices created significant inefficiencies:
US Government: ~168 Million addresses
Europe: ~80 Million addresses
IBM: ~33 Million addresses
UK Government: ~33 Million addresses
Stanford University: ~17 Million addresses
China: ~9 Million addresses
Lucent: ~6 Million addresses
Why IPv6?
IPv6 Address Allocation
IPv6 provides a solution that eliminates address scarcity concerns:
2¹²⁸ ≈ 3.4 × 10³⁸ addresses
IPv6 is not allocated as single addresses, but in very large blocks:
- /32 → Provider allocations
- /48 → Customer sites
- /56 or /64 → End-user networks
Global IPv6 Adoption
Currently (globally), approximately 40-45% of Internet traffic already uses IPv6. Adoption continues to grow each year as major service providers, content networks, and enterprises enable IPv6.
Theoretical Reasons for IPv6
The only compelling technical reason: more IP addresses!
- Billions of new users (Asia, Africa, emerging markets)
- Billions of new devices (mobile phones, IoT, cars, appliances)
- Always-on access (cable, xDSL, fiber-to-the-home)
- Applications difficult through NATs (IP telephony, peer-to-peer gaming, home servers)
- Phase out NATs to improve robustness, security, performance, and manageability
Other Benefits of IPv6
- Server-less plug-and-play - Automatic address configuration
- End-to-end authentication & encryption - IPsec integrated into protocol
- Elimination of "triangle routing" for mobile IP
- Simplified header format - Faster processing by routers
- QoS: Same QoS capabilities as IPv4. Flow label field may enable more efficient classification but doesn't add new capability
- Routing: Same routing protocols as IPv4, just adapted for larger addresses. Hierarchical addressing helps, but customer multi-homing defeats hierarchy
Current Business Reasons
Organizations are deploying IPv6 for practical reasons:
- Regional Demand: Asia and EU have strong technical, geo-political, and business drivers
- Service Requirements: Cellular wireless (especially 5G standards), Internet gaming (e.g., Sony PlayStation)
- Vendor Support: IPv6 included in Windows XP (not enabled by default), enabled by default in later Windows releases
- Market Opportunity: New opportunities for vendors (Microsoft, Cisco, HPE, etc.)
The IPv6 Address Space
Why 128 Bits?
The designers chose 128 bits to provide:
2¹²⁸ = 340,282,366,920,938,463,463,374,607,431,768,211,456
= 3.4 × 10³⁸ addresses
- Multiple levels of hierarchy in addressing design
- Flexibility for various addressing schemes
- Typical unicast address: 64 bits for subnet ID + 64 bits for interface ID
IPv6 Address Allocation and Assignment
The Internet Assigned Numbers Authority (IANA) manages IPv6 address allocations through Regional Internet Registries (RIRs):
- ARIN - American Registry for Internet Numbers (North America, parts of Caribbean)
- RIPE NCC - Europe, Middle East, Central Asia
- APNIC - Asia Pacific region
- LACNIC - Latin America and Caribbean
- AfriNIC - Africa
IPv6 Address Structure
Basic Address Components
Unlike IPv4 (which has address classes), IPv6 addresses consist of two parts:
Example: 2001:A304:6101:1:0000:00E0:F726:4E58
Prefix: 2001:A304:6101:1 (equivalent to network ID)
Interface ID: 0000:00E0:F726:4E58 (identifies interface)
IPv6 Addressing Model
IPv6 introduces an enhanced addressing model:
- Addresses assigned to interfaces (not nodes)
- Interfaces expected to have multiple addresses
- Addresses have scope:
- Link-local (FE80::/10)
- Unique local (FC00::/7)
- Global (2000::/3)
- Addresses have lifetime: Valid and preferred lifetime values
IPv6 Address Expression and Notation
Three Methods of Address Representation
Method 1: Suppress Leading Zeros
You can omit leading zeros in any 16-bit hexadecimal block:
Full: 2001:0DB8:0000:0000:02AA:00FF:C0A8:640A
Compressed: 2001:DB8:0:0:2AA:FF:C0A8:640A
Method 2: Double-Colon Compression
Use two colons (::) to represent contiguous 16-bit blocks of all zeros:
Full: 2001:0DB8:0000:0000:02AA:00FF:C0A8:640A
Double-colon: 2001:DB8::2AA:FF:C0A8:640A
Method 3: Trailing Dotted-Decimal Notation
Express the last 32 bits in dotted-decimal format (used with IPv4-compatible addresses):
Hex: 2001:DB8::2AA:FF:C0A8:640A
Mixed: 2001:DB8::2AA:FF:192.168.100.10
Comparison of Equivalent IPv6 Address Syntax
| Notation Type | Example |
|---|---|
| Full IPv6 address | 2001:0DB8:0000:0000:02AA:00FF:C0A8:640A |
| Suppressed leading zeros | 2001:DB8:0:0:2AA:FF:C0A8:640A |
| Double-colon compression | 2001:DB8::2AA:FF:C0A8:640A |
| Trailing dotted-decimal | 2001:DB8::2AA:FF:192.168.100.10 |
Additional Notation Rules
Address Prefix Notation:
2002:43c:476b::/48
(Note: No subnet masks in IPv6, only prefix length!)
Zone Qualifiers:
FE80::800:200C:417A%3
(Used to specify interface for link-local addresses)
In URLs:
http://[3FFE::1:800:200C:417A]:8000
(Square brackets prevent confusion with port separator)
Classification: Unicast, Multicast, and Anycast
Three Working Modes
- Unicast (U): One-to-one communication
- Multicast (M): One-to-many communication
- Anycast (A): One-to-nearest communication
🚫 No more broadcast addresses! All broadcast functionality replaced with multicast.
Address Scopes
- Global: Used for communication in the global scope (Internet)
- Local (Site): Used for communication within the site/organization
- Link-local: Used for communication within the link, prefix FE80::/10
- Loopback: Used for communication within the node, address ::1
- Special: Used for special applications (IPv4-to-IPv6 transition)
Anycast: One-to-One-of-Many
Anycast allows a source node to transmit IP datagrams to a single destination out of a group based on routing metrics:
- Only routers should respond to anycast addresses
- Shares address space with unicast addresses
- Packets destined for anycast address sent to the nearest interface
- Used for mobile IPv6 and service discovery
IPv6 Address Prefix Representation
Prefix notation is similar to CIDR in IPv4:
IPv6 address/prefix length
Examples:
3ef8:ca62:12::/40
2001:db8:1200::/40
FE80::/10
There are two ways to retrieve prefix: manual and automatic (through Router Advertisements).
Global Unicast Addresses
Global Unicast Address Structure
Global unicast addresses are comparable to IPv4 public IP addresses:
| Scope | Description |
|---|---|
| Link-local | Local subnet only (like IPv4 APIPA: 169.254.0.0/16) |
| Unique local | Local organization (like IPv4 private: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) |
| Global | Whole world (like IPv4 public addresses) |
Aggregatable Global Unicast Address Format
001 | Global Routing Prefix (45 bits) | SLA (16 bits) | Interface ID (64 bits)
3 bits | Provider | Site | Host
Prefix Range: 2000::/3 ~ 3FFF::/3
Link-Local and Unique Local Addresses
Link-Local Unicast Addresses (LLA)
- Scope: Only valid on a single link (network segment)
- Prefix: FE80::/10
- Example: fe80::1a2b:3c4d:5e6f:7788
- Automatically generated on every IPv6 interface
- Required for: Neighbor Discovery, SLAAC, ICMPv6, Router Advertisements
- Not routable beyond the local link
SLAAC: Stateless Address Autoconfiguration
SLAAC is an IPv6 feature that lets devices automatically configure their own IPv6 addresses using information from Router Advertisements (RAs). No DHCP server is required for address creation.
Short Definition: SLAAC is an IPv6 mechanism allowing hosts to self-configure global IPv6 addresses using router advertisements, without requiring a DHCP server.
Site-Local and Unique Local Addresses
Site-Local (Deprecated):
- Prefix: FEC0::/10 ~ FEFF::/10
- Example: FEC1:2:3:4:4:3:2:1
- Status: Deprecated, not used in new applications
Unique Local Address (Current Standard):
- Prefix: FC00::/7 ~ FD00::/7
- Example: FD01:2:3:4:4:3:2:1
- Status: Current standard for private addressing
Link-Local Address Details
- Prefix: FE80::/10
- Example: FE80::1:2:3:4
- Valid only on the link, cannot be forwarded by Layer 3 devices
- Scope similar to MAC address (Layer 2), but it's a Layer 3 concept
- New address type defined in IPv6
- Used for network management within the link
- Used by many routing protocols for neighbor relationships
- Automatically generated by IPv6 protocol with no need of other equipment support
Special Unicast Addresses
Special unicast addresses starting with binary 000:
| Address | Purpose |
|---|---|
| ::/128 | Unspecified address |
| ::1/128 | Loopback address |
| ::w.x.y.z/96 | IPv4-compatible address (e.g., ::1.2.3.4) |
| ::FFFF:w.x.y.z/80 | IPv4-mapped address (e.g., ::FFFF:1.2.3.4) |
IEEE EUI-64 Address Format
What are IEEE EUI-64 Addresses?
EUI-64 (Extended Unique Identifier, 64 bits) is a standardized way to turn a MAC address (48 bits) into a 64-bit value for use as the IPv6 Interface ID.
EUI-64 Structure
Company ID (24 bits) + Extension ID (40 bits)
U/L bit (u): Universally (=0) / Locally (=1) Administered
U/G bit (g): Unicast (=0) / Group (=1) Address
Conversion Process: IEEE 802 Address to EUI-64
Step-by-Step Conversion:
Step 1: Start with 48-bit MAC address
ccccccug cccccccc cccccccc xxxxxxxx xxxxxxxx xxxxxxxx
(24-bit Company ID + 24-bit Manufacturer Extension)
Step 2: Insert FFFE in the middle
ccccccug cccccccc cccccccc 11111111 11111110 xxxxxxxx xxxxxxxx xxxxxxxx
0xFF 0xFE
Result: 64-bit EUI-64 Address
Conversion Example: MAC to IPv6 Interface ID
Step 1: Ethernet MAC address (48 bits)
00 90 27 17 FC 0F
Step 2: Insert FF FE
00 90 27 FF FE 17 FC 0F
Step 3: Invert the U bit (7th bit of first byte)
00 (00000000) becomes 02 (00000010)
Result: 02 90 27 FF FE 17 FC 0F
Step 4: Format as IPv6 Interface ID
0290:27FF:FE17:FC0F
Complete IPv6 Address (with FE80::/64 prefix):
FE80::290:27FF:FE17:FC0F
IPv6 Multicast Addresses
Multicast Address Format
IPv6 multicast addresses have prefix FF00::/8 (1111 1111). The second octet defines lifetime and scope:
8-bit | 4-bit Lifetime | 4-bit Scope | 112-bit Group-ID
1111 1111
Lifetime:
0 = Permanent
1 = Temporary
Scope:
1 = Node-local
2 = Link-local
5 = Site-local
8 = Organization-local
E = Global
Well-Known Multicast Addresses
| Address | Description |
|---|---|
| FF02::1 | Link-local all nodes |
| FF02::2 | Link-local all routers |
| FF02::5 | Link-local all OSPFv3 routers |
| FF02::6 | Link-local all OSPFv3 DRs |
| FF02::9 | Link-local all RIPng routers |
| FF01::101 | Node-local all NTP servers |
| FF02::101 | Link-local all NTP servers |
Solicited-Node Multicast Address
For each unicast and anycast address configured, there is a corresponding solicited-node multicast address:
FF02::1:FF00:0000/104
- Link-local significance only
- Acts as pseudo-unicast for efficient address resolution
- Replaces IPv4 ARP broadcasts
For address
FE80::2AA:FF:FE28:9C5ASolicited-node:
FF02::1:FF28:9C5A
Comparison of IPv4 and IPv6 Elements
| Item | IPv4 | IPv6 |
|---|---|---|
| Private addresses | 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 |
FC00::/7 FD00::/8 |
| Link-local | 169.254.0.0/16 | FE80::/64 |
| Loopback | 127.0.0.1 | ::1 |
| Unspecified | 0.0.0.0 | :: |
| Address resolution | ARP | Neighbor Discovery (ND) |
| Multicast | 224.0.0.0 - 239.255.255.255 | FF00::/8 |
| DNS record | "A" record | "AAAA" record |
Address Validation Exercises
Test Your IPv6 Address Knowledge
Determine whether the following IPv6 addresses are valid or invalid, and explain why:
1. 2001:db8:10::1
2. 2001::85::1
3. fe80:::1
4. ::1
5. 2001:db8:abcd:1234:zzzz::1
6. 2001:0db8:0000:0000:0000:0000:0000:0001
7. 2001:db8:1:2:3:4:5
8. fe80::a2ff:fe11:3498
9. 2001:db8:1::2::3
10. ::ffff:192.168.1.1
11. 2001:db8:10000::
12. 12345::1
Exercise Answers with Explanations
Correctly compressed (:: appears only once), valid hex blocks, valid global unicast prefix
Two occurrences of :: → forbidden. Rule: :: may only appear once
::: is not allowed. Only :: may be used for zero compression
Correct IPv6 loopback address, defined in RFC 4291
Hex 'z' is illegal. Valid hex characters: 0-9, a-f (or A-F)
Full, uncompressed form. Equivalent to 2001:db8::1
Only 7 blocks present (should be 8). No :: to indicate compression → incomplete
Valid link-local address, correct compression, valid hex blocks
Two :: → invalid in all cases
Valid IPv4-mapped IPv6 address. Format: ::ffff:a.b.c.d
10000 exceeds 16-bit hex range (max is FFFF). Hex block must be 1-4 characters maximum
12345 is > 16 bits. IPv6 hex blocks max out at 4 hex digits (FFFF)
Key Takeaways
- ✅ IPv6 provides virtually unlimited address space (2¹²⁸ addresses)
- ✅ Addresses are 128 bits, written in 8 groups of 16-bit hexadecimal
- ✅ Leading zeros can be omitted in each group
- ✅ Double colon (::) can compress consecutive zeros, but only once
- ✅ Three address types: Unicast, Multicast, Anycast (no broadcast)
- ✅ Link-local addresses (FE80::/10) are automatically generated
- ✅ EUI-64 format creates interface IDs from MAC addresses
- ✅ SLAAC enables plug-and-play autoconfiguration
- ✅ Every interface typically has /64 subnet mask
- ✅ Neighbor Discovery replaces ARP
What's Next?
Now that you understand IPv6 addressing fundamentals, explore advanced topics:
- Neighbor Discovery Protocol - Router Solicitation, Router Advertisement, Neighbor Solicitation/Advertisement
- IPv6 Routing Protocols - RIPng, OSPFv3, EIGRP for IPv6, IS-IS for IPv6
- DHCPv6 - Stateful and stateless configuration
- Transition Mechanisms - Dual-stack, tunneling (6to4, ISATAP, Teredo), NAT64
- IPv6 Security - IPsec, RA Guard, SEND, firewall considerations
- Practical Deployment - Enterprise IPv6 implementation strategies
Ready to implement IPv6? Understanding addressing is the foundation. Master these concepts, and you'll be well-prepared for the IPv6-enabled internet of tomorrow!
No comments:
Post a Comment