NetworkManager setup works, but Yast traditional through ifup does not for one address

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?

Compare the output of the following commands when using and not using NetworkManager :

/sbin/ifconfig
route -n

Best regards,
Greg

Thanks for your suggestion, Greg.

From server which does not work:

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:xxxxxxxxxxx 
          inet addr:192.168.0.104  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5741278 errors:0 dropped:697 overruns:0 frame:0
          TX packets:6958366 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1422589882 (1356.6 Mb)  TX bytes:1111447770 (1059.9 Mb)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1299498 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1299498 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:86471408 (82.4 Mb)  TX bytes:86471408 (82.4 Mb)

linux-srvr:/home/colin # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

From desktop which does work:

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr xxxxxxxxxxxxx  
          inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::e2cb:4eff:fe9a:5ea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:72669 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59593 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000 
          RX bytes:70359699 (67.1 Mb)  TX bytes:14351062 (13.6 Mb)
          Interrupt:44 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1422 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1422 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:113900 (111.2 Kb)  TX bytes:113900 (111.2 Kb)

linux-desk:/home/colin # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

Note: the dropped packets noted by the server don’t seem to be relevant, I can test stuff with the faulty IP and the count does not change.

What is quite different is the routing table…

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.

Best regards,
Greg

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.

No problem. Glad You worked it out.

Best regards,
Greg