Probably the same issue in different scenario: DHCP server is running on the host machine (VMs use virtual NICs connected to a bridge) and is also configured to do PXE, which works, but only when VMs are launched in BIOS mode. When launched in UEFI mode using Tianocore, they fail. Now the interesting bit is again provided by Wireshark:
BIOS mode ********* 1) VM sends DHCP discover, flag 0x0000 (Unicast) 2) DHCP replies with an offer, also 0x0000 (Unicast) 3) normal process continues UEFI MODE ******** 1) VM sends DHCP discover, flag 0x8000 (Broadcast) 2) DHCP replies with an offer, also 0x8000 (Broadcast) 3) VM ignores the offer 4) goto 1) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1543163 Title: VMs unable to boot from network with e1000 since 2.2 Status in QEMU: New Bug description: With KVM/QEMU version 1.4, using e1000 NIC, virtual machines boot from network alright; they get an IP from DHCP server (machine A), then connect to Microsoft System Center (machine B) and proceed to boot into Windows PE, install images etc. However, with versions at least 2.2 and 2.5, using same NIC, virtual machines fail to boot from network; they still get an IP from A, but then fail "contacting B using gateway (0.0.0.0). Different NICs do not help except for i82551, which however causes problems further down the road (presumably because there is no driver for that card in PE (based on Windows 7/8/10)). Note that actual physical machines work. Wireshark reveals this: QEMU 1.4 + Intel e1000 ********************** 1) client sends DHCP discover 2) machine A answers, offers an IP, gateway and itself as next server 3) machine B answers, offers no IP, but gateway and itself as next server 4) client requests the IP 5) machine A ACKs 6) client sends unicast request for ??? to B 7) B offers (unicast) a boot file (some .com) 8) client sends another unicast request for ??? to B 9) B again offers the boot file (then they chat a bit, B offers another file, client downloads some stuff via TFTP etc.) QEMU 2.2/2.5 + Intel e1000 ************************** 1) client sends DHCP discover 2) machine A answers, offers an IP, gateway and itself as next server 3) machine B answers, offers no IP, but gateway and itself as next server 4) client requests the IP 5) machine A ACKs 6) client sends _broadcast_ request for ??? to B 7) B offers (likewise broadcast) a boot file 8) client sends another request, this time unicast and claims "Client IP address = 0.0.0.0" (and it basically hangs) So, since some time after 1.4, QEMUlated machines with otherwise trusty e1000 can no longer boot from network and it might be due to different behaviour. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1543163/+subscriptions