In IPv6 networking, a routed prefix (typically /48 to /64) represents a block of addresses delegated to an entire network for hierarchical routing, while a link prefix (always /64) is strictly bound to a specific network segment. The key difference manifests in three dimensions:
- Scope: Routed prefixes span multiple hops, link prefixes are layer-2 bound
- Delegation: Routed via DHCPv6-PD, link via RA announcements
- Lifetime: Routed prefixes have longer valid/preferred times
When capturing NDP traffic:
# Routed prefix host (shows global scope)
Src: 2001:db8:1:2::1/64
Dst: ff02::1 (All Nodes)
ICMPv6 Router Advertisement:
Prefix: 2001:db8:1:2::/64 (L=1,A=1)
Route Information: 2001:db8::/48 (Prf=Medium)
# Link-local only host
Src: fe80::1:2:3:4%eth0
Dst: ff02::2 (All Routers)
ICMPv6 Router Solicitation:
No global prefix present
The Neighbor Discovery Protocol handles these prefixes differently:
Feature | Routed Prefix | Link Prefix |
---|---|---|
Address Autoconfig | SLAAC + DHCPv6 | SLAAC only |
Router Advertisements | Includes Route Info Option | Basic Prefix Option |
DAD (Duplicate Addr Detect) | Global scope NS/NA | Link-local scope |
These prefixes work together in enterprise deployments:
# Example Linux networkd configuration
[Network]
DHCP=yes
IPv6Token=prefixstable
# For routed prefix
[DHCPv6]
UseDelegatedPrefix=yes
# For link prefix
[IPv6AcceptRA]
UseAutonomousPrefix=yes
The routed prefix provides external reachability while the link prefix handles intra-segment communication. This dual-stack approach appears in traceroutes where initial hops use link-local addresses before transitioning to routed prefixes.
When debugging prefix issues:
# Check assigned prefixes
ip -6 addr show
# 1: lo:
# inet6 2001:db8:1:2::1/64 scope global
# valid_lft 2592000 preferred_lft 604800
# inet6 fe80::1/64 scope link
# valid_lft forever preferred_lft forever
# Verify NDP cache
ip -6 neigh show
# fe80::260:3ff:fe11:6770 dev eth0 lladdr 00:60:03:11:67:70 router REACHABLE
# 2001:db8:1:2::3 dev eth0 lladdr 00:16:3e:ab:cd:ef STALE
In IPv6 networking, routed prefixes and link prefixes serve distinct purposes. A routed prefix (typically /48 to /64) is assigned by ISPs or network administrators for routing across multiple network segments. Link prefixes (always /64) are used for communication within a single network segment.
When observing traffic in Wireshark:
# Example of a packet with routed prefix (global scope)
Source: 2001:db8:1234:5678::1
Destination: 2001:db8:abcd:ef12::2
# Example of a packet with link prefix (local scope)
Source: fe80::1a2b:3c4d:5e6f:1a2b
Destination: ff02::1
Key differentiators:
- Routed prefixes appear in global unicast addresses (2000::/3)
- Link prefixes appear in link-local addresses (fe80::/10) or multicast
- Routed prefix traffic shows full end-to-end routing headers
The Neighbor Discovery Protocol (NDP) handles these prefixes differently:
// Example NDP Router Advertisement with both prefix types
ICMPv6 Option (Prefix information - Global): 2001:db8:1234::/64
ICMPv6 Option (Prefix information - Link-local): fe80::/64
Observable differences:
- Routed prefixes trigger global address autoconfiguration
- Link prefixes are used for Duplicate Address Detection (DAD)
- External hosts see routed prefixes in routing tables but not link prefixes
The two prefix types work in tandem:
# Linux example showing both address types
$ ip -6 addr show
1: lo:
inet6 ::1/128 scope host
2: eth0:
inet6 2001:db8:1234::1/64 scope global
inet6 fe80::1a2b:3c4d:5e6f:1a2b/64 scope link
Key coordination points:
- Link prefixes enable local communication before global routing is established
- Routed prefixes depend on link-local addresses for NDP operations
- Hosts maintain separate neighbor caches for each prefix type
Common issues and their signatures:
// Wireshark filter for NDP problems
icmpv6.type == 135 || icmpv6.type == 136 || icmpv6.type == 137
// Linux command to check prefix assignments
$ sysctl net.ipv6.conf.all.accept_ra
Diagnostic patterns:
- Missing routed prefixes indicate DHCPv6 or RA configuration issues
- Duplicate link prefixes suggest misconfigured routers
- Mismatched prefix lifetimes cause intermittent connectivity