A few years ago when UEFI became much more common on new PCs I wanted to use the UEFI network boot, rather than the old style PXE boot, for imaging machines. This worked fine for computers sat on the same subnet and VLAN as the server, but getting this to work when the client device is in a different subnet took a bit of work.
On your DHCP server, you need to create two policies – you can do this at the server level rather than in each individual subnet:
Set up two policies as follows:
|PXEClient UEFIx64||Vendor Class = PXECleint (UEFI x64)||067 Bootfile Name: SMSBoot\x64\wdsnbp.com|
|PXEClient BIOS||Vendor Class = PXEClient (BIOS x86 & x64)||067 Bootfile Name: SMSBoot\x64\wdsnbp.com|
Mine are ordered with the UEFI one first, I’m not sure if it matters which order they are in or not.
Now if you try to network boot cross-subnet you should find it works. This setup means you can direct UEFI and BIOS clients to different boot loaders if needed – however I just point them all at the x64 loader as everything supports x64 these days.
Looking at it, it doesn’t really make sense why this is needed – as we’re giving both sets of clients the exact same settings – but with just the bootfile name on its own with no policy it didn’t work for me.