NetworkManager is really serving desktop environments (GNOME, KDE, etc.) to write higher level, easy-to-use GUI programs (It also provides CLI: nmtui, but is still aimed at easy to use by users). It is not for every advanced usage. And it’s not just “default” nor specific to fedora, it’s the only API to use by GNOME and KDE (well, networkmanager-qt wrapping for KDE).
I am not an expert on KVM network passthrough but I think you should stick to systemd-networkd. NetworkManager is really not the right tool, or maybe much harder to configure.
I am not sure about your use case: are you running a server or desktop? If you run a server, you can completely ignore NetworkManager (doesn’t need it to be installed). If you run a desktop, you have to be reminded that NetworkManger conflicts with many daemons like dhcpcd. But for your case where systemd-networkd only adds virtual networks, it shouldn’t conflict so you should leave NetworkManager behind either.
NetworkManager is more suited for dynamic desktop, laptop and mobile environments where you need to connect different WLANs and VPNs, use metered connections, track connectivity, and interact with desktop applications.
Meanwhile, your use case seems to be closer to server-specific with typical server roles such as virtualization, VLAN routing, PXE boot, etc. which are well suited for systemd-networkd, and in that case NetworkManager only adds unnecessary complexity resulting in possible errors.
I have experience with both NetworkManager and systemd-networkd for server-like use cases for several years, and NetworkManager failed me more than once, sometimes even due to serious bugs which were open for months.
I want to know how to recreate the setup in NetworkManager, becase I want to:
Learn to do things in the “Fedora Way”
Duplicate the Network setup to my first personal Notebook (a n-th hand Dell Vostro 3350 upgraded to 8GB memory+256GB SSD, but sadly not supporting UEFI. Still can run a few KVM guests.)
Now my Dell Notebook become my playground, my Fedora Desktop can take up more “production” roles.
My Desktop setup is in systemd-networkd, as I can Google more configuration examples that I can “copy and paste”.
Yes, I leave NM running to manage the Wifi adaptor only - iwd+systemd-networkd in Fedora is still too hard for me. In case I mess up with the Network setting too much, I can fireup my Wifi connection via NM to resume Internet Access quickly.
Base on my limited experience, I intended to stick with systemd-networkd for my vLAN Trunk, systemctl wg-quick@.service for WireGuard and NM for Wifi at my Desktop. Once I managed to use iwd+networkd, I will disable NM.
While for my Notebook, I will try to use NM only + wg-quick for WireGuard.
My main use case is to learn Linux / Fedora.
Years ago, I converted a Windows MSSQL cluster w/ DAS + Terminal Server front ends to VMWare cluster w/ iSCSI + Virtualized TS, then further split TS to one instance per Language Group in the same VMWare cluster.
This is my IT skill background, and that is why I play with KVM/iSCSI/vLAN a lot.
My “production” use for my Desktop in mind are:
provide Windows VM for RDP access, for my kids school needs (so far there is none)
provide dedicated Windows VM for my wife - she is not even willing to try using macOS with her iPhone
consolidate all Photos / Videos taken by mobile phones. Allow easy access to the archive so that they can be searched, tagged, etc.
as a Storage Server so that Notebooks can store backups
Allow iPhone / Android to do sync
It will take me years to get those done, but I will keep trying.