Been doing some virtual #homelab #network stuff recently and… wow, really impressed by VDE (V²/https://wiki.virtualsquare.org/, not the german standards organization).
Weird networking always seemed like a pretty weak spot for virtualization, generally (at least in the environments I'm familiar with: libvirt+qemu/docker/virtualbox/virtualpc2007). Usually they offer a choice between one isolated network, or a "home routery" "leaf" network that upstreams to your real home network (either NAT or bridged). It feels like a consumer router: when you don't really care it's good at getting out of the way and doing what you probably want. But that's also all it wants to do.
VDE feels more like virtual RJ45: VDE-compliant applications provide ports, and VDE is the "cable" that lets you connect them however you want. Of course, VDE-the-project also provides virtual switches, routers, hubs, and so on.
I'm sure there are ways to do this stuff with brctl and co, but I've never managed to get very comfortable with that, and I never loved how it intermingles the host's networking with the virtual network. VDE "just clicked" pretty much immediately.
One downside is that packaging is pretty abysmal at the moment… VDE tooling seems to be moving from the old "vde2" (which still works and is compatible with new connections, but has been dropping bridges like SLIRP) to vdeplug4, but at least #archlinux and #nixos still only package vde2. To get the things I needed working, I started packaging vdeplug4 for #nix at https://codeberg.org/natkr/vde-nix.