Table of contents:
Boot procedure demystified
- DHCP server listens for DHCP discover and request packets.
- The client broadcasts (255.255.255.255) a DHCP discover packet on the local subnet with source ip 0.0.0.0.
- Then the DHCP server broadcasts (255.255.255.255) a DHCP offer packet with his own ip as source ip and a possible ip in the bootp flags in the field yiaddr.
- Now the client broadcasts (255.255.255.255) a DHCP request packet for the previously offered ip.
- The DHCP server now sends an DHCP acknowledge packet
Now the thin client is visible as PXE-Client in the openThinClient Manager and needs to be configured.
- JBoss starts the services PXE-proxy, TFTP, NFS and LDAP.
- PXE-proxy listens for DHCP packets.
- The client starts up and sends out a DHCP discover.
- If the PXE-proxy detects a DHCP offer for a configured client, it sends another DHCP-offer to the client with its own ip as server (option 54), but no client ip address.
- The client reserves the IP address on the DHCP server, using a DHCP request and receives an acknowledge from the DHCP server.
- Having obtained the network information (like IP address, net mask and default gateway), the client requests the boot information by using the extra DHCP offer from the PXE-proxy service and gets an acknowledge containing the boot filename in return.
- Now, the client knows all information it needs to boot.
- Then he pulls the pxelinux.0 from the TFTP server and starts it.
- The pxelinux.0 pulls the client specific pxelinux config via TFTP, containing the paths to the kernel and initrd as well as the kernel parameters.
- pxelinux.0 then loads kernel and initrd via TFTP and starts the kernel which then takes over control of the client.
- The kernel then executes the start script from the initrd, in which the actual base system from OTC will be mounted via NFS and then used as root file system.