メインコンテンツまでスキップ

1. はじめに (Introduction)

動的ホスト構成プロトコル (Dynamic Host Configuration Protocol, DHCP) は、インターネットホストに構成パラメータを提供します。DHCPは2つのコンポーネントから構成されます。DHCPサーバーからホストにホスト固有の構成パラメータを配信するプロトコルと、ホストへのネットワークアドレスの割り当てメカニズムです。

DHCPはクライアント・サーバーモデル上に構築されており、指定されたDHCPサーバーホストがネットワークアドレスを割り当て、動的に構成されたホストに構成パラメータを配信します。本文書の残りの部分では、「サーバー (Server)」という用語は、DHCPを通じて初期化パラメータを提供するホストを指し、「クライアント (Client)」という用語は、DHCPサーバーから初期化パラメータを要求するホストを指します。

システム管理者によって明示的に構成されない限り、ホストはDHCPサーバーとして動作すべきではありません (SHOULD NOT)。ランダムなホストがDHCP要求に応答することが許可された場合、インターネットのハードウェアおよびプロトコル実装の多様性により、信頼性の高い動作は妨げられます。例えば、IPはプロトコル実装ソフトウェア内で多くのパラメータの設定を必要とします。IPは多くの異なる種類のネットワークハードウェアで使用できるため、これらのパラメータの値を推測したり、正しいデフォルト値を持つと仮定したりすることはできません。また、分散アドレス割り当て方式は、すでに使用中のアドレスを発見するためのポーリング/防御メカニズムに依存しています。IPホストは常にネットワークアドレスを防御できるとは限らないため、そのような分散アドレス割り当て方式では、重複するネットワークアドレスの割り当てを回避することが保証されません。

DHCPは、IPアドレス割り当てのための3つのメカニズムをサポートします。「自動割り当て (Automatic Allocation)」では、DHCPはクライアントに永続的なIPアドレスを割り当てます。「動的割り当て (Dynamic Allocation)」では、DHCPはクライアントに限られた期間(またはクライアントが明示的にアドレスを放棄するまで)IPアドレスを割り当てます。「手動割り当て (Manual Allocation)」では、クライアントのIPアドレスはネットワーク管理者によって割り当てられ、DHCPは割り当てられたアドレスをクライアントに伝えるために単に使用されます。特定のネットワークは、ネットワーク管理者のポリシーに応じて、これらのメカニズムの1つ以上を使用します。

動的割り当ては、これらのメカニズムの中で唯一、割り当てられたクライアントがもはや必要としないアドレスの自動再利用を可能にするものです。したがって、動的割り当ては、一時的にネットワークに接続されるクライアントにアドレスを割り当てる場合、または永続的なIPアドレスを必要としないクライアントグループ間で限られたIPアドレスプールを共有する場合に特に有用です。動的割り当ては、IPアドレスが十分に希少であり、古いクライアントが廃止されたときにそれらを回収することが重要なネットワークで、ネットワークに永続的に接続される新しいクライアントにIPアドレスを割り当てる場合にも良い選択となる可能性があります。手動割り当ては、(何らかの理由で)DHCPメカニズムの外部でIPアドレス割り当てを管理することが望ましい環境において、ホストにIPアドレスを手動で構成するエラーが発生しやすいプロセスを排除するためにDHCPを使用することを可能にします。

DHCPメッセージの形式は、BOOTPメッセージの形式に基づいており、BOOTP仕様の一部として記述されたBOOTPリレーエージェントの動作を捕捉し [7, 21]、既存のBOOTPクライアントとDHCPサーバーの相互運用性を可能にします。BOOTPリレーエージェントを使用することで、各物理ネットワークセグメントにDHCPサーバーを配置する必要がなくなります。


1.1 RFC 1541からの変更点 (Changes to RFC 1541)

本文書は、RFC 1541に記載されているDHCPプロトコル仕様を更新します。新しいDHCPメッセージタイプであるDHCPINFORMが追加されました。詳細については、セクション3.4、4.3、4.4を参照してください。DHCPクライアントをDHCPサーバーに識別するための分類メカニズムは、セクション4.2および4.3で定義されている「ベンダー (Vendor)」クラスを含むように拡張されました。最小リース時間の制限は削除されました。最後に、DHCP相互運用性テストで得られた経験の結果として、テキストを明確にするために多くの編集上の変更が加えられました。


ホスト構成の全体的な問題のいくつかの部分に対処するいくつかのインターネットプロトコルおよび関連メカニズムがあります。逆アドレス解決プロトコル (Reverse Address Resolution Protocol, RARP) [10](動的RARP (DRARP) [5]で定義された拡張機能を通じて)は、ネットワークアドレス発見の問題に明示的に対処し、自動IPアドレス割り当てメカニズムを含んでいます。簡易ファイル転送プロトコル (Trivial File Transfer Protocol, TFTP) [20]は、ブートサーバーからのブートイメージの転送を提供します。インターネット制御メッセージプロトコル (Internet Control Message Protocol, ICMP) [16]は、「ICMPリダイレクト (ICMP Redirect)」メッセージを介してホストに追加のルーターを通知します。ICMPは、「ICMPマスク要求 (ICMP Mask Request)」メッセージを通じてサブネットマスク情報を提供することもでき、(廃止された)「ICMP情報要求 (ICMP Information Request)」メッセージを通じて他の情報を提供できます。ホストは、ICMPルーター発見メカニズム [8]を通じてルーターを検出できます。

BOOTPは、構成情報の集合のための転送メカニズムです。BOOTPも拡張可能であり、いくつかの構成パラメータに対して公式の拡張 [17]が定義されています。Morganは、動的IPアドレス割り当てのためのBOOTP拡張を提案しました [15]。MITのAthenaプロジェクトで使用されているネットワーク情報プロトコル (Network Information Protocol, NIP) は、動的IPアドレス割り当ての分散メカニズムです [19]。リソース位置プロトコル (Resource Location Protocol, RLP) [1]は、より高レベルのサービスの位置を提供します。Sun Microsystemsのディスクレスワークステーションは、RARP、TFTP、および「bootparams」と呼ばれるRPCメカニズムを使用するブート手順を使用して、ディスクレスホストに構成情報とオペレーティングシステムコードを配信します。(Sun Microsystems、Sun Workstation、およびSunOSは、Sun Microsystems, Inc.の商標です。)一部のSunネットワークでは、既存のネットワーク内の新しいホストの構成を自動化するために、DRARPと自動インストールメカニズムも使用しています。

他の関連研究では、パス最小伝送単位 (MTU) 発見アルゴリズムが任意のインターネットパスのMTUを決定できます [14]。アドレス解決プロトコル (Address Resolution Protocol, ARP) は、リソースの位置と選択のための転送プロトコルとして提案されています [6]。最後に、ホスト要件RFC [3, 4]は、ホスト再構成の特定の要件に言及し、ディスクレスホストの初期構成のシナリオを提案しています。


1.3 問題定義と課題 (Problem definition and issues)

DHCPは、ホスト要件RFCで定義されている構成パラメータをDHCPクライアントに提供するように設計されています。DHCP経由でパラメータを取得した後、DHCPクライアントはインターネット内の他のホストとパケットを交換できるようになります。DHCPによって提供されるTCP/IPスタックパラメータは、付録Aにリストされています。

これらのパラメータのすべてが、新しく初期化されたクライアントに必要なわけではありません。クライアントとサーバーは、クライアントが必要とするパラメータまたは特定のサブネットに固有のパラメータのみの送信について交渉できます。

DHCPは、IPプロトコルに直接関連しないクライアントパラメータの構成を許可しますが、必須ではありません (MAY)。DHCPは、新しく構成されたクライアントのドメインネームシステム (Domain Name System, DNS) [12, 13]への登録にも対処しません。

DHCPは、ルーターの構成に使用することを意図していません。


1.4 要件 (Requirements)

本文書全体を通じて、特定の要件の重要性を定義するために使用される語は大文字で表記されます。これらの語は次のとおりです。

"MUST"(しなければならない)

この語または形容詞「REQUIRED (必須の)」は、その項目が本仕様の絶対要件であることを意味します。

"MUST NOT"(してはならない)

このフレーズは、その項目が本仕様の絶対禁止事項であることを意味します。

"SHOULD"(すべきである)

この語または形容詞「RECOMMENDED (推奨される)」は、特定の状況においてこの項目を無視する正当な理由が存在する可能性があることを意味しますが、別の方針を選択する前に、完全な意味を理解し、状況を慎重に検討する必要があります。

"SHOULD NOT"(すべきでない)

このフレーズは、特定の状況において、リストされた動作が許容可能または有用でさえある正当な理由が存在する可能性があることを意味しますが、このラベルで説明される動作を実装する前に、完全な意味を理解し、状況を慎重に検討する必要があります。

"MAY"(してもよい)

この語または形容詞「OPTIONAL (任意の)」は、その項目が真に任意であることを意味します。あるベンダーは、特定の市場がそれを必要とするため、または製品を強化するためなどの理由でその項目を含めることを選択する場合があります。別のベンダーは同じ項目を省略する場合があります。


1.5 用語 (Terminology)

本文書では、以下の用語を使用します。

"DHCP client"(DHCPクライアント)

DHCPクライアントは、ネットワークアドレスなどの構成パラメータを取得するためにDHCPを使用するインターネットホストです。

"DHCP server"(DHCPサーバー)

DHCPサーバーは、DHCPクライアントに構成パラメータを返すインターネットホストです。

"BOOTP relay agent"(BOOTPリレーエージェント)

BOOTPリレーエージェントまたはリレーエージェントは、DHCPクライアントとDHCPサーバー間でDHCPメッセージを中継するインターネットホストまたはルーターです。DHCPは、BOOTPプロトコル仕様に文書化されているのと同じリレーエージェントの動作を使用するように設計されています。

"binding"(バインディング)

バインディングは、DHCPクライアントに関連付けられた、または「バインド」された、少なくとも1つのIPアドレスを含む構成パラメータの集合です。バインディングは、DHCPサーバーによって管理されます。


1.6 設計目標 (Design goals)

以下のリストは、DHCPの一般的な設計目標を示しています。

  • DHCPはポリシーではなくメカニズムであるべきです。DHCPは、必要に応じてローカルシステム管理者が構成パラメータを制御できるようにしなければなりません (MUST)。例えば、ローカルシステム管理者は、必要に応じてローカルリソースの割り当てとアクセスに関するローカルポリシーを実施できるべきです。

  • クライアントは手動構成を必要とすべきではありません (SHOULD NOT)。各クライアントは、ユーザーの介入なしに適切なローカル構成パラメータを発見し、それらのパラメータを独自の構成に組み込むことができるべきです。

  • ネットワークは、個々のクライアントに対する手動構成を必要とすべきではありません (SHOULD NOT)。通常の状況下では、ネットワークマネージャーは、クライアントごとの構成パラメータを入力する必要はありません。

  • DHCPは、各サブネット上にサーバーを必要とすべきではありません (SHOULD NOT)。スケールと経済性を実現するために、DHCPはルーター経由で、またはDHCPリレーエージェントの介入を通じて動作しなければなりません (MUST)。

  • DHCPクライアントは、構成パラメータの要求に対する複数の応答を受信する準備をしなければなりません (MUST)。一部の設置では、信頼性を向上させ、パフォーマンスを向上させるために、複数の重複するDHCPサーバーが含まれる場合があります。

  • DHCPは、静的に構成された参加しないホストおよび既存のネットワークプロトコル実装と共存しなければなりません (MUST)。

  • DHCPは、RFC 951およびRFC 1542 [21]によって記述されたBOOTPリレーエージェントの動作と相互運用しなければなりません (MUST)。

  • DHCPは、既存のBOOTPクライアントにサービスを提供しなければなりません (MUST)。

以下のリストは、ネットワーク層パラメータの送信に固有の設計目標を示しています。DHCPは次のことをしなければなりません (MUST)。

  • 特定のネットワークアドレスが同時に複数のDHCPクライアントによって使用されないことを保証する。

  • DHCPクライアントの再起動時にDHCPクライアント構成を保持する。DHCPクライアントは、可能な限り、各要求に応答して同じ構成パラメータ(例えば、ネットワークアドレス)を割り当てられるべきです。

  • サーバーの再起動時にDHCPクライアント構成を保持し、可能な限り、DHCPメカニズムの再起動にもかかわらず、DHCPクライアントは同じ構成パラメータを割り当てられるべきです。

  • 新しいクライアントの手動構成を回避するために、新しいクライアントへの構成パラメータの自動割り当てを許可する。

  • 特定のクライアントへの構成パラメータの固定または永続的な割り当てをサポートする。