TCP/IP とデータ通信

DHCP サーバー

DHCP サーバーは、そのサーバーに直接接続されているネットワークの IP アドレス空間を管理します。この環境をその他のネットワークに拡張する場合は、DHCP サーバーまたは BOOTP 中継エージェントをそれらのネットワーク上で構成する必要があります。

DHCP サーバーは、主サーバーとしても二次サーバーとしても動作することができます。主サーバーであるためには、一定の範囲の IP アドレスを受け持つ必要があります。


注 -

という用語は、クライアントとサーバーでは異なる意味で使用されます。


すでに主 DHCP サーバーが存在するネットワークに DHCP サーバーを追加する場合は、新規サーバーを、主サービスと二次サービスを提供するように構成することも、また二次サービスだけを提供するように構成することもできます。新規サーバーを両方のサービス用に構成した場合は、それぞれが異なる IP の範囲を受け持っている限り、両方のサーバーが主サーバーの役割を実行することができます (IP アドレスを配付することができます)。確認を求める要求に 1 つの主サーバーが応答できない場合に、その主サーバーが提供する既存の構成を確認することによって、各サーバーはその他のサーバーの二次サーバーとして動作することができます。各主サーバーは、自動的に 1 つの二次サーバーとして動作します。

DHCP サーバーの IP アドレスの範囲は、そのサーバー上にソフトウェアをインストールして設定する際に指定します。主 DHCP サーバーになると、サーバーは、新規設定を要求するクライアントに対して、自己が受け持つ IP アドレスの範囲から IP アドレスを配付することができます。クライアントが既存の設定の確認を要求した場合は、当該クライアントの IP アドレスを受け持っているサーバーが設定を確認します。二次サーバーとして動作する場合は、ネットワーク上の別の DHCP サーバーが提供した設定を確認することができます。

二次サービスを提供する場合、DHCP サーバーはネットワーク上の別のサーバーが提供した設定を確認します。これを行うのは、IP アドレスを受け持つ主サーバーが応答することができない場合です。待機時間経過後に、主サーバーに代わって二次サーバーが応答します。

DHCP サーバーを二次サーバーとしてのみ構成することもできます。DHCP サーバーを二次サーバーとしてのみ構成したい場合は、dhcpconfig プログラムを使用し、新規設定を要求するクライアントに対して配付する IP アドレスの範囲を持たないサーバーの構成を選択します。この構成では、DHCP サーバーは、データの記憶領域として NIS+ を使用している必要があります。

DHCP サービスは、DHCP が dhcpconfig ユーティリティを用いて動作しているマシン上で有効にして構成することができます。このユーティリティを使用すると、起動オプションの設定、DHCP サービスのデータベースの形式と位置の設定、任意のローカル接続またはリモートネットワークの dhcptab テーブルと dhcp_network テーブルの初期化を行うことができます。

dhcpconfig を起動するとメニューが表示されます。このメニューには、DHCP サービスを構成するオプション、BOOTP 中継エージェントを設定するオプション、DHCP の構成または中継サービスの構成を削除するオプション、終了オプションがあります。管理者がメニューオプションのうちの 1 つを選択すると、必要な情報を収集するための一連の質問が表示されます。次に、dhcpconfig により、選択した機能をオンに設定するための処理が実行されます。

同じネットワーク上の複数の DHCP サーバーは、NIS+ または NFS を介して DHCP データベースを共有すると、より効率的に動作します。共有を行うと、DHCP サーバーが共通のデータストアを介して通信できるために、冗長性が増えて連携するサービス間で負荷が分散されます。

新規 DHCP クライアントがネットワークに追加されると、そのクライアントは、到達範囲内にある使用可能なすべての DHCP サーバーまたは BOOTP サーバー、あるいはその両方を検出する目的でメッセージを送ります。このメッセージを受け取った DHPC サーバーは最初に、割り当て可能な IP アドレスがあるかどうかを検査します。割り当て可能な IP アドレスがある場合、サーバーは、それがまだ使用されていない IP アドレスであるかどうかを確認します。まだ使用されていない IP アドレスがない場合、サーバーは、その IP アドレスとその他の構成情報をクライアントに提供します。IP アドレスが使用中であった場合、サーバーはその IP アドレスを使用不可とマークし、状態を管理者に通知して、別の IP アドレスを選択します。

クライアントは、独自の条件にもとづいて、クライアント自身に提供された 1 つの IP アドレスを選択し、自己の選択を特定するメッセージを送ります。

サーバーのデータベース

DHCP/BOOTP サーバーは、dhcptab データベースと dhcp_network データベースという 2 種類のデータベースを使用します。

dhcptab データベースは、termcap に似た構文を使用して定義されたマクロを格納しています。この構文を使用すると、ネットワーク管理者はクライアントに戻す DHCP 構成パラメータのグループを定義することができます。現在のところ、77 の定義済みパラメータがあります。

DHCP/BOOTP サーバーは、そのサーバーと同じネットワークに接続されているクライアントによって要求された場合には、ホスト名、ネットワークブロードキャスト通信アドレス、ネットワークのサブネットマスク、IP 最大転送ユニット (MTU) のいずれかを戻します。この情報は、dhcptab 内に明示的に設定する必要はありません。dhtadm コマンドによって dhcptab サーバー構成テーブルを管理します。

分散型 dhcptab テーブルを共有する 2 つのサーバーが存在し、かつ 2 つのサーバーが同じ NIS+ ドメイン内にある場合、管理者はそのテーブル内の DHCP パラメータを設定して 2 つのサーバーに相互のバックアップを行わせることができます。ただし、本来の構成として、それぞれが異なる範囲の IP アドレスを受け持つ必要があります。さらに、クライアントが他のネットワーク上のサーバーに到達することを可能にするため、個々のネットワークに BOOTP 中継エージェントが必要な場合もあります。

dhcp_network データベースは、クライアント識別子と IP アドレスとの間のマップを格納しています。このデータベースの名前は、サポート対象のネットワークにちなんで付けられています。dhcp_network データベースは、DHCP/BOOTP サービスを提供するネットワークごとに 1 つ存在します。dhcp_network データベースは、実行時にサーバーによって動的に検出され、問い合わせを受けます。dhcp_network データベースが存在しないネットワークから受け取ったクライアントの要求は無視されます。

dhcp_network データベースは、IP アドレスとその IP アドレスに関連付けられている構成パラメータに対して、DHCP クライアントのクライアント識別子を対応づけます。このデータベースは、実行時に DHCP サーバーによって検出されますが、検出は DHCP 要求が発信されたネットワークの IP ネットワークアドレスとサブネットマスクを使用して dhcp_network データベース名を生成することにより行われます。たとえば、10.0.0.0 ネットワークをサポートする dhcp_network データベースは 10_0_0_0 と呼ばれます。dhcp_network データベースは、NIS+ テーブルまたは ASCII ファイルとして存在が可能です。dhcp_network データベースを管理する場合は、pntadm コマンドを使用します。

in.dhcpd デーモンには、DHCP サーバー (オプションの BOOTP 互換モードを含む) および BOOTP 中継エージェントモードという 2 つの動作モードがあります。