I have a virtual machine running under qemu-kvm, on a 13.10 host. I am using virt-manager to define the machine, and I have added a virtual NIC, using the new macvtap driver. I have the following definition:

<interface type='direct'>
  <mac address='52:54:00:1f:dd:c4'/>
  <source dev='eth0' mode='bridge'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

On the host machine, I can see that the tap interface is created:

$ip link

5: macvtap0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 500
    link/ether 52:54:00:1f:dd:c4 brd ff:ff:ff:ff:ff:ff

$ls /dev/tap5 

But in the virtual machine, interface eth0 is unable to access the network. dhcp fails. Static configuration obviously works, but then I cannot ping anything.

I have no iptables rules, neither on the host, nor in the virtual machine.

So, how can I troubleshoot this problem ?


I have same problem with Ubuntu 13.10, I also update to 14.04 development branch to try but still does not work.

I do not know a good way debug, for my problem, I found eth0 does not enter promiscuous mode, I can not find message like device eth0 entered promiscuous mode in dmesg output. So I force eth0 into promiscuous mode, the problem then disappears.

This is what I did:

  1. Force eth0 into promiscuous mode: sudo ifconfig eth0 promisc
  2. Use virt-manager to start the VM
  3. ifconfig -a and ping outside to see whether it works for you.

I do not know why libvirt does not put eth0 into promiscuous mode, maybe a bug of it.

  • I had the same issue on CentOS 7 as KVM host. The guest OS aren't learning any MAC address. Manually setting the physical interface on the host to promiscuous mode fixed the problem. Does macvtap actually requires promiscuous mode? – sdaffa23fdsf Jan 29 '15 at 8:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.