IPv6 link-local addresses use the fe80::/10 prefix and exist on local interfaces even when no global IPv6 internet service is available. They are fundamental to IPv6 operation: Neighbor Discovery, Router Advertisements, and communication with the local router commonly use link-local addresses. Unlike a normal globally routed address, a link-local destination is meaningful only on a specific interface/link, which is why operating systems sometimes append a zone identifier such as %eth0 or %12.
IPv6 link-local addresses stay on the local link
A host can therefore show several IPv6 addresses at once: link-local, global unicast, temporary/privacy addresses, and possibly unique-local addresses. Troubleshooting improves when you ask which scope each address belongs to rather than treating “IPv6 address” as one category.
Check the interface and destination scope
- Identify the interface associated with the fe80:: address.
- Check whether the router is sending IPv6 Router Advertisements and whether the client also has a global prefix when internet IPv6 is expected.
- Use the required zone/interface identifier when testing a link-local address from systems that need it.
- Do not expect routers to forward link-local traffic between links.
- Inspect the default IPv6 route and DNS configuration separately from link-local neighbor reachability.
- When IPv6 is partially broken, test both IPv4 and IPv6 paths rather than disabling IPv6 immediately.
Zone identifiers and IPv6 neighbor discovery
Link-local addresses solve a bootstrap problem: devices need a way to communicate with neighbors and routers before relying on a globally assigned address. IPv6 Neighbor Discovery uses ICMPv6 instead of ARP, and routers advertise prefixes/default-router information on the local link. Blocking essential ICMPv6 can therefore damage IPv6 in ways that do not resemble ordinary IPv4 firewall behavior.
Selecting the correct interface for a link-local peer
A laptop can have fe80::1234 on Wi-Fi even when the ISP has no IPv6 service. If the ISP later delegates a global prefix, the laptop may add a 2001:… address while keeping fe80:: for local protocol functions. The link-local address was not a temporary error; it is part of the design.
Avoid treating fe80 addresses as public internet endpoints
- Treating fe80:: as a public internet address.
- Removing link-local configuration because it looks unfamiliar.
- Blocking all ICMPv6 and then wondering why neighbor/path functions fail.
- Forgetting the interface/zone when multiple links contain the same link-local scope.
Is fe80:: private IPv6?
It is link-local, not the same concept as RFC 1918 private IPv4. It is valid only on the local link.
Can I browse the internet using only fe80::?
No, not as a normal routed global address.
Why is there a %number after an IPv6 address?
It identifies the local interface/zone needed to disambiguate link-local scope.
Does every IPv6 interface have link-local addressing?
Normal IPv6 operation commonly creates it automatically because core neighbor/router discovery relies on link-local communication.