BOOTP(ブートピー)とは | 意味や読み方など丁寧でわかりやすい用語解説
BOOTP(ブートピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ブートピー (ブートピー)
英語表記
BOOTP (ブートピー)
用語解説
BOOTP (Bootstrap Protocol) は、ネットワーク上のデバイスが起動時に自身のIPアドレスやその他のネットワーク設定情報を、サーバーから自動的に取得するためのプロトコルである。主に、ストレージを持たないディスクレスワークステーションが、ネットワーク経由でオペレーティングシステム (OS) のイメージファイルをロードし、起動するために開発された。デバイスは起動すると、まず自身のMACアドレスを含んだ要求メッセージをネットワークにブロードキャストする。この要求を受け取ったBOOTPサーバーは、事前に登録されているMACアドレスとIPアドレスの対応関係に基づいて、そのデバイスにIPアドレスやサブネットマスク、デフォルトゲートウェイ、そして起動に必要なブートファイル名などの情報を提供し、デバイスはそれらの情報を受け取ってネットワークに接続し、指定されたブートファイルをダウンロードして起動処理を進める。BOOTPは、ネットワーク管理者にとって、個々のデバイスに手動でIPアドレスを設定する手間を省き、集中管理を可能にするという利点をもたらした。これは現在のDHCP (Dynamic Host Configuration Protocol) の前身にあたるプロトコルであり、ネットワークにおける自動設定の基礎を築いた。
BOOTPの動作は、クライアントとサーバー間のシンプルなやり取りによって実現される。デバイスが起動し、ネットワークインターフェースカード (NIC) の初期化が完了すると、クライアントはBOOTPリクエストパケットを送信する。このパケットは、自身のMACアドレスと、まだIPアドレスを持っていないためソースIPアドレスが「0.0.0.0」に設定されたUDPブロードキャストパケットとして、ネットワーク全体に送られる。BOOTPクライアントは、自身のIPアドレスを知らないため、ブロードキャストを用いてサーバーを探す必要がある。この通信には、UDPのポート68番がクライアント側、ポート67番がサーバー側で利用される。
このブロードキャストパケットを受信したBOOTPサーバーは、自身のデータベースを参照し、リクエストパケットに含まれるクライアントのMACアドレスと一致するエントリを探す。エントリが見つかると、サーバーはそのMACアドレスに対応するIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーのアドレス、そして特に重要なのが、クライアントが起動するために必要とするブートファイルのパスとファイル名をBOOTPリプライパケットに含めてクライアントに送信する。このリプライパケットも、クライアントがまだIPアドレスを持っていない可能性を考慮し、ブロードキャストまたは特定のMACアドレスへのユニキャストで送信されることがある。
クライアントはサーバーからのBOOTPリプライパケットを受け取ると、そこに記載されたIPアドレスやその他のネットワーク設定情報を自身のネットワークインターフェースに割り当てる。これにより、クライアントはネットワーク上で通信可能となり、リプライパケットで指定されたブートファイルを、一般的にはTFTP (Trivial File Transfer Protocol) などのプロトコルを使用してサーバーからダウンロードし、OSの起動プロセスを開始する。この一連のプロセスにより、物理的なディスクを持たないデバイスでも、ネットワーク経由でOSをロードし、通常のワークステーションとして機能することが可能になる。
BOOTPの重要な特徴は、IPアドレスの割り当てが基本的に静的であるという点である。つまり、サーバーは特定のMACアドレスに対して、常に同じIPアドレスを割り当てるように設定されている。これは、個々のデバイスの設定を一元的に管理し、変更を容易にする反面、IPアドレスの利用効率という点では課題があった。限られたIPアドレス空間において、一度割り当てられたアドレスは、そのデバイスがネットワークから切断されてもすぐに再利用されることはないため、大規模なネットワークではIPアドレスの枯渇を引き起こす可能性があった。また、ネットワークの構成変更があった場合、サーバー側のデータベースを更新する必要があり、運用負荷がかかることもあった。
さらに、BOOTPが提供できる設定情報の種類は、比較的限られていた。基本的なIPアドレス情報とブートファイル名が中心であり、現代のネットワーク環境で必要とされるより多くの詳細な設定(例えば、時刻サーバーやLDAPサーバー、プロキシサーバーの設定など)には対応していなかった。これは、BOOTPが比較的シンプルなディスクレスワークステーションの起動という目的に特化して設計されたためである。
BOOTPは、その後のDHCP (Dynamic Host Configuration Protocol) プロトコルの基盤となった。DHCPはBOOTPのメッセージフォーマットと基本的な動作を引き継ぎつつ、IPアドレスの動的な割り当て(リース)機能、より多くの設定情報の提供、リレーエージェントによるサブネットを超えた通信能力など、BOOTPの限界を克服するための多くの拡張が加えられている。DHCPの動的な割り当て機能は、IPアドレスを一時的に貸し出すことで、アドレスの枯渇問題を緩和し、ネットワーク資源をより効率的に利用することを可能にした。今日では、DHCPが広く普及しており、BOOTPはほとんど使用されることはないが、ネットワークの自動設定技術の進化において非常に重要な役割を果たしたプロトコルである。一部のレガシーシステムや特定の組み込み環境ではBOOTPが利用されることもあるが、一般的な用途ではDHCPが主流となっている。