[systemd-devel] networkd: Link local static IP address behind NAT

Thomas Burghout thomas.burghout at nedap.com
Wed Jan 18 14:12:59 UTC 2023


On 18.01.20233 04:06, Andrei Borzenkov wrote:
> On 17.01.2023 18:28, Thomas Burghout wrote:
> >      inet 169.254.146.171/16 brd 169.254.255.255 scope link eth0
>
> Is it output from the correct system? Because address is different. I do
> not see how "ping -I 169.254.1.2" can work with this.

That is unfortunate, I copied the wrong notes indeed. Apologies. The 
following output should completely describe the configuration of the 
system:


$ cat /usr/lib/systemd/network/10-lan.network 
[Match]
Name=eth0

[Network]
Address=169.254.1.2/16
DNS=169.254.1.1
Gateway=169.254.1.1
$ ip route
default via 169.254.1.1 dev eth0 
169.254.0.0/16 dev eth0 scope link  src 169.254.1.2 
$ 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.1.2/16 brd 169.254.255.255 scope link eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e026:9eff:fe11:aeda/64 scope link 
       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 at 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 
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
9 packets transmitted, 0 packets received, 100% packet loss
$ ping -I 169.254.1.2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 169.254.1.2: 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=116 time=12.576 ms
64 bytes from 8.8.8.8: seq=1 ttl=116 time=8.341 ms
64 bytes from 8.8.8.8: seq=2 ttl=116 time=9.124 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 8.341/10.013/12.576 ms


The commands I included for "interactive" were also wrong. The 
following commands produce a working configuration:


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.254.1.1 dev eth0


Most notably, ip route now includes the following line as well:
169.254.1.1 dev eth0 scope link

Adding an extra [Route] section with this address does not fix the 
networkd configuration file.


More information about the systemd-devel mailing list