How does a host locate a PXE server?

I'm trying to PXE boot a Cisco UCS C260 M2. For the UCS, or a host in general being booted from PXE, is a PXE server IP specified in the BIOS, or is a PXE server searched for on the same subnet?

The PXE boot configuration is not obvious to me on the UCS, so I'm wondering if I'm looking for something that is not there (e.g. a place to specify PXE server)?


Solution 1:

There's no such thing as a "PXE Server" per-se. The host gets information from a DHCP or BOOTP server, which includes the address of a TFTP server (called 'next-server'). PXE is the software running (usually) from firmware that collects the DHCP/BOOTP information, contacts the TFTP server, downloads various information and eventually starts an Operating System.

Solution 2:

Selected answer is incomplete and not completely correct.

PXE clients do not have hardwired any IP.

When they boot up they broadcast a DHCP request identifying themselves as PXE clients. PXE mainly uses 2 protocols DHCP and TFTP. Basic DHCP services provide to the booting station IP/MASK/Gateway while DHCP answers for PXE identified clients include 2 additional parameters: TFTP server IP and file name of the NBP (network bootstrap program) that is the first network transferred piece of code taking control when a PXE client boots up. TFTP is rather a spartan protocol UDP based (slow, not reliable transfers), after the first NBP takes control it usually installs a full TCP stack and the bulk of the booting/installation components can be then transferred relying on a faster/more reliable transfer protocol like HTTP, FTP, NFS, CIFS, its all depends an what you are PXE booting/installing.