MacNetBoot is a service from Apple that allows Macs to boot from a network rather than a local hard drive. It is based on work from the Bootstrap Protocol (BOOTP) and works very similarily the Preboot Execution Environment (PXE). It was originally introduced with the first version of Mac OS X Server in 1999.
MacNetBoot is used to boot a machine from the network the same way we use PXE boot to diagnose/image PCs off of Asimov. NetBooting requires two key components: a MacNetBoot image (referred to as a "MacNetBoot Set") and a MacNetBoot server to provide access to the MacNetBoot image from the local network.
Apple created MacNetBoot to either deploy images (NetInstall) or have a group of Macs booted off of the network all running the same image (similar to our Nettop labs). We use it to temporarily boot a stripped down version of Mac OS X with our basic utilities (namely DeployStudio) to either diagnose or image a Mac.
MacNetBoot images are usually prepared on a Mac and then packed using System Image Utility. Instead, DeployStudio has a built in application (DeployStudio Assistant) to create a stripped down image with its utilities installed. With this "DeployStudio" MacNetBoot image, we can network boot a group of Macs to an image that is running our latest image/diagnostic utilities and run DeployStudio Runtime to deploy images setup on the DeployStudio Server (The MacNetBoot server is not always the same machine as the DeployStudio server).
NetBooting a Mac can be done by holding the N key during startup. When a globe icon appears, the key can be let go and the machine will search for available MacNetBoot servers. If one is found, it will boot off of the default MacNetBoot image set on the server.
If a Mac is protected with a firmware password, the machine can not MacNetBoot using the N key (this also applies to any other startup shortcuts such as Start from CD (C) or Boot to Restore (R or CMD-R)). Instead, hold down the ALT key to access all available boot options. If the firmware password is set on the machine, it will prompt you to input it. If the Mac is new enough, all MacNetBoot images made available to the machine will appear here after a few seconds.
If the Mac is firmware locked and too old to have the MacNetBoot images appear on the startup selection, the only way to boot off the network is to either remove the firmware password or manually specify the network as the default startup option under System Preferences -> Startup Disk (can be done on the installed OS on the machine (if any) or off of external media (install disc.etc)).
A MacNetBoot server used to require a Mac running Mac OS X Server. Now, Mac OS X "Server" isn't a seperate operating system but is instead a Mac running the client version of Mac OS X and the $20 Server.app purchased from the App store. On Mac OS X 10.7+ Server, the MacNetBoot service is referred to as "NetInstall".
The MacNetBoot server interface has been simplified ever since Server.app was introduced. The service can be started or stopped using the on/off switch in the upper right corner of the pane.
You can further configure the service under Access. The two most important options under this section will be the ability to only provide MacNetBoot coverage on specific network interfaces (helpful if you have a server with multiple network interfaces on different networks and you only want to be providing MacNetBoot to one) and the ability to restrict MacNetBoot access (allows you to have a global whitelist of MAC addresses).
MacNetBoot Images (or "Sets") will be listed under Images (any MacNetBoot set under /Library/NetBoot/NetBootSP0 will appear here). All images that are enabled will show up as bootable options under the "Startup Disk" pane of all clients on the network (or by holding ALT on bootup), the "Default" MacNetBoot set will be the one selected by default if a user tries to MacNetBoot by just holding the N key on startup.
By double clicking a MacNetBoot set, you can view more advanced options for each set. If you want to change the Unique Identifier for the MacNetBoot set or restrict it to specific Mac models/MAC addresses (if you have a Nettop-esque setup) then you can do so here.
Edit Storage Settings at the bottom of the page can be used to change the repository where the MacNetBoot sets and client data is stored. Generally the default for this is fine for most uses.