Seriously, current versions are barely usable, and I don’t think I’m doing anything particularly hard. Want to verify your config before committing to it? Nope. Want to delete a vlan? Not happening without bypassing netplan. Want to bring up a vlan on an interface with a long name (which is the default on a fresh Ubuntu install with a NIC in a PCIe slot)? Netplan will accept the configuration, but it won’t work, and you’ll have to do quite a bit of digging to find out why your vlan doesn’t exist as far as the kernel is concerned.
The latter one is nasty if you upgrade Ubuntu on a system where the management interface is on a vlan.
There is a -state parameter for netplan apply which allows deleting VLANs, which has worked for me every time so far. What's the exact issue?
I never ran into your last issue, so I can't comment on that.
But I think this whole model is wrong. For as long as I'm aware, every serious network config system (at least Cisco IOS and everything that came after) has it right: there is a live configuration and a saved configuration. You can edit the live configuration, and you can commit to the saved configuration.
So with netplan try, you edit the configuration, hope you don't crash or otherwise reboot, run netplan try, and hope it succeeds in rolling back on failure. That's a lot of hoping. With old IOS, you would just not do 'write memory' until you get the configuration right.
Similarly, netplan apply -state relies on the user to do some horrible manual shuffling of configuration. An IOS-like solution would make this automatic.
In the context of netplan, this could be quite straightforward. Instead of just /etc/netplan, there would be:
/etc/netplan: The configuration to be loaded at boot.
/var/run/netplan-live: The configuration that was most recently applied. NOTHING EXCEPT THE NETPLAN TOOLING EDITS THIS.
/tmp/whatever (or any other path): configuration that the administrator wants to test.
To use it, the admin could stage their configuration anywhere they want and netplan apply it. Then netplan commit would commit the running configuration to /etc/netplan. -state is automatic: it's in /var/run/netplan-live.
re: the last issue, one of my servers has a NIC with a name like eno12345np1. On that physical link is a vlan with tag 1234. This gives a name like "eno12345np1.1234". That plus the trailing NULL is 17 bytes, which is too long. Now this isn't strictly netplan's fault (although eno12345np1 really is excessive IMO), but the fact that netplan can't intelligently handle this or at least notice when I do netplan apply is fairly sad.
Honestly, I really like netplan, been using it for all my systems for ~5 years now.
I was able to set up fiber link aggregation with triple NICs and a custom VLAN and MTU with no issues. It supports bridges and child interfaces just fine.
Can you share your details?
Source : I’m a former Canonical employee.
I really like "netplan try" actually. Maybe not exactly the same thing, but it has saved me once or twice.
nmcli device wifi connect "$WIFI_NETWORK" password "$WIFI_PASSWORD" name "$WIFI_NETWORK"My laptop sure, but I have network manager on a gui for that. My netplan config on my laptop is literally
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManagerSeems not for long
network/interfaces feels so archaic. Then you add bonding, multiple interfaces, custom metrics, and IPv6 and you need to pray before reloading.
Anyway, to each its own I guess.
systemd-networkd already gives you simple declarative INI networking files and a dbus interface. I can't find any value-add over just using its backends directly.
In all seriousness, once you learn Netplan, you get accustomed to 1 config file for all networking needs. I also prefer UFW to iptables. Simple and handles most day-to-day use cases.
UFW will always hold a special place in my heart but firewalld is just a whole other level.
They're trying for lock-in and failing.
Linux networking has been a solved problem since just about forever, and all this instability will do is cause people to abandon Ubuntu in favor of something less fickle.
Creating artificial lock-in that doesn't work is a double-barrel footgun blast.
The Ubuntu people are like the SystemD people: they just want to reinvent things from scratch and shove it down everyone's throats without any consideration.
Imagine looking for a Java solution and the only response you find is in Kotlin... fucking annoying as I have to learn Kotlin to convert it to Java... The same thing with network configuration, you're looking for something that works on Debian and you only find a Ubuntu solution....
You only think ifupdown-ng, nmcli/nmtui work well because you don't remember how hard it was to learn and developed scar tissue from using them. To my scar tissue, Debian/Ubuntu is well organized and tools like netplan clicked very fast and make network configuration much easier.
Guessing, but I think it probably has more to do with the various tools and frontends (GUI, cloud-init, etc.) designed to manage the configurations than it has to do with the capabilities of what the configuration system will support. I have been bitten by some of this too, but the various script hooks are still there, and I've been able to support everything else via those mechanisms.
(Now happily in the Fedora/Red Hat ecosystem)
[1]: https://blog.slyon.de/2023/07/10/netplan-and-systemd-network...
I use this functionality in production for high availability configurations and effectively have to have a cron job to use 'ip' directly to fix things up.
If netplan would be an api driven tool via dbus or other ipc‘s to drive an ui I would understand the need. But as cli tool?! It’s a little bit stupid