Bootstrap Protocol

from Wikipedia, the free encyclopedia
BOOTP (Bootstrap Protocol)
family TCP / IP
operation area


Obtaining a network configuration and a kernel name for simple
(e.g. diskless) devices

Ports

67 / UDP (request)
68 / UDP (response)

BOOTP in the TCP / IP protocol stack :
application BOOTP
transport UDP
Internet IP ( IPv4 , IPv6 )
Network access Ethernet Token
bus
Token
ring
FDDI ...
Standards

RFC 951 ( 1985 )

The Bootstrap Protocol (English; short BOOTP or bootstrap protocol called) serves a computer in a TCP / IP - network an IP address and a number of other parameters to assign.

BOOTP is used, for example, to set the network address of terminals and workstations without hard drives that obtain their operating system from a boot server. The operating program is then usually transmitted via TFTP . In addition, some peripheral devices such as network printers can use BOOTP to determine their IP address and network configuration (subnet / gateway).

In the past, RARP was used to determine the IP address of devices without hard drives. In contrast to RARP, which only supplies the IP address, BOOTP has a large number of additional parameters, in particular subnet mask, gateway and boot server can be transmitted. However , these are not sufficient for the configuration of workstations and PCs , since additional settings such as printers , time servers and others are required here. The Dynamic Host Configuration Protocol (DHCP) is an extension of BOOTP.

While some functions of the BOOTP protocol in the Dynamic Host Configuration Protocol (DHCP), which z. B. the possibility of the time limitation of the IP address assignment ("lease") allows, parts of the BOOTP protocol provide the DHCP basic functionality.

Process of a BOOTP request

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

The BOOTP request

When the device is switched on, it knows neither its own IP address nor that of the BOOTP server. A boot request is sent. This is a normal UDP packet. Since nothing else is known so far, the address 0.0.0.0 is used as the sender. The recipient address is 255.255.255.255, which is interpreted as a broadcast in its own network, since the BOOTP client does not know the local address of the network line either.

A boot request from a client is always sent to destination port 67 ( BOOTP server ). The client then listens on port 68 ( BOOTP client ) to which the response ( boot reply ) is sent.

The fact that two reserved ports are used is not the case with every IP connection. Most protocols use a random port number as the outgoing port (the client's port). The server's response is then expected on this port. With BOOTP, however, this would not work because the response from the BOOTP server (boot reply) is not necessarily sent to a specific target address, but can also be broadcast to all stations in its own subnet. If no fixed port numbers were used, it could happen that another host is listening on the same port but is expecting something completely different.

With the boot request , the client sends some information about itself: The most important thing is the network card's own hardware address ( MAC address ). This is the only distinguishing feature of the station. The client also generates a 4-byte random number that must appear again in the boot reply . A timer is also provided that counts how long the client has been waiting for its boot reply .

The BOOTP response

If the BOOTP server receives a valid request on the corresponding port , it first looks at the MAC address . The MAC address from the request is compared with a database in which the MAC addresses are assigned IP addresses. If an entry is found for the request, the server sends a response ( boot reply ). Usually the answer is simply sent as a broadcast, but it is also possible to edit the ARP table of the server manually. However, the kernel must be able to do this .

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

  • The hardware address of the client. The client expects a response with its hardware address in order to recognize that the packet is for it.
  • The random number generated in the request by 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 host name of the boot server. In the next step, an operating system can be loaded from there via TFTP .
  • The name and path of the boot file. The boot file contains the kernel, which is then transferred with TFTP.
  • Name of the directory which the kernel should mount as a root ( / ) partition via NFS .

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

See also

Norms and standards

The bootstrap protocol is constantly evolving. Due to the wide range of update and supplement RFCs, only the initial RFC is mentioned here:

  • RFC 951 - BOOTSTRAP PROTOCOL (BOOTP), September 1985.