この章では、DHCP、BOOTP、RARP の各プロトコル間の違いについて説明します。また DHCP の利点と DHCP へ移行する方法についても説明します。
BOOTP または RARP を使用していたユーザーの中には、DHCP との違いや DHCP の利点について疑問に思われる方がいらっしゃるかもしれません。DHCP とそれ以前のプロトコルとの間の主要な違いは、DHCP 以前のプロトコルでは、ホスト情報をサーバーのデータベース内に手動で構成するように設計されていましたが、DHCP では新しく接続されたホストに IP アドレスと構成を動的に割り当てることが可能になりました。
さらに、DHCP のリースのメカニズムにより、IP アドレスの自動的な回収と再割り当ても可能になりました。DHCP は BOOTP のスーパーセットであり、より高度の柔軟性を提供します。DHCP は BOOTP をベースにしており、いくつか機能が追加されていますが、同じプロトコルパケット形式とメカニズムを使用します。DHCP では、ルーターに組み込み済みの BOOTP 中継エージェントの機能を利用することができ、BOOTP クライアントを直接サポートすることができます。
RARP ではマシンが自己の IP アドレスを見つけ出しますが、DHCP または BOOTP では IP アドレスはクライアントシステムに引き渡されるプロトコルパラメータの 1 つです。RARP の欠点は、その他のパラメータがサポートされていないこと、および RARP を提供するサーバーが、直接に接続されたネットワーク以外にはサービスを提供できないことです。
DHCP と BOOTP のトラフィックは、一般的なルーターに組み込まれている BOOTP 中継エージェントの機能を利用することができます。つまり、ネットワーク管理者は、ネットワークセグメントごとに BOOTP サービスを配置する必要はありません。
手動で設定した IP アドレスをサポートしようとすると、管理者は以下のような複数の困難に直面します。
IP アドレスがまだ使用中であるかどうかを確実に検出する方法がない。
ネットワークトポロジを変更する (たとえば、新規のネットワーク IP アドレスを追加する) たびに、管理者が手動で新規 IP アドレスを追加する必要がある。
あるネットワーク上で構成したホストを別のネットワークへ移動した場合、通信を行うためには移動したホストの構成を手動で変更する必要がある。
DHCP サーバーには、これまでの IP アドレスを取得する方法に比べて、優れた点があります。DHCP サーバーが提供できる機能を以下に示します。
IP アドレスの重複問題の防止を含む、IP アドレスの自動管理。
BOOTP クライアントのサポートが可能、これによりネットワークを BOOTP から DHCP へ容易に移行することが可能。
管理者がリース時間を設定することが可能であり、手動で割り当てた IP アドレスに対しても設定することが可能。
動的な IP アドレスを用いてサービスを提供する対象の MAC アドレスを制限することが可能。
管理者が、BOOTP の場合に可能である範囲を超えた、追加の DHCP オプションの種類を構成することが可能。
動的に割り当てることができる IP アドレスのプール (複数可) を定義することが可能。ユーザーのサーバーで、プールが 1 つのサブネットまたはネットワーク全体になるよう強制するものがありますが、1 つのプールが連続した IP アドレスから構成されることを強制するサーバーは望ましくありません。
別個の IP ネットワーク (またはサブネット) に対する、複数の動的な IP アドレスのプールを関連付けることが可能。この関連付けは、二次ネットワークに対する基本サポートであり、複数の IP ネットワークアドレスまたはサブネット IP アドレスを持つインタフェースの BOOTP 中継としてルーターが動作することを可能にします。
DHCP サーバーの機能の一部ではありませんが、DHCP サーバーを管理する方法に関連したいくつかの機能を以下に示します。
複数のサーバーの集中管理
サーバーが動作中で、かつリースが追跡されている状態でも、変更を行う能力。たとえば、IP アドレスをプールに追加したりプールから削除すること、またはパラメータを変更することができます。
パラメータに対して広域的変更 (すべてのエントリに対して適用される変更) を行うか、あるいはクライアントまたはプールのグループに対して変更を行う能力
リースの監査トレール (たとえば、貸し出し中のリースのログ) の保守
DHCP は、IP アドレスを割り当てる 4 つの方法をサポートします。これらの方法は独立した機能です。特定の 1 つのサーバーに注目すると、そのサーバーはすべての機能を提供できるか、あるいは 1 つも提供できないかのいずれかです。
手動。クライアント識別子と IP アドレスとの間の一意な割り当てを管理者が行います。したがって、DHCP サーバーは、この種類の IP アドレスをリースの期限が切れた後でその他のクライアントに再度割り当てることはできません。この種類の IP アドレスの割り当ては、管理者がホストに同じ IP アドレスを保持させ、かつ IP アドレスが使われなくなった際にはそのことを検出したいと希望する場合に便利です。メールのように IP アドレスにより配置が行われるサービスを提供するホストがこの例です。
永久。サーバーの管理者が IP アドレスだけを格納したサーバーの構成を作成して、クライアントに提供します。IP アドレスが MAC アドレスと関連付けられた後、サーバーの管理者が介入しない限りその関連付けは永久的です。永久 IP アドレスの割り当てには、割り当てた IP アドレスを自動的に回収することはできないという欠点があります。
動的 (期間が制限されたリースを使用します)。サーバーがリースを追跡し、リースの期限が切れて使用可能になると、サーバーが自動的に DHCP クライアントにそれらの IP アドレスを提供します。管理者による対話は必要ありません。非 BOOTP クライアントに対しては、この種類の IP アドレスを推奨します。
BOOTP。BOOTP クライアントが使用するために予約されたアドレスです。この方法では、BOOTP クライアント専用の IP アドレスのプールに管理者が入力することが可能です。
DHCP は BOOTP と BOOTP のパケット構造をベースにしているため、大部分のサイトでは DHCP への移行を容易に行うことができます。数多くの DHCP サーバーが、以前の BOOTP クライアントと新しい DHCP クライアントの両方をサポートします。
Solaris DHCP サーバーは、DHCP 照会だけでなく BOOTP 照会も処理するため、BOOTP クライアントは DHCP サーバーからブートすることができます。DHCP クライアントに BOOTP サーバーからの応答を使用するように書き込まれている場合、DHCP クライアントは BOOTP サーバーからブートすることができます。Windows 95 を用いて組み込まれた TCP/IP スタックには、この機能はありません。
DHCP クライアントのメッセージは、通常 IP ルーターの機能である BOOTP 中継エージェントによってリモートサーバーへ送信されます。BOOTP 中継エージェントを介して、DHCP サーバーは要求元のサブネットを見分けることができます。BOOTP 中継エージェントは、メッセージの発信元のサブネットを DHCP のメッセージヘッダーに記録します。つまり、DHCP サーバーはその記録を使用して、クライアントが存在するネットワークを判定することができます。
BOOTP サーバーと DHCP サーバーを同じマシン上で動作させることはできません。その理由は、両方のサーバーが同じポート番号を使用するためです。BOOTP 互換モードをオンに設定すると、Solaris DHCP サーバーを BOOTP クライアントとして機能させることができます。
DHCP プロトコルを用いると、すでにリースされた IP アドレスまたは永久 IP アドレスを保持しているクライアントが、別のサブネット上の別の一時リースを取得することができます。この取得は、別の位置へ移動する必要があるマシンにとって役立ちます。このオプションは、サーバーが当該機能をサポートしている場合に使用可能です。
DHCP には不揮発性の記憶領域が必要です。このため、DHCP サービスのタスクはサーバーとは互換性が保たれますが、専用のルーターとは互換性がなくなります。中継用と DHCP 用の両方に構成可能な、サーバーの種類がいくつかあります。たとえば、Web サーバー、ファイアウォールなどの用途で使用できるように設計されたオールインワンのインターネットゲートウェイがあります。ただし、専用のルーターは存在しません。
DHCP の RFC では、DHCP はルーターの構成に使用することを目的としていない旨が明記されています。ルーターの保守および障害追跡においては、構成が自動に設定されるがままにしておくのではなく、正確な構成を把握しておくこと、およびルーターの動作を別のサーバーの動作に依存させないことが重要だからです。
汎用性がより強い特定の種類のコンピュータまたはサーバーを構成して、それらの IP アドレスを DHCP から取得し、ルーターとして動作させることが可能な場合があります。さらに、厳密にはルーターではありませんが、自己のクライアントに与える IP アドレスを DHCP を使用して取得するリモートアクセスサーバーも存在します。