I have on the host machine two network interfaces. One is lan and the other is a wlan. For libvirt I have created a nat network which is bound to the wlan. From the guest I can access other machines in the network host wlan is connected to. Also DNS lookup works. The problem is that there's no connection to the internet at all, e.g. pinging something gives "Destination network unreachable". This only happens when both network connection on the host are active. Running qemu/libvirt on OpenSuse Tumbleweed.
Your routing table on the host changes when you have both networks active because the OS is preferring the NIC I'm guessing. You're using a static config for only one interface here.
Either switch to a static setup for NIC and Wlan, or create two interfaces for the VM that cover both host interfaces. A simpler setup would be host networking (macvtap) vs a bridged nat with only one path.
This sounds reasonable. Curiously now that I tried again with both host lan & wlan active there was no problem. I have a hunch the routing depends on which interface networkmanger starts first.
$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.102.1 0.0.0.0 UG 600 0 0 wlp19s0f4u1u1
default RT-AC86U-6D60 0.0.0.0 UG 20100 0 0 enp15s0
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp15s0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr1
192.168.102.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp19s0f4u1u1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0_