-1

I am seeing a weird problem on a Windows 7 x64 PC.

The PC has two network interfaces: 10.0.7.80 and 169.254.198.30

For some reason when 169.254.X.X interface comes up Windows sets up incorrect route for it.

The route print command shows that packets for 169.254.X.X subnet will go to 10.0.7.80 interface:

169.254.0.0      255.255.0.0         On-link         10.0.7.80     30

I am not sure why Windows creates it. It happens only on one PC in the office. Other PCs setup routes correctly.

EX:

169.254.0.0      255.255.0.0         On-link     169.254.40.79     286

Is there anything different in the settings?

If I execute route add 169.254.0.0 mask 255.255.0.0. 169.254.198.30 command everything works fine, but I can't expect a user to do it mually every time they have network problem.

1 Answers1

0

This is no routing problem. Your NIC obviously doesn't get an IP via DHCP or you configured it wrong. Have a look at RFC 5735:

169.254.0.0/16 - This is the "link local" block. As described in [RFC3927], it is allocated for communication between hosts on a single link. Hosts obtain these addresses by auto-configuration, such as when a DHCP server cannot be found.

Lenniey
  • 5,220
  • 2
  • 18
  • 29
  • That's correct. The 10.0.7.80 interface is connected to the office network and gets its address from DCHP. I have just one other device connected directly to the second interface, there is no DHCP server. Hence its address is in the 169.254.XX.XX range. I would still expect them to communicate though. Plus, why would only one PC have this issue? – Alex Gdalevich Apr 25 '17 at 19:27
  • I'd recommend either setting up DHCP for the second NICs or to configure them with static IPs, you shouldn't use `169.254.0.0/16` as IPs. – Lenniey Apr 26 '17 at 07:07
  • @AlexGdalevich, "_I would still expect them to communicate though._" No, you cannot route to or from the `169.254.0.0/16` network. That is expressly forbidden by the RFC: "_An IPv4 packet whose source and/or destination address is in the 169.254/16 prefix MUST NOT be sent to any router for forwarding, and any network device receiving such a packet MUST NOT forward it, regardless of the TTL in the IPv4 header._" and "_The non-forwarding rule means that hosts may assume that all 169.254/16 destination addresses are "on-link" and directly reachable._" – Ron Maupin Jun 01 '18 at 09:37