This article covers how to fix the issue with guests unable to reach the host using macvtap interface.
This issue happens when A guest virtual machine can communicate with other guests, but cannot connect to the host machine after being configured to use a macvtap (also known as type='direct') network interface.
To resolve this error (guests unable to reach the host using macvtap interface), simply create an isolated network with libvirt:
1. Add and save the following XML in the /tmp/isolated.xml file. If the 192.168.254.0/24 network is already in use elsewhere on your network, you can choose a different network.
<ip address='192.168.254.1' netmask='255.255.255.0'>
<range start='192.168.254.2' end='192.168.254.254' />
2. Create the network with this command: virsh net-define /tmp/isolated.xml
3. Set the network to autostart with the virsh net-autostart isolated command.
4. Start the network with the virsh net-start isolated command.
5. Using virsh edit name_of_guest, edit the configuration of each guest that uses macvtap for its network connection and add a new <interface> in the <devices> section similar to the following (note the <model type='virtio'/> line is optional to include):
6. Shut down, then restart each of these guests.
Since this new network is isolated to only the host and guests, all other communication from the guests will use the macvtap interface.