Windows, Fixed IPv4 Addresses and APIPA

Published: 2022-02-25. Last Updated: 2022-02-25 11:13:33 UTC
by Didier Stevens (Version: 1)
5 comment(s)

APIPA stands for Automatic Private IP Addressing. It’s Microsoft Windows’ mechanism to assign an IPv4 address to a network adapter when no DHCP server is offering an address.

The IP range for APIPA IPv4 addresses is 169.254.0.0/16.

When your Windows machine is configured to use DHCP to configure its network interface, and when there is no DHCP server on the network (or it is not offering an address, for whatever reason), Windows will automatically configure the network interface with an IPv4 address in the APIPA range.

These addresses are recognizable, they all start with 169.254.

 

Recently, I was using a Windows 10 VMware guest with a fixed IPv4 address (10.0.0.2), and I could not connect to it from another machine. After some searching, I discovered that its IP address was not 10.0.0.2, but 169.254.xx.yy. Thus, an APIPA IPv4 address. I proceeded to check the network configuration for the network interface, and it was indeed a fixed IPv4 address, 10.0.0.2. It was not configured to use DHCP.

So why was it not using 10.0.0.2, but an APIPA address?

After some trial and error, it dawned on me: the other machine that I was using to connect to this VM guest, was also using IPv4 address 10.0.0.2.

So, there was an IP addressing conflict. But unlike previous versions of Windows, where I would see a popup Windows with a clear message telling me there is an IP addressing conflict, here on this Windows 10 machine, I didn’t get an alert (although there was most likely an event for this -> 4199).

And instead of using IPv4 address 10.0.0.2 and displaying an alert, this Windows 10 machine did a silent fallback to an APIPA address.

 

If you notice that your Windows 10 machine is using an APIPA address in stead of its fixed IPv4 address, check for IP addressing conflicts.

 

 

Didier Stevens
Senior handler
Microsoft MVP
blog.DidierStevens.com

Keywords: APIPA windows
5 comment(s)

Comments

There definitely needs to be a notification. Back in the olden days, you’d get the pop up but Windows would still happily assign the address to multiple computers and then you had real fun trying to figure where your packets were going.
There definitely needs to be a notification. Back in the olden days, you’d get the pop up but Windows would still happily assign the address to multiple computers and then you had real fun trying to figure where your packets were going.
We had such an effect some time ago with Win7 PCs on fixed IPs. After reboot they silently got an APIPA address. The cause was a certain IOS version of customers Cisco switches. Had to set a registry key on the Windows PCs to workaround this. Should hopefully no longer happen now unless such Cisco switches with old firmware are still in use (which would be a bad idea anyway).

Here I found the cause and workaround when this happened:
https://community.spiceworks.com/topic/446922-static-ip-devices-receiving-169-address-after-reboot
Indeed, that is how I remembered it from Windows NT and later: if you had an APIPA address, there was a DHCP server issue.
Now I have to keep another scenario in mind: if you have an APIPA address, there might be an IPv4 address conflict.
I'm seeing APIPA addresses being assigned to multiple interfaces on multiple machines (Windows 10 Pro); On all the machines the LAN connection is using DHCP, and the DHCP server is working fine.

On those machines, even the interfaces that are connected to internal subnets (with only handful of statically assigned IPv4 addresses -- guaranteed to not conflict), are getting APIPA addresses in addition to their static IPv4 address. Doesn't make any sense.

Diary Archives