What is IPv4 Autoconfiguration and why it overwrites static IP

The screenshot shows an IPv4 address that start with 169.254.

This is from the "link local" range (e.g., RFC 3927 page 31 discusses what Windows XP using these addresses). Some people call these addresses "APIPA" addresses, named after Windows XP's process called Automatic Private IP Assignment (APIPA).

It seems that as technology has advanced, there are now two causes that commonly resulting in an address in this range.

  1. Windows will use this if it is set to use DHCP, and it tries to get an address from a DHCP server, and fails.
  2. "Duplicate Address Detection" ("DAD") has resulted in noticing an IP address conflict. From the comments that have been made, it seems that the feature of "Duplicate Address Detection" detection may also result in automatically assigning a different IP address, even if an IP address is statically configured.

The potential fixes to having such an address can be:

  1. check the logs to see if there is anything mentioned about a duplicate IP address. If so, try to determine what other device had that address, and why it did. If it got that address by DHCP, try to determine which DHCP server was used by each address that got that address, and troubleshoot the DHCP server(s). (Note that accidentally having an unknown extra DHCP server might be a common cause for this.)
  2. get DHCP communication functioning successfully,
  3. or to go to the NIC properties and specify an "Alternate Configuration" process that uses a specified "User configuration", or to use a static IP address.

Why DHCP isn't working is a separate question. This is the correct answer for specifically what you asked, which is: "What is IPv4 Autoconfiguration".

As for why DCHP overwrites static IP: DHCP usually doesn't. If you see an Autoconfiguration address in Microsoft Windows, then you're not using a "static IP" assignment. (Instead, you're configured to be trying to use DHCP, or DAD is taking effect.)

According to one comment (which was made via a proposed suggested edit), newer versions of Microsoft Windows may silently set an autoconfig IP (instead of showing a message on the screen). This is likely caused by DAD.

Trying to disable DAD might not be a great way to fix the problem, as that may cause the computer to start working on the desired IP address, but not address the issue that another device is trying to use the same IP address (which may cause problems immediately, or later when the other device starts being more active again).


As the alternative to editing registry you can try this solution:

  1. open command line
  2. check id of network connection - it will be in the 1st column: netsh interface ipv4 show inter
  3. run this command replacing <id> with id of your network connection: netsh interface ipv4 set interface <id> dadtransmits=0 store=persistent
  4. open services.msc and disable dhcp client
  5. disconnect network cable, restart computer, start dhcp client service and plug in network cable

source: http://the-it-wonders.blogspot.com/2013/04/autoconfiguration-ipv4-address-196254xx.html

Since I can't add comment to TOOGAM's answer: autoconfiguration apparently can overwrite static ip configuration. Today I had a laptop (with Windows 10, version 1709) that couldn't access network and had both static ip and autoconfiguration ip visible in ipconfig output even though I put static ip in network card configuration.