Networking · Concept · 9 min read

Link Local Addresses, and Why One of Them Is Bad News

Both versions of IP have an address that works only on the local segment. In one of them it is a fault report and in the other it is required infrastructure, which is how a working network gets declared broken.

Written by Marko Ristic, Editor Updated Sep 17, 2026
169.254The IPv4 range, and a diagnosis rather than a configuration
fe80The IPv6 prefix, present on every interface that is up
0Routers that will forward either of them
3IPv6 mechanisms that depend on it: discovery, RAs and routing
Short answer

A link local address works only on the segment a device is plugged into, and no router forwards one. In IPv4 it is 169.254.x.x and appears only when DHCP failed, so it is a symptom. In IPv6 it is fe80 and every interface has one, so it is normal.

  • 169.254.x.x means DHCP did not answer. It is a fault report
  • fe80::/10 is mandatory on every IPv6 interface
  • IPv6 neighbor discovery and router advertisements run over it
  • An IPv6 default gateway starting fe80 is correct
  • Neither version is routable, in any circumstances
On this page

Windows, macOS and Linux devices that boot, ask for network configuration by DHCP and receive no reply do not simply give up. The device picks an APIPA address from 169.254.0.0/16 at random, checks with ARP that no other device on the segment is using it, and configures itself with that.

What the device gets is very limited. It can talk to other devices on the same segment that did the same thing, and that is the whole list. The configuration has no default gateway, so nothing outside the local network is reachable, and no DNS server, so nothing resolves.

RFC 3927 narrows the choice a little. The device selects from 169.254.1.0 to 169.254.254.255, because the first 256 and last 256 addresses of the 169.254.0.0/16 prefix are reserved. The subnet mask is always 255.255.0.0, and the address is normally dropped once a DHCP server assigns a real one.

Which makes an address in that range a diagnosis rather than a network configuration. Something between the device and the DHCP server did not work, and the candidates are short.

The cable or the port. The link is up enough to try and something is wrong further along. A switch port in the wrong VLAN produces exactly this, because the request goes out into a network with no DHCP server on it.

The DHCP server. Off, out of addresses, or with a scope that does not cover this segment.

The relay. A device on a different segment from the DHCP server needs the router to forward its request, and the configuration that does that is per interface. A new VLAN that nobody configured a relay on gives every device in it an APIPA address.

Wireless authentication. The device associated but never fully joined, so the request was never carried.

The order to check them in is short: is the port in the right VLAN, does the DHCP server have addresses left, and does this segment have a relay configured.

What you seeWhat it means
One device with an APIPA addressThat device, its cable, or its port
Every device on one VLANThe relay, or the scope for that VLAN
Every device on the networkThe DHCP server itself
Wireless devices onlyThe wireless authentication, not the DHCP server

That table is most of the diagnosis. How many devices hold a link local address names the layer at fault.

IPv6 uses the same idea for something entirely different, and this is the part people coming from IPv4 addressing misread.

Every IPv6 interface configures a link local address the moment it comes up, before any router has been heard from and regardless of whether DHCPv6 exists anywhere on the network. It is not a fallback. It is the address the interface uses to do the work that gets it a real one.

How an IPv6 link local address is formed

RFC 4291 gives the format: the 10 bit prefix 1111111010, which is fe80::/10, then 54 zero bits, then a 64 bit interface ID. In practice every link local address sits inside fe80::/64, and only the interface ID differs between interfaces on the link.

The interface ID is assigned by the device itself, in one of two ways.

  • Modified EUI-64. The 48 bit MAC address is split in half, ff:fe is inserted in the middle, and the seventh bit is flipped. A MAC of 00:1a:2b:3c:4d:5e becomes fe80::21a:2bff:fe3c:4d5e. Routers and older systems do this, which is why ff:fe in the middle of an fe80 address is so common.
  • A random or stable opaque value. Current Windows and macOS, and many Linux systems, generate the interface ID instead, so the MAC address is not exposed in every packet.

Before using the address, the interface runs duplicate address detection, which RFC 4862 requires on all unicast addresses. It also stays assigned for as long as the interface is up. On a router the link local address can be set by hand, and fe80::1 is a common choice because it is easy to type as a gateway.

What IPv6 uses link local addresses for

Three things depend on those link local addresses, and all of them are communication between neighbors on the same link.

Neighbor discovery. The IPv6 replacement for ARP runs between link local addresses. Finding the MAC address behind an IPv6 address happens here.

Router advertisements. Routers announce themselves from their link local addresses, and devices learn their prefix and their default gateway from those announcements. So the default gateway in an IPv6 configuration is normally a link local address, which surprises people the first time they see it.

Routing protocols. OSPFv3 and BGP for IPv6 form neighbor relationships using link local addresses, which means the adjacency survives renumbering the global addresses on the network.

The practical consequence: a device holding only an fe80 address and nothing else is in the same position as an IPv4 device holding only an APIPA address, but a device holding fe80 and a global address is completely normal. Seeing fe80 in a list of addresses is not a finding.

CheckingSeeing them, on each platform

Every operating system shows both kinds in its ordinary address listing, and the commands are worth having to hand because this is usually diagnosed on somebody else's machine.

ipconfig /all                Windows, and read the Autoconfiguration lines
ip addr show                 Linux, both versions in one listing
ifconfig                     macOS, or ipconfig getifaddr en0 for one answer

What to read in the output is different for each version.

On Windows, look for the word Autoconfiguration. An address labeled Autoconfiguration IPv4 Address in the 169.254 range is the fault report. Windows also shows a Link-local IPv6 Address starting fe80, and that line is present on a healthy machine, so the two lines mean opposite things in the same block of output.

On Linux, ip addr lists every address on the interface. A healthy dual stack interface shows a global IPv4 address, an fe80 address with scope link, and usually a global IPv6 address. An interface showing only inet 169.254.x.x and inet6 fe80::... has the IPv4 fault and normal IPv6 link local at the same time.

Renewing is the fastest confirmation. ipconfig /release then ipconfig /renew on Windows, or dhclient -r then dhclient on Linux, and watch what comes back. A device that immediately returns to 169.254 has confirmed that no DHCP server answered, which turns a guess into a finding in about ten seconds.

A whole VLANWhat to do when a whole VLAN has them

One device with an APIPA address is a device problem. Every device on a segment holding one is a network problem, and it has a short list of causes worth walking in order.

Check the DHCP scope for that subnet exists and has addresses free. A scope that exhausted its pool produces exactly this, and it looks like a failure rather than a full pool from the client side.

Check the relay on the router interface for that VLAN. The setting is per interface, usually called an IP helper address, and a VLAN created without one has no path to a DHCP server on another segment. This is the single most common cause on a network where somebody recently added a VLAN.

Check that the switch ports are in the VLAN you think they are. A port left in the default VLAN sends its request into a segment with no DHCP server on it.

Check whether the DHCP server is answering other segments. If it is, the problem is between this VLAN and the server rather than with the server itself, which narrows it to the relay or the scope.

The pattern behind all four: an APIPA address means the request went out and nothing came back, so every candidate is somewhere on the path the request took.

Scope identifiersThe percent sign nobody explains

One detail about IPv6 link local addresses trips people up the first time and then never again.

An IPv6 link local address is only meaningful on one link, and a device with several interfaces can have the same link local address reachable through more than one of them. So the address alone is ambiguous, and tools require a scope identifier to say which interface you mean.

ping fe80::1%eth0          Linux, naming the interface
ping fe80::1%12            Windows, naming the interface index
ping6 fe80::1%en0          macOS

Leaving the scope off produces an error about an invalid argument or an unreachable host, which reads like the address is wrong when the address is fine.

PitfallsWhere people go wrong

Treating an APIPA address as something to fix. It is not the problem, it is the report. Static network configuration makes the symptom disappear and leaves DHCP broken for every other device on that segment.

Assuming an APIPA address means no link. The link is up. Something between the device and the DHCP server is the issue, and a completely dead port produces no addresses at all rather than this one.

Reading fe80 as a failure. IPv6 link local addresses are normal and required. The finding is an interface with fe80 and no global address, not the presence of fe80.

Being surprised by a link local default gateway. On IPv6 that is the usual arrangement, because the router advertises itself from its link local address. A gateway of fe80 something is correct.

Forgetting the scope identifier. An IPv6 link local address without %interface is ambiguous on a device with more than one, and the error message does not say so.

Trying to route either of them. Neither kind is forwarded by any router on the network or across the internet. Link local addresses reach the segment they are on and nothing beyond it.

Configuring a static APIPA address deliberately. It works for two devices on a bench and it is not an addressing scheme. Use a private range for any network configuration that is meant to last.

THE SAME MECHANISM, AND OPPOSITE MEANINGSNeither is routable. A router forwards neither one, ever.IPv4169.254.x.xAppears only when DHCP does not answerNever alongside a real addressNo gateway, no DNS, no way outThe protocol itself does not use itSEEING ONE IS A FAULT REPORTIPv6fe80::/10On every interface, alwaysAlongside a global address, normallyNeighbor discovery runs over itSo do router advertisements and OSPFv3SEEING ONE IS NORMALThe IPv6 finding is fe80 with no global address, not the presence of fe80.And an IPv6 default gateway starting fe80 is correct, because the router advertises from it.Read one as the other and a working IPv6 network gets reported as broken.
Same mechanism, opposite verdict. The left panel is something to fix and the right panel is something to leave alone.

ComparisonIdentical mechanism, opposite meaning

CriterionIPv4 link localIPv6 link local
Range169.254.0.0/16fe80::/10
When it appearsOnly when DHCP failsOn every interface, always
Coexists with a real addressNoYes, normally
RoutableNoNo
Used by the protocol itselfNoYes, extensively
Seeing one isA faultNormal
Needs a scope identifierNoYes, on a multi interface host

The second and sixth rows are the whole page. Identical mechanism, opposite meaning, and reading one kind of link local address as the other is how an IPv6 network gets declared broken when it is working.

FAQFrequently asked questions

What is a link local address?

An address valid only on the network segment a device is attached to. No router forwards one, so it reaches devices on the same link and nothing else.

What does a 169.254 address mean?

That the device asked for network configuration by DHCP and got no answer, so it assigned itself an APIPA address. It is a fault report, and the fault is between the device and the DHCP server.

What is APIPA?

Automatic private IP addressing, the name for the IPv4 behavior of self assigning a 169.254 address when DHCP does not answer.

How do I fix an APIPA address?

By fixing DHCP rather than the address. Check the switch port VLAN, whether the scope has addresses left, and whether that network segment has a DHCP relay configured.

Can a 169.254 address reach the internet?

No. There is no default gateway and no DNS, so it reaches other machines on the same segment that are in the same state, and nothing else.

What is an fe80 address?

An IPv6 link local address. Every IPv6 interface has one automatically, and the protocol uses them for neighbor discovery, router advertisements and routing protocol adjacencies.

Is an fe80 address a problem?

No. It is mandatory and normal. An interface with fe80 and no global address is a problem; the presence of fe80 alongside a global address is how IPv6 is meant to look.

Why is my IPv6 default gateway an fe80 address?

Because the router advertises itself from its link local address, which is the standard arrangement. A gateway starting fe80 is correct rather than misconfigured.

What is the percent sign in an IPv6 address?

The scope identifier, naming which interface the link local address applies to. The same address can exist on several interfaces, so tools require it.

Are link local addresses routable?

No, in either version. Routers do not forward packets with a link local source or destination address, which is what makes them local to the link.

Do all devices get both kinds?

Every IPv6 interface gets an fe80 address. An IPv4 interface gets an APIPA address only when DHCP fails to answer.

Can I use 169.254 addresses deliberately?

For two machines on a bench with a cable between them, yes. As an addressing scheme for anything that has to keep working, no. Use one of the private ranges.

Why do two devices with APIPA addresses see each other?

Because they are on the same network segment and both picked addresses from the same range. That is the one thing the mechanism is designed to allow.

Does a 169.254 address mean a DHCP failure?

On IPv4, yes. A computer assigns itself a 169.254.x.x link-local address when it asks for a lease and no DHCP server answers. The DHCP failure may be a stopped service, an exhausted address pool, a wrong VLAN, or a bad cable. The device can then reach only neighbors on the same segment.

Read next · Addressing What Is DHCP? A 169.254 address is what a device does when this did not answer, so the diagnosis starts here. Open this next9 min
Also worth reading
One packet a weekA short, illustrated explainer every Tuesday. No vendor pitches, unsubscribe in one click.