Why must IPv6 static routes with link-local next-hop addresses always be fully specified?
Link-local addresses (fe80::/10) are NOT globally unique — the same fe80::1 can exist on multiple interfaces. The router needs the exit interface to know WHICH fe80::1 you mean.
* The same fe80::2 sits on two links — name the exit interface. *
The problem:
R1(config)# ipv6 route 2001:db8:acad:1::/64 fe80::2
% Interface has to be specified for a link-local nexthop ← ERROR!
The solution — fully specified:
R1(config)# ipv6 route 2001:db8:acad:1::/64 Serial0/1/0 fe80::2
Why link-local addresses are ambiguous:
- Every IPv6-enabled interface has a link-local address (fe80::/10)
- R1's Serial0/1/0 neighbor might be fe80::2
- R1's GigabitEthernet0/0 neighbor might ALSO be fe80::2
- Without specifying the exit interface, the router can't resolve which fe80::2 to use
When using global unicast next-hop — no issue:
R1(config)# ipv6 route 2001:db8:acad:1::/64 2001:db8:acad:2::2
Global unicast addresses ARE globally unique → the router can resolve the exit interface via recursive lookup.
Routing table shows both interface and link-local:
S 2001:DB8:ACAD:1::/64 [1/0]
via FE80::2, Serial0/1/0
Tip: IPv6 routing protocols (OSPFv3 (Open Shortest Path First version 3), EIGRP (Enhanced Interior Gateway Routing Protocol) for IPv6) always use link-local addresses as next-hops. This is efficient because link-local addresses are automatically available — no configuration needed.
Go deeper:
Link-local address (Wikipedia) — fe80::/10 addresses are only unique per-segment, so the interface is required.