I have a device on my local net which has the ip 169.254.1.1
From my desktop machine ping, traceroute etc to this device all work fine. Desktop network is set up via NetworkManager, and desktop has a fixed ip.
> ping 169.254.1.1
PING 169.254.1.1 (169.254.1.1) 56(84) bytes of data.
64 bytes from 169.254.1.1: icmp_req=1 ttl=29 time=2.62 ms
64 bytes from 169.254.1.1: icmp_req=2 ttl=29 time=2.49 ms
64 bytes from 169.254.1.1: icmp_req=3 ttl=29 time=2.55 ms
traceroute 169.254.1.1
traceroute to 169.254.1.1 (169.254.1.1), 30 hops max, 40 byte packets using UDP
1 ddwrt2 (192.168.0.1) 0.572 ms 0.450 ms 0.393 ms
2 device (169.254.1.1) 2.450 ms 2.307 ms 2.570 ms
As you can see I’m using a dd-wrt router and the device is on the other side of the router, part of my ISP provided equipment for wireless internet.
Problem is that when I switch off NetworkManager control and go to the traditional method, the device 169.254.1.1 is no longer visible from the desktop. External addresses work fine. Same thing happens on another machine set up as a server with no desktop KDE stuff installed and therefore NetworkManager not available.
It seems NetworkManager is doing something in its setup that my apparently identical setup through Yast does not do. The alternate setup is with a fixed ip in the 192.168.0.x range, netmask 255.255.255.0 and dns and gateway 192.168.0.1.
I’m not sure what I can check next, any suggestions?
You simply need to add the routing entry for 169.254.0.0/16 and it will work the same as with networkmanager. I think it’s doable using yast. You can use this terminal command to add the route manually :
ip route add 169.254.0.0/16 dev eth0
and then ping to 169.254.1.1 will work. Note that this change will not survive the reboot.
Thanks for this suggestion Greg, however I just resolved it another way.
I looked into the odd route that already exists in the routing table on the bad machine for 169.254.0.0. Since it has a netmask of 255.255.0.0 then this should encompass 169.254.1.0 as well.
The machine that does work does not seem to need this route, so I though I would delete it.
Tried
# route del 169.254.0.0
SIOCDELRT: No such process
Tried
# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
and now I get
# ping 169.254.1.1
PING 169.254.1.1 (169.254.1.1) 56(84) bytes of data.
64 bytes from canopy (169.254.1.1): icmp_seq=1 ttl=29 time=2.70 ms
64 bytes from canopy (169.254.1.1): icmp_seq=2 ttl=29 time=2.52 ms
64 bytes from canopy (169.254.1.1): icmp_seq=3 ttl=29 time=2.50 ms
I’m not understanding why what looked like a reasonable route was not working since it was UP, but getting rid of it solved the issue.
Thank you for helping me think through the problem.