Assigning IPs
IPs are generally assigned to guest VMs via a DHCP daemon on the host.
virsh net-update default add ip-dhcp-host \
'<host id="MACADDRESS" ip="IPADDRESS"/>' \
--live --config
Default Network Limitations
https://libvirt.org/firewall.html
The default network has some limitations. It's possible to re-create it (https://jamielinux.com/docs/libvirt-networking-handbook/custom-nat-based-network.html).
One alternative is to use libvirt hooks to rewrite the iptables rules when updated: https://www.libvirt.org/hooks.html.