Bootstrap Protocol

Reference a network configuration and a kernel name for easy (eg diskless ) devices

67/UDP ( request) 68/UDP (Reply )

RFC 951 (1985)

The Bootstrap Protocol (English, short or BOOTP Bootstrap Protocol called ) is used to assign an IP address and a number of other parameters to a computer on a TCP / IP network.

BOOTP is used for example to set the network address of terminals and diskless workstations that are sourced operating system from a boot server. The transfer of the operating program then is usually done via TFTP. In addition, (subnet / gateway) some peripherals such as network printers can use BOOTP to determine their IP address and network configuration.

Previously RARP was used to determine the IP address for the diskless devices. Unlike RARP, which provides only the IP address, BOOTP has a variety of other parameters, in particular, subnet mask, gateway, and boot server can be transmitted. For configuration of workstations and PCs, however, these are not sufficient, since additional settings such as printers, time servers and other necessary here. The Dynamic Host Configuration Protocol (DHCP) represents an extension of BOOTP

Expiration of a BOOTP request

A BOOTP request consists of a client request and a server response.

The BOOTP request

When the device that knows neither its own IP address nor that of the BOOTP server. It will be sent a boot request. This is a normal UDP packet. As the sender, the address 0.0.0.0 is because so far nothing is known, are used. The recipient address is 255.255.255.255, which is interpreted as a broadcast in its own network, as the BOOTP client also does not know the local address of the network strand.

A boot request from a client is always on the destination port 67 (BOOTP server) sent. Then, the client 68 listens to the port (BOOTP client), to which the answer ( BOOTREPLY ) is sent.

The fact that two reserved ports are used, is not in any IP connection that way. Most protocols use as outgoing port ( the port on the client ) a random port number. Then the server's response is expected on this port. When BOOTP but this would not work, because the response of the BOOTP server (boot reply) is not necessarily sent to a specific destination address, but also can go as a broadcast to all stations in your subnet. Would no fixed port numbers used, it could happen that another host is currently listening on the same port, but expected something completely different.

With the boot request, the client sends some information about yourself: The most important is its own hardware address of the network card (MAC address). This is the only distinguishing feature of the station. The client also generates a 4-byte random number that needs to resurface in the boot reply. Furthermore, a timer is provided which counts how long the client is waiting for his boat reply.

The BOOTP reply

Gets the BOOTP server, a valid request on the appropriate port, so this first look at the MAC address. The MAC address of the request is compared with a database in which the MAC addresses of the IP addresses are assigned. If an entry is found for the request, the server sends a reply (boot reply). In most cases the answer is simply sent as a broadcast, but it is also possible to edit the ARP table of the server manually. However, the possibility for this must provide the kernel.

If the response is sent as a broadcast, it contains the following information:

  • The hardware address of the client. The client expects a reply with its hardware address, to recognize that the packet is for him.
  • The random number that was generated in the request from the client.
  • The IP address of the client machine.

The following parameters are optional and are only transmitted if the BOOTP server is configured accordingly:

  • The IP address and the host name of the boot server. From there, an operating system can be loaded at the next step via TFTP.
  • The name and path of the boot file. The boot file contains the kernel, which is then transferred using TFTP.
  • Name of the directory that is to be integrated by the kernel via NFS as root (/) partition.

So the BOOTP client listens on the specified port and waits for a response from the server. If it receives a packet, the MAC address to its own, and the random number is compared with the transmitted. When the client recognizes that the response is intended for it, the IP address of the network interface is assigned.

138242
de