ブートストラッププロトコル(BOOTP )は、インターネットプロトコルネットワークで使用されるコンピュータネットワークプロトコルであり、 構成サーバーからネットワークデバイスにIPアドレスを自動的に割り当てるために使用されます。BOOTPは、1985年に発行されたRFC 951で最初に定義されました。
BOOTPの一部の機能は、リース機能を追加した動的ホスト構成プロトコル(DHCP)によって事実上置き換えられましたが、BOOTPの一部はDHCPプロトコルへのサービス提供に使用されています。また、一部のDHCPサーバーは、従来のBOOTP機能も提供しています。
ネットワークに接続されたコンピュータが起動すると、そのIPスタックはIPアドレスの割り当てを要求するBOOTPネットワークメッセージをブロードキャストします。BOOTP構成サーバーは、管理者が事前に設定したアドレスプールからIPアドレスを割り当てることで、この要求に応答します。
BOOTPは、トランスポートにユーザーデータグラムプロトコル(UDP)を使用して実装されています。サーバーはクライアントからのリクエストを受信するためにポート番号67を使用し、クライアントはサーバーからの応答を受信するためにポート番号68を使用します。BOOTPはIPv4ネットワークでのみ動作します。
歴史的に、BOOTPはUnix系ディスクレスワークステーションにおいて、IPアドレスの割り当てに加えて、ブートイメージのネットワーク上の場所を取得するためにも使用されてきました。企業は、BOOTPを使用して、事前に構成済みのクライアント(Windowsなど)のインストールを新規インストールされたPCに展開していました。
当初はネットワーク接続を確立するためにブートフロッピーディスクを使用する必要があったが、ネットワークインターフェースの製造元は後に、インターフェースカードやオンボードネットワークインターフェースを備えたシステムボードのファームウェアにプロトコルを組み込み、ネットワークからの直接ブートを可能にした。
BOOTPは、1985年9月にビル・クロフトとジョン・ギルモアによって初めて定義されました[ 1 ]。これは、1984年6月に発表された逆アドレス解決プロトコル(RARP)の代替として開発されました[ 2 ]。RARPをBOOTPに置き換える主な動機は、RARPがリンク層プロトコルであったことです。そのため、多くのサーバープラットフォームでの実装が困難であり、各IPサブネットにサーバーを設置する必要がありました。BOOTPは、リレーエージェントという革新的な仕組みを導入しました。リレーエージェントは、標準的なIPルーティングを使用してローカルネットワークからBOOTPパケットを転送することで、1つの中央BOOTPサーバーが多くのサブネット上のホストにサービスを提供できるようにしました[ 1 ]: §6
BOOTP ベンダー情報拡張機能のセットが増加しており[ 3 ] [ 4 ] [ 5 ] [ 6 ] 、BOOTP クライアントにデフォルト ゲートウェイ、ネーム サーバーの IP アドレス、ドメイン名などのネットワークに関する関連情報を提供するようになっています。
動的ホスト構成プロトコルの登場により、BOOTPベンダー情報拡張機能がDHCPオプションフィールドとして組み込まれ、[ 7 ] [ 8 ] DHCPサーバーがBOOTPクライアントにもサービスを提供できるようになりました。
BOOTPクライアントが起動されると、IPアドレスを持たないため、MACアドレスを含むメッセージをネットワーク上にブロードキャストします。このメッセージは「BOOTPリクエスト」と呼ばれ、BOOTPサーバーによって受信されます。サーバーは、クライアントが必要とする以下の情報をクライアントに返信します。
クライアントはBOOTPサーバーからこの情報を受け取ると、TCP/IPプロトコルスタックを構成および初期化し、ブートイメージが共有されているサーバーに接続します。クライアントはブートイメージをロードし、この情報を使用してオペレーティングシステムをロードして起動します。[ 9 ]
動的ホスト構成プロトコル(DHCP)は、BOOTPの拡張機能として開発されました。BOOTPは、RFC(Request for Comments)951および1084で定義されています。