Bootstrap Protocol: Difference between revisions

Content deleted Content added
m Operation: fmt., punct., style
Bender the Bot (talk | contribs)
m External links: HTTP to HTTPS for SourceForge
 
(44 intermediate revisions by 26 users not shown)
Line 1:
{{short description|Computer networking protocol}}
{{ref improve|date=July 2013}}
The '''Bootstrap Protocol''' ('''BOOTP''') is a computer networking protocol used in
{{IPstack}}
The '''Bootstrap Protocol''' ('''BOOTP''') is a [[computer network]]ing protocol used in [[Internet Protocol]] networks to automatically assign an [[IP address]] to network devices from a configuration server. The BOOTP was originally defined in RFC{{IETF RFC|951}} published in 1985.
 
While some parts of BOOTP have been effectively superseded by the [[Dynamic Host Configuration Protocol]] (DHCP), which adds the feature of leases, parts of BOOTP are used to provide service to the DHCP protocol. Some DHCP servers also provide the legacy BOOTP functionality.
When a computer that is connected to a network is powered up and [[booting|boots]] its operating system, the system software broadcasts BOOTP messages onto the network to request an IP address assignment. A BOOTP configuration server assigns an IP address based on the request from a pool of addresses configured by an administrator.
 
When a computer that is network-connected to a network is powered up andcomputer [[booting|boots]] its operating systemup, theits systemIP softwarestack broadcasts BOOTP messages onto the network tomessages requestrequesting an IP address assignment. A BOOTP configuration server assignsreplies anto IPthe addressrequest basedby onassigning thean requestIP address from a pool of addresses, configuredwhich is preconfigured by an administrator.
BOOTP is implemented using the [[User Datagram Protocol]] (UDP) as transport protocol, port number 67 is used by the (DHCP) server to receive client requests and port number 68 is used by the client to receive (DHCP) server responses. BOOTP operates only on [[IPv4]] networks.
 
BOOTP is implemented using the [[User Datagram Protocol]] (UDP) asfor transport. protocol, portPort number 67 is used by the (DHCP) server tofor receivereceiving client requests, and port number 68 is used by the client tofor receive (DHCP)receiving server responses. BOOTP operates only on [[IPv4]] networks.
Historically, BOOTP has also been used for [[Unix-like]] [[diskless workstation]]s to obtain the network ___location of their [[boot image]], in addition to the IP address assignment. Enterprises used it to roll out a pre-configured client (e.g., [[Microsoft Windows|Windows]]) installation to newly installed PCs.
 
Historically, BOOTP has also been used for [[Unix-like]] [[diskless workstation]]s to obtain the network ___location of their [[boot image]], in addition to the IP address assignment. Enterprises used it to roll out a pre-configured client (e.g., [[Microsoft Windows|Windows]]) installation to newly installed PCs.
Originally requiring the use of a boot [[floppy disk]] to establish the initial network connection, manufacturers of network cards later embedded the protocol in the [[BIOS]] of the interface cards as well as system boards with on-board network adapters, thus allowing direct network booting.
 
OriginallyInitially requiring the use of a boot [[floppy disk]] to establish the initial network connection, manufacturers of network cardsinterfaces later embedded the protocol in the [[BIOSfirmware]] of the interface cards as well as system boards with on-board network adaptersinterfaces, thus allowing direct network booting.
While some parts of BOOTP have been effectively superseded by the [[Dynamic Host Configuration Protocol]] (DHCP), which adds the feature of leases, parts of BOOTP are used to provide service to the DHCP protocol. DHCP servers also provide the legacy BOOTP functionality.
 
==History==
The BOOTP was first defined in September 1985 inby RFCBill Croft and [[John Gilmore (activist)|John Gilmore]]{{Ref RFC|951}} as a replacement for the [[Reverse Address Resolution Protocol [[RARP]] (RARP), published in RFC 903 in June 1984.{{Ref RFC|903}} The primary motivation for replacing RARP with BOOTP is that RARP was a [[link layer]] protocol. This made implementation difficult on many server platforms, and required that a server be present on each individual IP [[subnetwork|subnet]]. BOOTP introduced the innovation of relay agents, which forwarded BOOTP packets from the local network using standard IP routing, so that one central BOOTP server could serve hosts on many subnets.<ref>{{citeRef webRFC|url=http://tools.ietf.org/html/rfc951#section-6 |title=RFC 951 - Bootstrap Protocol |authorrsection=Bill Croft|author2=John Gilmore|date=September 1985|work=Network Working Group6}}</ref>
 
An increasing set of BOOTP vendor information extensions was defined{{Ref RFC|1048}}{{Ref RFC|1084}}{{Ref RFC|1395}}{{Ref RFC|1497}} to supply BOOTP clients of relevant information about the network, like [[default gateway]], [[Domain name system|name server IP address]], the [[___domain name]], etcetera.
==Operation==
 
With the advent of the [[Dynamic Host Configuration Protocol]], the BOOTP vendor information extensions were incorporated as DHCP option fields,{{Ref RFC|1533}}{{Ref RFC|2132}} to allow DHCP servers to also serve BOOTP clients.
; Case 1: Client and server on same network
 
==Operation==
;=== Case 1: Client and server on same network ===
 
When a BOOTP client is started, it has no IP address, so it broadcasts a message containing its MAC address onto the network. This message is called a “BOOTP request”, and it is picked up by the BOOTP server, which replies to the client with the following information that the client needs:
# The client’sclient's IP address, subnet mask, and default gateway address.
# The IP address and host name of the BOOTP server.
# The IP address of the server that has the boot image, which the client needs to load its operating system.
Line 27 ⟶ 30:
When the client receives this information from the BOOTP server, it configures and initializes its TCP/IP protocol stack, and then connects to the server on which the boot image is shared. The client loads the boot image and uses this information to load and start its operating system.<ref>{{cite web |url=https://networkencyclopedia.com/bootstrap-protocol-bootp/ |title=Bootstrap Protocol (BOOTP) |website=Network Encyclopedia}}</ref>
 
The Dynamic Host Configuration Protocol (DHCP) was developed as an extension of BOOTP. BOOTP is defined in RequestRequests for Comments (RFC) 951 and 1084.
 
;=== Case 2: Client and server on different networks ===
 
# Problem with the bootp request is that the request is broadcast. A [[IP_addressIP address#Broadcast_addressingBroadcast addressing|broadcast]] [[IP datagram]] cannot pass through any router. The router discards this packet.
# To solve this problem, there is a need for an intermediary (relay).
# One of the host or router can be configured at application layer to operate as relay agent.
Line 40 ⟶ 43:
 
==IETF standards documentation==
*{{Ref RFC|3942|ref=no}}
{| class="wikitable sortable mw-collapsible mw-collapsed"
*{{Ref RFC|2132|ref=no}}
|+
*{{Ref RFC|1542|ref=no}}
|-
*{{Ref RFC|1534|ref=no}}
! RFC #
*{{Ref RFC|951|ref=no}}
! Title
! Date
! Obsolete and Update Information
|-
| RFC 3942
| Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options
| Nov-04
| Updates RFC 2132
|-
| RFC 2132
| DHCP Options and BOOTP Vendor Extensions
| Mar-97
| Obsoletes RFC 1533, Updated by RFC 3442, RFC 3942, RFC 4361, RFC 4833, RFC 5494
|-
| RFC 1542
| Clarifications and Extensions for the Bootstrap Protocol
| Oct-93
| Obsoletes RFC 1532, Updates RFC 951
|-
| RFC 1534
| Interoperation Between DHCP and BOOTP
| Oct-93
| &nbsp;
|-
| RFC 1533
| DHCP Options and BOOTP Vendor Extensions
| Oct-93
| Obsoletes RFC 1497, RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 2132
|-
| RFC 1532
|Clarifications and Extensions for the Bootstrap Protocol
|Oct-93
|Obsoleted by RFC 1542, Updates RFC 951
|-
|RFC 1497
|BOOTP Vendor Information Extensions
|Aug-93
|Obsoletes RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 1533, Updates RFC 951
|-
|RFC 1395
|BOOTP Vendor Information Extensions
|Jan-93
|Obsoletes RFC 1084, RFC 1048, Obsoleted by RFC 1497, RFC 1533, Updates RFC 951
|-
|RFC 1084
|BOOTP vendor information extensions
|Dec-88
|Obsoletes RFC 1048, Obsoleted by RFC 1395, RFC 1497, RFC 1533
|-
|RFC 1048
|BOOTP vendor information extensions
|Feb-88
|Obsoleted by RFC 1084, RFC 1395, RFC 1497, RFC 1533
|-
|RFC 951
|Bootstrap Protocol
|Sep-85
|Updated by RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494
|-
|}
 
==See also==
Line 116 ⟶ 60:
 
==External links==
* [http://www.eventhelix.com/RealtimeMantra/Networking/Bootp.pdf BOOTP Sequence Diagram] {{Webarchive|url=https://web.archive.org/web/20150226073404/http://www.eventhelix.com/RealtimeMantra/Networking/Bootp.pdf |date=2015-02-26 }} (PDF)
* [httphttps://mbootp.sourceforge.net/ Multicast BOOTP for configuring a network device]
* [httphttps://mbootp.sourceforge.net/ aMulticast workstationBOOTP server and client]
 
[[Category:Internet protocols]]