Score:1

systemd-networkd configuration not adding any routes and not finishing configuration

iq flag

With systemd 241 on Debian 10, I am attempting to configure systemd-networkd style networking for an edge server.

The problem I have is that when systemd-networkd starts up, it does not add the v4 or v6 routes but reports that it still is in the "configuring" state:

IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           carrier     unmanaged
  2 eth0             ether              carrier     configuring
  3 eth1             ether              carrier     configuring
  6 docker0          bridge             routable    unmanaged
  8 veth9a70b3d      ether              degraded    unmanaged
 32 ext              bond               routable    configuring
 33 int              vlan               routable    configured

Here are debug logs from networkd startup:

Aug 23 17:15:52 te1a systemd[1]: Started Network Service.
Aug 23 17:15:52 te1a systemd-networkd[29413]: ext: Created
Aug 23 17:15:52 te1a systemd-networkd[29413]: ext: Link state is up-to-date
Aug 23 17:15:52 te1a systemd-networkd[29413]: No virtualization found in DMI
Aug 23 17:15:52 te1a systemd-networkd[29413]: No virtualization found in CPUID
Aug 23 17:15:52 te1a systemd-networkd[29413]: Virtualization XEN not found, /proc/xen does not exist
Aug 23 17:15:52 te1a systemd-networkd[29413]: This platform does not support /proc/device-tree
Aug 23 17:15:53 te1a systemd-networkd[29413]: UML virtualization not found in /proc/cpuinfo.
Aug 23 17:15:53 te1a systemd-networkd[29413]: This platform does not support /proc/sysinfo
Aug 23 17:15:53 te1a systemd-networkd[29413]: Found VM virtualization none
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: found matching network '/etc/systemd/network/ext.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving by 'int'
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Creating
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: found matching network '/etc/systemd/network/veth.network
'
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: docker0: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: docker0: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: found matching network '/etc/systemd/network/eth1.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Enslaving by 'ext'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving link 'eth1'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: found matching network '/etc/systemd/network/eth0.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Enslaving by 'ext'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving link 'eth0'
Aug 23 17:15:53 te1a systemd-networkd[29413]: lo: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: lo: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: New device has no master, continuing without
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +MULTICAST +BROADCAST
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Link 33 added
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: udev initialized link
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: netdev has index 33
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: netdev ready
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Saved original MTU: 1500
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Bringing link up
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: MAC address: 02:f9:36:9d:17:aa
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Flags change: +SLAVE +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: MAC address: 02:f9:36:9d:17:aa
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Flags change: +SLAVE +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: found matching network '/etc/systemd/network/int.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Bringing link up
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Flags change: +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +UP +LOWER_UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Setting addresses
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Setting addresses
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Updating address: 10.0.1.210/24 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Updating address: 2001:db8:2:100::d2/64 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Addresses set
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 192.0.2.196/27 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::c4/64 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 192.0.2.217/32 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::d9/128 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Addresses set
Aug 23 17:15:54 te1a systemd-networkd[29413]: eth0: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:54 te1a systemd-networkd[29413]: eth0: Gained carrier
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Adding address: fe80::f9:36ff:fe9d:17aa/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Gained IPv6LL
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Adding address: fe80::f9:36ff:fe9d:17aa/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Gained IPv6LL
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::d9/128 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Updating address: 2001:db8:0:100::d2/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Configured
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::c4/64 (valid forever)
Aug 23 17:15:56 te1a systemd-networkd[29413]: LLDP: Invoking callback for 'added' event.
Aug 23 17:15:56 te1a systemd-networkd[29413]: LLDP: Successfully processed LLDP datagram.
(repeats)

And here are the configuration files:

# eth0.network
[Match]
Name=eth0

[Link]
RequiredForOnline=no

[Network]
Bond=ext
# eth1.network
[Match]
Name=eth1

[Link]
RequiredForOnline=no

[Network]
Bond=ext
# ext.netdev
[NetDev]
Name=ext
Kind=bond

[Bond]
Mode=802.3ad
MIIMonitorSec=0.1
LACPTransmitRate=fast
# ext.network
[Match]
Name=ext

[Link]

[Network]
IPv6AcceptRA=false

[Address]
Address=192.0.2.196/27
[Route]
Gateway=192.0.2.193

[Address]
Address=2001:DB8:0:FF01::C4/64
[Route]
Gateway=2001:DB8:0:FF01::1
Metric=128
# ext.network.d/ext-a1.conf
[Match]
Name=ext

[Address]
Address=192.0.2.217/32
PreferredLifetime=0
# ext.network.d/ext-a2.conf
[Match]
Name=ext

[Address]
Address=2001:DB8:0:FF01::D9/128
PreferredLifetime=0
# ext.network.d/has-vlan-int.conf
[Match]
Name=ext

[Network]
VLAN=int
# int.netdev
[NetDev]
Name=int
Kind=vlan

[VLAN]
Id=13
# int.network
[Match]
Name=int

[Link]

[Network]
IPv6AcceptRA=false

[Address]
Address=10.0.1.210/24

[Address]
Address=2001:DB8:0:100::D2/64
# veth.network
[Match]
Name=veth*

[Link]
Unmanaged=yes
RequiredForOnline=no

What's going wrong?

Score:1
iq flag

Turns out it was this:

[Address]
Address=192.0.2.217/32
PreferredLifetime=0

Specifying PreferredLifetime for an IPv4 address causes networkd to wedge.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.