networkd: Link local static IP address behind NAT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

We are trying to configure a device to use a gateway and a static IP address 
(in the link-local address range). However, the default gateway does not appear
to be used. As such, there is no traffic possible to the internet.

The device runs systemd 251.4 on a custom Yocto distribution with 
Linux 5.4.124-altera.

The following network is used:

[Match]
Name=eth0

[Network]
Address=169.254.1.2/16
DNS=169.254.1.1
Gateway=169.254.1.1

With this configuration ping 8.8.8.8 does not work. However, if we specify the 
interface like so:

ping -I 169.254.1.2 8.8.8.8

We are able to reach it successfully. We verified that the gateway is indeed 
reachable. 

See also the following relevant output:

$ ip route
default via 169.254.1.1 dev eth0 
169.254.0.0/16 dev eth0 scope link  src 169.254.146.171  metric 2048 
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether e2:26:9e:11:ae:da brd ff:ff:ff:ff:ff:ff
    inet 169.254.146.171/16 brd 169.254.255.255 scope link eth0
       valid_lft forever preferred_lft forever
3: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether b6:c8:ab:ac:44:7f brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
$ ip route get 8.8.8.8
8.8.8.8 via 169.254.1.1 dev eth0

The route seems to be configured correctly. The scope appears to be link,
we would expect global as this is consistent with other configurations. The 
output of ip route get shows no src address.

If the interface is configured in an interactive manner we get the expected 
behavior. The device is able to use the gateway by default.

$ ip address flush dev eth0
$ ip route flush dev eth0
$ ip address add 169.254.1.2/16 brd + dev eth0
$ ip route add 169.254.1.1 dev eth0
$ ip route add default via 169.168.1.1 dev eth0

Which produces a route which includes a src address and produces the address
with scope global.

networkd does not show any warnings or errors in the log. Is there a 
configuration option we are missing?


With kind regards,
Thomas Burghout




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux