TCP/IP とデータ通信

第 15 章 DHCP への移行

この章では、DHCP、BOOTP、RARP の各プロトコル間の違いについて説明します。また DHCP の利点と 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 アドレスをサポートすることを試みると、管理者は以下のような複数の困難に直面します。

DHCP の利点

DHCP サーバは、いくつかの点で、これまでの IP アドレスを取得する方法より優れています。DHCP サーバが提供できる機能を以下に示します。

  1. IP アドレスの重複問題の防止を含む、IP アドレスの自動管理。

  2. BOOTP クライアントのサポートが可能、これによりネットワークを BOOTP から DHCP へ容易に移行することが可能。

  3. 管理者がリース時間を設定することが可能であり、手動で割り当てた IP アドレスに対しても設定することが可能。

  4. 動的な IP アドレスを用いてサービスを提供する対象の MAC アドレスを制限することが可能。

  5. 管理者が、BOOTP の場合に可能である範囲を超えた、追加の DHCP オプションの種類を構成することが可能。

  6. 動的に割り当てることができる IP アドレスのプール (複数可) を定義することが可能。ユーザのサーバで、プールが 1 つのサブネットまたはネットワーク全体になるよう強制するものがありますが、1 つのプールが連続した IP アドレスから構成されることを強制するサーバは望ましくありません。

  7. 別個の IP ネットワーク (またはサブネット) に対する、複数の動的な IP アドレスのプールを関連付けることが可能。この関連付けは、二次ネットワークに対する基本サポートであり、複数の IP ネットワークアドレスまたはサブネット IP アドレスを持つインタフェースの BOOTP 中継としてルータが動作することを可能にします。

DHCP サーバの機能の一部ではありませんが、DHCP サーバを管理する方法に関連したいくつかの機能を以下に示します。

  1. 複数のサーバの集中管理

  2. サーバが動作中で、かつリースが追跡されている状態でも、変更を行う能力。たとえば、IP アドレスをプールに追加したりプールから削除すること、またはパラメタを変更することができます。

  3. パラメタに対して広域的変更 (すべてのエントリに対して適用される変更) を行うか、あるいはクライアントまたはプールのグループに対して変更を行う能力

  4. リースの監査トレール (たとえば、貸し出し中のリースのログ) の保守

DHCP は、IP アドレスを割り当てる 4 つの方法をサポートします。これらの方法は独立した機能です。特定の 1 つのサーバに注目すると、そのサーバはすべての機能を提供できるか、あるいは 1 つも提供できないかのいずれかです。

移行

DHCP は BOOTP と BOOTP のパケット構造をベースにしているため、大部分のサイトでは DHCP への移行を容易に行うことができます。数多くの DHCP サーバが、以前の BOOTP クライアントと新しい DHCP クライアントの両方をサポートします。

Solaris 2 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 2 DHCP サーバに BOOTP クライアントとしての役割を果たさせることができます。

DHCP プロトコルを用いると、すでにリースされた IP アドレスまたは永久 IP アドレスを保持しているクライアントが、別のサブネット上の別の一時リースを取得することができます。この取得は、時として別の位置へ移動する必要があるマシンにとって役立ちます。このオプションは、サーバが当該機能をサポートしている場合に使用可能です。

ルータ

DHCP には不揮発性の記憶領域が必要です。この不揮発性の記憶領域が原因で、DHCP サービスのタスクはサーバとは互換性が保たれますが、専用のルータとは互換性がなくなります。サーバには、中継用と DHCP 用の両方に構成可能な複数の種類があります。例として、Web サーバ、ファイアウォールなどの用途に設計されたオールインワンのインターネットゲートウェイがあります。ただし、専用のルータは存在しません。

DHCP の RFC では、DHCP はルータの構成に使用することを目的としていない旨が明記されています。その理由は、ルータの保守および障害追跡においては、正確な構成を知る (構成を自動的に設定されたままにしておくのではありません) こと、およびルータの動作を別のサーバの動作に依存させないことが重要だからです。

汎用性がより強い特定の種類のコンピュータまたはサーバを構成して、それらの IP アドレスを DHCP から取得し、ルータとして動作させることが可能な場合があります。さらに、本物のルータでは通常ありませんが、自己のクライアントに与える IP アドレスを DHCP を使用して取得するリモートアクセスサーバも存在します。