I think I understood this.

I have a udev rule to force the NIC name to eno1, which is not the
driver's default (it is eno1np0). I did not regenerate the initramfs, so
that rule did not propagate there.

What happens is:
- initramfs is executed. The NIC is renamed to eno1np0 (driver's default).
- systemd starts
- it runs the netplan generator
- the netplan generator sees its configuration for eno1, but does not match it 
to eno1np0.
- as a consequence, it does not generate the symlink 
(/run/systemd/generator/network-online.target.wants/systemd-networkd-wait-online.service)
- udev kicks in, renames the NIC to eno1, but it's too late.

That behaviour is caused by debian/patches/lp2060311/0010-wait-online-
wait-for-existing-interfaces-only-and-do.patch. Removing that patch
returns to the previous behaviour.

There are two potential workarounds:
- regenerate the initramfs, so that it knows about the new name for the 
interface and names it correctly before systemd starts.
- help netplan match the real NIC with its configuration, for example 
specifying the MAC address.
```
---
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: true
      match:
        macaddress: 98:03:9b:b0:a7:76
```

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2063973

Title:
  network-online.target is reached before netplan-configured interfaces
  are online

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/2063973/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to