Q:

libvirt DHCP fails from host

I am having trouble setting up a PXE VM.  It is sending DHCP requests and the server is sending responses, but the VM does not appear to be processing the response.  I am unsure as to the cause.  
I did confirm physical machines are working just fine with the same DHCP and PXE settings and the DHCP requests and responses are the same as with the VM. 
The DHCP server is provided by MaaS and is on the host. 
Below is an image of the error. 

The VM is created with: virt-install --name=maas-node-1 --connect=qemu:///system --ram=15360 --vcpus=8 --hvm --virt-type=kvm --pxe --boot network,hd --os-variant=ubuntu16.04 --graphics vnc  --os-type=linux --accelerate --disk=/var/lib/libvirt/images/maas-node-1.qcow2,bus=virtio,format=qcow2,cache=none,sparse=true,size=60 --network=bridge:br0,model=virtio
The network are configured as:
auto br0
iface br0 inet static
    address 192.168.10.2
    network 192.168.10.0
    broadcast 192.168.10.255
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.2
    bridge_ports bond0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

auto bond0
iface bond0 inet manual
    mtu 1500
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-mode 0
    bond-slaves none
    post-up ifenslave bond0 eno1 eno2 eno3 eno4
    pre-down ifenslave bond0 eno1 eno2 eno3 eno4
...

DHCP request is:
steel.maas.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 18:03:73:f8:ea:c9 (oui Unknown), length 257, xid 0xf97e014f, Flags [Broadcast] (0x8000)
      Client-Ethernet-Address 18:03:73:f8:ea:c9 (oui Unknown)
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Discover
        Client-ID Option 61, length 6: ieee1394 03:73:f8:ea:c9
        Parameter-Request Option 55, length 3:
          Default-Gateway, Subnet-Mask, Domain-Name-Server

DHCP Reply is:
steel.maas.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xf97e014f, Flags [Broadcast] (0x8000)
      Your-IP steel.maas
      Server-IP steel.maas
      Client-Ethernet-Address 18:03:73:f8:ea:c9 (oui Unknown)
      file "pxelinux.0"
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Offer
        Server-ID Option 54, length 4: steel.maas
        Lease-Time Option 51, length 4: 600
        Subnet-Mask Option 1, length 4: 255.255.255.0
        Default-Gateway Option 3, length 4: 192.168.10.1
        Domain-Name-Server Option 6, length 4: steel.maas

A:

The problem was that ARP was not being responded to due to a trait of using bond-mode 0 with no trunking on the switch.  Switching to balance-tlb fixed the issues. 
This helped narrow the problem down: https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/785668

