3.0.1 - DHCP error: could not get routes: No data available (container)?

Host ubuntu 4.15.0-23
Container archlinux (un|priviliged with networkd for network management)


bridge inside the container is reporting

DHCP error: could not get routes: No data available

which creates an issue with OpenVPN tap as needing the DHCP route information for clients.
priviliged/unpriviliged does not make a difference.

the full container log reads

systemd-networkd[5604]: br0: loaded bridge
systemd-networkd[5604]: br0: Creating
systemd-networkd[5604]: eth0: Enslaving by ‘br0’
systemd-networkd[5604]: br0: Will enslave ‘eth0’, when ready
systemd-networkd[5604]: br0: Flags change: +UP +LOWER_UP +RUNNING +MULTICAST +BROADCAST
systemd-networkd[5604]: br0: Link 3 added
systemd-networkd[5604]: br0: Link state is up-to-date
systemd-networkd[5604]: br0: found matching network ‘/etc/systemd/network/ovpn_br.network’
systemd-networkd[5604]: br0: Acquiring DHCPv4 lease
systemd-networkd[5604]: br0: netdev has index 3
systemd-networkd[5604]: br0: netdev ready
systemd-networkd[5604]: br0: Enslaving link ‘eth0’
systemd-networkd[5604]: br0: Saved original MTU: 1500
systemd-networkd[5604]: br0: Link does not request DHCPv6 prefix delegation
systemd-networkd[5604]: tap0: Enslaving by ‘br0’
systemd-networkd[5604]: br0: Enslaving link ‘tap0’
systemd-networkd[5604]: br0: Adding address: fe80::7062:1fff:feac:a2dd/64 (valid forever)
systemd-networkd[5604]: br0: Gained IPv6LL
systemd-networkd[5604]: br0: Acquiring DHCPv6 lease
systemd-networkd[5604]: br0: Discovering IPv6 routers
systemd-networkd[5604]: br0: Adding address: 172.25.120.2/24 (valid for 48min 24s)
systemd-networkd[5604]: br0: netdev exists, using existing without changing its parameters
systemd-networkd[5604]: br0: Created
systemd-networkd[5604]: br0: Bridge parameters set success
systemd-networkd[5604]: br0: DHCPv4 address 172.25.120.2/24 via 172.25.120.1
systemd-networkd[5604]: br0: Updating address: 172.25.120.2/24 (valid for 1h)
systemd-networkd[5604]: br0: DHCP error: could not get routes: No data available
systemd-networkd[5604]: br0: Configured


further info from container

networkctl status br0

● 3: br0
Link File: n/a
Network File: /etc/systemd/network/ovpn_br.network
Type: bridge
State: routable (configured)
HW Address: 72:62:1f:ac:a2:dd
Address: 172.25.120.2
fe80::7062:1fff:feac:a2dd
Gateway: 172.25.120.1
DNS: 172.25.120.1

networkctl status eth0

● 39: eth0
Link File: n/a
Network File: /etc/systemd/network/ovpn_eth.network
Type: ether
State: carrier (configured)
HW Address: 00:16:3e:41:42:21 (Xensource, Inc.)


flushed the firewall, just to be sure, but that did not remedy the matter.

dnsmasq on the host seems to be providing the necessary information though

dnsmasq-dhcp[9782]: 1042366568 available DHCP range: 172.25.120.2 – 172.25.120.254
dnsmasq-dhcp[9782]: 1042366568 client provides name: ovpn
dnsmasq-dhcp[9782]: 1042366568 DHCPREQUEST(br3) 172.25.120.2 72:62:1f:ac:a2:dd
dnsmasq-dhcp[9782]: 1042366568 tags: known, br3
dnsmasq-dhcp[9782]: 1042366568 DHCPACK(br3) 172.25.120.2 72:62:1f:ac:a2:dd ovpn
dnsmasq-dhcp[9782]: 1042366568 requested options: 1:netmask, 3:router, 12:hostname, 15:domain-name,
dnsmasq-dhcp[9782]: 1042366568 requested options: 6:dns-server, 33:static-route, 121:classless-static-route,
dnsmasq-dhcp[9782]: 1042366568 requested options: 42:ntp-server
dnsmasq-dhcp[9782]: 1042366568 next server: 172.25.120.1
dnsmasq-dhcp[9782]: 1042366568 sent size: 1 option: 53 message-type 5
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 54 server-identifier 172.25.120.1
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 51 lease-time 1h
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 58 T1 30m
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 59 T2 52m30s
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 1 netmask 255.255.255.0
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 28 broadcast 172.25.120.255
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 3 router 172.25.120.1
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 6 dns-server 172.25.120.1
dnsmasq-dhcp[9782]: 1042366568 sent size: 4 option: 12 hostname ovpn

Tried now with a ubuntu container and only simple eth iface but with the same result

systemd-networkd[161]: eth0: Flags change: +UP +LOWER_UP +RUNNING +MULTICAST +BROADCAST
systemd-networkd[161]: eth0: Link 13 added
systemd-networkd[161]: eth0: Link state is up-to-date
systemd-networkd[161]: eth0: found matching network ‘/etc/systemd/network/eth.network’
systemd-networkd[161]: eth0: Started LLDP.
systemd-networkd[161]: eth0: Acquiring DHCPv4 lease
systemd-networkd[161]: eth0: Saved original MTU: 1500
systemd-networkd[161]: eth0: Adding address: 172.25.120.2/24 (valid for 57min 46s)
systemd-networkd[161]: eth0: DHCPv4 address 172.25.120.2/24 via 172.25.120.1
systemd-networkd[161]: eth0: Updating address: 172.25.120.2/24 (valid for 1h)
systemd-networkd[161]: eth0: DHCP error: could not get routes: No data available

Seems to be a misconception of error semantics in systemd-networkd. A patch https://github.com/systemd/systemd/pull/9406 is in the works