この章では、Dynamic Host Configuration Protocol (DHCP) の概要とそのプロトコルを支える概念について説明します。さらに、DHCP をネットワークで使用することの利点についても述べます。
この章では、次の内容について説明します。
DHCP プロトコルを使用すれば、TCP/IP ネットワーク上のホストシステムを、システムのブート時に、そのネットワークに合わせて自動的に構成できます。DHCP では、クライアント/サーバーメカニズムが使用されます。サーバーは、クライアントの構成情報を格納、管理し、クライアントの要求に応じてその構成情報を提供します。構成情報には、クライアントの IP アドレスと、クライアントが使用可能なネットワークサービス情報が含まれます。
DHCP は、従来の BOOTP プロトコルをベースに機能拡張されたプロトコルです。BOOTP は、TCP/IP ネットワーク経由のブートを可能にすることを目的に設計されました。クライアントとサーバー間のメッセージの形式は、DHCP の場合も BOOTP の場合も同じです。ただし、DHCP メッセージには、BOOTP メッセージとは異なり、クライアント用のネットワーク構成データを組み込むことができます。
DHCP の主な利点は、リースを通して IP アドレス割り当てを管理できることです。「リース」を使用すれば、使用されていない IP アドレスを取り戻すことができます。取り戻された IP アドレスは、ほかのクライアントに割り当てられます。そのため、DHCP を使用する 1 つのサイト用の IP アドレスプールは、すべてのクライアントに常時 IP アドレスを割り当てた場合に比べて、小さくなります。
DHCP は、TCP/IP ネットワークの設定やネットワークの日々の管理に伴う時間のかかる作業を部分的に軽減します。なお、Oracle Solaris DHCP は IPv4 でのみ動作します。
Oracle Solaris DHCP には、次の利点があります。
IP アドレス管理 – DHCP の主な利点は、IP アドレスをより簡単に管理できることです。DHCP を使用しないネットワークでは、IP アドレスを手動で割り当てる必要があります。個々のクライアントに固有の IP アドレスを割り当て、クライアントを個別に構成するためには、慎重な作業が必要です。さらに、クライアントが別のネットワークに移動したら、そのクライアントのために手動で修正を加える必要があります。DHCP が使用可能な場合は、管理者が介在しなくても、DHCP サーバーが IP アドレスを管理し、割り当てます。クライアントは、別のサブネットに移動する際に新しいネットワークに適した新しいクライアント情報を DHCP サーバーから取得するため、手動による再構成は必要ありません。
一元的なネットワーククライアントの構成 – 構成は、クライアントまたはクライアントのタイプに合わせてカスタマイズできます。構成情報は、同じ場所 (DHCP データストア) に格納されます。したがって、クライアントの構成を変更するためにクライアントにログインする必要はありません。DHCP データストア内の情報を変更するだけで、複数のクライアントに対する変更を実行できます。
BOOTP クライアントのサポート – BOOTP サーバーと DHCP サーバーはどちらも、クライアントからのブロードキャストを待機して、応答します。DHCP サーバーは、DHCP クライアントからの要求だけではなく、BOOTP クライアントからの要求にも応答できます。BOOTP クライアントは、IP アドレスと、ブートに必要な情報をサーバーから受け取ります。
ローカルおよびリモートクライアントのサポート – BOOTP は、あるネットワークから別のネットワークへのメッセージリレー (中継) 機能を備えています。DHCP は、さまざまな方法で BOOTP リレー機能を使用します。ほとんどのネットワークルーターは、BOOTP リレーエージェントとして機能するように構成できます。そのように構成されたネットワークルーターは、要求側クライアントのネットワーク上に存在しないサーバーに BOOTP 要求を渡します。同じ方法で、DHCP 要求をリレーすることも可能です。これは、ルーターには DHCP 要求と BOOTP 要求の区別がないためです。また、BOOTP リレー機能をサポートするルーターが使用できない場合には、Oracle Solaris DHCP サーバーを BOOTP リレーエージェントとして動作するように構成することもできます。
ネットワークブート機能 – クライアントは、DHCP を使用すると、RARP (逆アドレス解決プロトコル) や bootparams ファイルを使用しなくても、ネットワーク上のサーバーからブートに必要な情報を取得できます。DHCP サーバーは、IP アドレス、ブートサーバー、ネットワーク構成情報を含む、クライアントが動作するのに必要なすべての情報をクライアントに提供できます。DHCP 要求は、サブネットを越えてリレーできるので、DHCP ネットワークブート機能を使用すれば、ネットワーク内のブートサーバー数を削減できます。RARP でのブートには、サブネットごとにブートサーバーが必要です。
大規模ネットワークのサポート – 何百万という DHCP クライアントをもつネットワークでは Oracle Solaris DHCP を使用できます。DHCP サーバーは、マルチスレッド機能を使って多数のクライアント要求を同時に処理します。さらに、大量データを処理できるように最適化されたデータストアをサポートします。データストアアクセスは、別個の処理モジュールによって行われます。このようなデータストアアプローチでは、データベースが必要になるたびにそのサポートを追加できます。
まず始めに、DHCP サーバーのインストールと構成を行う必要があります。構成作業では、クライアントがネットワーク上で機能するために必要なネットワーク情報を指定します。この情報が正しく設定されると、クライアントはネットワーク情報を要求し、受け取ることができます。
次の図は、DHCP サービスにおける一連のイベントを示したものです。丸の中の番号は、図のあとに続く説明の箇条書き番号を示しています。
上の図には、次の手順が示されています。
クライアントは、ローカルサブネット上で制限付きブロードキャストアドレス (255.255.255.255) に「検索メッセージ」を送信することで、DHCP サーバーを検索します。ルーターが存在し、BOOTP リレーエージェントとして動作するように構成されている場合、要求は異なるサブネット上の別の DHCP サーバーに渡されます。クライアントの「ブロードキャスト」にはクライアント固有のID が含まれています。Oracle Solaris DHCP 実装では、この ID はクライアントの MAC (Media Access Control) アドレスから抽出されます。Ethernet ネットワークでは、MAC アドレスは Ethernet アドレスと同じです。
検索メッセージを受け取った DHCP サーバーは、次の情報からクライアントのネットワークを特定します。
この要求がどのネットワークインタフェースから入ってきたか。これによってサーバーは、クライアントが、インタフェースが接続されているネットワーク上にあるのか、あるいはそのネットワークに接続された BOOTP リレーエージェントを使用しているのかがわかります。
BOOTP リレーエージェントの IP アドレスが要求に含まれているか。要求がリレーエージェントを通過する際に、リレーエージェントは要求ヘッダーにリレーエージェントのアドレスを挿入します。サーバーが「リレーエージェントのアドレス」を検出すると、サーバーは、そのアドレスのネットワーク部分がクライアントのネットワークアドレスを示していることを認識します。これは、リレーエージェントがクライアントのネットワークに接続されている必要があるからです。
クライアントのネットワークは、サブネット化されているか。サーバーは、リレーエージェントのアドレス、または要求を受け取ったネットワークインタフェースのアドレスが示すネットワークのサブネットマスクを netmasks テーブルから見つけます。サーバーは、使用されているサブネットマスクを認識すると、ネットワークアドレスのどの部分がホスト部分であるかを特定し、クライアント用の適切な IP アドレスを選択できます。netmasks については、netmasks(4) のマニュアルページを参照してください。
DHCP サーバーは、クライアントのネットワークを特定すると、適切な IP アドレスを選択し、そのアドレスがまだ使用されていないことを確認します。次に DHCP サーバーは、「オファーメッセージ」を送信し、そのクライアントに応答します。オファーメッセージには、選択された IP アドレスと、クライアントの構成に使用できるサービスの情報が含まれています。サーバーは、この IP アドレスを使用するかどうかをクライアントが決めるまで、これを一時的に予約します。
クライアントは、オファーされたサービスの数とタイプに基づいて最善のオファーを選択します。そして、最善のオファーとなったサーバーの IP アドレスを求める要求を送信します。この伝送によって、クライアントがサーバーを選択したことを、応答中のすべての DHCP サーバーに知らせることができます。選択されなかったサーバーは、オファーした IP アドレスの予約を取り消します。
選択されたサーバーは、クライアント用の IP アドレスを割り当て、その情報を DHCP データストアに格納します。そして、承認メッセージ (ACK) をクライアントに送信します。「承認メッセージ」には、クライアントのためのネットワーク構成パラメータが含まれています。クライアントは、ping ユーティリティーを使って IP アドレスをテストし、ほかのシステムがそれを使っていないか確かめます。そして、ブートを続行しネットワークに参加します。
クライアントはリース時間を監視します。設定された時間が経過すると、クライアントは、さきほど選択したサーバーに新しいメッセージを送信してリースを増やそうとします。
要求を受け取った DHCP サーバーは、リース期間と、管理者が規定したローカルリースポリシーとが合っていれば、そのリース期間を延長します。サーバーが 20 秒以内に応答しない場合、クライアントは、ほかの DHCP サーバーのいずれかがリース期間を延長できるように要求をブロードキャストします。
クライアントは、その IP アドレスが不要になると、IP アドレスが解放されたことをサーバーに知らせます。この通知は、通常のシャットダウンの際に実行され、また手動で実行することも可能です。
Oracle Solaris DHCP サーバーは、ホストシステム上で Oracle Solaris のデーモンとして動作します。Solaris DHCP サーバーは、2 つの基本機能を備えています。
IP アドレスの管理 – DHCP サーバーは、IP アドレスの範囲を制御し、常時または定義した期間、IP アドレスをクライアントに割り当てます。サーバーはリースメカニズムを使って、クライアントが一時的なアドレスを使用できる期間を決めます。アドレスは、不要になるとプールに返され、再割り当てされます。DHCP サーバーは、DHCP ネットワークテーブル内にクライアントへの IP アドレス結合情報を保持し、複数のクライアントが同じアドレスを使用しないようにします。
クライアントにネットワーク構成情報を提供 – Solaris DHCP サーバーは、クライアントの IP アドレスを割り当て、ホスト名やブロードキャストアドレス、ネットワークサブネットマスク、デフォルトゲートウェイ、ネームサービスといったネットワーク構成情報をクライアントに提供します。ネットワーク構成情報は、サーバーの dhcptab データベースから取得されます。
また、Oracle Solaris DHCP サーバーは次の追加機能を実行するように構成することも可能です。
BOOTP クライアント要求への応答 – Solaris DHCP サーバーは、BOOTP サーバーを検索する BOOTP クライアントからのブロードキャストを待機し、BOOTP クライアントに IP アドレスとブートパラメータを提供します。管理者は、これらの情報をあらかじめ静的に構成しておく必要があります。DHCP サーバーは、同時に BOOTP サーバーとしても DHCP サーバーとしても動作できます。
要求のリレー – Solaris DHCP サーバーは、ほかのサブネット上の適切なサーバーに BOOTP 要求と DHCP 要求をリレーします。DHCP サーバーは BOOTP リレーエージェントとして構成された場合、DHCP サービスや BOOTP サービスを提供できなくなります。
DHCP クライアントにネットワークブート情報を提供 – Solaris DHCP サーバーは、DHCP クライアントがネットワーク経由でブートするために必要な情報を DHCP クライアントに提供できます。 この情報には、IP アドレスやブートパラメータ、ネットワーク構成情報などがあります。さらにサーバーは、広域ネットワーク (WAN) を介したブートやインストールに必要な情報を DHCP クライアントに提供します。
ホスト名を指定したクライアントに代わって DNS テーブルを更新 – DHCP サービスを求めるクライアントの要求に Hostname オプションと値が含まれている場合には、DHCP サーバーが、クライアントに代わって DNS を更新できます。
スーパーユーザーであれば、DHCP マネージャやコマンド行ユーティリティーを使って DHCP サーバーの起動、停止、構成を行うことができます (コマンド行ユーティリティーについては、「DHCP コマンド行ユーティリティー」を参照)。通常、DHCP サーバーは、システムのブート時に自動的に起動され、システムのシャットダウン時に自動的に終了するように構成されています。したがって、通常は、サーバーの起動や終了を手動で行う必要はありません。
Oracle Solaris DHCP サーバーが使用するすべてのデータはデータストアに保持されます。データストアの内容は、プレーンテキストファイル、NIS+ テーブル、またはバイナリ形式ファイルの場合があります。どの形式のデータストアを使用するかは、DHCP サービスを構成するときに選択されます。データストアのタイプによる違いについては、「DHCP データストアの選択」を参照してください。DHCP マネージャや dhcpconfig コマンドを使ってデータストアの形式を変換することはできません。
ある DHCP サーバーのデータストアから別のサーバーのデータストアにデータを移動できます。それらのサーバーが、異なるデータストア形式を使用している場合でも、それらのデータストアを扱うエクスポートやインポートユーティリティーが使用できます。DHCP マネージャか dhcpconfig コマンドを使って、データストアの内容全体またはその一部をエクスポートしたりインポートしたりできます。
Oracle Solaris DHCP (サーバーツールと管理ツール) とデータベース間のインタフェースになる独自のコードモジュールを開発する場合には、DHCP データ領域のデータベースやファイルのフォーマットはどのようなものでもかまいません。詳細は、『Solaris DHCP サービス開発ガイド』を参照してください。
Oracle Solaris DHCP データストア内には、2 つのタイプのテーブルがあります。これらのテーブルの内容を表示したり管理したりするには、DHCP マネージャかコマンド行ユーティリティーを使用します。データテーブルの種類は次のとおりです。
dhcptab テーブル – クライアントに提供することが可能な構成情報が入っています。
DHCP ネットワークテーブル – テーブル名が示すネットワーク上にある DHCP クライアントや BOOTP クライアントの情報が含まれています。たとえば、ネットワーク 192.168.32.0 のテーブル名には、192_168_32_0 が含まれています。
dhcptab テーブルには、クライアントが DHCP サーバーから取得できるすべてのデータが含まれています。DHCP サーバーは、起動されるたびに dhcptab テーブルをスキャンします。dhcptab テーブルのファイル名は、使用されるデータストアによって異なります。たとえば、NIS+ データストア SUNWnisplus によって作成された dhcptab テーブルは SUNWnisplus1_dhcptab になります。
DHCP プロトコルは、クライアントに渡すことができる情報の標準的な項目を多数定義しています。これらの項目は、パラメータ、シンボル、またはオプションと呼ばれます。DHCP プロトコルでは、オプションは数値コードとテキストラベルで定義されており、値は与えられていません。例として、一般的に使用される標準オプションの一部を示します。
表 12–1 DHCP 標準オプションの例
コード |
ラベル |
説明 |
---|---|---|
1 |
Subnet |
サブネットマスク IP アドレス |
3 |
Router |
ルーターの IP アドレス |
6 |
DNSserv |
DNS サーバーの IP アドレス |
12 |
Hostname |
クライアントホスト名を表すテキスト文字列 |
15 |
DNSdmain |
DNS ドメイン名 |
オプションの中には、サーバーの構成中に情報が提供されると、自動的に値が割り当てられるものがあります。また、あとで、ほかのオプションに値を明示的に割り当てることもできます。オプションとその値はクライアントに渡され、構成情報を形成します。たとえば、オプションと値のペアである DNSdmain=Georgia.Peach.COM は、クライアントの DNS ドメイン名を Georgia.Peach.COM に設定します。
オプションは、「マクロ」として知られているコンテナ内でほかのオプションと共にグループ化することができ、これによりクライアントへ容易に情報を渡すことができます。マクロの中には、サーバー構成時に自動的に作成され、構成時に値が割り当てられるオプションを含むものがあります。また、マクロにはほかのマクロを含めることもできます。
dhcptab テーブルのフォーマットについては、dhcptab(4) のマニュアルページを参照してください。DHCP マネージャでは、「オプション (Options)」タブや「マクロ (Macros)」タブに示されるすべての情報は dhcptab ファイルから得られます。オプションについては、「DHCP オプションについて」を参照してください。マクロについては、「DHCP マクロについて」を参照してください。
dhcptab テーブルをテキストエディタで編集しないでください。オプションやマクロの作成、削除、変更には、dhtadm コマンドまたは DHCP マネージャを使用する必要があります。
DHCP ネットワークテーブルは、クライアントの識別子を IP アドレスと、各アドレスに関連した構成パラメータに対応付けます。ネットワークテーブルの書式については、dhcp_network(4) のマニュアルページを参照してください。DHCP マネージャでは、「アドレス (Addresses)」タブに示されるすべての情報はネットワークテーブルから得られます。
DHCP マネージャは、DHCP サービスに関連するすべての管理業務を行うためのグラフィカルユーザーインタフェース (GUI) ツールです。このツールを使用すると、サーバーそのものだけでなく、サーバーが使用するデータも管理できます。DHCP マネージャを実行するためにはスーパーユーザーでなければなりません。
サーバー上では DHCP マネージャを下記の場合に使用できます。
DHCP サーバーを構成または構成解除する場合
DHCP サーバーを起動、停止、および再起動する場合
DHCP サービスを有効または無効にする場合
DHCP サーバーの設定をカスタマイズする場合
さらに、DHCP マネージャでは、IP アドレスやネットワーク構成マクロ、ネットワーク構成オプションに関して次のことができます。
DHCP 管理下にあるネットワークの追加や削除
DHCP 管理下にある IP アドレスの表示、追加、変更、削除、解放
ネットワーク構成マクロの表示、追加、変更、削除
標準以外のネットワーク構成オプションの表示、追加、変更、削除
DHCP マネージャでは、DHCP データストアに関して次のことができます。
データを新しいデータストアフォーマットに変換する。
DHCP データをある DHCP サーバーから別のサーバーに移動する。 データを最初のサーバーからエクスポートし、次のサーバーにインポートする必要があります。
DHCP マネージャでは、実行できる手順についての詳細なオンラインヘルプも利用できます。詳細は、「DHCP マネージャについて」を参照してください。
すべての DHCP 管理機能は、コマンド行ユーティリティーを使用して実行できます。コマンド行ユーティリティーを実行するには、スーパーユーザーとして、または DHCP 管理プロファイルに割り当てられているユーザーでログインしている必要があります。詳細は、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
次の表に、各ユーティリティーとその使用目的を示します。
表 12–2 DHCP コマンド行ユーティリティー
dhcpconfig、dhtadm、pntadm コマンドのセキュリティーは、役割によるアクセス制御 (RBAC, Role-Based Access Control) の設定値に基づいて決められます。デフォルトでは、これらのコマンドを実行できるのはスーパーユーザーだけです。別のユーザー名の下でコマンドを使用する場合は、ユーザー名を DHCP 管理プロファイルに割り当てる必要があります (「DHCP コマンドへのユーザーアクセスの設定」を参照)。
Oracle Solaris DHCP サーバーを動作させたいシステム上で DHCP マネージャを初めて実行するときは、DHCP サーバーを構成します。
DHCP マネージャのサーバー構成ダイアログボックスに、1 つのネットワーク上で DHCP サーバーを使用可能にして実行するために必要な基本情報を入力するように要求するメッセージが表示されます。既存のシステムファイルからいくつかのデフォルト値を取得できます。そのネットワークに対してシステムを構成していない場合には、デフォルト値はありません。DHCP マネージャは下記の情報を入力するように促します。
そのサーバーの役割 : DHCP サーバーまたは BOOTP リレーエージェントのいずれか
データストアの形式 (ファイル、バイナリファイル、NIS+、または独自のもの)
選択したデータストアタイプに対するデータストア構成パラメータ
ホストレコードの更新に使用するネームサービス (使用する場合) (/etc/inet/hosts、NIS+、または DNS)
リース期間と、クライアントがリース期間を更新できるようにするかどうか
DNS サーバーの DNS ドメイン名および IP アドレス
DHCP サービス用に構成する最初のネットワークのネットワークアドレスとサブネットマスク
ネットワークタイプ (ローカルエリアネットワーク (LAN) かポイントツーポイントネットワーク)
ルーターの検索、または特定のルーターの IP アドレス
NIS サーバーの NIS ドメイン名および IP アドレス
NIS+ サーバーの NIS+ ドメイン名および IP アドレス
DHCP サーバーは dhcpconfig コマンドを使用しても構成できます。このユーティリティーは、既存のシステムファイルから情報を自動的に収集して、使える初期構成を提供します。そのため、dhcpconfig コマンドを実行する前に既存のシステムファイルが正しいことを確認しておく必要があります。dhcpconfig がどのファイルから情報を入手するかについては、dhcpconfig(1M) のマニュアルページを参照してください。
Oracle Solaris DHCP サーバーは、下記のタイプの IP アドレス割り当て機能をサポートしています。
手動割り当て – DHCP サーバーは、特定の DHCP クライアント用に選択された専用の IP アドレスを割り当てます。このアドレスは変更したりほかのクライアントに割り当てたりすることはできません。
自動または常時割り当て – DHCP サーバーは有効期限のない IP アドレスを割り当て、その割り当てが変更されるか、あるいは、クライアントがそのアドレスを解放するまで、そのアドレスを永続的にそのクライアントに使用します。
動的割り当て – DHCP サーバーは IP アドレスを要求しているクライアントに、一定期間このアドレスをリースします (貸し出します)。この期間が過ぎると、サーバーはこのアドレスを回収し、ほかのクライアントに割り当てることができます。このアドレスの使用期間はサーバーに構成されているリース期間によって決まります。
どのような情報を DHCP クライアントに提供するかを決める必要があります。DHCP サーバーを構成するときにはネットワークの基本的な情報を指定しますが、あとでクライアントに提供したい情報を追加することもできます。
DHCP サーバーは、オプションと値の対、およびマクロの形でdhcptab テーブルにネットワーク構成情報を保存します。オプションはクライアントに供給するネットワークデータのキーワードです。値はオプションに割り当てられ、DHCP メッセージでクライアントに渡されます。たとえば、NIS サーバーアドレスは、NISservs というオプションで渡されます。NISservs オプションの値は、DHCP サーバーによって割り当てられる一連の IP アドレスと同じものです。マクロは、クライアントに供給したい任意の個数のオプションをグループ化するための便利な方法です。DHCP マネージャを使えば、オプションをグループ化するマクロを作成し、それらのオプションに値を割り当てることができます。コマンド行ツールを使用する場合は、dhtadm (DHCP 構成テーブル管理ユーティリティー) を使ってオプションやマクロを扱うことができます。
Oracle Solaris DHCP では、「オプション」とはクライアントに渡されるネットワーク情報です。DHCP の資料では、オプションは「シンボル」や「タグ」と呼ばれる場合もあります。オプションは、数値コードやテキストラベルで定義されます。オプションは、DHCP サービスで使用されるときに値を受け取ります。
DHCP プロトコルは、一般的に指定されているネットワークデータに対して多数の標準オプションを定義しています。 それらオプションには、たとえば Subnet、Router、Broadcst、NIS+dom、Hostname、および LeaseTim があります。すべての標準オプションのリストについては、dhcp_inittab(4) のマニュアルページを参照してください。標準オプションのキーワードを変更することは一切できません。ただし、ネットワークに関連するオプションをマクロに組み込む際に、オプションに値を割り当てることができます。
標準オプションで指定できないデータに対しては、新しいオプションを作ることができます。作成するオプションは下記のいずれかのカテゴリに分類されるものでなければなりません。
拡張 – この DHCP サーバーにはまだ実装されていないが、標準 DHCP オプションとしてすでに予約されています。使用したい標準オプションがわかっているが、DHCP サーバーをグレードアップしない場合に使用できます。
サイト – 使用しているサイトに固有なオプションのために予約されています。このようなオプションを作成します。
ベンダー – ハードウェアまたはベンダープラットホームなどの特定クラスのクライアントにだけ適用するオプションのために予約されています。Oracle Solaris DHCP の実装には、Oracle Solaris クライアント用の多数のベンダーオプションが含まれています。たとえばオプション SrootIP4 は、ネットワークからブートされるクライアントがそのルート (/) ファイルシステムとして使用すべきサーバーの IP アドレスを指定します。
DHCP オプションの作成、変更、削除に必要な手順については、第 15 章DHCP の管理 (手順)を参照してください。
Oracle Solaris DHCP サービスにおける「マクロ」とは、ネットワーク構成オプションとそれらに割り当てられた値の集合をいいます。マクロは、オプションをグループ化し、特定のクライアントまたはクライアントタイプにオプションをまとめて渡すために作成します。たとえば、特定のサブネット上のすべてのクライアントを対象としたマクロには、サブネットマスク、ルーター IP アドレス、ブロードキャストアドレス、NIS+ ドメイン、およびリース期間のためのオプションと値のペアを含めることができます。
DHCP サーバーがマクロを処理するときは、そのマクロに定義されているネットワークオプションと値を、クライアントへの DHCP メッセージに含めます。サーバーは、特定のタイプのクライアントに対し一部のマクロを自動的に処理します。
サーバーでマクロを自動的に処理するためには、マクロの名前が、次の表に示すカテゴリのいずれかに従っている必要があります。
表 12–3 自動処理のための DHCP マクロカテゴリ
表 12–3 に記載されたどのカテゴリとも一致しない名前をもつマクロは、次の条件の 1 つが当てはまるときだけ処理されます。
マクロが IP アドレスに割り当てられる場合。
マクロが、自動的に処理されるほかのマクロに含まれる場合。
マクロが、IP アドレスに割り当てられているほかのマクロに含まれている場合。
サーバーを構成する場合、デフォルトでは、そのサーバーの名前と一致する名前の付いたマクロが作られます。このサーバーマクロは、自動処理が行われる名称タイプのいずれとも一致しないため、いずれのクライアントに対しても自動的に処理されません。あとでサーバー上で IP アドレスを作成する場合、その IP アドレスは、サーバーのデフォルトのマクロを使用するように割り当てられます。
DHCP クライアントが DHCP サービスを要求するときは、DHCP サーバーはどのマクロがそのクライアントに一致するかを決定します。サーバーは、マクロを処理する際に、マクロカテゴリを使って処理の順序を決めます。最も一般的なカテゴリが最初に処理され、最も特定されるカテゴリが最後に処理されます。マクロは下記の順序で処理されます。
クライアントクラスマクロ – 最も一般的なカテゴリ
ネットワークアドレスマクロ – クライアントクラスよりは特定なマクロ
IP アドレスに割り当てられたマクロ – ネットワークアドレスよりは特定されたマクロ
クライアント ID マクロ – 1 クライアントだけに適用される最も特定されたカテゴリ
ほかのマクロに含まれているマクロはそのマクロの一部として処理されます。
複数のマクロに同じオプションが含まれている場合は、最も特定されたカテゴリのマクロ内のオプションに設定されている値が一番最後に処理されるため、その値が使用されます。たとえば、ネットワークアドレスに、24 時間の値を持つリース期間オプションが含まれていて、クライアント ID マクロに 8 時間の値を持つリース期間オプションが含まれている場合は、そのクライアントは 8 時間のリース期間を受け取ります。
マクロのすべてのオプションに割り当てられている値の長さの合計は、オプションコードと長さ情報を含め 255 バイト以内でなければなりません。この制限は、DHCP プロトコルによるものです。
この制限による影響が最も大きいと思われるマクロは、Oracle Solaris インストールサーバー上のファイルへのパスを渡すためのマクロです。一般に、渡すベンダー情報は、必要最小限に留めるべきです。さらに、パス名を必要とするオプションでは、短いパス名を使用すべきです。長いパスへのシンボリックリンクを作成する場合は、短いこのリンク名を渡すことができます。
「クライアント」という用語は、ネットワーク上でクライアントとしての役割を実行している物理的なマシンについて言及するために使用される場合があります。ただし、このマニュアルで説明している DHCP クライアントはソフトウェアエンティティーです。Oracle Solaris DHCP クライアントは、そのネットワーク構成を DHCP サーバーから受け取るように構成されているシステムの Oracle Solaris で動作するデーモン (dhcpagent) です。ほかのベンダーの DHCP クライアントも Oracle Solaris DHCP サーバーのサービスを使用できます。ただし、このマニュアルでは Oracle Solaris DHCP クライアントについてのみ説明します。
Oracle Solaris DHCP クライアントの詳細は、第 16 章DHCP クライアントの構成と管理を参照してください。