I am moving my virtual machines from Hyper-V on Windows Server 2012 R2 to KVM/libvirt/etc on Ubuntu 20.04, and I need to recreate the network configuration I had before. I have had no problems importing the VMs but a difference in the way networks for the virtual machines work has me stumped.
On Hyper-V, all of the virtual machines shared the host network interface, and got their IP addresses from the router on the network with DHCP. In this setup, the Hyper-V host machine had something like 192.168.1.200 (static), and each VM would get their own IPs from the DHCP on the router (not the host), like 192.168.1.20, etc., sharing the same subnet. This made it easy for Windows machines using SMB to talk to each other, whether they were VMs on Hyper-V or real machines directly connected to the router.
I have not been able to figure this out using libvirt. The default bridged setup has the host acting as NAT and the VMs are all on a different subnet, and the real Windows machines on the network will not discover the ones in the VM network. They can ping each other, etc.
What I am looking for is the same configuration I had on Hyper-V which was trivial to configure. What is the proper way to configure my Ubuntu server's network interfaces so that virtual machines get their IP addresses from the router, not the host?