Solaris のシステム管理 (IP サービス)

パート III DHCP

このパートには、Dynamic Host Configuration Protocol (DHCP) の概念と、Oracle Solaris DHCP サービスの計画、構成、管理、問題追跡に必要な作業が含まれています。

第 12 章 Oracle Solaris DHCP について (概要)

この章では、Dynamic Host Configuration Protocol (DHCP) の概要とそのプロトコルを支える概念について説明します。さらに、DHCP をネットワークで使用することの利点についても述べます。

この章では、次の内容について説明します。

DHCP プロトコルについて

DHCP プロトコルを使用すれば、TCP/IP ネットワーク上のホストシステムを、システムのブート時に、そのネットワークに合わせて自動的に構成できます。DHCP では、クライアント/サーバーメカニズムが使用されます。サーバーは、クライアントの構成情報を格納、管理し、クライアントの要求に応じてその構成情報を提供します。構成情報には、クライアントの IP アドレスと、クライアントが使用可能なネットワークサービス情報が含まれます。

DHCP は、従来の BOOTP プロトコルをベースに機能拡張されたプロトコルです。BOOTP は、TCP/IP ネットワーク経由のブートを可能にすることを目的に設計されました。クライアントとサーバー間のメッセージの形式は、DHCP の場合も BOOTP の場合も同じです。ただし、DHCP メッセージには、BOOTP メッセージとは異なり、クライアント用のネットワーク構成データを組み込むことができます。

DHCP の主な利点は、リースを通して IP アドレス割り当てを管理できることです。「リース」を使用すれば、使用されていない IP アドレスを取り戻すことができます。取り戻された IP アドレスは、ほかのクライアントに割り当てられます。そのため、DHCP を使用する 1 つのサイト用の IP アドレスプールは、すべてのクライアントに常時 IP アドレスを割り当てた場合に比べて、小さくなります。

Oracle Solaris DHCP を使用した場合の利点

DHCP は、TCP/IP ネットワークの設定やネットワークの日々の管理に伴う時間のかかる作業を部分的に軽減します。なお、Oracle Solaris DHCP は IPv4 でのみ動作します。

Oracle Solaris DHCP には、次の利点があります。

DHCP の動作

まず始めに、DHCP サーバーのインストールと構成を行う必要があります。構成作業では、クライアントがネットワーク上で機能するために必要なネットワーク情報を指定します。この情報が正しく設定されると、クライアントはネットワーク情報を要求し、受け取ることができます。

次の図は、DHCP サービスにおける一連のイベントを示したものです。丸の中の番号は、図のあとに続く説明の箇条書き番号を示しています。

図 12–1 DHCP サービスにおける一連のイベント

図には、DHCP クライアントとサーバー間の通信順序が示されています。図に続いて、この順序の説明があります。

上の図には、次の手順が示されています。

  1. クライアントは、ローカルサブネット上で制限付きブロードキャストアドレス (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) のマニュアルページを参照してください。

  2. DHCP サーバーは、クライアントのネットワークを特定すると、適切な IP アドレスを選択し、そのアドレスがまだ使用されていないことを確認します。次に DHCP サーバーは、「オファーメッセージ」を送信し、そのクライアントに応答します。オファーメッセージには、選択された IP アドレスと、クライアントの構成に使用できるサービスの情報が含まれています。サーバーは、この IP アドレスを使用するかどうかをクライアントが決めるまで、これを一時的に予約します。

  3. クライアントは、オファーされたサービスの数とタイプに基づいて最善のオファーを選択します。そして、最善のオファーとなったサーバーの IP アドレスを求める要求を送信します。この伝送によって、クライアントがサーバーを選択したことを、応答中のすべての DHCP サーバーに知らせることができます。選択されなかったサーバーは、オファーした IP アドレスの予約を取り消します。

  4. 選択されたサーバーは、クライアント用の IP アドレスを割り当て、その情報を DHCP データストアに格納します。そして、承認メッセージ (ACK) をクライアントに送信します。「承認メッセージ」には、クライアントのためのネットワーク構成パラメータが含まれています。クライアントは、ping ユーティリティーを使って IP アドレスをテストし、ほかのシステムがそれを使っていないか確かめます。そして、ブートを続行しネットワークに参加します。

  5. クライアントはリース時間を監視します。設定された時間が経過すると、クライアントは、さきほど選択したサーバーに新しいメッセージを送信してリースを増やそうとします。

  6. 要求を受け取った DHCP サーバーは、リース期間と、管理者が規定したローカルリースポリシーとが合っていれば、そのリース期間を延長します。サーバーが 20 秒以内に応答しない場合、クライアントは、ほかの DHCP サーバーのいずれかがリース期間を延長できるように要求をブロードキャストします。

  7. クライアントは、その IP アドレスが不要になると、IP アドレスが解放されたことをサーバーに知らせます。この通知は、通常のシャットダウンの際に実行され、また手動で実行することも可能です。

Oracle Solaris DHCP サーバー

Oracle Solaris DHCP サーバーは、ホストシステム上で Oracle Solaris のデーモンとして動作します。Solaris DHCP サーバーは、2 つの基本機能を備えています。

また、Oracle Solaris DHCP サーバーは次の追加機能を実行するように構成することも可能です。

DHCP サーバーの管理

スーパーユーザーであれば、DHCP マネージャやコマンド行ユーティリティーを使って 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 テーブル

dhcptab テーブルには、クライアントが DHCP サーバーから取得できるすべてのデータが含まれています。DHCP サーバーは、起動されるたびに dhcptab テーブルをスキャンします。dhcptab テーブルのファイル名は、使用されるデータストアによって異なります。たとえば、NIS+ データストア SUNWnisplus によって作成された dhcptab テーブルは SUNWnisplus1_dhcptab になります。

DHCP プロトコルは、クライアントに渡すことができる情報の標準的な項目を多数定義しています。これらの項目は、パラメータ、シンボル、またはオプションと呼ばれます。DHCP プロトコルでは、オプションは数値コードとテキストラベルで定義されており、値は与えられていません。例として、一般的に使用される標準オプションの一部を示します。

表 12–1 DHCP 標準オプションの例

コード 

ラベル 

説明 

Subnet

サブネットマスク IP アドレス 

Router

ルーターの IP アドレス 

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 ネットワークテーブル

DHCP ネットワークテーブルは、クライアントの識別子を IP アドレスと、各アドレスに関連した構成パラメータに対応付けます。ネットワークテーブルの書式については、dhcp_network(4) のマニュアルページを参照してください。DHCP マネージャでは、「アドレス (Addresses)」タブに示されるすべての情報はネットワークテーブルから得られます。

DHCP マネージャ

DHCP マネージャは、DHCP サービスに関連するすべての管理業務を行うためのグラフィカルユーザーインタフェース (GUI) ツールです。このツールを使用すると、サーバーそのものだけでなく、サーバーが使用するデータも管理できます。DHCP マネージャを実行するためにはスーパーユーザーでなければなりません。

サーバー上では DHCP マネージャを下記の場合に使用できます。

さらに、DHCP マネージャでは、IP アドレスやネットワーク構成マクロ、ネットワーク構成オプションに関して次のことができます。

DHCP マネージャでは、DHCP データストアに関して次のことができます。

DHCP マネージャでは、実行できる手順についての詳細なオンラインヘルプも利用できます。詳細は、「DHCP マネージャについて」を参照してください。

DHCP コマンド行ユーティリティー

すべての DHCP 管理機能は、コマンド行ユーティリティーを使用して実行できます。コマンド行ユーティリティーを実行するには、スーパーユーザーとして、または DHCP 管理プロファイルに割り当てられているユーザーでログインしている必要があります。詳細は、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

次の表に、各ユーティリティーとその使用目的を示します。

表 12–2 DHCP コマンド行ユーティリティー

コマンド 

説明と使用目的 

マニュアルページへのリンク 

in.dhcpd

DHCP サービスデーモン。コマンド行引数を使えば、いくつかの実行時オプションを設定できます。

in.dhcpd(1M)

dhcpconfig

DHCP サーバーの構成や構成解除に使用します。このユーティリティーでは、DHCP マネージャの多くの機能をコマンド行から実行できます。このユーティリティーは主に、一部の構成機能を自動化したいときにスクリプト中で使用します。dhcpconfig は、サーバーシステムのネットワークトポロジファイルから情報を収集し、初期構成に必要な情報を作成します。

dhcpconfig(1M)

dhtadm

DHCP クライアント用の構成オプションやマクロを追加、削除、変更するときに使用します。このユーティリティーによって dhcptab テーブルが間接的に編集され、dhcptab テーブルのフォーマットが正しく保たれます。dhcptab テーブルを直接編集してはいけません。

dhtadm(1M)

pntadm

DHCP ネットワークテーブルの管理に使用します。このユーティリティーで実行可能なタスクは、次のとおりです。

  • DHCP の管理下にある IP アドレスやネットワークを追加、削除する。

  • 指定する IP アドレスのネットワーク構成を変更する。

  • DHCP の管理下にある IP アドレスやネットワークの情報を表示する。

pntadm(1M)

役割によるアクセス制御 (RBAC) - DHCP コマンドを使用する場合

dhcpconfigdhtadmpntadm コマンドのセキュリティーは、役割によるアクセス制御 (RBAC, Role-Based Access Control) の設定値に基づいて決められます。デフォルトでは、これらのコマンドを実行できるのはスーパーユーザーだけです。別のユーザー名の下でコマンドを使用する場合は、ユーザー名を DHCP 管理プロファイルに割り当てる必要があります (「DHCP コマンドへのユーザーアクセスの設定」を参照)。

DHCP サーバーの構成

Oracle Solaris DHCP サーバーを動作させたいシステム上で DHCP マネージャを初めて実行するときは、DHCP サーバーを構成します。

DHCP マネージャのサーバー構成ダイアログボックスに、1 つのネットワーク上で DHCP サーバーを使用可能にして実行するために必要な基本情報を入力するように要求するメッセージが表示されます。既存のシステムファイルからいくつかのデフォルト値を取得できます。そのネットワークに対してシステムを構成していない場合には、デフォルト値はありません。DHCP マネージャは下記の情報を入力するように促します。

DHCP サーバーは dhcpconfig コマンドを使用しても構成できます。このユーティリティーは、既存のシステムファイルから情報を自動的に収集して、使える初期構成を提供します。そのため、dhcpconfig コマンドを実行する前に既存のシステムファイルが正しいことを確認しておく必要があります。dhcpconfig がどのファイルから情報を入手するかについては、dhcpconfig(1M) のマニュアルページを参照してください。

IP アドレスの割り当て

Oracle Solaris DHCP サーバーは、下記のタイプの IP アドレス割り当て機能をサポートしています。

ネットワーク構成情報

どのような情報を DHCP クライアントに提供するかを決める必要があります。DHCP サーバーを構成するときにはネットワークの基本的な情報を指定しますが、あとでクライアントに提供したい情報を追加することもできます。

DHCP サーバーは、オプションと値の対、およびマクロの形でdhcptab テーブルにネットワーク構成情報を保存します。オプションはクライアントに供給するネットワークデータのキーワードです。値はオプションに割り当てられ、DHCP メッセージでクライアントに渡されます。たとえば、NIS サーバーアドレスは、NISservs というオプションで渡されます。NISservs オプションの値は、DHCP サーバーによって割り当てられる一連の IP アドレスと同じものです。マクロは、クライアントに供給したい任意の個数のオプションをグループ化するための便利な方法です。DHCP マネージャを使えば、オプションをグループ化するマクロを作成し、それらのオプションに値を割り当てることができます。コマンド行ツールを使用する場合は、dhtadm (DHCP 構成テーブル管理ユーティリティー) を使ってオプションやマクロを扱うことができます。

DHCP オプションについて

Oracle Solaris DHCP では、「オプション」とはクライアントに渡されるネットワーク情報です。DHCP の資料では、オプションは「シンボル」や「タグ」と呼ばれる場合もあります。オプションは、数値コードやテキストラベルで定義されます。オプションは、DHCP サービスで使用されるときに値を受け取ります。

DHCP プロトコルは、一般的に指定されているネットワークデータに対して多数の標準オプションを定義しています。 それらオプションには、たとえば SubnetRouterBroadcstNIS+domHostname、および LeaseTim があります。すべての標準オプションのリストについては、dhcp_inittab(4) のマニュアルページを参照してください。標準オプションのキーワードを変更することは一切できません。ただし、ネットワークに関連するオプションをマクロに組み込む際に、オプションに値を割り当てることができます。

標準オプションで指定できないデータに対しては、新しいオプションを作ることができます。作成するオプションは下記のいずれかのカテゴリに分類されるものでなければなりません。

DHCP オプションの作成、変更、削除に必要な手順については、第 15 章DHCP の管理 (手順)を参照してください。

DHCP マクロについて

Oracle Solaris DHCP サービスにおける「マクロ」とは、ネットワーク構成オプションとそれらに割り当てられた値の集合をいいます。マクロは、オプションをグループ化し、特定のクライアントまたはクライアントタイプにオプションをまとめて渡すために作成します。たとえば、特定のサブネット上のすべてのクライアントを対象としたマクロには、サブネットマスク、ルーター IP アドレス、ブロードキャストアドレス、NIS+ ドメイン、およびリース期間のためのオプションと値のペアを含めることができます。

DHCP サーバーによるマクロ処理

DHCP サーバーがマクロを処理するときは、そのマクロに定義されているネットワークオプションと値を、クライアントへの DHCP メッセージに含めます。サーバーは、特定のタイプのクライアントに対し一部のマクロを自動的に処理します。

サーバーでマクロを自動的に処理するためには、マクロの名前が、次の表に示すカテゴリのいずれかに従っている必要があります。

表 12–3 自動処理のための DHCP マクロカテゴリ

マクロのカテゴリ 

説明 

クライアントクラス 

マクロ名は、クライアントマシンタイプ、オペレーティングシステム、またはその両方で表されるクライアントクラスと同じです。たとえば、あるサーバーに SUNW.Sun-Blade-100 という名前のマクロがあるとします。ハードウェア実装が SUNW,Sun-Blade-100 であるクライアントは、SUNW.Sun-Blade-100 マクロの値を自動的に受け取ります。

ネットワークアドレス 

マクロ名は、DHCP で管理されている IP アドレスと同じです。たとえば、サーバーのマクロの名前が 10.53.224.0 の場合、10.53.224.0 ネットワークに接続されているクライアントはいずれも自動的に 10.53.224.0 マクロ内の値を受け取ります。

クライアント ID 

マクロ名は、クライアントのある種の固有識別子と同じです。通常、Ethernet または MAC アドレスから得られます。たとえば、08002011DF32 という名前のマクロがサーバーに存在する場合、(Ethernet アドレス 8:0:20:11:DF:32 から得られる) クライアント ID 08002011DF:32 を持つクライアントは、08002011DF32 という名前のマクロにある値を自動的に受け取ります。

表 12–3 に記載されたどのカテゴリとも一致しない名前をもつマクロは、次の条件の 1 つが当てはまるときだけ処理されます。


注 –

サーバーを構成する場合、デフォルトでは、そのサーバーの名前と一致する名前の付いたマクロが作られます。このサーバーマクロは、自動処理が行われる名称タイプのいずれとも一致しないため、いずれのクライアントに対しても自動的に処理されません。あとでサーバー上で IP アドレスを作成する場合、その IP アドレスは、サーバーのデフォルトのマクロを使用するように割り当てられます。


マクロ処理の順序

    DHCP クライアントが DHCP サービスを要求するときは、DHCP サーバーはどのマクロがそのクライアントに一致するかを決定します。サーバーは、マクロを処理する際に、マクロカテゴリを使って処理の順序を決めます。最も一般的なカテゴリが最初に処理され、最も特定されるカテゴリが最後に処理されます。マクロは下記の順序で処理されます。

  1. クライアントクラスマクロ – 最も一般的なカテゴリ

  2. ネットワークアドレスマクロ – クライアントクラスよりは特定なマクロ

  3. IP アドレスに割り当てられたマクロ – ネットワークアドレスよりは特定されたマクロ

  4. クライアント ID マクロ – 1 クライアントだけに適用される最も特定されたカテゴリ

ほかのマクロに含まれているマクロはそのマクロの一部として処理されます。

複数のマクロに同じオプションが含まれている場合は、最も特定されたカテゴリのマクロ内のオプションに設定されている値が一番最後に処理されるため、その値が使用されます。たとえば、ネットワークアドレスに、24 時間の値を持つリース期間オプションが含まれていて、クライアント ID マクロに 8 時間の値を持つリース期間オプションが含まれている場合は、そのクライアントは 8 時間のリース期間を受け取ります。

DHCP マクロのサイズ限度

マクロのすべてのオプションに割り当てられている値の長さの合計は、オプションコードと長さ情報を含め 255 バイト以内でなければなりません。この制限は、DHCP プロトコルによるものです。

この制限による影響が最も大きいと思われるマクロは、Oracle Solaris インストールサーバー上のファイルへのパスを渡すためのマクロです。一般に、渡すベンダー情報は、必要最小限に留めるべきです。さらに、パス名を必要とするオプションでは、短いパス名を使用すべきです。長いパスへのシンボリックリンクを作成する場合は、短いこのリンク名を渡すことができます。

Oracle Solaris DHCP クライアント

「クライアント」という用語は、ネットワーク上でクライアントとしての役割を実行している物理的なマシンについて言及するために使用される場合があります。ただし、このマニュアルで説明している DHCP クライアントはソフトウェアエンティティーです。Oracle Solaris DHCP クライアントは、そのネットワーク構成を DHCP サーバーから受け取るように構成されているシステムの Oracle Solaris で動作するデーモン (dhcpagent) です。ほかのベンダーの DHCP クライアントも Oracle Solaris DHCP サーバーのサービスを使用できます。ただし、このマニュアルでは Oracle Solaris DHCP クライアントについてのみ説明します。

Oracle Solaris DHCP クライアントの詳細は、第 16 章DHCP クライアントの構成と管理を参照してください。

第 13 章 DHCP サービスの使用計画 (手順)

DHCP サービスは、既存のネットワークで使用することも、これから構築するネットワークで使用することもできます。ネットワークを設定する必要がある場合には、DHCP サービスを設定する前に第 2 章TCP/IP ネットワークの計画 (手順)を参照してください。既存のネットワークを使用する場合は、そのままこの章をお読みください。

この章では、ネットワークに DHCP サービスを設定する前に行うべき作業について説明します。この章の説明は、DHCP マネージャを使用することを前提にしていますが、DHCP サービスの設定はコマンド行ユーティリティー dhcpconfig を使って行うこともできます。

この章では、次の内容について説明します。

DHCP サービスを使用するためのネットワークの準備 (作業マップ)

DHCP の使用に先立ってネットワークを設定する際には、1 つまたは複数のサーバーを構成する際の判断に役立つ情報を収集する必要があります。次の表の作業マップを使用して、DHCP を使用するためにネットワークを準備する作業を特定します。この表では、必要な作業、各作業で実行する内容の説明、および、個別の作業の実行手順を詳しく説明した節を一覧にして示しています。

作業 

説明 

説明 

ネットワークトポロジをマッピングします。 

ネットワークでどのようなサービスが利用できるのかを判別し、その場所を突き止めます。 

「ネットワークトポロジのマッピング」

必要な DHCP サーバーの数を決めます。 

予想される DHCP クライアント数を元にして必要な DHCP サーバーの数を決めます。 

「DHCP サーバー数の決定」

システムファイルと netmasks テーブルを更新します。

ネットワークトポロジを正確に反映します。 

「システムファイルとネットマスクテーブルの更新」

ネットワークトポロジのマッピング

ネットワークの物理的な構造を示すマップをまだ作成していない場合は、それを作成します。このマップには、ルーターやクライアントの場所と、ネットワークサービスを提供するサーバーの場所を明示してください。ネットワークトポロジを示すこのマップは、どのサーバーから DHCP サービスを提供するかや、どのような構成情報をクライアントに提供するかを決める上で役立ちます。

ネットワークの計画については、第 2 章TCP/IP ネットワークの計画 (手順)を参照してください。

DHCP 構成プロセスは、サーバーのシステムファイルとネットワークファイルから、いくつかのネットワーク情報を検索できます。これらのファイルについては、 「システムファイルとネットマスクテーブルの更新」を参照してください。ただし、クライアントにほかのサービス情報を提供したい場合には、サーバーのマクロに入力する必要があります。ネットワークトポロジを点検する際には、クライアントが認識する必要があるサーバーの IP アドレスを控えておいてください。たとえば、次のサーバーがネットワークでサービスを提供している場合があります。しかし、DHCP 構成では、これらのサーバーは検出されません。

避けなければならないネットワークトポロジ

IP ネットワーク環境によっては、いくつかのローカルエリアネットワーク (LAN) が同じネットワークハードウェアメディアを共有していることがあります。このようなネットワークでは、複数のネットワークハードウェアインタフェースが使用されていたり、複数の論理インタフェースが使用されていたりします。このような共有メディアネットワークでは、DHCP はうまく動作しません。同じ物理ネットワークで複数の LAN が動作していると、DHCP クライアントの要求はすべてのネットワークハードウェアインタフェースに送信されます。そのため、クライアントは、すべての IP ネットワークに同時に接続されているものとみなされます。

DHCP は、適切な IP アドレスをクライアントに割り当てられるように、クライアントのネットワークアドレスを特定できる必要があります。同じハードウェアメディアに複数のネットワークが存在していると、サーバーは、クライアントのネットワークを特定できないため、IP アドレスを割り当てることができません。

DHCP は、複数のネットワークの 1 つでしか実行できません。1 つのネットワークがユーザーの DHCP ニーズと合わない場合は、すべてのネットワークを再構成する必要があります。次のヒントを参考にしてください。

DHCP サーバー数の決定

DHCP クライアントをサポートするために必要なサーバーの数は、データストアに何を使用するかによって異なります。次の表は、1 つの DHCP サーバーで DHCP と BOOTP クライアントをいくつまでサポートできるかをデータストア別に示したものです。

表 13–1 DHCP サーバーによってサポートされると見込まれる最大のクライアント数

データストア 

サポートされる最大のクライアント数 

テキストファイル 

10,000 

NIS+ 

40,000 

バイナリファイル 

100,000 

この最大数は一般的な指針であり、絶対的な数ではありません。DHCP サーバーのクライアント容量は、サーバーが 1 秒間にいくつのトランザクションを処理する必要があるかに大きく依存します。一方、トランザクション頻度は、リース期間や使用パターンで大きく変わります。たとえば、リースが 12 時間に設定され、ほとんどのユーザーが夜にシステムを停止するとします。多くのユーザーが朝の同じ時間にシステムを開始すると、多数のクライアントがリースを同時に要求するので、サーバーは、トランザクションのピークを処理できなければなりません。したがって、このような環境では、DHCP サーバーがサポートできるクライアントの数は本来より少なくなります。リース期間がより長い環境や、ケーブルモデムなど常時接続されているデバイスからなる環境では、サポートされるクライアントの数は多くなります。

データストアのタイプによる比較については、「DHCP データストアの選択」を参照してください。

システムファイルとネットマスクテーブルの更新

DHCP を構成する間に、DHCP ツールは、サーバー上のさまざまなシステムファイルを走査し、サーバーの構成に使用できる情報を収集します。

DHCP マネージャや dhcpconfig を使ってサーバーの構成を行う前に、システムファイルの内容が最新の状態になっていることを確認してください。サーバーの構成を行なったあとにエラーに気が付いた場合は、DHCP マネージャまたは dhtadm を使って、サーバー上のマクロを修正する必要があります。

次の表は、DHCP サーバーの構成中に収集されるいくつかの情報と、情報の提供元を示します。サーバーで DHCP を構成する前に、これらの情報が適切に設定されていることを確認してください。サーバーの構成後にシステムファイルを変更する場合は、この変更を反映するためにサービスを再構成する必要があります。

表 13–2 DHCP 構成に使用される情報

情報 

送信元 

Comments 

時間帯 

システムの日時、時間帯の設定値 

日時と時間帯は Oracle Solaris のインストール時に初期設定されます。日付を変更する場合は、date コマンドを使用します。時間帯を変更する場合は、/etc/default/init ファイルを編集して TZ 環境変数を設定します。詳細は、TIMEZONE(4) のマニュアルページを参照してください。

DNS パラメータ 

/etc/resolv.conf

DHCP サーバーは、/etc/resolv.conf ファイルから DNSドメイン名や DNS サーバーアドレスなどの DNS パラメータを取得します。resolv.conf の詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』resolv.conf(4) のマニュアルページを参照してください。

NIS または NIS+ パラメータ 

システムのドメイン名、nsswitch.conf、NIS、NIS+

DHCP サーバーは、domainname コマンドを使ってサーバーシステムのドメイン名を取得し、nsswitch.conf ファイルを見てドメインベースの情報をどこから検索するかを決めます。サーバーシステムが NIS または NIS+ クライアントの場合、DHCP サーバーは照会を行なって NIS または NIS+ サーバーの IP アドレスを取得します。詳細は、nsswitch.conf(4) のマニュアルページを参照してください。

デフォルトルーター 

システムの経路制御テーブル、管理者による入力 

DHCP サーバーはネットワーク経路制御テーブルを検索し、ローカルネットワークに接続されているクライアントのデフォルトルーターを見つけます。クライアントが同じネットワーク上にない場合は、DHCP サーバーがこの情報の入力を要求する必要があります。 

サブネットマスク 

ネットワークインタフェース、netmasks テーブル

DHCP サーバーは、自身のネットワークインタフェースを参照して、ローカルクライアント用のネットマスクとブロードキャストアドレスを特定します。この要求がリレーエージェントからすでに転送されてきている場合には、リレーエージェントのネットワークにある netmasks テーブルからサブネットマスクを取得します。

ブロードキャストアドレス 

ネットワークインタフェース、netmasks テーブル

ローカルネットワークの場合には、DHCP サーバーは、ネットワークインタフェースからブロードキャストアドレスを取得します。リモートネットワークでは、サーバーは BOOTP リレーエージェントの IP アドレスとリモートネットワークのネットマスクを使用して、そのネットワーク用のブロードキャストアドレスを計算します。 

DHCP サーバーの構成前に必要な選択 (作業マップ)

この節では、ネットワークに最初の DHCP サーバーを構成する前に決定する必要がある事柄について説明します。次の表では、ネットワークを構成して DHCP を使用するために必要な選択の概要と、各作業の実行手順を説明した節へのリンクを示しています。

作業 

説明 

説明 

DHCP サーバーを選択します。 

DHCP サービスを実行するためのシステム要件をサーバーが満たしているかどうか判断します。 

「DHCP サービスを実行するホストの選択」

データストアを選択します。 

データストアタイプを比較して、サイトに最も適したデータストアを決定します。 

「DHCP データストアの選択」

リースポリシーを設定します。 

サイトに適したリースポリシーを決定するために、IP アドレスのリースについて確認します。 

「リースポリシーの設定」

ルーターのアドレスを指定するか、ルーターを検索するかを選択します。 

DHCP クライアントでルーターを検索するか、特定のルーターを使用するかを決定します。 

「DHCP クライアントのためのルーターの決定」

DHCP サービスを実行するホストの選択

ネットワークトポロジを念頭に置き、次のシステム要件に従って、DHCP サーバーを設定するホストを選択します。

ホストの必要条件は次のとおりです。

DHCP データストアの選択

DHCP データは、テキストファイル、バイナリファイル、または NIS+ ディレクトリサービスに保存できます。次の表に、各データストアの特長と、各データストアを使用すべき環境を示します。

表 13–3 DHCP データストアの比較

データストア 

パフォーマンス 

保守 

共有 

環境 

バイナリファイル 

高性能、大容量 

少ない保守で、データベースサーバーが不要です。内容は、DHCP マネージャ、dhtadmpntadm で表示する必要があります。ファイルの定期的なバックアップが必要です。

データストアを DHCP サーバーの間で共有することはできません。 

多数のネットワークからなり、ネットワークごとに数千のクライアントがいる中規模から大規模の環境。小規模から中規模の ISP に適しています。 

NIS+  

中程度の性能と容量。NIS+ サービスの性能と容量に依存する 

DHCP サーバーシステムが NIS+ クライアントとして構成されていなければなりません。NIS+ サービスの保守が必要です。内容は、DHCP マネージャ、dhtadmpntadm で表示する必要があります。nisbackup による定期的なバックアップが必要です。

DHCP データは NIS+ に分散されます。複数のサーバーから同じコンテナにアクセスできます。 

ネットワーク当たり 5000 クライアントまでの小規模から中規模の環境。 

テキストファイル 

中程度の性能、少ない容量 

少ない保守で、データベースサーバーが不要です。ASCII ファイルであるため、DHCP マネージャ、dhtadm または pntadm を使用しなくても見ることができます。ファイルの定期的なバックアップが必要です。

データストアを DHCP サーバーの間で共有できます。ただし、DHCP データが、NFS マウントポイントを通してエクスポートされる 1 つのファイルシステムに格納されていなければなりません。 

ネットワーク当たり数百から 1,000 クライアントで、合計が 10,000 クライアント未満の小規模な環境。 

従来の NIS はデータストアオプションとしては推奨されません。NIS が高速な増分更新をサポートしていないためです。ネットワークで NIS が使用されている場合は、データストアとしてテキストファイルまたはバイナリファイルを使用することをお勧めします。

リースポリシーの設定

リース」とは、DHCP サーバーが特定の IP アドレスの使用を DHCP クライアントに許可する期間のことです。管理者は、サーバーの初期構成時に、サイト全体に適用するリースポリシーを指定する必要があります。「リースポリシー」には、リース期間や、クライアントがこのリースを更新できるかどうかを指定します。サーバーは提供された情報を使用して、構成時に作成するデフォルトマクロ内のオプションの値を設定します。管理者は、作成する構成マクロでオプションを使用することによって、特定のクライアントや特定のクライアントタイプごとに、異なるリースポリシーを設定することもできます。

リース期間」は、リースが有効な時間数、日数、または週数として指定されます。クライアントに IP アドレスが割り当てられると (あるいは、クライアントが IP アドレスのリースを再度ネゴシエーションすると)、リースの満了日時が計算されます。その際には、クライアントの DHCP 肯定応答のタイムスタンプにリース期間の時間数が加算されます。たとえば、DHCP 肯定応答のタイムスタンプが 2005 年 9 月16 日 9:15 AM で、リース期間が 24 時間だとすると、リース満了時間は 2005 年 9 月 17 日 9:15 AM になります。リース満了日時はクライアントの DHCP ネットワークレコード中に保存され、DHCP マネージャや pntadm ユーティリティーで表示されます。

リース期間には、期限切れのアドレスを速やかに再利用できるように比較的小さな値を設定します。ただし、リース期間の値は、DHCP サービスの中断時間よりも長い期間にする必要があります。クライアントは、DHCP サービスが動作するシステムが修理されている間も動作できる必要があります。一般的な指針としては、サーバーの予想停止時間の 2 倍を指定します。たとえば、故障部品を検出、交換し、システムをリブートするのに 4 時間かかるとすれば、8 時間をリース期間に指定します。

リースネゴシエーションオプションは、リースが満了する前に、クライアントが提供されたリースについてサーバーとネゴシエーションできるかどうかを決めるものです。リースのネゴシエーションが可能な場合、クライアントはリースの残り時間を常に監視します。そして、リース期間の半分が経過すると、リースを元のリース期間の値に戻す要求を DHCP サーバーに送ります。システムの数が IP アドレスの数より多い環境では、リースのネゴシエーションを無効にする必要があります。それによって、IP アドレスの使用時間に限度が与えられます。しかし、IP アドレスの数が十分にある場合は、リースネゴシエーションを有効にして、リース期間の満了時に、ネットワークインタフェースの停止をクライアントに強制することを避ける必要があります。さらに、クライアントに新しいリースを取得させると、NFS や telnet セッションなど、クライアントの TCP 接続が中断されるおそれがあります。リースネゴシエーションは、サーバーの構成時にサイト全体に対して有効にできます。あるいは、構成マクロの LeaseNeg オプションを使用すれば、特定のクライアントやクライアントタイプだけにリースネゴシエーションを有効にできます。


注 –

ネットワークでサービスを提供するシステムはその IP アドレスを保持する必要があります。このようなシステムは、短期的なリースに依存すべきではありません。このようなシステムで DHCP を使用する場合は、常時リースにより IP アドレスを割り当てるのではなく、予約済みの IP アドレスをシステムに手動で割り当てるべきです。これによって、このシステムの IP アドレスが使用されなくなったときには、それを検出できます。


DHCP クライアントのためのルーターの決定

ホストシステムは、ローカルネットワークの外側にあるネットワークと通信する場合、ルーターを使用します。ホストは、これらのルーターの IP アドレスを知っていなければなりません。

DHCP サーバーを構成する際には、次のどちらかの方法で DHCP クライアントにルーターアドレスを提供する必要があります。 1 つの方法は、ルーターの IP アドレスを指定する方法です。これより望ましい方法としては、クライアントがルーター発見プロトコルを使ってルーターを検索する方法があります。

そのネットワークのクライアントがルーター発見機能を実行できる場合には、ルーターが 1 つしかなくてもルーター発見プロトコルを使用すべきです。ルーター発見プロトコルを使用すると、クライアントはネットワーク内でのルーター変更に容易に対応できます。たとえば、ルーターに故障が発生したために、新しいアドレスを持つルーターに置き換えられる場合でも、クライアントは、新しいアドレスを自動的に検出できます。新しいネットワーク構成を受信して新しいルーターアドレスを取得する必要はありません。

IP アドレスの管理に必要な選択 (作業マップ)

DHCP サービスの設定の一環として、サーバーが管理する IP アドレスに関する要素を決定します。ネットワークに複数の DHCP サーバーが必要な場合には、いくつかの IP アドレスに対する役割をサーバーごとに割り当てることができます。その際には、アドレス管理をどのように分担させるかを決定する必要があります。次の表の作業マップでは、ネットワークで DHCP を使用するときに IP アドレスを管理するための作業について説明しています。表には、各作業の実行方法を詳しく説明した節へのリンクも含まれています。

作業 

説明 

参照先 

サーバーが管理する IP アドレスを指定します。 

DHCP サーバーが管理する IP アドレスの数と範囲を決定します。 

「IP アドレスの数と範囲」

サーバーがクライアントのホスト名を自動的に生成するかどうかを決定します。 

ホスト名を生成すべきかどうかを決定できるように、クライアントホスト名が生成される方法を確認します。 

「クライアントホスト名の生成」

クライアントに割り当てる構成マクロを決定します。 

クライアントに適したマクロを選択できるように、クライアント構成マクロについて確認します。 

「デフォルトのクライアント設定マクロ」

使用するリースタイプを決定します。 

DHCP クライアントに最適なリースタイプを決定するために、リースタイプについて確認します。 

「動的リースタイプと常時リースタイプ」

IP アドレスの数と範囲

DHCP マネージャを使用すると、サーバーの初期構成時に、総アドレス数とブロックの開始アドレスを指定することにより、そのブロック分の IP アドレス、またはその範囲内の IP アドレスを DHCP の管理下に追加できます。DHCP マネージャは、この情報から連続するアドレスのリストを作成し、追加します。アドレスが連続していない複数のブロックがある場合は、初期構成のあとに DHCP マネージャのアドレスウィザードを再起動してほかのアドレスを追加できます。

IP アドレスの構成を行う前に、アドレスを追加する最初のブロックにあるアドレスの数と、その範囲内の開始のアドレスの IP アドレスを控えておいてください。

クライアントホスト名の生成

DHCP 本来の動的な特性により、IP アドレスはそれを使用するシステムのホスト名に恒久的に関連付けられる訳ではありません。DHCP 管理ツールでは、各 IP アドレスに対応するクライアント名を生成できます。クライアント名には、接頭辞 (ルート名) とダッシュ、それにサーバーから割り当てられる数字が使用されます。たとえば、ルート名が charlie なら、クライアント名は charlie-1charlie-2charlie-3 のようになります。

デフォルトでは、生成されたクライアント名は、それを管理する DHCP サーバーの名前で始まります。この方法は、複数の DHCP サーバーが存在する環境で便利です。特定の DHCP サーバーがどのクライアントを管理しているのかを DHCP ネットワークテーブルから簡単に知ることができるからです。ただし、ルート名は任意の名前に変更できます。

IP アドレスを構成する前に、DHCP 管理ツールを使ってクライアント名を生成するかどうか、生成する場合は、そのクライアント名に使用するルート名を決めてください。

生成されるクライアント名は、DHCP の構成時にホスト名を登録するように指定すれば、/etc/inet/hosts、DNS、または NIS+ 内の IP アドレスに対応付けることができます。詳細は、「クライアントホスト名の登録」を参照してください。

デフォルトのクライアント設定マクロ

Oracle Solaris DHCP で、「マクロ」は複数のネットワーク構成オプションとその設定値の集まりです。DHCP サーバーは、マクロを使って、どのようなネットワーク構成情報を DHCP クライアントに送信するかを決めます。

管理ツールは、DHCP サーバーの構成時に、システムファイルから情報を収集するだけでなく、プロンプトやコマンド行オプションを通して管理者から直接情報を収集します。この情報から次のマクロを作成します。

クライアントは、IP アドレスにマップされているマクロのオプションより先に、ネットワークアドレスマクロに含まれているオプションを受け取ります。そのため、サーバーマクロのオプションとネットワークアドレスマクロのオプションが矛盾する場合は、サーバーマクロのオプションが優先します。マクロが処理される順序については、「マクロ処理の順序」を参照してください。

動的リースタイプと常時リースタイプ

構成しようとするアドレスにリースポリシーが適用されるかどうかは、「リースタイプ」で決まります。DHCP マネージャでは、最初のサーバーの構成時に、追加するアドレスに動的リースを使用するか、常時リースを使用するかを選択できます。dhcpconfig コマンドによる DHCP サーバーの構成では、動的リースが使用されます。

IP アドレスのリースが「動的リース」なら、DHCP サーバーはこのアドレスを管理できます。DHCP サーバーは、IP アドレスをクライアントに割り当て、リース期間を延長し、さらに、そのアドレスが使用されなくなったら、それを検出し、再利用できます。IP アドレスのリースが「常時リース」の場合、DHCP サーバーはアドレスを割り当てることしかできません。その場合、クライアントは、そのアドレスを、明示的に解放するまで所有します。アドレスが解放されると、サーバーはアドレスをほかのクライアントに割り当てることができます。そのアドレスは、常時リースとして構成されている限り、リースポリシーの対象となることはありません。

IP アドレスの範囲を構成した場合、選択したリースタイプはその範囲内のすべてのアドレスに適用されます。DHCP の利点を最大限に活かすためには、大部分のアドレスに対して動的リースを使用する必要があります。必要なら、あとで個々のアドレスを変更して常時リースを指定できます。ただし、常時リースの数は最小限に抑えるべきです。

予約済み IP アドレスとリースタイプ

IP アドレスは、特定のクライアントに手動で割り当てることにより予約できます。予約済みアドレスは、常時リースとも動的リースとも関連付けることもできます。予約済みアドレスに常時リースが割り当てられている場合には、次の条件が適用されます。

予約済みアドレスに動的リースが割り当てられている場合には、このアドレスに結合されているクライアントだけにこのアドレスを割り当てることができます。ただし、クライアントは、アドレスが予約されていないかのように、リース期間を管理し、リースの延長をネゴシエートする必要があります。この方法を使用すると、ネットワークテーブルを参照するだけで、クライアントがそのアドレスを使用しているかどうかを監視できます。

初期構成時にすべての IP アドレスに対して予約済みアドレスを生成することはできません。予約済みアドレスは、個々のアドレスに対しての使用は制限すべきものだからです。

複数の DHCP サーバーを使用するための計画

複数の DHCP サーバーを構成して IP アドレスを管理する場合には、次のガイドラインに従ってください。

リモートネットワークの DHCP 構成の計画

DHCP の初期構成が完了すると、リモートネットワーク内の IP アドレスを DHCP の管理下に置くことができます。ただし、システムファイルはサーバー内にないため、DHCP マネージャや dhcpconfig はデフォルト値を提供するための情報を検索できません。したがって、管理者が情報提供する必要があります。リモートネットワークの構成を行う前に、次の情報を用意してください。

DHCP ネットワークの追加手順については、「DHCP ネットワークの追加」を参照してください。

DHCP を設定するためのツールの選択

情報の収集や DHCP サービスの計画が終わったら、DHCP サーバーを構成します。サーバーの構成には、DHCP マネージャかコマンド行ユーティリティー dhcpconfig を使用します。DHCP マネージャでオプションを選択し、データを指定すると、そのデータから DHCP サーバーが使用する dhcptab テーブルとネットワークテーブルが作成されます。dhcpconfig ユーティリティーでは、コマンド行オプションを使ってデータを入力する必要があります。

DHCP マネージャの機能

Java™ 技術ベースの GUI ツールである DHCP マネージャには、DHCP 構成ウィザードがあります。DHCP サーバーとして構成されていないシステムで DHCP マネージャを初めて実行すると、DHCP 構成ウィザードが自動的に起動されます。DHCP 構成ウィザードの一連のダイアログボックスでは、サーバーの構成に不可欠な次の情報を入力する必要があります。 データストア形式、リースポリシー、DNS/NIS/NIS+ サーバーとドメイン、ルーターのアドレスなど。ただし、この情報の一部はウィザードがシステムファイルから入手します。したがって、情報が正しいかどうかを確認したり、正しくない場合は訂正します。

いくつかのダイアログボックスを表示し、情報が正しいことを確認すると、DHCP サーバーデーモンがサーバーシステムで起動されます。そして、追加アドレスウィザードを起動し、ネットワーク用の IP アドレスを構成するように求められます。最初は、サーバーのネットワークだけが DHCP 用に構成され、その他のサーバーオプションにはデフォルト値が与えられます。初期構成が完了したあとで DHCP マネージャを再起動すると、ネットワークを追加したり、ほかのサーバーオプションを変更したりできます。

DHCP 構成ウィザードについては、「DHCP サーバーの構成と構成解除 (DHCP マネージャ)」を参照してください。DHCP マネージャの詳細については、「DHCP マネージャについて」を参照してください。

dhcpconfig 機能

dhcpconfig ユーティリティーは、DHCP サーバーの構成や構成解除だけでなく、新しいデータストアへの変換やほかの DHCP サーバーとのデータのインポート/エクスポートを行うことができます。dhcpconfig ユーティリティーを使って DHCP サーバーを構成しようとすると、このユーティリティーは、システムファイルから情報を取得します (「システムファイルとネットマスクテーブルの更新」を参照)。DHCP マネージャの場合とは異なり、システムファイルから取得した情報の表示や確認を行うことはできません。したがって、dhcpconfig を使用する場合は、システムファイルを事前に更新しておくことが重要になります。コマンド行オプションを使用すると、dhcpconfig がデフォルトでシステムファイルから得る値を無効にできます。dhcpconfig ユーティリティーは、スクリプト中で使用できます。詳細は、dhcpconfig(1M) のマニュアルページを参照してください。

DHCP マネージャと dhcpconfig の比較

下の表に、2 つのサーバー構成ツールの相違点を示します。

表 13–4 DHCP マネージャと dhcpconfig コマンドの比較

機能 

DHCP マネージャ 

dhcpconfig (オプションの指定)

システムから収集されたネットワーク情報。 

システムファイルから収集された情報を表示し、必要な場合は変更できます。 

コマンド行オプションを使ってネットワーク情報を指定できます。 

構成処理の速さ。 

必須ではないサーバーオプションのプロンプトを省略することによって、構成処理を高速化できます。代わりにデフォルト値を使用します。必須ではないオプションは、初期構成後に変更できます。 

構成処理はもっとも速いですが、多くのオプションを使って値を指定しなければならない場合があります。 

DHCP マネージャまたは dhcpconfig ユーティリティーを使ってサーバーを構成する手順については、第 14 章DHCP サービスの構成 (手順)を参照してください。

第 14 章 DHCP サービスの構成 (手順)

ネットワーク上の DHCP サービスを構成する際には、最初の DHCP サーバーを構成し起動します。ほかの DHCP サーバーはあとで追加できます。データストアが共有データをサポートする場合、共有された場所から同じデータにアクセスできます。この章では、DHCP サーバーを構成し、ネットワークと関連する IP アドレスを DHCP の管理下に置く作業について説明します。さらに、DHCP サーバーを構成解除する方法についても説明します。

作業ごとに、同じ作業を DHCP マネージャで処理する手順と、 dhcpconfig ユーティリティーで処理する手順を説明します。この章では、次の内容について説明します。

DHCP サービスの構成作業で問題がある場合は、第 17 章DHCP の障害追跡 (リファレンス)を参照してください。

DHCP サービスの構成が終了したら、DHCP サービスの管理に関する説明が記載されている第 15 章DHCP の管理 (手順)を参照してください。

DHCP サーバーの構成と構成解除 (DHCP マネージャ)

この節では、DHCP マネージャを使用して DHCP サーバーを構成および構成解除する手順について説明します。なお、DHCP マネージャを使用するには、CDE や GNOME などの X Window System が動作している必要があります。

/usr/sadm/admin/bin/dhcpmgr コマンドで DHCP マネージャを実行するためには、スーパーユーザーになる必要があります。このユーティリティーの一般的な説明については、「DHCP マネージャについて」を参照してください。DHCP マネージャを実行する方法についての詳細は、「DHCP サービスを起動および停止する方法 (DHCP マネージャ)」を参照してください。

DHCP として構成されていないサーバーで DHCP マネージャを実行すると、次の画面が表示されます。DHCP サーバーを構成するのか、BOOTP リレーエージェントを構成するのかを指定できます

図 14–1 DHCP マネージャの「サーバー構成の選択 (Choose Server Configuration)」ダイアログボックス

ダイアログボックスには、オプションとして「DHCP サーバーとして構成 (Configure as DHCP Server)」と「BOOTP リレーとして構成 (Configure as BOOTP Relay)」が表示されています。「OK」、「Cancel」および「Help」ボタンを表示します。

DHCP サーバーの構成

DHCP サーバーを構成する場合は、DHCP マネージャによって DHCP 構成ウィザードが起動され、サーバーの構成に必要な情報の入力を求められます。次の図に示すような、ウィザードの初期画面が表示されます。

図 14–2 DHCP 構成ウィザードの初期画面

ダイアログボックスには、記憶領域の選択、前後の矢印、「Cancel」と「Help」ボタンが表示されています。

ウィザードの質問に答えると、DHCP マネージャは、次のテーブルに示されている項目を作成します。

表 14–1 DHCP サーバーの構成時に作成される項目

項目 

説明 

内容 

サーバー構成ファイル。/etc/inet/dhcpsvc.conf

サーバー構成オプションのキーワードおよび値を記録します。 

データストア形式とその場所、システムのブート時に DHCP デーモンを起動するために in.dhcpd に指定するオプション。このファイルを手動で編集してはいけません。DHCP 構成情報を変更するには、dhcpmgr または dhcpconfig を使用する必要があります。

dhcptab テーブル

DHCP マネージャは、dhcptab テーブルが存在しない場合はこれを生成します。

値が割り当てられたマクロとオプション。 

ロケールマクロ (任意)。名前は Locale

ユニバーサル時間 (UTC) とローカルな時間帯との時間差 (秒単位) が含まれます。 

秒数が割り当てられた UTCoffst オプション。

サーバーマクロ。名前はサーバーのノード名に一致する

DHCP サーバーを構成した管理者の入力によって決定される値を持つオプションが含まれます。オプションは、サーバーが所有するアドレスを使用するすべてのクライアントに適用されます。 

Locale マクロと次のオプション。

  • Timeserv。サーバーの一次 IP アドレスを指し示すように設定されています。

  • LeaseTim。リースの時間 (秒数) が設定されます。

  • LeaseNeg (ネゴシエーション可能なリースを選択した場合)。

  • DNSdmain および DNSserv (DNS が構成されている場合)。

  • Hostname。このオプションに値を設定してはいけません。このオプションが存在すると、ホスト名はネームサービスから取得される必要があることを意味します。

ネットワークアドレスマクロ。名前はクライアントネットワークのネットワークアドレスと同じ

DHCP サーバーを構成した管理者の入力によって決定される値を持つオプションが含まれます。オプションは、マクロ名で指定されたネットワーク上に存在するすべてのクライアントに適用されます。 

次のオプション。  

  • Subnet。ローカルサブネットのサブネットマスクが設定されます

  • Router。ルーターの IP アドレスが設定されます。RDiscvyF。クライアントはルーターディスカバリを使用します

  • Broadcst。ブロードキャスト IP アドレスが設定されます。このオプションは、ネットワークがポイントツーポイントネットワークではない場合だけ存在します。

  • MTU。最大転送ユニット

  • NISdmain および NISservs (NIS が構成されている場合)

  • NIS+dom および NIS+serv (NIS+ が設定されている場合)

ネットワークのネットワークテーブル

ネットワークの IP アドレスが作成されるまで、空のテーブルとして作成されます。 

IP アドレスを追加するまで、内容はありません。 

ProcedureDHCP サーバーを構成する方法 (DHCP マネージャ)

始める前に

DHCP サーバーを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。特に、次の作業を行う際には、「DHCP サーバーの構成前に必要な選択 (作業マップ)」 のガイドラインが役立ちます。

  1. サーバーシステム上でスーパーユーザーになります。

  2. DHCP マネージャを起動します。


    #/usr/sadm/admin/bin/dhcpmgr &
    
  3. 「DHCP サーバーとして構成 (Configure as DHCP Server)」オプションを選択します。

    サーバーの構成を支援する「DHCP 構成ウィザード (DHCP Configuration Wizard)」が表示されます。

  4. 計画作成段階で決めた事項に基づいて、オプションを選択するか、要求された情報を入力します。

    わからないことがある場合は、ウィザードウィンドウ内の「ヘルプ (Help)」をクリックして Web ブラウザを開き、DHCP 構成ウィザードのヘルプを表示します。

  5. 要求された情報の指定が終了したら、「完了 (Finish)」をクリックしてサーバー構成を完了します。

  6. アドレス起動ウィザードのプロンプトで「はい (Yes)」をクリックし、サーバーの IP アドレスを構成します。

    「ネットワークへアドレスの追加 (Add Addresses to Network)」ウィザードでは、どのアドレスを DHCP の制御下に置くかを指定できます。

  7. 計画作成段階で決めた事柄に従って質問に答えます。

    詳細は、「IP アドレスの管理に必要な選択 (作業マップ)」を参照してください。わからないことがある場合は、ウィザードウィンドウ内の「ヘルプ (Help)」をクリックして Web ブラウザを開き、「ネットワークへアドレスの追加 (Add Addresses to Network )」ウィザードのヘルプを表示します。

  8. 選択した項目を確認し、「完了 (Finish)」をクリックしてネットワークテーブルに IP アドレスを追加します。

    指定した範囲内にある各アドレスのレコードで、ネットワークテーブルが更新されます。

参照

「ネットワークウィザード (Network Wizard)」を使えば、ほかのネットワークを DHCP サーバーに追加できます (「DHCP ネットワークの追加」を参照)。

BOOTP リレーエージェントの構成

BOOTP リレーエージェントを構成する場合は、DHCP マネージャが次の動作を行います。

次に、BOOTP リレーエージェントの構成を選択した場合に表示される画面を示します。

図 14–3 DHCP マネージャの「BOOTP リレーの構成 (Configure BOOTP Relay)」

ダイアログボックスには、DHCP サーバーというラベルのついたフィールドと「追加 (Add)」ボタンが表示されています。さらに、空のリストと、上下矢印、「削除 (Delete)」ボタンが表示されています。

ProcedureBOOTP リレーエージェントを構成する方法 (DHCP マネージャ)

始める前に

BOOTP リレーエージェントを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。とりわけ、使用するシステムの選択には、「DHCP サービスを実行するホストの選択」が役立ちます。

  1. サーバーシステム上でスーパーユーザーになります。

  2. DHCP マネージャを起動します。


    #/usr/sadm/admin/bin/dhcpmgr &
    

    システムが DHCP サーバーか BOOTP リレーエージェントとして構成されていないと、「DHCP 構成ウィザード (DHCP Configuration Wizard)」が起動されます。システムがすでに DHCP サーバーとして構成されている場合は、まずサーバーを構成解除する必要があります。詳細は、「DHCP サーバーと BOOTP リレーエージェントの構成解除」を参照してください。

  3. 「BOOTP リレーとして構成 (Configure as BOOTP Relay)」を選択します。

    「BOOTP リレーの構成 (Configure BOOTP Relay)」ダイアログボックスが表示されます。

  4. 1 つまたは複数の DHCP サーバーの IP アドレスかホスト名を入力し、「追加 (Add)」をクリックします。

    指定する DHCP サーバーは、この BOOTP リレーエージェントによって受信される BOOTP 要求や DHCP 要求を処理できるように構成されていなければなりません。

  5. 「了解 (OK)」をクリックして、ダイアログボックスを終了します。

    DHCP マネージャ はアプリケーションを終了するための「ファイル (File)」メニューと、サーバーを管理するための「サービス (Service)」メニューだけを表示します。無効になっているメニューオプションは DHCP サーバーだけで使用されます。

DHCP サーバーと BOOTP リレーエージェントの構成解除

DHCP サーバーまたは BOOTP リレーエージェントを構成解除するとき、DHCP マネージャは次の動作を行います。

次に、DHCP サーバーの構成解除を選択した場合の画面を示します。

図 14–4 DHCP マネージャの「サービスの解除 (Unconfigure Service)」ダイアログボックス

ダイアログボックスには、DHCP データの削除に関する選択肢が表示されています。「OK」、「Cancel」および「Help」ボタンを表示します。

構成解除したサーバー上の DHCP データ

DHCP サーバーを構成解除するときには、dhcptab テーブルと DHCP ネットワークテーブルをどのように処理するかを決定する必要があります。そのデータがサーバー間で共有されている場合は、dhcptab とDHCP ネットワークテーブルを削除しないでください。これらのテーブルを削除すると、DHCP がネットワーク全体で使用できなくなります。データの共有は、NIS+ またはエクスポートしたローカルファイルシステムを使用して行うことができます。/etc/inet/dhcpsvc.conf ファイルには、使用されるデータストアとその場所が記録されています。

データを削除するためのいずれのオプションも選択しなければ、データをそのままの形で残し、DHCP サーバーを構成解除できます。サーバーを構成解除し、データをそのままの形で残す場合は、DHCP サーバーを無効にします。

IP アドレスの所有権を別の DHCP サーバーに移したい場合は、DHCP データをその DHCP サーバーに移動する必要があります。その場合には、現在のサーバーを構成解除する前にデータを移動してください。詳細は、「DHCP サーバー間での構成データの移動 (作業マップ)」を参照してください。

データを削除したい場合は、dhcptab およびネットワークテーブルを削除するためのオプションを選択します。DHCP アドレス用のクライアント名がすでに作成されている場合には、このようなエントリを hosts テーブルから削除することもできます。クライアント名のエントリは、DNS、/etc/inet/hosts 、または NIS+ から削除できます。

BOOTP リレーエージェントを構成解除する前に、DHCP サーバーへ要求を転送するために、このエージェントを使用しているクライアントが存在しないことを確認してください。

ProcedureDHCP サーバーまたは BOOTP リレーエージェントを構成解除する方法 (DHCP マネージャ)

  1. スーパーユーザーになります。

  2. DHCP マネージャを起動します。


    #/usr/sadm/admin/bin/dhcpmgr &
    
  3. 「サービス (Service)」メニューから、「構成解除 (Unconfigure)」を選択します。

    「サービスの解除 (Unconfigure Service)」ダイアログボックスが表示されます。サーバーが BOOTP リレーエージェントの場合、このダイアログボックスでリレーエージェントを構成解除することを確認できます。サーバーが DHCP サーバーの場合、DHCP データをどうするかを決定し、このダイアログボックスで選択する必要があります。図 14–4 を参照してください。

  4. (省略可能) データを削除するためのオプションを選択します。

    サーバーが共有データ (NIS+ 経由で共有されるデータ、または NFS 経由で共有されるファイル) を使用する場合、データを削除するオプションは選択しないでください。サーバーが共有データを使用しない場合、データを削除するオプションの 1 つまたは両方を選択します。

    データの削除については、「構成解除したサーバー上の DHCP データ」を参照してください。

  5. 「了解 (OK)」をクリックしてサーバーを構成解除します。

    「サービスの解除 (Unconfigure Service)」ダイアログボックスと DHCP マネージャが終了します。

DHCP サーバーの構成と構成解除 (dhcpconfig コマンド)

この節では、dhcpconfig とコマンド行オプションを使用して、DHCP サーバーまたは BOOTP リレーエージェントを構成または構成解除する手順について説明します。

ProcedureDHCP サーバーを構成する方法 (dhcpconfig -D)

始める前に

DHCP サーバーを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。特に、次の作業を行う際には、「DHCP サーバーの構成前に必要な選択 (作業マップ)」 のガイドラインが役立ちます。

  1. DHCP サーバーの構成を行うシステムにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. 次の書式のコマンドを入力して DHCP サーバーを構成します。


    #/usr/sbin/dhcpconfig -D -r datastore -p location
    

    datastore は次のどれかです。 SUNWfiles SUNWbinfiles、または SUNWnisplus

    location には、(データストアによって異なる) DHCP データを保存したい場所を指定します。SUNWfiles および SUNWbinfiles の場合、この場所は絶対パス名で指定する必要があります。SUNWnisplus の場合、この場所は完全指定の NIS+ ディレクトリで指定する必要があります。

    たとえば、次のようなコマンドを入力します。


    dhcpconfig -D -r SUNWbinfiles -p /var/dhcp

    dhcpconfig ユーティリティーは、ホストのシステムファイルとネットワークファイルを使って、DHCP サーバーの構成に使用する値を決定します。デフォルトの値を変更できる dhcpconfig コマンドのその他のオプションについては、dhcpconfig(1M) のマニュアルページを参照してください。

  4. 1 つまたは複数のネットワークを DHCP サービスに追加します。

    ネットワークを追加する手順については、「DHCP ネットワークを追加する方法 (dhcpconfig)」を参照してください。

ProcedureBOOTP リレーエージェントを構成する方法 (dhcpconfig -R )

始める前に

「DHCP サービスを実行するホストの選択」に記載されている要件に従って、BOOTP リレーエージェントとして使用するシステムを選択します。

  1. BOOTP リレーエージェントとして構成したいサーバーにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. 次の書式のコマンドを入力して BOOTP リレーエージェントを構成します。


    # /usr/sbin/dhcpconfig -R server-addresses
    

    要求を転送する DHCP サーバーの 1 つまたは複数の IP アドレスを指定します。複数のアドレスを指定する場合には、アドレス間をコンマで区切ります。

    たとえば、次のようなコマンドを入力します。


    /usr/sbin/dhcpconfig -R 192.168.1.18,192.168.42.132

ProcedureDHCP サーバーまたは BOOTP リレーエージェントを構成解除する方法 (dhcpconfig -U)

  1. 構成解除したい DHCP サーバーまたは BOOTP リレーエージェントシステムにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. DHCP サーバーまたは BOOTP リレーエージェントを構成解除します。


    # /usr/sbin/dhcpconfig -U
    

    サーバーが共有データを使用していない場合は、-x オプションを使って、構成解除と同時に dhcptab テーブルとネットワークテーブルを削除できます。サーバーが共有データを使用する場合、-x オプションは使用しないでください。-h オプションを使用すると、ホスト名をホストテーブルから削除できます。dhcpconfig のオプションについては、dhcpconfig(1M) のマニュアルページを参照してください。

    データの削除については、「構成解除したサーバー上の DHCP データ」を参照してください。

第 15 章 DHCP の管理 (手順)

この章では、Oracle Solaris DHCP サービスを管理するときに便利な作業について説明します。この章では、サーバー、BOOTP リレーエージェント、およびクライアントに関する作業を説明します。各作業ごとに、DHCP マネージャを使用する手順と DHCP コマンド行ユーティリティーを使用する手順を説明します。DHCP コマンド行ユーティリティーについての詳細は、マニュアルページを参照してください。

この章に進む前に、DHCP サービスとネットワークの初期構成を済ませておく必要があります。DHCP の構成については、第 14 章DHCP サービスの構成 (手順)を参照してください。

この章では、次の内容について説明します。

DHCP マネージャについて

DHCP マネージャは、DHCP サービスで管理作業を実行するために使用するグラフィカルユーザーインタフェース (GUI) ツールです。

DHCP マネージャウィンドウ

DHCP マネージャウィンドウの外観は、DHCP マネージャが動作するシステムで DHCP サーバーがどのように構成されているかによって異なります。

システムが DHCP サーバーとして構成されている場合、DHCP マネージャはタブ形式のウィンドウを使用します。作業に応じて適切なタブを選択してください。DHCP マネージャには次のタブがあります。

DHCP サーバーで DHCP マネージャを起動すると、次のような DHCP マネージャのウィンドウが表示されます。

図 15–1 DHCP サーバーシステム上の DHCP マネージャ

「アドレス (Addresses)」タブを表示しています。タブ内には、ネットワーク番号、クライアント名、およびリース情報が表示されています。

サーバーが BOOTP リレーエージェントとして構成されている場合、DHCP マネージャウィンドウにはこれらのタブは表示されません。BOOTP リレーエージェントでは、これらのタブの情報は必要ないからです。BOOTP リレーエージェントの属性を変更し、DHCP マネージャを使用して DHCP デーモンを停止または起動することだけが可能です。次の図は、BOOTP リレーエージェントとして構成されたシステム上で起動した場合の DHCP マネージャウィンドウです。

図 15–2 BOOTP リレーエージェント上の DHCP マネージャ

ウィンドウ内の「BOOTP リレー」タブを表示しています。このサービスメニューでリレーサービスを管理します。

DHCP マネージャのメニュー

DHCP マネージャのメニューには、次の項目が含まれます。

DHCP マネージャが BOOTP リレーエージェントで実行されている場合、「編集 (Edit)」メニューと「表示 (View)」メニューは使用できません。

すべての DHCP 管理機能は、「編集 (Edit)」メニューと「サービス (Service)」メニューで実行されます。

「編集 (Edit)」メニューにあるコマンドを使用して、選択されているタブの項目を作成、削除、変更できます。この項目には、ネットワーク、アドレス、マクロ、オプションがあります。また、「アドレス (Addresses)」タブが選択されている場合、「編集 (Edit)」メニューはウィザードも表示します。このウィザードは、ネットワークと複数の IP アドレスを容易に作成できるダイアログのセットです。

「サービス (Service)」メニューは、DHCP デーモンを管理するためのコマンドを表示します。「サービス (Service)」メニューでは、次のタスクを実行できます。

DHCP マネージャの起動と停止

DHCP マネージャを DHCP サーバーシステムで実行する場合、スーパーユーザーとして実行する必要があります。DHCP マネージャをリモートから実行する必要がある場合には、X Window リモート表示機能を使用して、表示画面を使用しているシステムに送信できます。

ProcedureDHCP マネージャを起動および停止する方法

  1. DHCP サーバーシステムでスーパーユーザーになります。

  2. (省略可能) リモートで DHCP サーバーシステムにログインしている場合、次の手順でローカルのシステムに DHCP マネージャを表示できます。

    1. ローカルシステムで次のように入力します。


      # xhost +server-name
      
    2. リモートの DHCP サーバーシステムで次のように入力します。


      # DISPLAY=local-hostname;export DISPLAY
      
  3. DHCP マネージャを起動します。


    # /usr/sadm/admin/bin/dhcpmgr &
    

    DHCP マネージャウィンドウが開きます。サーバーが DHCP サーバーとして構成されている場合には、「アドレス (Addresses)」タブが表示されます。サーバーが BOOTP リレーエージェントとして構成されている場合には、タブは表示されません。

  4. DHCP マネージャを停止するには、「ファイル (File)」メニューから「終了 (Exit)」を選択します。

    DHCP マネージャウィンドウが閉じます。

DHCP コマンドへのユーザーアクセスの設定

デフォルトでは、dhcpconfigdhtadm、および pntadm コマンドを実行できるのは、root またはスーパーユーザーだけです。これらのコマンドを root ユーザー以外で使用する場合は、これらのコマンドに対して、役割によるアクセス制御 (RBAC) を設定する必要があります。

役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

さらに、次のマニュアルページも役立ちます。rbac(5)exec_attr(4)、および user_attr(4) です。

次の手順では、ユーザーに DHCP 管理プロファイルを割り当て、そのユーザーが DHCP コマンドを実行できるようにする方法を説明します。

ProcedureDHCP コマンドへのユーザーアクセスを与える方法

  1. DHCP サーバーシステム上でスーパーユーザーになります。

  2. /etc/user_attr ファイルを編集してエントリを次の書式で追加します。DHCP サーバーを管理するユーザーまたは役割ごとに 1 つのエントリを追加します。


    username::::type=normal;profiles=DHCP Management

    たとえば、ユーザー ram には、次のエントリを追加します。

    ram::::type=normal;profiles=DHCP Management

DHCP サービスの起動と停止

この節では、DHCP マネージャや dhcpconfig コマンドを使用した DHCP サービスの起動や停止を説明します。DHCP サービスの起動や停止は、サービス管理機能 (SMF) コマンドでもできます。DHCP サービスで SMF コマンドを使用する方法については、「DHCP サービスとサービス管理機能」を参照してください。

DHCP サービスの起動と停止には、DHCP デーモンの動作に影響する可能性がある処理をいくつか実行する必要があります。正しい手順を選択して希望する結果を得るためには、それぞれの処理の意味を理解しておく必要があります。これらの処理の意味は次のとおりです。


注 –

サーバーに複数のネットワークインタフェースがあり、すべてのネットワークでは DHCP サービスを提供したくない場合、「DHCP で監視するネットワークインタフェースの指定」を参照してください。


次に、DHCP サービスを起動および停止、有効および無効にする手順を説明します。

ProcedureDHCP サービスを起動および停止する方法 (DHCP マネージャ)

  1. DHCP サーバーシステム上でスーパーユーザーになります。

  2. DHCP マネージャを起動します。


    # /usr/sadm/admin/bin/dhcpmgr &
    
  3. 次のいずれかの手順に従います。

    • 「サービス (Service)」メニューから「起動 (Start)」を選択して、DHCP サービスを起動します。

    • 「サービス (Service)」メニューから「停止 (Stop)」を選択して、DHCP サービスを停止します。

      DHCP デーモンは、再開されるかシステムが再起動するまで停止します。

    • 「サービス (Service)」メニューから「再開 (Restart)」を選択して、DHCP サービスを停止しすぐに再起動します。

ProcedureDHCP サービスを有効または無効にする方法 (DHCP マネージャ)

  1. DHCP マネージャの中で次の 1 つを選択します。

    • 「サービス (Service)」メニューの「有効 (Enable)」を選択して、システム起動時に DHCP デーモンが自動的に起動するようにします。

      有効を選択すると、DHCP サービスは直ちに起動します。

    • 「サービス (Service)」メニューの「無効 (Disable)」を選択して、システム起動時に DHCP デーモンが自動的に起動しないようにします。

      無効を選択すると、DHCP サービスは直ちに停止します。

ProcedureDHCP サービスを有効または無効にする方法 (dhcpconfig -S)

  1. DHCP サーバーシステムにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. 次のいずれかを選択してください。

    • DHCP サービスを有効にするには、次のコマンドを入力します。


      # /usr/sbin/dhcpconfig -S -e
      
    • DHCP サービスを無効にするには、次のコマンドを入力します。


      # /usr/sbin/dhcpconfig -S -d
      

DHCP サービスとサービス管理機能

サービス管理機能 (SMF) については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。SMF の svcadm コマンドを使用すると、DHCP サーバーを有効にして起動したり、DHCP サーバーを無効にして停止したりできます。ただし、DHCP ツールで設定できる DHCP サービスオプションを SMF コマンドで変更することはできません。つまり、/etc/dhcp/dhcpsvc.conf ファイルに格納されているサービスオプションを SMF ツールで設定することはできません。

次の表は、DHCP コマンドと、それと同等の SMF コマンドを対比したものです。

表 15–1 DHCP サーバーの作業に使用する SMF コマンド

タスク 

DHCP のコマンド 

SMF コマンド 

DHCP サービスを有効にします 

dhcpconfig -S -e

svcadm enable svc:/network/dhcp-server

DHCP サービスを無効にします 

dhcpconfig -S -d

svcadm disable svc:/network/dhcp-server

DHCP サービスを起動します (現在のセッションのみ) 

なし 

svcadm enable -t svc:/network/dhcp-server

DHCP サービスを停止します (現在のセッション) 

なし 

svcadm disable -t svc:/network/dhcp-server

DHCP サービスを再開します 

dhcpconfig -S -r

svcadm restart svc:/network/dhcp-server

DHCP サービスオプションの変更 (作業マップ)

DHCP サービスの機能には、DHCP マネージャを使用した初期構成の際にはできない場合でも、あとから値を変更できるものがあります。サービスオプションを変更する場合には、DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログが使用できます。あるいは、dhcpconfig コマンドでオプションを指定することもできます。

次の表のマップでは、DHCP サービスオプションを変更するための作業について説明しています。この表には、各作業を完了するための手順へのリンクも含まれています。

作業 

説明 

説明 

ログオプションを変更します。 

ログを有効または無効にし、さらに DHCP トランザクションのログに使用する syslog 機能を選択します。

「詳細 DHCP ログメッセージを生成する方法 (DHCP マネージャー)」

「詳細 DHCP ログメッセージを生成する方法 (コマンド行)」

「DHCP トランザクションログを有効または無効にする方法 (DHCP マネージャ)」

「DHCP トランザクションログを有効または無効にする方法 (コマンド行)」

「DHCP トランザクションを別の syslog ファイルに記録する方法」

DNS 更新オプションを変更します。 

クライアント用の DNS エントリ (ホスト名を指定する) を動的に追加するサーバーの機能を有効または無効にします。DNS を更新する際にサーバーが使用できる最大の時間を決めます。 

「DHCP クライアント用に動的 DNS 更新を有効にする方法」

重複 IP アドレス検出を有効または無効にします。 

DHCP サーバーが IP アドレスをクライアントに提供する前に IP アドレスがまだ使用されていないことを確認できるようにするかどうかを指定します。 

「DHCP 性能オプションをカスタマイズする方法 (DHCP マネージャ)」

「DHCP 性能オプションをカスタマイズする方法 (コマンド行)」

DHCP サーバーの構成情報の読み込みに関するオプションを変更します。 

指定された間隔での dhcptab の自動読み込みを有効または無効にします。また、読み込み間隔を変更します。

「DHCP 性能オプションをカスタマイズする方法 (DHCP マネージャ)」

「DHCP 性能オプションをカスタマイズする方法 (コマンド行)」

リレーエージェントホップ数を変更します。 

DHCP デーモンでドロップされる前に要求をやり取りできるネットワーク数を増減します。 

「DHCP 性能オプションをカスタマイズする方法 (DHCP マネージャ)」

「DHCP 性能オプションをカスタマイズする方法 (コマンド行)」

提供される IP アドレスがキャッシュされている時間を変更します。 

新しいクライアントに IP アドレスを提供する前に DHCP サービスが提供された IP アドレスを予約する秒数を増減します。 

「DHCP 性能オプションをカスタマイズする方法 (DHCP マネージャ)」

「DHCP 性能オプションをカスタマイズする方法 (コマンド行)」

次に、DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックスを示します。

図 15–3 DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックス

ダイアログボックスには、多数のオプションフィールドやチェックボックスからなる「オプション (Options)」タブが表示されています。コンテキストには、このダイアルグボックスの目的が示されています。

DHCP ログオプションの変更

DHCP サービスは、DHCP サービスメッセージと DHCP トランザクションを syslog に記録できます。syslog についての詳細は、syslogd(1M) および syslog.conf(4) のマニュアルページを参照してください。

syslog に記録される DHCP サービスメッセージには、次のものがあります。

DHCP デーモンの詳細オプションを使用して、報告される情報を増やすことができます。詳細メッセージ出力は、DHCP に関する問題の障害追跡に役立つ場合があります。詳細は、「詳細 DHCP ログメッセージを生成する方法 (DHCP マネージャー)」を参照してください。

もう 1 つの有用な障害追跡方法は、トランザクションの記録です。トランザクションは、DHCP サーバーや BOOTP リレーとクライアントとの間のすべての交換に関する情報を提供します。DHCP トランザクションのメッセージには、次のタイプがあります。

BOOTP リレートランザクションのメッセージには、次のタイプがあります。

DHCP トランザクションのログは、デフォルトでは使用不可になっています。DHCP トランザクションのログが使用可能になっていると、デフォルトで sysloglocal0 機能が使用されます。DHCP トランザクションメッセージは、syslog 重大度レベル notice (通知) で生成されます。セキュリティーレベルがこのレベルにあると、DHCP トランザクションのログは、ほかのシステム通知のログと同じファイルに書き込まれます。しかし、local 機能を使用しているため、DHCP トランザクションメッセージのログはほかのシステム通知とは別のファイルに書き込むことができます。DHCP トランザクションメッセージのログを別のファイルに書き込むには、syslog.conf ファイルを編集して、別のログファイルを指定する必要があります。syslog.conf ファイルについての詳細は、syslog.conf(4) のマニュアルページを参照してください。

DHCP トランザクションログは有効または無効にできます。さらに、異なる syslog 機能 (local0 から local7 まで) を指定できます。詳細は、「DHCP トランザクションログを有効または無効にする方法 (DHCP マネージャ)」を参照してください。サーバーシステムの syslog.conf ファイルを構成すると、syslogd が DHCP トランザクションメッセージを格納するファイルを変更できます。詳細は、「DHCP トランザクションを別の syslog ファイルに記録する方法」を参照してください。

Procedure詳細 DHCP ログメッセージを生成する方法 (DHCP マネージャー)

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「DHCP マネージャを起動および停止する方法」を参照してください。

    「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開かれ、そこに「オプション (Options)」タブが表示されます。図 15–3 を参照してください。

  2. 「詳細ログメッセージ (Verbose Log Messages)」を選択します。

  3. 「サーバーの再起動 (Restart Server)」を選択します。

    「サーバーの再起動 (Restart Server)」オプションはダイアログボックス下部にあります。

  4. 「了解 (OK)」をクリックします。

    このセッション以降、このオプションを再設定するまで、デーモンは詳細モードで動作します。メッセージを表示するのに時間がかかるため、詳細モードではデーモンの効率が低下する場合があります。

Procedure詳細 DHCP ログメッセージを生成する方法 (コマンド行)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のコマンドを入力して詳細モードにします。


    # /usr/sbin/dhcpconfig -P VERBOSE=true
    

    次回の DHCP サーバーの起動からサーバーは詳細モードで実行されます (詳細モードがオフにされるまで) 。

    詳細モードをオフに設定する場合は、次のコマンドを入力します。


    # /usr/sbin/dhcpconfig -P VERBOSE=
    

    このコマンドは、VERBOSE キーワードを値なしに設定します。すると、このキーワードはサーバーの構成ファイルから削除されます。

    メッセージを表示するのに時間がかかるため、詳細モードではデーモンの効率が低下する場合があります。

ProcedureDHCP トランザクションログを有効または無効にする方法 (DHCP マネージャ)

この手順では、以後すべての DHCP サーバーセッションに関するトランザクションログを有効または無効にします。

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「syslog へのログトランザクション (Log Transactions to Syslog Facility)」を選択します。

    トランザクションログを無効にするには、このオプションの選択を解除します。

  3. (省略可能) ローカル機能を 0 から 7 まで選択して、DHCP トランザクションログに使用します。

    デフォルトでは、DHCP トランザクションはシステム通知が書き込まれる場所に書き込まれます。システム通知が書き込まれる場所は syslogd で構成できます。DHCP トランザクションをほかのシステム通知とは別の場所に記録する場合は、「DHCP トランザクションを別の syslog ファイルに記録する方法」を参照してください。

    トランザクションログを有効にすると、メッセージファイルのサイズは急速に大きくなります。

  4. 「サーバーの再起動 (Restart Server)」を選択します。

  5. 「了解 (OK)」をクリックします。

    このセッション以降、ログを無効にするまで、デーモンは選択された syslog 機能にトランザクションを記録します。

ProcedureDHCP トランザクションログを有効または無効にする方法 (コマンド行)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の手順から 1 つを選択します。

    • DHCP トランザクションログを使用可能にする場合は、次のコマンドを入力します。


      # /usr/sbin/dhcpconfig -P LOGGING_FACILITY=syslog-local-facility
      

      syslog-local-facility は 0 - 7 の数字です。このオプションを省略すると、0 が使用されます。

      デフォルトでは、DHCP トランザクションはシステム通知が書き込まれる場所に書き込まれます。システム通知が書き込まれる場所は syslogd で構成できます。DHCP トランザクションをほかのシステム通知とは別の場所に記録する場合は、「DHCP トランザクションを別の syslog ファイルに記録する方法」を参照してください。

      トランザクションログを有効にすると、メッセージファイルのサイズは急速に大きくなります。

    • DHCP トランザクションログを使用不可にする場合は、次のコマンドを入力します。


      # /usr/sbin/dhcpconfig -P LOGGING_FACILITY=
      

      パラメータの値を指定しません。

ProcedureDHCP トランザクションを別の syslog ファイルに記録する方法

  1. DHCP サーバーシステムでスーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

    DHCP 管理プロファイルに割り当てられている役割が、この作業の実施に十分であるとは限りません。この役割には、syslog ファイルを編集する権限が必要です。

  2. サーバーシステムの /etc/syslog.conf ファイルを編集し、次の書式の行を追加します。


    localn.notice     path-to-logfile
    

    n にはトランザクションログ用に指定した syslog 機能番号を指定します。path-to-logfile には、トランザクションを記録するファイルへの絶対パスを指定します。

    たとえば、次のような行を追加できます。

    local0.notice /var/log/dhcpsrvc

    syslog.conf ファイルについての詳細は、syslog.conf(4) のマニュアルページを参照してください。

DHCP サーバーによる動的 DNS 更新の有効化

DNS はインターネット用にネームサービスを提供します。DNS マッピングが行われていれば、ホスト名からでも IP アドレスからでもシステムにアクセスできます。さらに、このシステムにはドメインの外からでもアクセスできます。

DHCP サービスでは、DNS を 2 つの方法で使用できます。

自身のホスト名を供給する DHCP クライアントのために DNS サービスを更新するように DHCP サービスを構成できます。DNS 更新機能が正しく働くためには、DNS サーバー、DHCP サーバー、DHCP クライアントがどれも正しく設定されていなければなりません。さらに、要求されたホスト名が、ドメインのほかのシステムによって使用されているものではなりません。

DHCP サーバーの DNS 更新機能が動作するのは、次の条件がすべて真であるときです。

ProcedureDHCP クライアント用に動的 DNS 更新を有効にする方法


注 –

動的 DNS 更新は「セキュリティー上のリスク」であることに注意してください。

デフォルトでは、Oracle Solaris DNS デーモン (in.named) は動的更新を許可しません。動的 DNS 更新を行う権限は、DNS サーバーシステムの named.conf 構成ファイルで与えられます。ほかのセキュリティーは提供されません。動的 DNS 更新を有効にするときには、この機能のユーザーに対する便利さとセキュリティーリスクのバランスを注意深く考慮する必要があります。


  1. DNS サーバーで、スーパーユーザーとして /etc/named.conf ファイルを編集します。

  2. named.conf ファイルで、適切なドメインの zone セクションを見つけます。

  3. DHCP サーバーの IP アドレスを allow-update キーワードに追加します。

    allow-update キーワードが存在しない場合は、このキーワードを挿入します。

    たとえば、DHCP サーバーのアドレスが 10.0.0.110.0.0.2 である場合、dhcp.domain.com ゾーンの named.conf ファイルを次のように変更します。


    zone "dhcp.domain.com" in {
                 type master;
                 file "db.dhcp";
                 allow-update { 10.0.0.1; 10.0.0.2; }; 
    };  
     
    zone "10.IN-ADDR.ARPA" in {
                 type master;
                 file "db.10"; 
                 allow-update { 10.0.0.1; 10.0.0.2; };
    }; 

    DHCP サーバーが A と PTR の両方のレコードを DNS サーバー上で更新できるように、両方のゾーンの allow-update を有効にする必要があります。

  4. DHCP サーバー上で、DHCP マネージャを起動します。


    # /usr/sadm/admin/bin/dhcpmgr &
    

    詳細は、「DHCP マネージャを起動および停止する方法」を参照してください。

  5. 「サービス (Service)」メニューから「変更 (Modify)」を選択します。

    「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。

  6. 「クライアント要求により DNS ホスト情報を更新 (Update DNS Host Information Upon Client Request)」を選択します。

  7. DNS サーバーからの応答を待ち、時間切れになるまでの秒数を指定し、「了解 (OK)」をクリックします。

    通常は、デフォルト値として 15 秒を指定すれば十分です。時間切れに関する問題が発生した場合は、あとでこの値を増やすことも可能です。

  8. 「マクロ (Macros)」タブをクリックして、正しい DNS ドメインが指定されていることを確認します。

    DNSdmain オプションを渡すには、動的 DNS 更新のサポートを期待するクライアントへの正しいドメイン名と共に指定する必要があります。デフォルトでは、DNSdmain がサーバーマクロ中に指定されています。この値は、各 IP アドレス構成マクロとして使用されます。

  9. DHCP サービスを要求するときにそのホスト名を指定するように DHCP クライアントを設定します。

    Oracle Solaris DHCP クライアントを使用する場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。Oracle Solaris DHCP クライアント以外のクライアントを使用する場合は、ホスト名の指定方法についてその DHCP クライアントのマニュアルを参照してください。

クライアントホスト名の登録

DHCP サービスで使用する IP アドレスのホスト名を DHCP サーバーが生成するようにすると、DHCP サーバーがこれらのホスト名を NIS+、/etc/inet/hosts、または DNS ネームサービスに登録できます。ホスト名の登録を NIS で行うことはできません。NIS には、NIS マップの更新や伝達をプログラムで行うためのプロトコルが備わっていないからです。


注 –

DNS サーバーと DHCP サーバーが同じシステムで動作している場合のみ、DHCP サーバーは、生成したホスト名を DNS に登録できます。


DHCP クライアントがそのホスト名を指定し、DHCP サーバーが動的に更新できるよう DNS サーバーが構成されている場合には、DHCP サーバーがクライアントに代わってDNS を更新できます。動的更新は、DNS サーバーとDHCP サーバーが異なるシステムで動作している場合でも行われます。この機能を有効にする方法については、「DHCP サーバーによる動的 DNS 更新の有効化」を参照してください。

次の表に、さまざまなネームサービスによる DHCP クライアントシステムのホスト名の登録を要約します。

表 15–2 ネームサービスへのクライアントホスト名の登録
 

ホスト名を登録する人または物 

ネームサービス 

DHCP が生成したホスト名 

DHCP クライアントが指定したホスト名 

NIS 

NIS 管理者 

NIS 管理者 

NIS+ 

DHCP ツール 

DHCP ツール 

/etc/inet/hosts

DHCP ツール 

DHCP ツール 

DNS 

DHCP ツール (DNS サーバーが DHCP サーバーと同じシステムで動作している場合) 

DNS 管理者 (DNS サーバーが異なるシステムで動作している場合) 

DHCP サーバー (動的 DNS 更新が可能として構成されている場合) 

DNS 管理者 (動的 DNS 更新が可能として DHCP サーバーが構成されていない場合) 

DHCP クライアントが DHCP 要求で特定のホスト名を指定する構成になっている場合、Oracle Solaris DHCP クライアントは、DHCP 要求で特定のホスト名を指定できます (「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照)。ほかの DHCP クライアントでこの機能がサポートされているかどうかについては、それぞれのベンダーのマニュアルを参照してください。

DHCP サーバー用の性能オプションのカスタマイズ

DHCP サーバーの性能に影響するオプションを変更できます。これらのオプションについて、次の表で説明します。

表 15–3 DHCP サービスの性能に影響するオプション

サーバーオプション 

説明 

キーワード 

BOOTP リレーエージェントホップの最大数 

一定数以上の BOOTP リレーエージェントを通過すると、その要求はドロップされます。デフォルトのリレーエージェントホップ数の最大は 4 です。ほとんどのネットワークは、この数で十分なはずです。DHCP 要求が DHCP サーバーに到達するまでにいくつかの BOOTP リレーエージェントを通過する場合は、ネットワークで 4 つ以上のホップが必要になることがあります。

RELAY_HOPS=integer

重複したアドレスを検出する 

デフォルトでは、サーバーは IP アドレスをクライアントに提供する前にこのアドレスに ping します。ping に対する応答がなければ、このアドレスはまだ使用されていません。この機能を無効にすることによって、サーバーがクライアントにアドレスを提供するまでの時間を短縮できます。ただし、この機能を無効にすると、重複した IP アドレスを使用する危険があります。

ICMP_VERIFY=TRUE/FALSE

指定された間隔で dhcptab を自動的に再読み込む

サーバーは、指定された間隔 (分単位) で dhcptab を自動的に読み込むように設定できます。ネットワークの構成情報を頻繁に変更せず、複数の DHCP サーバーを持っていない場合は、dhcptab を自動的に再読み込みする必要はありません。また、DHCP マネージャには、データ変更後にサーバーに dhcptab を再読み込みさせるようにするオプションもあります。

RESCAN_INTERVAL=min

指定された時間、提供された IP アドレスをキャッシュする 

サーバーが IP アドレスをクライアントに提供すると、その IP アドレスはキャッシュされます。IP アドレスがキャッシュされている間は、サーバーはそのアドレスを再び提供することはしません。提供した IP アドレスがキャッシュに書き込まれている秒数を変更できます。デフォルトは 10 秒です。低速のネットワークでは、このキャッシュ時間を延長する必要があります。

OFFER_CACHE_TIMEOUT=sec

次の手順では、これらのオプションを変更する方法を説明します。

ProcedureDHCP 性能オプションをカスタマイズする方法 (DHCP マネージャ)

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 必要なオプションを変更します。

    オプションについては、表 15–3 を参照してください。

  3. 「サーバーの再起動 (Restart Server)」を選択します。

  4. 「了解 (OK)」をクリックします。

ProcedureDHCP 性能オプションをカスタマイズする方法 (コマンド行)

この手順で変更したオプションは、DHCP サーバーを再起動するまで有効にはなりません。

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 1 つまたは複数の性能オプションを変更します。


    # /usr/sbin/dhcpconfig -P keyword=value,keyword=value...
    

    keyword=value には、次のキーワードが使用できます。

    RELAY_HOPS=integer

    デーモンが DHCP または BOOTP のデータグラムをドロップする前に発生することができるリレーエージェントホップの最大数を指定します。

    ICMP_VERIFY=TRUE/FALSE

    重複 IP アドレスの自動検出を有効または無効にします。このキーワードに FALSE を設定することはお勧めできません。

    RESCAN_INTERVAL=minutes

    DHCP サーバーが dhcptab 情報を自動的に読み込み直す間隔を分で指定します。

    OFFER_CACHE_TIMEOUT=seconds

    DHCP サーバーが DHCP クライアントを検索するために提供した IP アドレスをキャッシュに書き込んでおく秒数を指定します。デフォルトは 10 秒です。


例 15–1 DHCP 性能オプションの設定

次に、すべてのコマンドオプションを指定する方法の例を示します。


# dhcpconfig -P RELAY_HOPS=2,ICMP_VERIFY=TRUE,\
RESCAN_INTERVAL=30,OFFER_CACHE_TIMEOUT=20

DHCP ネットワークの追加、変更、削除 (作業マップ)

DHCP サーバーを構成する際に、DHCP サービスを使用するために少なくとも 1 つのネットワークを構成する必要があります。いつでもネットワークを追加できます。

次の表のマップでは、初期構成を完了した DHCP ネットワークを管理するときに実行できる追加の作業について説明しています。この作業マップには、作業の実施に必要な手順へのリンクが含まれています。

タスク 

説明 

説明 

サーバーネットワークインタフェースでの DHCP サービスを有効または無効にします 

デフォルトの動作では、DHCP 要求に対するすべてのネットワークインタフェースを監視します。DHCP 要求をすべてのインタフェースで受け付けない場合は、監視するインタフェースのリストからインタフェースを削除できます。 

「DHCP 監視用のネットワークインタフェースを指定する方法 (DHCP マネージャ)」

DHCP サービスに新しいネットワークを追加します。 

ネットワーク上の IP アドレスを管理するため、ネットワークを DHCP の管理下に置きます。 

「DHCP ネットワークを追加する方法 (DHCP マネージャ)」

「DHCP ネットワークを追加する方法 (dhcpconfig)」

DHCP に管理されたネットワークのパラメータを変更します。 

特定のネットワークのクライアントに渡される情報を変更します。 

「DHCP ネットワークの構成を変更する方法 (DHCP マネージャ)」

「DHCP ネットワークの構成を変更する方法 (dhtadm)」

DHCP サービスからネットワークを削除します。 

これ以降、ネットワーク上の IP アドレスが DHCP によって管理されないようにネットワークを削除します。 

「DHCP ネットワークを削除する方法 (DHCP マネージャ)」

「DHCP ネットワークを削除する方法 (pntadm)」

DHCP で監視するネットワークインタフェースの指定

デフォルトでは、dhcpconfig も DHCP マネージャの構成ウィザードも、サーバーシステムのすべてのネットワークインタフェースを監視するように DHCP サーバーを構成します。新しいネットワークインタフェースをサーバーシステムに追加した場合、システムを起動すると、DHCP サーバーがこの新しいネットワークインタフェースを自動的に監視します。そのため、どのネットワークを追加してもそのネットワークインタフェースを通して監視できます。

ただし、どのネットワークインタフェースを監視し、どのインタフェースを無視すべきかを指定することもできます。特定のネットワーク上で DHCP サービスを提供したくない場合、インタフェースを無視すると便利なことがあります。

どのインタフェースも無視するように設定したあとに新しいインタフェースをインストールすると、DHCP サーバーは新しいインタフェースを無視します。その場合には、サーバーの監視インタフェーリストに新しいインタフェースを追加する必要があります。インタフェースを指定するには、DHCP マネージャまたは dhcpconfig ユーティリティーを使用できます。

この節では、DHCP が監視または無視するネットワークインタフェースを指定できるようにするための手順についても説明します。この DHCP マネージャの手順では、DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックスの「インタフェース (Interfaces)」タブを使用します (次図を参照)。

図 15–4 DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックスの「インタフェース (Interfaces)」タブ

ダイアログボックスには「監視中のインタフェース (Monitored Interfaces)」が左に、「削除するインタフェース (Ignored Interfaces)」が右にそれぞれ表示され、両方のリスト間に選択矢印が表示されています。さらに、下部には「了解 (OK)」、「(Reset)」、「(Cancel)」、「ヘルプ (Help)」ボタンが表示されています。

ProcedureDHCP 監視用のネットワークインタフェースを指定する方法 (DHCP マネージャ)

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが表示されます。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「インタフェース (Interfaces)」タブを選択します。

  3. 適切なネットワークインタフェースを選択します。

  4. 矢印ボタンをクリックして、インタフェースを適切なリストに移動します。

    たとえば、インタフェースを無視する場合は、「監視中のインタフェース (Monitored Interfaces)」リストからそのインタフェースを選択し、右矢印ボタンをクリックします。インタフェースは、「削除するインタフェース (Ignored Interfaces)」リストに表示されます。

  5. 「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。

    これらの変更は、再起動が行われたあとも有効です。

ProcedureDHCP 監視用のネットワークインタフェースを指定する方法 (dhcpconfig)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. DHCP サーバーシステム上で次のコマンドを入力します。


    # /usr/sbin/dhcpconfig -P INTERFACES=int,int,...
    

    int, int,... は、監視するインタフェースのリストです。インタフェース名をコンマで区切って指定します。

    たとえば、ge0ge1 だけを監視する場合は、次のコマンドを使用します。


    #/usr/sbin/dhcpconfig -P INTERFACES=ge0,ge1
    

    無視するインタフェースは、dhcpconfig コマンド行から除外します。

    このコマンドによる変更は再起動後も引き続き有効です。

DHCP ネットワークの追加

DHCP マネージャを使用してサーバーを構成すると、最初のネットワークも同時に構成されます。最初のネットワークは通常、サーバーシステムの主インタフェースにあるローカルネットワークです。さらにほかのネットワークを構成したい場合は、DHCP マネージャの DHCP ネットワークウィザードを使用します。

dhcpconfig -D コマンドを使用してサーバーを構成する場合は、DHCP サービスを使用するすべてのネットワークを別個に構成する必要があります。詳細は、「DHCP ネットワークを追加する方法 (dhcpconfig)」を参照してください。

次の図は、DHCP マネージャの DHCP ネットワークウィザード用の最初のダイアログボックスを示しています。

図 15–5 DHCP マネージャのネットワークウィザード

ダイアログボックスには、「(Network Address)」プルダウンリストと「(Subnet Mask)」フィールド、それに右選択矢印が表示されています。さらに、「(Cancel)」と「ヘルプ (Help)」ボタンがあります。

新しいネットワークを構成すると、DHCP マネージャが次の内容を作成します。

ProcedureDHCP ネットワークを追加する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    すでに DHCP サービス用に構成されているネットワークがリストされます。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「編集 (Edit)」メニューから「ネットワークウィザード (Network Wizard)」を選択します。

  3. オプションを選択するか、要求された情報を入力します。計画フェーズで行なった決定に基づいて、指定すべき情報を決めます。

    計画フェーズについては、「リモートネットワークの DHCP 構成の計画」を参照してください。

    このウィザードでわからないことがある場合は、ウィザードウィンドウの「ヘルプ (Help)」をクリックすると、DHCP ネットワークウィザードのヘルプが表示されます。

  4. 必要な情報を入力し終えたあと、「完了 (Finish)」をクリックしてネットワークの構成を終了します。

    ネットワークウィザードは、空のネットワークテーブルを作成します。このテーブルはウィンドウの左側の区画に表示されます。

    さらに、ネットワークウィザードは、そのネットワークの IP アドレスと一致する名前のネットワークマクロを作成します。

  5. (省略可能) 「マクロ (Macros)」タブを選択し、作成したネットワークマクロを選択して、マクロの内容を表示します。

    ウィザードで指定した情報が、ネットワークマクロのオプションの値として挿入されているか確認します。

参照

このネットワークのアドレスを追加してから、そのネットワークの IP アドレスを DHCP で管理する必要があります。詳細は、「DHCP サービスへの IP アドレスの追加」を参照してください。

ネットワークテーブルが空であっても、DHCP サーバーは、構成情報をクライアントに提供できます。詳細は、「情報だけを受け取るように DHCP クライアントを設定 (作業マップ)」を参照してください。

ProcedureDHCP ネットワークを追加する方法 (dhcpconfig)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. DHCP サーバーシステム上で次のコマンドを入力します。


    # /usr/sbin/dhcpconfig -N network-address
    

    network-address には、DHCP サービスに追加するネットワークの IP アドレスを指定します。-N オプションで使用できるサブオプションについては、dhcpconfig(1M) のマニュアルページを参照してください。

    サブオプションを使用しない場合、dhcpconfig はネットワークファイルを使用して、ネットワークについての情報を取得します。

参照

このネットワークのアドレスを追加してから、そのネットワークの IP アドレスを DHCP で管理する必要があります。詳細は、「DHCP サービスへの IP アドレスの追加」を参照してください。

ネットワークテーブルが空であっても、DHCP サーバーは、構成情報をクライアントに提供できます。詳細は、「情報だけを受け取るように DHCP クライアントを設定 (作業マップ)」を参照してください。

DHCP ネットワークの構成の変更

ネットワークを DHCP サービスに追加したら、そのあとで、最初に入力した構成情報を変更できます。構成情報は、ネットワーク上のクライアントに情報を渡すためのネットワークマクロに格納されています。ネットワーク構成を変更するためには、ネットワークマクロを変更する必要があります。

次に、DHCP マネージャの「マクロ (Macros)」タブを示します。

図 15–6 DHCP マネージャの「マクロ (Macros)」タブ

「マクロ (Macros)」タブには、マクロのリストが表示されています (1 つのマクロが選択されています)。さらに、マクロに含まれているオプション名と値が示されています。

ProcedureDHCP ネットワークの構成を変更する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    この DHCP サーバーについて定義されたすべてのマクロが左側の区画にリストされます。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 変更するネットワーク構成と名前が一致するネットワークマクロを選択します。

    ネットワークマクロ名は、そのネットワークの IP アドレスです。

  3. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「マクロの属性 (Macro Properties)」ダイアログボックスに、マクロに含まれるオプションが示されます。

  4. 変更するオプションを選択します。

    オプションの名前とその値は、ダイアログボックス上部のテキストフィールドに表示されます。

  5. (省略可能) オプション名を変更するか、「選択 (Select)」ボタンをクリックしてオプション名のリストを表示します。

    「(Select Option)」ダイアログボックスに、DHCP のすべての標準オプションが表示されます。各オプションには簡単な説明がついています。

  6. (省略可能) 「(Select Option)」ダイアログボックスから 1 つのオプション名を選択し、「了解 (OK)」をクリックします。

    新しいオプション名が 「(Option Name)」フィールドに表示されます。

  7. そのオプションの新しい値を入力して、「変更 (Modify)」をクリックします。

  8. (省略可能) さらに、ダイアログボックスの「選択 (Select)」を使用することによって、ネットワークマクロにオプションを追加できます。

    マクロの変更に関するより一般的な情報については、「DHCP マクロの変更」を参照してください。

  9. 「DHCP サーバーに変更を通知する (Notify DHCP Server of Change)」を選択して、「了解 (OK)」をクリックします。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

ProcedureDHCP ネットワークの構成を変更する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. ネットワークのすべてのクライアントに関する情報を含むマクロを特定します。

    ネットワークマクロの名前は、ネットワークの IP アドレスと一致します。

    この情報がどのマクロに含まれているがわからない場合、dhtadm -P コマンドを使用すると、dhcptab テーブルを表示して、すべてのマクロを表示できます。

  3. 次の書式でコマンドを入力して、変更したいオプションの値を変更します。


    # dhtadm -M -m macro-name -e 'symbol=value' -g
    

    dhtadm コマンド行オプションについては、dhtadm(1M) のマニュアルページを参照してください。


例 15–2 dhtadm コマンドによる DHCP マクロの変更

たとえば、10.25.62.0 のマクロのリース期間を 57600 秒に変更し、NIS ドメインを sem.example.com に変更するには、次のコマンドを入力します。

# dhtadm -M -m 10.25.62.0 -e 'LeaseTim=57600' -g

# dhtadm -M -m 10.25.62.0 -e 'NISdmain=sem.example.com' -g

-g オプションを指定すると、DHCP デーモンは dhcptab テーブルを再読み込みして、変更を有効にします。


DHCP ネットワークの削除

DHCP マネージャを使用すると、複数のネットワークを同時に削除できます。削除するネットワークにある DHCP に管理された IP アドレスに関連するホストテーブルのエントリを自動的に削除するオプションもあります。次に、DHCP マネージャの「ネットワークの削除 (Delete Networks)」ダイアログボックスを示します。

図 15–7 DHCP マネージャの「ネットワークの削除 (Delete Networks)」ダイアログボックス

ダイアログボックスには「保持するネットワーク (Keep Networks)」と「ネットワークの削除 (Delete Networks)」という 2 つのリストが表示され、その間に選択矢印が表示されます。さらに、「ホストテーブルエントリも削除 (Delete host table entries)」というチェックボックスが表示されます。

pntadm コマンドを使用する場合、ネットワークからそれぞれの IP アドレスのエントリを削除してからそのネットワークを削除する必要があります。一度に 1 つのネットワークだけを削除できます。

ProcedureDHCP ネットワークを削除する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「編集 (Edit)」メニューから「ネットワークの削除 (Delete Networks)」を選択します。

    「ネットワークの削除 (Delete Networks)」ダイアログボックスが開きます。

  3. 「保持するネットワーク (Keep Networks)」リストで、削除したいネットワークを選択します。

    Control キーを押しながらマウスをクリックすれば、複数のネットワークを選択できます。Shift キーを押しながらクリックすれば、ある範囲のネットワークを選択できます。

  4. 右矢印ボタンをクリックして、選択したネットワークを「ネットワークの削除 (Delete Networks)」リストに移動します。

  5. このネットワークの DHCP アドレスに対するホストテーブルエントリを削除する場合は、「ホストテーブルエントリも削除 (Delete Host Table Entries)」を選択します。

    ホストテーブルエントリを削除しただけでは、これらのアドレスに関する DNS サーバー上のホスト登録は削除されません。エントリは、ローカルネームサービスからのみ削除されます。

  6. 「了解 (OK)」をクリックします。

ProcedureDHCP ネットワークを削除する方法 (pntadm)

この手順では、ネットワークを削除する前に DHCP ネットワークテーブルから ネットワークの IP アドレスを削除します。これらのアドレスを削除することによって、そのホスト名が hosts ファイルまたはデータベースから確実に削除されます。

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式でコマンドを入力して、ネームサービスから IP アドレスとそのホスト名を削除します。


    # pntadm -D -y IP-address
    

    たとえば、IP アドレス 10.25.52.1 を削除するには、次のコマンドを入力します。

    # pntadm -D -y 10.25.52.1

    この -y オプションは、ホスト名の削除を指定します。

  3. ネットワークのアドレスごとに pntadm -D -y コマンドを繰り返し入力します。

    多数のアドレスを削除する場合には、pntadm コマンドを実行するスクリプトを作成することもできます。

  4. すべてのアドレスを削除してから、次のコマンドを入力して、DHCP サービスからネットワークを削除します。


    # pntadm -R network-IP-address
    

    たとえば、ネットワーク 10.25.52.0 を削除するには、次のコマンドを入力します。

    # pntadm -R 10.25.52.0

    pntadm ユーティリティーの使用についての詳細は、pntadm(1M) のマニュアルページを参照してください。

DHCP サービスによる BOOTP クライアントのサポート (作業マップ)

DHCP サーバー上で BOOTP クライアントをサポートするには、DHCP サーバーを BOOTP 互換に設定する必要があります。この DHCP を使用できる BOOTP クライアントを指定したい場合は、BOOTP クライアントを DHCP サーバーのネットワークテーブルに登録できます。あるいは、その代わりに、BOOTP クライアントに自動的に割り当てるいくつかの IP アドレスを予約しておくこともできます。


注 –

BOOTP アドレスは常時割り当てられます。アドレスに常時リースを明示的に割り当てたかどうかは関係ありません。


次の表では、BOOTP クライアントをサポートするために実行する必要がある作業について説明します。作業マップには、作業の実行に必要な手順へのリンクが含まれています。

タスク 

説明 

説明 

自動 BOOTP サポートを設定します。 

DHCP に管理されたネットワークや、リレーエージェントによって DHCP に管理されたネットワークに接続されたネットワークにあるすべての BOOTP クライアントに IP アドレスを提供します。  

そのため、BOOTP クライアントでアドレスを排他的に使用するためにアドレスのプールを予約する必要があります。このオプションは、サーバーが多くの BOOTP クライアントをサポートする必要がある場合に便利です。 

「すべての BOOTP クライアントのサポートを設定する方法 (DHCP マネージャ)」

手動 BOOTP サポートを設定します。 

DHCP サービスを使用して手動で登録された BOOTP クライアントだけに IP アドレスを提供します。  

このオプションでは、BOOTP クライアント用に指定された特定の IP アドレスにクライアントの ID を結びつける必要があります。このオプションは、BOOTP クライアントが少数の場合や、DHCP サーバーを使用できる BOOTP クライアントの数を制限する場合に便利です。 

「登録された BOOTP クライアントのサポートを設定する方法 (DHCP マネージャ)」

Procedureすべての BOOTP クライアントのサポートを設定する方法 (DHCP マネージャ)

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. このダイアログボックスの「BOOTP 互換 (BOOTP Compatibility)」セクションで、「自動 (Automatic)」を選択します。

  3. 「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。

  4. 「アドレス (Addresses)」タブを選択します。

  5. BOOTP クライアント用に予約したいアドレスを選択します。

    最初のアドレスをクリックし、Shift キーを押しながら最後のアドレスをクリックして、一定範囲のアドレスを選択します。Control キーを押しながら各アドレスをクリックして、重複していない複数のアドレスを選択します。

  6. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。

  7. 「BootP」セクションで、「BootP クライアントだけにすべてのアドレスを割り当てる (Assign All Addresses Only to BOOTP Clients)」を選択します。

    残りのオプションは「現在の設定を維持 (Keep Current Settings)」に設定しておきます。

  8. 「了解 (OK)」をクリックします。

    これで、すべての BOOTP クライアントがこの DHCP サーバーからアドレスを取得できるようになりました。

Procedure登録された BOOTP クライアントのサポートを設定する方法 (DHCP マネージャ)

  1. DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する

    「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. このダイアログボックスの「BOOTP 互換 (BOOTP Compatibility)」セクションで、「手動 (Manual)」を選択します。

  3. 「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。

  4. 「アドレス (Addresses)」タブを選択します。

  5. 特定の BOOTP クライアントに割り当てるアドレスを選択します。

  6. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「アドレスの属性 (Address Properties)」ダイアログボックスが開きます。

  7. 「アドレス属性 (Address Properties)」ダイアログボックスの「リース (Lease)」タブを選択します。

  8. 「クライアント ID (Client ID)」フィールドでクライアントの ID を入力します。

    Ethernet ネットワークで動作する BOOTP Oracle Solaris クライアントの場合、クライアント ID は、クライアントの 16 進数 Ethernet アドレスから派生した文字列になります。クライアント ID には、Ethernet 用の Address Resolution Protocol (ARP) タイプ (01) を示す接頭辞が含まれています。たとえば、Ethernet アドレス 8:0:20:94:12:1e を持つ BOOTP クライアントは、0108002094121E というクライアント ID を使用します。


    ヒント –

    Oracle Solaris クライアントシステム上のスーパーユーザーとして次のコマンドを入力すると、そのインタフェースに関する Ethernet アドレスを取得できます。

    # ifconfig -a


  9. 「予約 (Reserved)」を選択して、このクライアント用に IP アドレスを予約します。

  10. 「BOOTP クライアントのみに割り当てる ( Assign Only to BOOTP Clients)」を選択し、「了解 (OK)」をクリックします。

    「アドレス (Addresses)」タブでは、BOOTP は「状態 (Status)」フィールドに表示され、指定したクライアント ID は「クライアント ID (Client ID)」フィールドに表示されます。

DHCP サービスで IP アドレスを使用して作業する (作業マップ)

IP アドレスの追加、アドレス属性の変更、DHCP サービスからのアドレスの削除を実行するには、DHCP マネージャまたは pntadm コマンドを使用できます。IP アドレスを使用して作業する前に、表 15–4 を参照して、IP アドレスの属性をよく理解してください。この表を使用して、DHCP マネージャと pntadm を使用するための情報を知ることができます。


注 –

表 15–4 には、pntadm を使って IP アドレスの追加や変更をしながら IP アドレスの属性を指定する例が含まれています。pntadm の詳細については、pntadm(1M) のマニュアルページも参照してください。


次の作業マップに、IP アドレスを追加、変更、または削除するときに必要な作業を示します。さらに、作業マップには、作業の実行に必要な手順へのリンクが含まれています。

タスク 

説明 

説明 

単一または複数の IP アドレスを DHCP サービスに追加します。 

DHCP マネージャを使用して DHCP サービスですでに管理されているネットワークに IP アドレスを追加します。 

「単一の IP アドレスを追加する方法 (DHCP マネージャ)」

「既存の IP アドレスを複製する方法 (DHCP マネージャ)」

「複数の IP アドレスを追加する方法 (DHCP マネージャ)」

「IP アドレスを追加する方法 (pntadm)」

IP アドレスの属性を変更します。 

表 15–4 に示す IP アドレスの属性を変更します。

「IPアドレスの属性を変更する方法 (DHCP マネージャ)」

「IP アドレスの属性を変更する方法 (pntadm)」

DHCP サービスから IP アドレスを削除します。 

指定された IP アドレスを DHCP から使用できないように設定します。 

「IP アドレスを使用不可に指定する方法 (DHCP マネージャ)」

「IP アドレスを使用不可に指定する方法 (pntadm)」

「DHCP サービスから IP アドレスを削除する方法 (DHCP マネージャ)」

「DHCP サービスから IP アドレスを削除する方法 (pntadm)」

固定 IP アドレスを DHCP クライアントに割り当てます。 

クライアントがその構成を要求するたびに同じ IP アドレスを受け取るようにクライアントを設定します。 

「固定 IP アドレスを DHCP クライアントに割り当てる方法 (DHCP マネージャ)」

「固定 IP アドレスを DHCP クライアントに割り当てる方法 (pntadm)」

次の表に、IP アドレスの属性の一覧および説明を示します。

表 15–4 IP アドレスの属性

プロパティー 

説明 

pntadm コマンドで指定する方法

ネットワークアドレス 

作業の際に使用する IP アドレスを含むネットワークのアドレス。 

このネットワークアドレスは、DHCP マネージャのアドレスタブにあるネットワークリストに表示されます。 

ネットワークアドレスは、IP アドレスを作成、変更、または削除するために使用する pntadm コマンド行の最後の引数にする必要があります。

たとえば、IP アドレスをネットワーク 10.21.0.0 に追加する場合には、次のように入力します。

pntadm -A ip-address options 10.21.0.0

IP アドレス 

作成、変更、または削除する IP アドレス。 

この IP アドレスは、DHCP マネージャのアドレスタブの最初の列に表示されます。 

IP アドレスを操作する場合、pntadm コマンドに必ず -A-M、または -D オプションを付けます。

たとえば、IP アドレス 10.21.5.12 を変更する場合には、次のように入力します。

pntadm -M 10.21.5.12 options 10.21.0.0

クライアント名 

ホストテーブルで IP アドレスに割り当てられるホスト名。この名前は、アドレスが作成されるときに、DHCP マネージャによって自動的に生成できます。単一のアドレスを作成する場合、その名前を入力できます。 

-h オプションを使用してクライアント名を指定します。

たとえば、10.21.5.12 に対してクライアント名 carrot12 を指定する場合には、次のように入力します。

pntadm -M 10.21.5.12 -h carrot12 10.21.0.0

サーバーによる所有 

IP アドレスを管理し、DHCP クライアントの IP アドレス割り当て要求に応答する DHCP サーバー。 

-s オプションを使用して所有サーバー名を指定します。

たとえば、サーバー blue210.21.5.12 を所有することを指定するには、次のように入力します。

pntadm -M 10.21.5.12 -s blue2 10.21.0.0

構成マクロ 

dhcptab テーブルからネットワーク構成オプションを取得するために DHCP サーバーが使用するマクロ。サーバーを構成したり、ネットワークを追加したりすると、いくつかのマクロが自動的に作成されます。マクロについては、「DHCP マクロについて」を参照してください。アドレスを作成すると、サーバーマクロが同時に作成されます。サーバーマクロは、各アドレスの構成マクロとして割り当てられます。

-m オプションを使用してマクロ名を指定します。

たとえば、サーバーマクロ blue2 をアドレス 10.21.5.12 に割り当てる場合には、次のように入力します。

pntadm -M 10.21.5.12 -m blue2 10.21.0.0

クライアント ID 

DHCP サービス内で一意のテキスト文字列。

クライアント ID が 00 の場合、アドレスはどのクライアントにも割り当てられていません。IP アドレスの属性を変更する際にクライアント ID を指定すると、そのアドレスはそのクライアントに排他的に結合されます。 

クライアント ID は、DHCP クライアントのベンダーによって決定されます。Oracle Solaris DHCP クライアント以外のクライアントを使用している場合は、その DHCP クライアントのマニュアルを参照してください。 

-i オプションを使用してクライアント ID を指定します。

たとえば、クライアントID 08002094121E をアドレス 10.21.5.12 に割り当てる場合には、次のように入力します。

pntadm -M 10.21.5.12 -i 0108002094121E 10.21.0.0

 

Oracle Solaris DHCP クライアントの場合、クライアント ID は、クライアントの 16 進数ハードウェアアドレスから派生したものになります。クライアント ID には、ネットワークタイプの ARP コード (たとえば、Ethernet の場合 01) を表す接頭辞が含まれます。ARP コードは、Internet Assigned Numbers Authority (IANA) (Assigned Numbers 標準の ARP Parameters セクション) によって割り当てられます (http://www.iana.com/numbers.html を参照)。

たとえば、16 進 Ethernet アドレス 8:0:20:94:12:1e を持つ Oracle Solaris クライアントは、クライアント ID 0108002094121E を使用します。クライアントがアドレスを使用している場合、このクライアント ID は DHCP マネージャと pntadm で示されます。

ヒント: Oracle Solaris クライアントシステム上のスーパーユーザーとして次のコマンドを入力すると、そのインタフェースに関する Ethernet アドレスを取得できます。 ifconfig -a

 

予約済み 

このアドレスを指定した設定は、クライアント ID で示されるクライアントのために排他的に予約されます。DHCP サーバーがこのアドレスを取り戻すことはできません。このオプションを選択した場合、アドレスはクライアントに手動で割り当てます。

-f オプションを使用して、アドレスの予約または手動を指定します。

たとえば、あるクライアントについて IP アドレス 10.21.5.12 の予約を指定するには、次のように入力します。

pntadm -M 10.21.5.12 -f MANUAL 10.21.0.0

リースのタイプとポリシー 

クライアントによる IP アドレスの使用を DHCP が管理する方法を示す設定。リースは、動的または常時です。詳細な説明は、「動的リースタイプと常時リースタイプ」を参照してください。

-f オプションを使用して、アドレスが常時割り当てされるように指定します。デフォルトではアドレスは動的にリースされます。

たとえば、IP アドレス 10.21.5.12 に常時リースを割り当てるには、次のように入力します。

pntadm -M 10.21.5.12 -f PERMANENT 10.21.0.0

リースの有効期限 

リースが期限切れになる日付。動的リースが指定された場合のみ利用できます。日付は mm/dd/yyyy 書式で指定します。

リースの有効期限を -e オプションで指定します。

たとえば、有効期限として 2006 年 1 月 1 日を指定する場合には、次のように入力します。 

pntadm -M 10.21.5.12 -e 01/01/2006 10.21.0.0

BOOTP 設定 

BOOTP クライアントに対してアドレスが予約されていることを指定します。BOOTP クライアントのサポートについては、「DHCP サービスによる BOOTP クライアントのサポート (作業マップ)」を参照してください。

-f を使用して BOOTP クライアント用のアドレスを予約します。

たとえば、IP アドレス 10.21.5.12 を BOOTP クライアント用に予約する場合には、次のように入力します。

pntadm -M 10.21.5.12 -f BOOTP 10.21.0.0

使用不可設定 

どのクライアントにも割り当てられないようにアドレスに使用不可のマークを付ける設定。

-f オプションを使ってアドレスを使用不可にします。

たとえば、IP アドレス 10.21.5.12 を使用不可にするには、次のように入力します。

pntadm -M 10.21.5.12 -f UNUSABLE 10.21.0.0

DHCP サービスへの IP アドレスの追加

IP アドレスを追加する前に、それらのアドレスを所有するネットワークを DHCP サービスに追加する必要があります。ネットワークの追加については、「DHCP ネットワークの追加」を参照してください。

アドレスの追加は、DHCP マネージャまたは pntadm コマンドで行うことができます。

すでに DHCP サービスによって管理されているネットワーク上では、DHCP マネージャを使用すると、次のような複数の方法でアドレスを追加できます。

次に、「アドレスの作成 (Create Address)」ダイアログボックスを示します。「アドレスの複製 (Duplicate Address)」ダイアログボックスは、テキストフィールドに既存のアドレスの値が表示されていることを除いて「アドレスの作成 (Create Address)」ダイアログボックスと同じです。

図 15–8 DHCP マネージャの「アドレスの作成 (Create Address)」ダイアログボックス

ダイアログボックスには、「IP アドレス (IP Address)」、「クライアント名 (Client Name)」、「コメント (Comment)」の各フィールドを含む「アドレス (Address)」タブが表示されています。さらに、「構成マクロ (Configuration Macro)」というプルダウンリストが表示されています。

次の図に、一定範囲の IP アドレスの追加に使用する「ネットワークへアドレスの追加 (Add Addresses to Network)」ウィザードの最初のダイアログを示します。

図 15–9 DHCP マネージャの「ネットワークへアドレスの追加 (Add Addresses to Network)」ウィザード

コンテキストには、ウィザードの目的が示されています。さらに、「(Number of IP Addresses)」フィールドと「コメント (Comment)」フィールド、前方矢印と後方矢印、「(Cancel)」と「ヘルプ (Help)」ボタンが表示されています。

Procedure単一の IP アドレスを追加する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 新しい IP アドレスを追加するネットワークを選択します。

  3. 「編集 (Edit)」メニューから「作成 (Create)」を選択します。

    「アドレスの作成 (Create Address)」ダイアログボックスが開きます。

  4. 「アドレス (Address)」と「リース (Lease)」タブで、値を選択または入力します。

    「ヘルプ (Help)」ボタンを選択して Web ブラウザを開き、ダイアログボックスのヘルプを表示します。また、設定値については、表 15–4 を参照してください。

  5. 「了解 (OK)」をクリックします。

Procedure既存の IP アドレスを複製する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 新しい IP アドレスを配置するネットワークを選択します。

  3. 複製したい属性をもつアドレスを選択します。

  4. 「編集 (Edit)」メニューから「複製 (Duplicate)」を選択します。

  5. 「IP アドレス (IP Address)」フィールドに新しい IP アドレスを指定します。

  6. (省略可能) そのアドレスの新しいクライアント名を指定します。

    複製するアドレスと同じ名前のクライアント名を使用することはできません。

  7. (省略可能) 必要に応じて、ほかのオプションの値を変更します。

    ほとんどのオプションの値は変更の必要がないはずです。

  8. 「了解 (OK)」をクリックします。

Procedure複数の IP アドレスを追加する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 新しい IP アドレスを追加するネットワークを選択します。

  3. 「編集 (Edit)」メニューから「アドレスウィザード (Address Wizard)」を選択します。

    「ネットワークへアドレスの追加 (Add Addresses to Network)」ダイアログボックスに IP アドレス属性の値を指定する必要があります。属性については、表 15–4 を参照するか、ダイアログボックスの「ヘルプ (Help)」ボタンをクリックしてください。「IP アドレスの管理に必要な選択 (作業マップ)」 には、さらに詳しい情報が記載されています。

  4. 情報を入力し終わったら、画面ごとに右矢印ボタンをクリックし、最後の画面で「完了 (Finish)」をクリックします。

    「アドレス (Addresses)」 タブに新規アドレスが更新されます。

ProcedureIP アドレスを追加する方法 (pntadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して IP アドレスを追加します。


    # pntadm -A ip-address options  network-address
    

    pntadm -A で使用できるオプションの一覧については、pntadm(1M) のマニュアルページを参照してください。また、表 15–4 には、オプションを指定した pntadm コマンドの例が記載されています。


    注 –

    pntadm を利用して複数のアドレスを追加するような、スクリプトを作成することもできます。例 18–1 の例を参照してください。


DHCP サービスでの IP アドレスの変更

DHCP マネージャまたは 表 15–4 コマンドを使用すると、 Table 15–4 に記載されているアドレス属性を変更できます。pntadm -M の詳細は、pntadm(1M) のマニュアルページを参照してください。

次に、IP アドレスの属性を変更するときに使用する「アドレスの属性 (Address Properties)」ダイアログボックスを示します。

図 15–10 DHCP マネージャの「アドレスの属性 (Address Properties)」ダイアログボックス

「IP アドレス (IP Address)」、「(Owned by Server)」、「クライアント名 (Client Name)」、「コマンド (Comment)」フィールドをもつ「アドレス (Address)」タブ。さらに、プルダウンリスト付きの「構成マクロ (Configuration Macro)」が表示されています。

次に、複数の IP アドレスを変更するために使用する「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスを示します。

図 15–11 DHCP マネージャの「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックス

ダイアログボックスには、「管理サーバー(Managing Server)」と「構成マクロ (Configuration Macro)」というプルダウンリストが表示されています。さらに、「BOOTP (BOOTP)」、「(Unusable addresses)」、「リースタイプ (Lease Type)」の選択ボタンがそれぞれ表示されています。

ProcedureIPアドレスの属性を変更する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. その IP アドレスのネットワークを選択します。

  3. 変更する IP アドレスを 1 つまたは複数選択します。

    複数のアドレスを変更する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。

  4. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「アドレスの属性 (Address Properties)」ダイアログボックスまたは「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。

  5. 適切な属性を変更します。

    属性については、「ヘルプ (Help)」ボタンをクリックするか、表 15–4 を参照してください。

  6. 「了解 (OK)」をクリックします。

ProcedureIP アドレスの属性を変更する方法 (pntadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して IP アドレスの属性を変更します。


    # pntadm -M ip-address options network-address
    

    pntadm コマンドでは、多数のオプションが使用できます。詳細は、pntadm(1M) のマニュアルページを参照してください。

    表 15–4 には、オプションを指定した pntadm コマンドの例が記載されています。

DHCP サービスからの IP アドレスの削除

特定の 1 つまたは複数の IP アドレスについて、DHCP サービスによる管理を停止したい場合があります。DHCP からアドレスを削除する方法は、その変更が一時的なものか永続的なものかによって異なります。

DHCP サービスで IP アドレスを使用不可にする

-f UNUSABLE オプションを付けて pntadm -M コマンドを使用すると、アドレスを使用不可に指定できます。

個々のアドレスの設定には、DHCP マネージャの「アドレスの属性 (Address Properties)」ダイアログボックス (図 15–10) を使用します。複数のアドレスの設定には、DHCP マネージャの「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックス (図 15–11) を使用します。次の手順に従ってください。

ProcedureIP アドレスを使用不可に指定する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. その IP アドレスのネットワークを選択します。

  3. 使用不可に指定したい IP アドレスを 1 つまたは複数選択します。

    複数のアドレスを使用不可に指定する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。

  4. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「アドレスの属性 (Address Properties)」ダイアログボックスまたは「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。

  5. アドレスを 1 つ変更する場合は、「リース (Lease)」タブを選択します。

  6. 「アドレスを使用しない (Address is Unusable)」を選択します。

    複数のアドレスを編集する場合は、「すべてのアドレスを使用しない (Mark All Addresses Unusable)」を選択します。

  7. 「了解 (OK)」をクリックします。

ProcedureIP アドレスを使用不可に指定する方法 (pntadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して IP アドレスを使用不可に指定します。


    # pntadm -M ip-address -f UNUSABLE network-address
    

    たとえば、アドレス 10.64.3.3 を使用不可に指定するには、次のように入力します。

    pntadm -M 10.64.3.3 -f UNUSABLE 10.64.3.0

DHCP サービスからの IP アドレスの削除

IP アドレスを DHCP で管理したくない場合は、DHCP ネットワークテーブルからそのアドレスを削除する必要があります。pntadm -D コマンドまたは DHCP マネージャの「アドレスの削除 (Delete Address)」ダイアログボックスを使用できます。

次に、「アドレスの削除 (Delete Address)」ダイアログボックスを示します。

図 15–12 DHCP マネージャの「アドレスの削除 (Delete Address)」ダイアログボックス

ダイアログボックスには、削除する IP アドレスのリストと、「(Delete from hosts table)」というチェックボックスが表示されています。「OK」、「Cancel」および「Help」ボタンを表示します。

ProcedureDHCP サービスから IP アドレスを削除する方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. その IP アドレスのネットワークを選択します。

  3. 削除する IP アドレスを選択します。

    複数のアドレスを削除する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。

  4. 「編集 (Edit)」メニューから「削除 (Delete)」を選択します。

    「アドレスの削除 (Delete Address)」ダイアログボックスに、選択したアドレスがリストされるので、削除する内容を確認できます。

  5. ホスト名をホストテーブルから削除したい場合、「ホストテーブルから削除 (Delete From Hosts Table)」を選択します。

    ホスト名が DHCP マネージャによって生成されたものである場合、ホストテーブルからその名前を削除できます。

  6. 「了解 (OK)」をクリックします。

ProcedureDHCP サービスから IP アドレスを削除する方法 (pntadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して IP アドレスを削除します。


    # pntadm -D ip-address options network-address
    

    -y オプションを指定した場合、ホスト名を保持しているネームサービスからホスト名が削除されます。

    たとえば、アドレス 10.64.3.3 をネットワーク 10.64.3.0 から削除して、対応するホスト名を削除するには、次のように入力します。

    pntadm -D 10.64.3.3 -y 10.64.3.0

予約済み IP アドレスを DHCP クライアントに割り当てる

Oracle Solaris DHCP サービスは、以前に DHCP を使用してアドレスを取得したクライアントに同じ IP アドレスを与えようとします。ただし、ときには、アドレスがすでに別のクライアントに再割り当てられていることがあります。

ルーターや、NIS/NIS+ サーバー、DNS サーバーなど、ネットワークにとって致命的なホストは DHCP クライアントになるべきではありません。ネットワークにサービスを提供するホストは、自らの IP アドレスを取得する際にネットワークに依存することは避ける必要があります。同じように、印刷サーバーやファイルサーバーなどのクライアントは、固定 IP アドレスをもつ必要があります。このようなクライアントは、そのネットワーク構成を受け取り、DHCP サーバーから固定 IP アドレスの割り当てることができます。

クライアントがその構成を要求するたびに同じ IP アドレスをクライアントに割り当てるように DHCP サーバーを設定できます。そのクライアント用に IP アドレスを予約するには、クライアントに割り当てるアドレスにクライアントの ID を手動で割り当てる必要があります。予約済みアドレスでは、動的リースか常時リースを使用できます。クライアントのアドレスで動的リースを使用する場合には、アドレスの使用を追跡することは簡単です。動的リースで予約済みアドレスを使用すべきクライアントの例としては、ディスクレスクライアントがあります。クライアントのアドレスで常時リースを使用する場合には、アドレスの使用を追跡することはできません。クライアントは常時リースを取得してしまうと、クライアントはサーバーに再度アクセスしません。クライアントは、更新された構成情報を取得するためには、IP アドレスを解放し、 DHCP とリースのネゴシエーションを再開する必要があります。

リース属性の設定には、pntadm -M コマンドか DHCP マネージャの「アドレスの属性 (Address Properties)」ダイアログボックスが使用できます。

次に、リースを変更するために使用する「アドレスの属性 (Address Properties)」ダイアログボックスの「リース (Lease)」タブを示します。

図 15–13 DHCP マネージャの「リース (Lease)」タブ

「リース (Lease)」タブには、「クライアント ID (Client ID)」フィールド、「予約 (Reserved)」チェックボックス、および「リースポリシー (Lease Policy)」、「(BOOTP clients)」、「(Address is unusable)」の設定フィールドなどがあります。

Procedure固定 IP アドレスを DHCP クライアントに割り当てる方法 (DHCP マネージャ)

  1. DHCP マネージャの「アドレス (Addresses)」タブをクリックします。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 適切なネットワークを選択します。

  3. クライアントで使用したい IP アドレスをダブルクリックします。

    「アドレスの属性 (Address Properties)」ウィンドウが開きます。

  4. 「リース (Lease)」タブを選択します。

  5. 「クライアント ID (Client ID)」フィールドにクライアント ID を入力します。

    クライアント ID は、クライアントのハードウェアアドレスから派生したものです。詳細は、表 15–4 の「クライアント ID」の項を参照してください。

  6. 「予約 (Reserved)」オプションを選択して、その IP アドレスがサーバーによって返還を要求されないようにします。

  7. 「アドレスの属性 (Address Properties)」ウィンドウの「リースポリシー (Lease Policy)」領域で、「動的 (Dynamic)」または「常時 (Permanent)」の割り当てを選択します。

    クライアントでリースを更新するネゴシエーションを行なって、アドレスが使用されている場合に追跡できるようにしたい場合は、「動的 (Dynamic)」を選択します。「予約 (Reserved)」を選択しているので、動的リースが使用されていても、アドレスは再利用できません。このリースの有効期限は指定する必要がありません。DHCP サーバーが、リース期間を使って有効期限を計算します。

    「常時 (Permanent)」を選択した場合、トランザクションの記録を有効にしない限り、IP アドレスの使用を追跡できません。

  8. 「了解 (OK)」をクリックします。

Procedure固定 IP アドレスを DHCP クライアントに割り当てる方法 (pntadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してリースフラグを設定します。


    # pntadm -M ip-address -i client-id -f MANUAL+BOOTP network-address
    

    たとえば、MAC アドレスが 08:00:20:94:12:1E である Oracle Solaris DHCP クライアントに常に IP アドレス 10.21.5.12·を割り当てるためには、次のように入力します。

    pntadm -M 10.21.5.12 -i 0108002094121E -f MANUAL+BOOTP 10.21.0.0


    ヒント –

    クライアント識別子を決定する方法についての詳細は、表 15–4 の「クライアント ID」の項を参照してください。


DHCP マクロを使用した作業 (作業マップ)

DHCP マクロ」は、DHCP オプションのコンテナです。Oracle Solaris DHCP サービスはマクロを使用して、クライアントに渡す必要があるオプションをまとめます。サーバーが構成されると、DHCP マネージャと dhcpconfig ユーティリティーは、いくつかのマクロを自動的に作成します。マクロの背景情報については、「DHCP マクロについて」を参照してください。デフォルトで作成されるマクロについては、第 14 章DHCP サービスの構成 (手順)を参照してください。

ネットワークに変更が生じると、クライアントに渡す構成情報を変更しなければならない場合があります。構成情報を変更する場合には、DHCP マクロを使用する必要があります。DHCP マクロは、表示、作成、変更、複製、削除できます。

マクロを使用する場合には、DHCP の標準オプションの知識が必要になります。標準オプションについては、dhcp_inittab(4) のマニュアルページを参照してください。

次の作業マップに、DHCP マクロを表示、作成、変更、および削除するのに必要な作業を示します。マップには、各作業を完了する方法を詳しく説明した節のリンクも含まれています。

作業 

説明 

説明 

DHCP マクロを表示します。 

DHCP サーバーで定義されているすべてのマクロのリストを表示します。 

「DHCP サーバー上で定義されたマクロを表示する方法 (DHCP マネージャ)」

「DHCP サーバー上で定義されたマクロを表示する方法 (dhtadm)」

DHCP マクロを作成します。 

DHCP クライアントをサポートする新しいマクロを追加します。 

「DHCP マクロを作成する方法 (DHCP マネージャ)」

「DHCP マクロを作成する方法 (dhtadm)」

DHCP クライアントに渡されるマクロ内の値を変更します。 

既存のオプションの変更、マクロへのオプションの追加、マクロからのオプションの削除によって、マクロを変更します。 

「DHCP マクロ内のオプションの値を変更する方法 (DHCP マネージャ)」

「DHCP マクロ内のオプションの値を変更する方法 (dhtadm)」

「DHCP マクロにオプションを追加する方法 (DHCP マネージャ)」

「DHCP マクロにオプションを追加する方法 (dhtadm)」

「DHCP マクロからオプションを削除する方法 (DHCP マネージャ)」

「DHCP マクロからオプションを削除する方法 (dhtadm)」

DHCP マクロを削除します。 

使用しない DHCP マクロを削除します。 

「DHCP マクロを削除する方法 (DHCP マネージャ)」

「DHCP マクロを削除する方法 (dhtadm)」

次に、DHCP マネージャウィンドウの「マクロ (Macros)」タブを示します。

図 15–14 DHCP マネージャの「マクロ (Macros)」タブ

「マクロ (Macros)」タブには、マクロのリストが表示されています (1 つのマクロが選択されています)。さらに、マクロに含まれているオプション名と値が示されています。「(Find)」フィールドと「(Next)」ボタンが表示されています。

ProcedureDHCP サーバー上で定義されたマクロを表示する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

    ウィンドウ左側の「マクロ (Macros)」領域に、この DHCP サーバーで定義されたすべてのマクロがアルファベット順に表示されます。前にフォルダアイコンが付いたマクロには、ほかのマクロへの参照が含まれていますが、前にドキュメントアイコンが付いたマクロには、ほかのマクロへの参照が含まれていません。

  2. マクロフォルダを開くには、フォルダアイコンの左にあるハンドルアイコンをクリックします。

    選択したマクロに含まれるマクロがリストされます。

  3. マクロの内容を表示するには、マクロ名をクリックします。

    オプションとそれらに割り当てられた値が表示されます。

ProcedureDHCP サーバー上で定義されたマクロを表示する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のコマンドを入力してマクロを表示します。


    # dhtadm -P
    

    このコマンドは、dhcptab テーブルの内容 (DHCP サーバー上で定義されたすべてのマクロとシンボルを含む) をフォーマットして標準出力に出力します。

DHCP マクロの変更

ネットワークの一部の設定が変更され、1 台または複数の DHCP クライアントにその変更を通知する必要がある場合、マクロを変更する必要がある場合があります。たとえば、ルーターや NIS サーバーを追加したり、新しいサブネットを作成したり、リースポリシーを変更したりした場合です。

マクロを変更する際には、まず、変更、追加、または削除したい DHCP オプションの名前が何か知らなければなりません。標準的な DHCP オプションについては、DHCP マネージャのヘルプや dhcp_inittab(4) のマニュアルページを参照してください。

dhtadm -M -m コマンドまたは DHCP マネージャを使用して、マクロを変更できます。dhtadm の詳細については、dhtadm(1M) のマニュアルページを参照してください。

次に、DHCP マネージャの「マクロの属性 (Macro Properties)」ダイアログボックスを示します。

図 15–15 DHCP マネージャの「マクロの属性 (Macro Properties)」ダイアログボックス

ダイアログボックスには、一連のオプションとその値が表示されています。さらに、「選択 (Select)」、「追加 (Add)」、「変更 (Modify)」、上下の矢印、「削除 (Delete)」の各ボタンが表示されています。さらに、サーバーに通知するかどうかを示すチェックボックスがあります。

ProcedureDHCP マクロ内のオプションの値を変更する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 変更するマクロを選択します。

  3. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。

  4. 「オプション (Options)」のテーブルで、変更するオプションを選択します。

    このオプションの名前とその値は、「オプション名 (Option Name)」と「オプションの値 (Option Value)」のフィールドに表示されます。

  5. 「オプションの値 (Option Value)」フィールドで、古い値を選択し、そのオプションの新しい値を入力します。

  6. 「変更 (Modify)」をクリックします。

    新しい値がオプションテーブルに表示されます。

  7. 「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  8. 「了解 (OK)」をクリックします。

ProcedureDHCP マクロ内のオプションの値を変更する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してオプションの値を変更します。


    # dhtadm -M -m macroname -e 'option=value:option=value' -g
    

    たとえば、マクロ bluenote 内のリース期間、および UTC との時間差を変更する場合には、次のように入力します。

    # dhtadm -M -m bluenote -e 'LeaseTim=43200:UTCOffst=28800' -g

ProcedureDHCP マクロにオプションを追加する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 変更するマクロを選択します。

  3. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。

  4. 「オプション名 (Option Name)」フィールドで、次のどちらかの方法を使用して、オプション名を指定します。

    • 「オプション名 (Option Name)」フィールドの隣にある「選択 (Select)」ボタンをクリックして、マクロに追加するオプションを選択します。

      「オプションの選択 (Select Option)」ダイアログボックスに、標準カテゴリのオプションの名前と説明がアルファベット順にリストされます。標準カテゴリ以外のオプションを追加する場合は、「カテゴリ (Category)」リストを使用してカテゴリを選択してください。

      マクロのカテゴリについては、「DHCP マクロについて」を参照してください。

    • 既存のマクロへの参照を新しいマクロに含めたい場合は、Include と入力してください。

  5. 「オプションの値 (Option Value)」フィールドにオプションの値を入力します。

    オプション名を Include と入力した場合は、「オプションの値 (Option Value)」フィールドに既存のマクロの名前を指定する必要があります。

  6. 「追加 (Add)」をクリックします。

    このオプションは、このマクロのオプションリストの一番下に追加されます。マクロ内でのオプションの位置を変更する場合は、オプションを選択し、矢印ボタンをクリックしてオプションを上下に移動させます。

  7. 「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  8. 「了解 (OK)」をクリックします。

ProcedureDHCP マクロにオプションを追加する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してマクロにオプションを追加します。


    # dhtadm -M -m macroname -e 'option=value' -g
    

    たとえば、リースのネゴシエーションを行うオプションをマクロ bluenote に追加するには、次のコマンドを入力します。

    # dhtadm -M -m bluenote -e 'LeaseNeg=_NULL_VALUE' -g

    値を必要としないオプションの場合、オプションの値として _NULL_VALUE を使用してください。

ProcedureDHCP マクロからオプションを削除する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 変更するマクロを選択します。

  3. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。

  4. マクロから削除するオプションを選択します。

  5. 「削除 (Delete)」をクリックします。

    選択されたオプションが、このマクロに関するオプションのリストから削除されます。

  6. 「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  7. 「了解 (OK)」をクリックします。

ProcedureDHCP マクロからオプションを削除する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してマクロからオプションを削除します。


    # dhtadm -M -m macroname -e 'option=' -g
    

    たとえば、リースのネゴシエーションを行うオプションをマクロ bluenote から削除するには、次のコマンドを入力します。

    # dhtadm -M -m bluenote -e 'LeaseNeg=' -g

    オプションに値を指定しなかった場合、オプションはマクロから削除されます。

DHCP マクロの作成

特別な要求を持ったクライアントをサポートするために、DHCP サービスに新しいマクロを追加する場合があります。dhtadm -A -m コマンドまたは DHCP マネージャの「マクロの作成 (Create Macro)」ダイアログボックスを使用して、マクロを追加できます。dhtadm コマンドの詳細については、dhtadm(1M) のマニュアルページを参照してください。

次に、DHCP マネージャの「マクロの作成 (Create Macro)」ダイアログボックスを示します。

図 15–16 DHCP マネージャの「マクロの作成 (Create Macro)」ダイアログボックス

ダイアログボックスには、「名前 (Name)」、「オプション名 (Option Name)」、「オプションの値 (Option Value)」の各フィールドが表示されています。さらに、「選択 (Select)」ボタンと空のオプションリスト、および、DHCP サーバーに通知することを示すチェックボックスが表示されています。

ProcedureDHCP マクロを作成する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「編集 (Edit)」メニューから「作成 (Create)」を選択します。

    「マクロの作成 (Create Macro)」ダイアログボックスが開きます。

  3. そのマクロの名前 (固有の名前) を入力します。

    名前には 128 文字までの英数字を使用できます。ベンダークラス識別子、ネットワークアドレス、またはクライアント ID に一致する名前を使用している場合は、そのマクロは適切なクライアントに対して自動的に処理されます。異なる名前を使用している場合は、自動的には処理されません。そのマクロは、特定の IP アドレスに割り当てられているか、または自動的に処理される別のマクロに含まれていなければなりません。詳細は、「DHCP サーバーによるマクロ処理」を参照してください。

  4. 「オプション名 (Optioin Name)」フィールドの隣にある「選択 (Select)」ボタンをクリックします。

    「オプションの選択 (Select Option)」ダイアログボックスに、標準カテゴリのオプションの名前と説明がアルファベット順にリストされます。標準カテゴリ以外のオプションを追加したい場合は、「カテゴリ (Category)」リストを使用します。必要なカテゴリを「カテゴリ (Category)」リストから選択してください。オプションのカテゴリについての詳細は、「DHCP オプションについて」を参照してください。

  5. マクロに追加するオプションを選択して、「了解 (OK)」をクリックします。

    「マクロの属性 (Macro Properties)」ダイアログボックスが、「オプション名 (Option Name)」フィールドに選択されたオプションを表示します。

  6. 「オプションの値 (Option Value)」フィールドにオプションの値を入力し、「追加 (Add)」をクリックします。

    このオプションは、このマクロのオプションリストの一番下に追加されます。マクロ内でのオプションの位置を変更する場合は、オプションを選択し、矢印ボタンをクリックしてオプションを上下に移動させます。

  7. マクロに追加するオプションごとに、手順 5手順 6 を繰り返します。

  8. オプションの追加が終了したら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  9. 「了解 (OK)」をクリックします。

ProcedureDHCP マクロを作成する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してマクロを作成します。


    # dhtadm -A -m macroname -d ':option=value:option=value:option=value:' -g
    

    d への引数として指定する -option=value ペアの数に制限はありません。引数はコロンで始まり、コロンで終わる必要があります。さらに、それぞれの option=value ペアはコロンで区切る必要があります。また、文字列全体を引用符で囲む必要があります。

    たとえば、マクロ bluenote を作成するには、次のコマンドを入力します。

    # dhtadm -A -m bluenote -d ':Router=10.63.6.121\ :LeaseNeg=_NULL_VALUE:DNSserv=10.63.28.12:' -g
    

    値を必要としないオプションの場合、オプションの値として _NULL_VALUE を使用してください。

DHCP マクロの削除

DHCP サービスからマクロを削除する場合があります。たとえば、DHCP サービスからネットワークを削除する場合、関連するネットワークマクロも削除できます。

dhtadm -D -m コマンドまたは DHCP マネージャを使用して、マクロを削除できます。

ProcedureDHCP マクロを削除する方法 (DHCP マネージャ)

  1. DHCP マネージャの「マクロ (Macros)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 削除するマクロを選択します。

    「マクロの削除 (Delete Macro)」ダイアログボックスは、指定したマクロの削除を確認するように求めます。

  3. 「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  4. 「了解 (OK)」をクリックします。

ProcedureDHCP マクロを削除する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してマクロを削除します。


    # dhtadm -D -m macroname -g
    

    たとえば、マクロ bluenote を削除するには、次のコマンドを入力します。

    # dhtadm -D -m bluenote -g

DHCP オプションを使用した作業 (作業マップ)

オプションは、DHCP サーバーがクライアントに渡すネットワーク構成パラメータのキーワードです。Oracle Solaris DHCP サービスでは、標準の DHCP オプションを作成、削除、または変更することはできません。標準オプションは DHCP プロトコルによって定義されたものだからです。つまり、作業の対象となるオプションは、サイト用に独自に作成したものだけです。そのため、初めて DHCP サービスを設定すると、サイト用のオプションを作成するまでは、DHCP マネージャの「オプション (Options)」タブは空です。

DHCP サーバー上でオプションを作成する場合、DHCP クライアント上でもそのオプションに関する情報を追加する必要があります。Oracle Solaris DHCP クライアントに対しては、/etc/dhcp/inittab ファイルを編集して、新しいオプションに関するエントリを追加する必要があります。このファイルについては、dhcp_inittab(4) のマニュアルページを参照してください。

Oracle Solaris クライアント以外の DHCP クライアントを使用している場合、オプションまたはシンボルを追加する方法については、使用しているクライアント用のマニュアルを参照してください。Oracle Solaris DHCP のオプションについての詳細は、「DHCP オプションについて」を参照してください。

DHCP マネージャまたは dhtadm コマンドを使用して、オプションを作成、変更、削除できます。


ヒント –

DHCP の文献では、オプションを「シンボル」と呼びます。dhtadm コマンドとそれに関連するマニュアルページでもオプションをシンボルと呼びます。


次の作業マップに、DHCP オプションを作成、変更、および削除するのに必要な作業を示します。作業マップには、それぞれの手順へのリンクが含まれています。

タスク 

説明 

説明 

DHCP オプションを作成します。 

標準的な DHCP オプションで扱わない情報に関する新しいオプションを追加します。 

「DHCP オプションを作成する方法 (DHCP マネージャ)」

「DHCP オプションを作成する方法 (dhtadm)」

「Oracle Solaris DHCP クライアントのオプション情報の変更」

DHCP オプションを変更します。 

作成済みの DHCP オプションの属性を変更します。 

「DHCP オプションの属性を変更する方法 (DHCP マネージャ)」

「DHCP オプションの属性を変更する方法 (dhtadm)」

DHCP オプションを削除します。 

作成済みの DHCP オプションを削除します。 

「DHCP オプションを削除する方法 (DHCP マネージャ)」

「DHCP オプションを削除する方法 (dhtadm)」

DHCP オプションを作成する前に、次の表に示すオプションの属性をよく理解しておく必要があります。

表 15–5 DHCP オプションの属性

オプションの属性 

説明 

カテゴリ 

オプションの「カテゴリ」は、次のいずれかにする必要があります。

  • ベンダー – クライアントのベンダーのプラットフォームに固有のオプションであり、ハードウェアかソフトウェアになります。

  • サイト – サイトに固有のオプション。

  • 拡張 – DHCP プロトコルに追加された比較的新しいオプションですが、まだ Oracle Solaris DHCP の標準オプションとして実装されていません。

コード 

コード」は、オプションに割り当てる一意の番号です。同じオプションカテゴリ内のほかのオプションで、同じコードを使用することはできません。オプションカテゴリに対して適切なコードにする必要があります。

  • ベンダー – ベンダークラスごとに 1 から 254 のコード値

  • サイト – 128 から 254 のコード値

  • 拡張 – 77 から 127 のコード値

データ型 

データ型」は、そのオプションの値として割り当てることができるデータの種類を指定します。有効なデータ型は次のとおりです。

  • ASCII – テキスト文字列値。

  • BOOLEAN – ブール型のデータ型に関連値はありません。このオプションが存在すれば条件は真となり、存在しなければ偽となります。たとえば、Hostname オプションはブール型です。マクロに Hostname が含まれていると、DHCP サーバーは、割り当てられたアドレスに関連するホスト名を検索します。

  • IP – ドットで区切られた 10 進法形式 (xxx.xxx.xxx.xxx) の 1 つまたは複数のアドレス。

  • OCTET – 2 進データを翻訳されない ASCII で表示したもの。たとえば、クライアント ID は、この 16 進形式のデータ型を使用します。有効な文字は 0 – 9、A – F、a – f です。8 ビットを表すには 2 つの ASCII 文字が必要です。

  • UNUMBER8, UNUMBER16, UNUMBER32, UNUMBER64, SNUMBER8, SNUMBER16, SNUMBER32, または SNUMBER64 の数値。初めの U や S は、数値が符号付きか符号なしかを表します。終わりの数字は、数値にいくつのビットが含まれているかを表します。

データの単位数 (Granularity) 

データの単位数」では、オプション値全体を表すために必要なデータ型の「インスタンス」の個数を指定します。たとえば、IP のデータ型でデータ単位数 2 の場合、オプション値には 2 つの IP アドレスが含まれる必要があります。

最大値 

オプションについて指定可能な値の最大個数。たとえば、最大値が 2、データの単位数が 2、データ型が IP だとします。この場合には、オプションの値に最大 2 つの IP アドレスペアを含めることができます。 

ベンダークライアントクラス 

このオプションは、オプションカテゴリがベンダーの場合のみ利用できます。ベンダークライアントクラスとは、そのベンダーオプションが関連付けられているクライアントクラスを識別するものです。このクラスは、クライアントのマシンタイプやオペレーティングシステムを表すASCII 文字列からなります。たとえば、Sun ワークステーションのあるモデルのクラス文字列は SUNW.Sun-Blade-100 です。このタイプのオプションで定義する構成パラメータは、同じクラスのすべてのクライアント (かつ、そのクラスのクライアントだけ) に渡されます。

複数のクライアントクラスを指定できます。指定するクラスと一致するクライアントクラス値の DHCP クライアントだけが、そのクラスに含まれるオプションを受け取ります。 

クライアントクラスは DHCP クライアントのベンダーによって決定されます。Oracle Solaris クライアント以外の DHCP クライアントの場合、クライアントクラスについては、DHCP クライアントのベンダーのマニュアルを参照してください。 

Oracle Solaris クライアントの場合、クライアント上で uname -i コマンドを入力すれば、 クライアントクラスを確認できます。ベンダークライアントクラスを指定するには、uname コマンドで返される文字列の中のすべてのカンマをピリオドに置き換えます。たとえば、uname -i コマンドから文字列 SUNW,Sun-Blade-100 が返される場合、ベンダークライアントクラスを SUNW.Sun-Blade-100 と指定します。

DHCP オプションの作成

渡す必要があるクライアント情報に対応するオプションが DHCP プロトコルにない場合は、オプションを作成できます。独自のオプションを作成する前に、Oracle Solaris DHCP にどのようなオプションが定義されているかを知りたい場合は、 dhcp_inittab(4) のマニュアルページを参照してください。

dhtadm -A -s コマンドまたは DHCP マネージャの「オプションの作成 (Create Option)」ダイアログボックスを使用して、新しいオプションを作成できます。

次に、DHCP マネージャの「オプションの作成 (Create Option)」ダイアログボックスを示します。

図 15–17 DHCP マネージャの「オプションの作成 (Create Option)」ダイアログボックス

ダイアログボックスには、新しいオプションの属性を定義する一連のフィールドが表示されています。さらに、「ベンダークライアントクラス (Vendor Client Classes)」領域と「(Notify DHCP server)」チェックボックスが表示されます。

ProcedureDHCP オプションを作成する方法 (DHCP マネージャ)

  1. DHCP マネージャの「オプション (Options)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「編集 (Edit)」メニューから「作成 (Create)」を選択します。

    「オプションの作成 (Create Option)」ダイアログボックスが開きます。

  3. 新しいオプションの略式記述名を入力します。

    この名前には、128 文字までの英数字と空白文字を含めることができます。

  4. ダイアログボックスの各設定について、値を入力または選択します。

    各設定については、表 15–5 を参照するか、DHCP マネージャのヘルプを参照してください。

  5. オプションの作成が終わったら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  6. 「了解 (OK)」をクリックします。

    これでオプションをマクロに追加し、クライアントに渡すオプションに値を割り当てることができます。

ProcedureDHCP オプションを作成する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して DHCP オプションを作成します。


    # dhtadm -A -s option-name -d 'category,code,data-type,granularity,maximum' -g
    
    option-name

    128 文字以内の英数字文字列です。

    category

    次のうちの 1 つです。 SiteExtend、または Vendor=list-of-classeslist-of-classes は、オプションが適用されるベンダークライアントクラスを空白文字で区切ったものです。ベンダークライアントクラスを決定する方法については、表 15–5 を参照してください。

    code

    このオプションカテゴリに適した 1 つの数値です。表 15–5 の説明を参照してください。

    data-type

    このオプションで渡されるデータのタイプを示すキーワードを指定します。表 15–5 の説明を参照してください。

    granularity

    負ではない 1 桁の数を指定します。表 15–5 の説明を参照してください。

    maximum

    負ではない 1 桁の数です。表 15–5 の説明を参照してください。


例 15–3 dhtadm による DHCP オプションの作成

次のコマンドを実行すると、Site カテゴリに属する NewOpt というオプションが作成されます。このオプションのコードは 130 です。このオプションの値には、1 つの 8 ビット無符号整数が設定できます。

# dhtadm -A -s NewOpt -d 'Site,130,UNUMBER8,1,1' -g 

次のコマンドを実行すると、Vendor カテゴリオプションに属する NewServ というオプションが作成されます。このオプションは、マシンタイプが SUNW,Sun-Blade-100 または SUNW,Sun-Blade-1000 であるクライアントに適用されます。このオプションのコードは 200 です。このオプションの値には、1 つの IP アドレスが設定できます。

# dhtadm -A -s NewServ -d 'Vendor=SUNW.Sun-Blade-100 \ SUNW.Sun-Blade-1000,200,IP,1,1' -g

DHCP オプションの変更

DHCP サービス用のオプションをすでに作成している場合、そのオプションの属性は変更できます。オプションの変更には、dhtadm -M -s コマンドか、DHCP マネージャの「オプションの属性 (Option Properties)」ダイアログボックスを使用します。

Oracle Solaris DHCP クライアントのオプション情報を変更して、DHCP サービスに加えたのと同じ変更内容を反映する必要があります。「Oracle Solaris DHCP クライアントのオプション情報の変更」を参照してください。

次に、DHCP マネージャの「オプションの属性 (Option Properties)」ダイアログボックスを示します。

図 15–18 DHCP マネージャの「オプションの属性 (Option Properties)」ダイアログボックス

ダイアログボックスには、選択したオプションの現在の属性が表示されています。さらに、「ベンダークライアントクラス (Vendor Client Classes)」と「(Notify DHCP server)」チェックボックスが表示されます。

ProcedureDHCP オプションの属性を変更する方法 (DHCP マネージャ)

  1. DHCP マネージャの「オプション (Options)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 変更するオプションを選択します。

  3. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「オプションの属性 (Option Properties)」ダイアログボックスが開きます。

  4. 必要に応じて属性を編集します。

    属性については、表 15–5 を参照するか、DHCP マネージャのヘルプを参照してください。

  5. オプションの処理が終了したら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    変更は dhcptab テーブルに対して行われます。DHCP サーバーは、dhcptab テーブルを再読み込みして変更を有効にします。

  6. 「了解 (OK)」をクリックします。

ProcedureDHCP オプションの属性を変更する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してオプションを変更します。


    # dhtadm -M -s option-name -d 'category,code,data-type,granularity,maximum' -g
    
    option-name

    変更するオプションの名前を指定します。

    category

    SiteExtend、または Vendor=list-of-classes のうちの 1 つです。list-of-classes は、オプションが適用されるベンダークライアントクラスを空白文字で区切ったものです。たとえば、SUNW.Sun-Blade-100 SUNW.Ultra-80 SUNWi86pc

    code

    このオプションカテゴリに適した 1 つの数値を指定します。表 15–5 の説明を参照してください。

    data-type

    このオプションで渡されるデータのタイプを示すキーワードを指定します。表 15–5 の説明を参照してください。

    granularity

    負ではない 1 桁の数です。表 15–5 の説明を参照してください。

    maximum

    負ではない 1 桁の数です。表 15–5 の説明を参照してください。

    変更する属性だけでなく、DHCP オプション属性すべてを -d スイッチで指定する必要があります。


例 15–4 dhtadm による DHCP オプションの変更

次のコマンドでは、NewOpt というオプションを変更します。このオプションは Site カテゴリのオプションです。このオプションのコードは 135 です。このオプションの値には、1 つの 8 ビット無符号整数が設定できます。

# dhtadm -M -s NewOpt -d 'Site,135,UNUMBER8,1,1' 

次のコマンドでは、Vendor カテゴリに属する NewServ というオプションを変更します。その結果、このオプションは、マシンタイプが SUNW,Sun-Blade-100 または SUNW,i86pc であるクライアントに適用されます。このオプションのコードは 200 です。このオプションの値には、1 つの IP アドレスが設定できます。

# dhtadm -M -s NewServ -d 'Vendor=SUNW.Sun-Blade-100 \ SUNW.i86pc,200,IP,1,1' -g

DHCP オプションの削除

標準の DHCP オプションを削除することはできません。しかし、ユーザーが DHCP サービス用に定義したオプションは、DHCP マネージャか dhtadm コマンドを使って削除できます。

ProcedureDHCP オプションを削除する方法 (DHCP マネージャ)

  1. DHCP マネージャの「オプション (Options)」タブを選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 削除したいオプションを選択します。

  3. 「編集 (Edit)」メニューから「削除 (Delete)」を選択します。

    「オプションの削除 (Delete Option)」ダイアログボックスが開きます。

  4. オプションの削除が終わったら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。

    この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。

  5. 「了解 (OK)」をクリックします。

ProcedureDHCP オプションを削除する方法 (dhtadm)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力して DHCP オプションを削除します。


    # dhtadm -D -s option-name -g
    

Oracle Solaris DHCP クライアントのオプション情報の変更

新しい DHCP オプションを DHCP サーバーに追加する場合、各 DHCP クライアントのオプション情報に、補足エントリを追加する必要があります。Oracle Solaris DHCP クライアント以外の DHCP クライアントを使用している場合、オプションまたはシンボルを追加する方法については、そのクライアントのマニュアルを参照してください。

Oracle Solaris DHCP クライアントでは、/etc/dhcp/inittab ファイルを編集して、DHCP サーバーに追加するオプションごとにエントリを追加する必要があります。後にそのオプションをサーバー上で変更する場合、クライアントの /etc/dhcp/inittab ファイルのエントリも変更する必要があります。

/etc/dhcp/inittab ファイルの構文については、dhcp_inittab(4) のマニュアルページを参照してください。


注 –

以前の Oracle Solaris リリースで dhcptags ファイルに DHCP オプションを追加していた場合、それらのオプションを /etc/dhcp/inittab ファイルに追加する必要があります。詳細は、「DHCP のオプション」を参照してください。


DHCP サービスを使用した Oracle Solaris ネットワークインストールのサポート

DHCP を使えば、ネットワーク上の一定のクライアントシステムに Oracle Solaris をインストールできます。この機能を使用できるシステムは、Oracle Solaris のハードウェア要件を満たす sun4u ベースシステムと x86 システムだけです。DHCP を使って、クライアントシステムをその起動時にネットワーク向けに自動的に構成する方法については、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 2 章「システム構成情報の事前設定 (作業)」を参照してください。

さらに、DHCP では、HTTP を使ってリモートサーバーから広域ネットワーク (WAN) を介して Oracle Solaris クライアントシステムのブートとインストールを行うことができま す。リモートからブートとインストールを行うこの方法を「WAN ブートインストール」といいます。WAN ブートを使用すると、大規模なパブリックネットワークを介して Oracle Solaris を SPARC ベースのシステムにインストールできますが、このようなネットワークはインフラストラクチャーの信頼性が低い場合があります。WAN ブートをセキュリティー機能とともに使用することによって、データの機密性とインストールイメージの完全性を保護できます。

DHCP で WAN ブートを使ってリモートからクライアントシステムのブートとインストールを行うためには、次の情報をクライアントに提供できるように DHCP サーバーを構成する必要があります。

この情報を DHCP サーバーに設定する方法については、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 2 章「システム構成情報の事前設定 (作業)」を参照してください。DHCP サーバーから WAN を介してクライアントシステムのブートとインストールを行う方法については、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 10 章「WAN ブート (概要)」を参照してください。

ディスクレスクライアントのサポートについては、「リモートブートクライアントとディスクレスブートクライアントのサポート (作業マップ)」を参照してください。

リモートブートクライアントとディスクレスブートクライアントのサポート (作業マップ)

Oracle Solaris DHCP サービスは、オペレーティングシステムのファイルを別のマシン (OS サーバー) からリモートでマウントする Oracle Solaris クライアントシステムをサポートしています。このようなクライアントを「ディスクレスクライアント」と呼びます。ディスクレスクライアントは、固定的なリモートブートシステムであるといえます。ディスクレスクライアントが起動されるたびに、このクライアントは、自身のオペレーティングシステムファイルを提供するサーバーの名前と IP アドレスを取得する必要があります。それによって、リモートのこれらのファイルからこのディスクレスクライアントを起動できるようになります。

各ディスクレスクライアントは、OS サーバー上に自分のルートパーティションを持っており、これらはクライアントのホスト名で共有されます。DHCP サーバーは、ディスクレスクライアントに常に同じ IP アドレスを返す必要があります。そのアドレスは、DNS などのネームサービスで常に同じホスト名にマップされていなければなりません。ディスクレスクライアントは、固定した IP アドレスを受け取ると、固定したホスト名を使用します。このクライアントは、OS サーバーにある自身の root パーティションにアクセスできます。

DHCP サーバーは、IP アドレスとホスト名のほかに、ディスクレスクライアントのオペレーティングシステムファイルの場所を提供できます。ただし、DHCP メッセージパケットでこの情報を渡すためのオプションとマクロを作成する必要があります。

次の作業マップは、ディスクレスクライアントなどの固定的なリモートブートクライアントをサポートするのに必要な作業を示しています。さらに、作業マップには、作業の実行に必要な手順へのリンクが含まれています。

タスク 

説明 

参照先 

Oracle Solaris サーバーで OS サービスを設定します。 

smosservice コマンドを使用して、クライアント用のオペレーティングシステムファイルを作成します。

『Solaris のシステム管理 (基本編)』の第 7 章「ディスクレスクライアントの管理 (手順)」

smosservice(1M) のマニュアルページも参照してください。

ネットワークブートクライアントをサポートするための DHCP サービスを設定します。 

DHCP マネージャまたは dhtadm コマンドを使用して、ブート情報をクライアントに渡すために DHCP サーバーが使用できる新しいベンダーオプションとマクロを作成します。

ネットワークインストールクライアント用のオプションをすでに作成している場合は、ディスクレスクライアントのベンダークライアントタイプ用のマクロを作成するだけで十分です。 

『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 2 章「システム構成情報の事前設定 (作業)」

ディスクレスクライアントへ予約済み IP アドレスを割り当てます。 

DHCP マネージャを使用してアドレスを予約済みにするか、pntadm コマンドを使用してディスクレスクライアント用のアドレスを MANUAL にします。

「予約済み IP アドレスを DHCP クライアントに割り当てる」

OS サービス用のディスクレスクライアントを設定します。 

smdiskless コマンドを使用して、クライアントごとにオペレーティングシステムサポートを OS サーバーに追加します。クライアントごとに予約済みの IP アドレスを指定します。

『Solaris のシステム管理 (基本編)』の第 7 章「ディスクレスクライアントの管理 (手順)」

smdiskless(1M) のマニュアルページも参照してください。

情報だけを受け取るように DHCP クライアントを設定 (作業マップ)

ネットワークによっては、DHCP サービスから構成情報だけをクライアントに提供する場合があります。情報 (リースではなく) を必要とするクライアントシステムは、DHCP クライアントから INFORM メッセージを送信できます。INFORM メッセージを受け取ると、DHCP サーバーは適切な構成情報をクライアントに送信します。

Oracle Solaris DHCP サーバーを適切に設定すれば、情報だけを必要とするクライアントをサポートできます。そのためには、クライアントをもつネットワークに対応する空のネットワークテーブルを作成する必要があります。それによって、DHCP サーバーはそのネットワークのクライアントに応答できます。

次の作業マップは、情報のみクライアントのサポートに必要な作業を示しています。さらに、作業マップには、作業の実行に必要な手順へのリンクが含まれています。

タスク 

説明 

説明 

空のネットワークテーブルを作成します。 

DHCP マネージャか pntadm コマンドを使って、情報のみクライアントのネットワークに対応するネットワークテーブルを作成します。

「DHCP ネットワークの追加」

クライアントが必要とする情報を含むマクロを作成します。 

DHCP マネージャか dhtadm コマンドを使って、必要な情報をクライアントに渡すマクロを作成します。

「DHCP マクロの作成」

DHCP クライアントから INFORM メッセージを発行します。

ifconfig int dhcp inform コマンドを使って、DHCP クライアントから INFORM メッセージを発行します。

「DHCP クライアントの起動」

「DHCP クライアントで使用する ifconfig コマンドオプション」

ifconfig(1m) のマニュアルページ

新しい DHCP データストアへの変換

Oracle Solaris DHCP は、DHCP 構成データをあるデータストアから別のデータストアに変換するユーティリティーを提供します。このような新しいデータストアへの変換が必要になる場合はいくつかあります。たとえば、多数の DHCP クライアントがあるために、DHCP サービスの性能や能力を高めたい場合があります。あるいは、DHCP サーバーの負荷を複数のサーバーで分担したい場合があります。データストアの各タイプの相対的な利点と欠点の比較については、「DHCP データストアの選択」を参照してください。


注 –

Solaris 8 7/01 リリースより前の Oracle Solaris リリースからアップグレードした場合は、この注をよくお読みください。

Oracle Solaris をインストールしたあとに Oracle Solaris DHCP ツールを実行すると、どのツールの場合でも、新しいデータストアへの変換を促すメッセージが表示されます。Solaris 8 7/01 リリースでファイルと NIS+ の両方でデータストアのフォーマットが変更されているので、この変換は必須です。新しいデータストアへの移行が行われないと、DHCP サーバーは引き続き古いデータストアを使用します。ただし、サーバーができることは、既存のクライアントのリースを延長することだけです。古いデータテーブルを使用していると、新しい DHCP クライアントを登録したり、DHCP 管理ツールを使用したりすることはできません。


変換ユーティリティーは、Sun 提供のデータストアを Sun 以外のデータストアに変換する際にも便利です。変換ユーティリティーは、既存のデータストアのエントリを調べて、同じデータを含む新しいエントリを新しいデータストアに追加します。データストアアクセスは、データストアごとに別個のモジュールとして実装されています。このモジュールアプローチのおかげで、変換ユーティリティーは、DHCP データを任意のデータストア形式から別のデータストア形式に変換できます。それぞれのデータストアには、DHCP サービスから使用できるモジュールが含まれていなければなりません。Sun 以外のデータストアをサポートするモジュールを作成する方法については、『Solaris DHCP サービス開発ガイド』を参照してください。

データストアの変換は、DHCP マネージャのデータストア変換ウィザードまたは dhcpconfig -C コマンドで実行できます。

次に、データストア変換ウィザードの初期ダイアログボックスを示します。

図 15–19 DHCP マネージャの「データストア変換ウィザード (Data Store Conversion Wizard)」ダイアログボックス

ダイアログボックスには、新しいデータストアへの変換に必要な手順が列挙されています。さらに、新しいデータストアオプションや、前方/後方矢印、「(Cancel)」、「ヘルプ (Help)」のボタンが表示されています。

変換を開始する前、古いデータストアのテーブル (dhcptab テーブルとネットワークテーブル) を保存するかどうかを指定する必要があります。次に、変換ユーティリティーは DHCP サーバーを停止し、データストアを変換し、変換が完了したあとに、サーバーを再起動します。古いテーブルを保存すると指定しない場合、変換が完了したあと、変換ユーティリティーは古いテーブルを削除します。変換の処理には、長い時間がかかることがあります。変換は背景で実行されますが、進捗状況を示す図が表示されます。

ProcedureDHCP データストアを変換する方法 (DHCP マネージャ)

  1. DHCP マネージャで、「サービス (Service)」メニューから「データストアの変換 (Convert Data Store)」を選択します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

    データストア変換ウィザードが開きます。

  2. ウィザードの質問に答えます。

    質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、各ダイアログボックスについての詳細な情報を見ることができます。

  3. 選択内容を確認し、「完了 (Finish)」をクリックしてデータストアを変換します。

    変換が完了すると、DHCP サーバーは再起動されます。サーバーは、直ちに新しいデータストアを使用します。

ProcedureDHCP データストアを変換する方法 (dhcpconfig -C)

  1. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の書式のコマンドを入力してデータストアを変換します。


    # /usr/sbin/dhcpconfig -C -r resource -p path
    
    resource

    新しいデータストアタイプ (SUNWbinfiles など)

    path

    データへのパス (/var/dhcpなど)

    変換後も元のデータ (古いデータストア) を保存しておきたい場合は、-k オプションを指定してください。たとえば、自分のデータストアを SUNWbinfiles に変換し、古いデータストアを保存する場合は、次のように入力します。


    # /usr/sbin/dhcpconfig -C -r SUNWbinfiles -p /var/dhcp -k

    dhcpconfig ユーティリティーについての詳細は、dhcpconfig(1M) のマニュアルページを参照してください。

DHCP サーバー間での構成データの移動 (作業マップ)

DHCP マネージャと dhcpconfig ユーティリティーを使用すると、DHCP 構成データの一部またはすべてを、ある Oracle Solaris DHCP サーバーから別のサーバーに移動できます。その場合には、ネットワーク全体と、ネットワークに関連するすべてのアドレス、マクロ、およびオプションを移動できます。あるいは、特定の IP アドレス、マクロ、およびオプションだけを選択して移動することも可能です。さらに、マクロやオプションを元のサーバーから削除せずに、コピーだけを行うこともできます。

データを移動するのは、次のような場合です。

次の作業マップに、DHCP 構成データを移動する場合に実行する必要がある手順を示します。マップには、作業の実行手順へのリンクが含まれています。

作業 

説明 

説明 

1. 移動元のサーバーからデータをエクスポートします。 

移動先のサーバーに移動するデータを選択し、それをエクスポートしたデータのファイルを作成します。 

「DHCP サーバーからデータをエクスポートする方法 (DHCP マネージャ)」

「DHCP サーバーからデータをエクスポートする方法 (dhcpconfig -X)」

2. 移動先のサーバーにデータをインポートします。 

エクスポートしたデータを移動先の DHCP サーバーのデータストアにコピーします。 

「DHCP サーバーにデータをインポートする方法 (DHCP マネージャ)」

「DHCP サーバーにデータをインポートする方法 (dhcpconfig -I)」

3. インポートされたデータを新しいサーバー環境に合わせて変更します。 

サーバー固有の構成データを新しいサーバーの情報に一致するように変更します。 

「インポートした DHCP データを変更する方法 (DHCP マネージャ)」

「インポートした DHCP データを変更する方法 (pntadmdhtadm)」

DHCP マネージャでは、「データをエクスポート(Export Data)」ウィザードと「データをインポート(Import Data)」ウィザードを使用して、データをあるサーバーから別のサーバーに移動します。そして、そのあとに「マクロ (Macros)」タブでマクロを変更します。次に、「データをエクスポート (Export Data)」ウィザードと「データをインポート (Import Data)」ウィザードの初期ダイアログボックスを示します。

図 15–20 DHCP マネージャの「データをエクスポート (Export Data)」ウィザードダイアログボックス

ダイアログボックスには、データをファイルにエクスポートする手順が示されています。さらに、「(Do Not Export)」と「(Export)」という 2 つの領域にネットワークのリストが表示されています。リスト間には、左右の矢印ボタンが表示されています。

図 15–21 DHCP マネージャの「データをインポート (Import Data)」ウィザードダイアログボックス

ダイアログボックスには、データをファイルからインポートする手順が示されています。さらに、「(Import File)」フィールドと「(Overwrite existing data)」チェックボックスが表示されています。

ProcedureDHCP サーバーからデータをエクスポートする方法 (DHCP マネージャ)

  1. データの移動 (またはコピー) 元のサーバー上で、DHCP マネージャを起動します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「サービス (Service)」メニューから「データをエクスポート (Export Data)」を選択します。

    「データをエクスポート (Export Data)」ウィザードが表示されます。図 15–20 を参照してください。

  3. ウィザードの質問に答えます。

    質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、質問についての詳細な情報を見ることができます。

  4. エクスポートするデータが入ったファイルを、データをインポートする DHCP サーバーがアクセス可能なファイルシステムに移動します。

参照

データをインポートします (「DHCP サーバーにデータをインポートする方法 (DHCP マネージャ)」を参照)。

ProcedureDHCP サーバーからデータをエクスポートする方法 (dhcpconfig -X)

  1. データの移動 (またはコピー) 元のサーバーにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. データをエクスポートします。

    DHCP データ全体をエクスポートすることも、その特定部分だけをエクスポートすることもできます。

    • 特定のアドレスやマクロ、オプションをエクスポートする場合は、次の書式のコマンドを入力します。


      # dhcpconfig -X filename -a network-addresses -m macros -o options
      

      filename には、エクスポートするデータを圧縮して格納するための完全パス名を指定します。エクスポートするネットワークアドレスや DHCP マクロ、DHCP オプションは、コンマで区切って指定する必要があります。次の図は、特定のネットワーク、マクロ、オプションをエクスポートする例です。

      # dhcpconfig -X /var/dhcp/0dhcp1065_data \ -a 10.63.0.0,10.62.0.0 \ -m 10.63.0.0,10.62.0.0,SUNW.Sun-Blade-100 -o Sterm
      
    • DHCP データ全体をエクスポートする場合は、コマンドに ALL キーワードを指定します。


      # dhcpconfig -X filename -a ALL -m ALL -o ALL
      

      filename には、エクスポートするデータを圧縮して格納するための完全パス名を指定します。キーワード ALL をコマンドオプションとともに使用すれば、すべてのネットワークアドレス、マクロ、またはオプションをエクスポートできます。次の図は、ALL キーワードを使用した例です。

      # dhcpconfig -X /var/dhcp/dhcp1065_data -a ALL -m ALL -o ALL 
      

    ヒント –

    特定のタイプのデータをエクスポートから除外したい場合は、そのタイプ に対する dhcpconfig コマンドオプションを省略します。たとえば、-m オプションを指定しなければ、DHCP マクロはエクスポートされません。


    dhcpconfig コマンドについての詳細は、dhcpconfig(1M) のマニュアルページを参照してください。

  4. エクスポートするファイルを、そのデータをインポートするサーバーからアクセス可能な場所に移動します。

参照

データをインポートします (「DHCP サーバーにデータをインポートする方法 (dhcpconfig -I)」 を参照)。

ProcedureDHCP サーバーにデータをインポートする方法 (DHCP マネージャ)

  1. DHCP サーバーからエクスポートしたデータの移動先サーバーで DHCP マネージャを起動します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. 「サービス (Service)」から「データをインポート (Import Data)」を選択します。

    「データをインポート (Import Data)」ウィザードが表示されます。図 15–21 を参照してください。

  3. ウィザードの質問に答えます。

    質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、質問についての詳細な情報を見ることができます。

  4. 必要なら、インポートされたデータを変更します。

    詳細は、「インポートした DHCP データを変更する方法 (DHCP マネージャ)」を参照してください。

ProcedureDHCP サーバーにデータをインポートする方法 (dhcpconfig -I)

  1. データをインポートするサーバーにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. 次の書式のコマンドを入力してデータをインポートします。


    # dhcpconfig -I filename
    

    filename は、エクスポートされるデータを含むファイルの名前です。

  4. 必要なら、インポートされたデータを変更します。

    詳細は、「インポートした DHCP データを変更する方法 (pntadmdhtadm)」を参照してください。

Procedureインポートした DHCP データを変更する方法 (DHCP マネージャ)

  1. データをインポートしたサーバーで DHCP マネージャを起動します。

    「DHCP マネージャを起動および停止する方法」を参照してください。

  2. インポートしたデータを調べて、変更する必要があるネットワーク固有情報を見つけます。

    ネットワークを移動した場合は、「アドレス (Addresses)」タブを開いて、移動 (インポート) したネットワーク内にあるアドレスの所有サーバーを変更する必要があります。また、「マクロ (Macros)」タブを開いて、一部のマクロの中にある NIS、NIS+、または DNS のドメイン名を変更する必要があります。

  3. 「アドレス (Addresses)」タブを開いて、インポートしたネットワークを選択します。

  4. すべてのアドレスを選択するには、最初のアドレスをクリックして、Shift キーを押したまま、最後のアドレスをクリックします。

  5. 「編集 (Edit)」メニューから「属性 (Properties)」を選択します。

    「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。

  6. 「管理サーバー (Managing Server)」プロンプトで、新しいサーバーの名前を選択します。

  7. 「構成マクロ (Configuration Macro)」プロンプトで、当該ネットワーク上にあるすべてのクライアントに使用されるマクロを選択し、「了解 (OK)」をクリックします。

  8. 「マクロ (Macros)」タブを開きます。

  9. 「(Find)」ボタンを使って、値の変更が必要と思われるオプションを見つけます。

    「(Find)」ボタンはウィザードの下端にあります。

    新しいサーバー上で変更する必要がありそうなオプションには、DNSdmainDNSservNISservsNIS+servNISdmain などがあります。

  10. 該当するマクロのオプションを変更します。

    オプションの変更手順については、「DHCP オプションの属性を変更する方法 (DHCP マネージャ)」を参照してください。

Procedureインポートした DHCP データを変更する方法 (pntadmdhtadm)

  1. データをインポートしたサーバーにログインします。

  2. スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。

    DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. ネットワークテーブルを調べて、変更する必要があるデータを見つけます。

    ネットワークを移動した場合は、pntadm -P network-address コマンドを使用して、移動したネットワークのネットワークテーブルを出力します。

  4. pntadm コマンドを使って IP アドレス情報を変更します。

    インポートしたアドレス用の所有サーバーと構成マクロを変更する必要もあります。たとえば、アドレス 10.63.0.2 の所有サーバー (10.60.3.4) とマクロ (dhcpsrv-1060) を変更するには、次のコマンドを使用します。

    pntadm -M 10.63.0.2 -s 10.60.3.4 -m dhcpsrv-1060 10.60.0.0

    アドレスの数が多い場合は、個々のアドレスを変更する一連のコマンドを含むスクリプトファイルを作成します。pntadm -B コマンドでこのスクリプトを実行する と、pntadm がバッチモードで実行されます。詳細は、pntadm(1M) のマニュアルページを参照してください。

  5. dhcptab マクロを調べて、値を変更する必要があるオプションを見つけます。

    dhcptab テーブル全体を画面に表示する場合は、dhtadm -P コマンドを使用します。変更するオプションや値を検索する場合は、grep などのツールを使用します。

  6. マクロ中のオプションを変更する必要がある場合は、dhtadm -M コマンドを使って変更します。

    たとえば、マクロ中の NIS、NIS+、または DNS のドメイン名やサーバー名を変更する必要もあります。たとえば、次のコマンドは、マクロ mymacro 内にある DNSdmainDNSserv の値を変更します。

    dhtadm -M -m mymacro -e 'DNSserv=dnssrv2:DNSdmain=example.net' -g

第 16 章 DHCP クライアントの構成と管理

この章では、Oracle Solaris に含まれている動的ホスト構成プロトコル (DHCP) クライアントについて説明します。この章では、クライアントの DHCPv4 プロトコルおよび DHCPv6 プロトコルの機能と、クライアントの動作の変更方法について説明します。

一方のプロトコル DHCPv4 は、かなり以前から Oracle Solaris に含まれています。これを使用すると、DHCP サーバーは IPv4 ネットワークアドレスなどの構成パラメータを IPv4 ノードに渡すことができます。

もう一方のプロトコル DHCPv6 を使用すると、DHCP サーバーは IPv6 ネットワークアドレスなどの構成パラメータを IPv6 ノードに渡すことができます。DHCPv6 は、「IPv6 ステートレスアドレスの自動構成」(RFC 2462) に対応するステートフルアドレス版であり、構成パラメータを取得するためにステートレスアドレスとは別に使用することも同時に使用することもできます。

この章では、次の内容について説明します。

Oracle Solaris DHCP クライアントについて

Oracle Solaris DHCP クライアントは、Oracle Solaris の一部である dhcpagent デーモンです。Oracle Solaris をインストールしようとすると、DHCP を使ってネットワークインタフェースを構成するかどうかを確認するメッセージが表示されます。これに対して、DHCPv4 を使用するとして応答すると、Oracle Solaris のインストール中に、使用しているシステム上でそのプロトコルが使用可能になります。インストール時に DHCPv6 を特に指定するオプションはありません。ただし、IPv6 に関連する質問があります。IPv6 を有効にすると、DHCPv6 をサポートするローカルネットワーク上で DHCPv6 も有効になります。

DHCP を使用するために Oracle Solaris クライアントに対して必要な作業はこれだけです。DHCP サービスを使用する DHCP クライアントシステムにどのような情報が与えられるかは、DHCP サーバーの構成によります。

Oracle Solaris でクライアントシステムがすでに動作しており、DHCP を使用していない場合は、クライアントシステムを再構成すれば DHCP を使用できるようになります。さらに、DHCP クライアントシステムで DHCP の使用を止め、与えられた静的なネットワーク情報を使用したい場合にも、DHCP クライアントシステムを再構成できます。「Oracle Solaris DHCP クライアントを使用可能または使用不可にする」を参照してください。

DHCPv6 サーバー

Sun Microsystems は Oracle Solaris 用の DHCPv6 サーバーを提供していません。サードパーティーが提供しているサーバーには Sun の DHCPv6 との互換性があり、ネットワーク上に DHCPv6 サーバーが存在している場合、Sun の DHCPv6 クライアントはそれを使用します。

Sun の DHCPv4 サーバーについては、「Oracle Solaris DHCP サーバー」を参照してください。

DHCPv4 と DHCPv6 の相違点

DHCPv4 と DHCPv6 の主な相違点は次の 2 つです。

管理モデル

DHCPv4」では、クライアントを明示的に構成する必要があります。必要な場合はアドレス指定用の DHCPv4 システムを設定します。この設定は通常、システムを最初にインストールするときに行うか、ifconfig(1m) のオプションを使用して動的に行います。

DHCPv6」では、クライアントを明示的に構成する必要はありません。DHCP の使用はネットワークの属性であり、DHCP を使用する指示は、ローカルルーターからのルーター広告メッセージで伝送されます。DHCP クライアントは、必要に応じて論理インタフェースを自動的に作成したり破棄したりします。

DHCPv6 機構は、管理上、既存の IPv6 ステートレス (自動) アドレス構成によく似ています。ステートレスアドレス構成の場合は、ローカルルーターにフラグを設定することにより、一連の接頭辞に対して各クライアントが独自に自動的なアドレス生成を行うように指示します。このときクライアントは、通知された接頭辞に加え、ローカルインタフェースのトークンまたは乱数を使用します。DHCPv6 の場合は、同じ接頭辞が必要ですが、アドレスは「ランダムに」割り当てられるのではなく、DHCPv6 サーバーを介して取得され管理されます。

MAC アドレスとクライアント ID

DHCPv4」では、アドレスを割り当てるためのクライアントの識別に、MAC アドレスおよび任意でクライアント ID が使用されます。ネットワークに入るたびに、同じクライアントは可能であれば同じアドレスを取得します。

DHCPv6」でも基本的に同じスキーマが使用されますが、クライアント ID は必須になり、それに基づく構造が義務付けられます。DHCPv6 のクライアント ID は、次の 2 つの部分で構成されます。 DUID (DHCP Unique Identifier) と IAID (Identity Association Identifier) です。DUID は (DHCPv4 の場合のようにインタフェースだけを識別するのではなく) クライアントの「システム」を識別し、IAID はそのシステム上のインタフェースを識別します。

RFC 3315 で説明されているように、サーバーとクライアントはアイデンティティーアソシエーション (IA) を使用して、関連する一連の IPv6 アドレスの識別、グループ化、および管理を行います。クライアントは、そのネットワークインタフェースそれぞれに個別の IA を少なくとも 1 つ関連付けてから、割り当てた IA を使用して、そのインタフェースの構成情報をサーバーから取得する必要があります。IA の詳細については、次の「プロトコルの詳細」の節を参照してください。

DUID+IAID は DHCPv4 でも使用できます。これらを互いに一義的に連結して、クライアント ID として使用できます。互換性の理由から、これは通常の IPv4 インタフェースでは行われません。ただし、クライアント ID が構成されていない場合、論理インタフェース (hme0:1) には DUID+IAID が使用されます。

IPv4 DHCP とは異なり、DHCPv6 には「クライアント名」オプションがないため、DHCPv6 だけに基づく名前をシステムに付けることはできません。その代わり、DHCPv6 から提供されるアドレスに対応する DNS 名を知る必要がある場合は、DNS 逆解決 (getaddrinfo(3SOCKET) 関数によるアドレスからの名前照会) を使用します。したがって、DHCPv6 だけを使用している場合にノードに特定の名前を与えるには、システムに /etc/nodename を設定する必要があります。

プロトコルの詳細

DHCPv4 では、割り当てられたアドレスに使用すべきサブネットマスクは、DHCP サーバーによって指定されます。DHCPv6 では、サブネットマスク (「接頭辞長」とも呼ばれる) は DHCP サーバーによって制御されるのではなく、ルーター広告によって割り当てられます。

DHCPv4 には「ホスト名」オプションがあり、これを使用してシステム全体のノード名が設定されます。DHCPv6 にはそのようなオプションはありません。

DHCPv6 のクライアント ID を設定するには、システムで自動的に選択させる代わりに、DUID を指定する必要があります。この設定は、デーモンに対してグローバルに行うか、インタフェースごとに行うことができます。グローバルな DUID を設定するには、次の書式を使用します (先頭にドットを付ける)。

.v6.CLIENT_ID=<DUID>

特定のインタフェースが特定の DUID を使用するように設定して、システムが DHCPv6 サーバーに対して複数の独立したクライアントに見えるようにするには、次のように指定します。

hme0.v6.CLIENT ID=<DUID>

各アイデンティティーアソシエーション (IA) は、1 種類のアドレスを保持します。たとえば、一時アドレス用アイデンティティーアソシエーション (IA_TA) は一時アドレスを保持し、非一時アドレス用アイデンティティーアソシエーション (IA_NA) は割り当てられた永続的なアドレスを保持します。このマニュアルで説明する DHCPv6 のバージョンでは、IA_NA アソシエーションだけが提供されています。

Oracle Solaris は、要求に応じて各インタフェースに 1 つの IAID を割り当てます。この IAID はルートファイルシステム内のファイルに格納され、マシンの寿命にわたって保持されます。

論理インタフェース

DHCPv4 クライアントの論理インタフェースは、それぞれが独立した管理単位です。0 番目の論理インタフェース (デフォルトで識別子がインタフェースの MAC アドレスになる) に加え、ユーザーは特定の論理インタフェースを構成して DHCP を実行することができます。そのためには、dhcpagent 構成ファイルに CLIENT_ID を指定します。次に例を示します。

hme0:1.CLIENT_ID=orangutan

DHCPv6 の動作は異なります。IPv4 とは異なり、IPv6 インタフェースの 0 番目の論理インタフェースは常にリンクローカルです。リンクローカルは、DHCP サーバーなどのほかの割り当て方法が利用できない場合に、IP ネットワーク内のデバイスに IP アドレスを自動的に割り当てるために使用されます。0 番目の論理インタフェースは、DHCP の制御下に置くことはできません。そのため、DHCPv6 は 0 番目の論理インタフェース (「物理インタフェース」とも呼ばれる) 上で実行されるにもかかわらず、0 番目以外の論理インタフェースだけにアドレスを割り当てます。

DHCPv6 サーバーは、DHCPv6 クライアント要求に応答して、クライアントで設定すべきアドレスのリストを返します。

オプションのネゴシエーション

DHCPv6 には「オプション要求」オプションがあり、クライアントがどの情報を優先的に望んでいるかについて、サーバーにヒントを提供します。使用可能なすべてのオプションをサーバーからクライアントに送信すると、送信される情報が大量になり、クライアントに到達するまでにその一部をドロップする必要が生じる可能性があります。サーバーはヒントを使用して、応答に含めるオプションを選択することができます。あるいは、サーバーはヒントを無視し、ほかの項目を選択して含めることもできます。たとえば、Oracle Solaris の場合、優先するオプションには Oracle Solaris DNS アドレスドメインや NIS アドレスドメインなどが含まれる可能性がありますが、NetBIOS サーバーが含まれる可能性はわずかです。

同じ種類のヒントが DHCPv4 にも用意されていますが、この特別な「オプション要求」オプションはありません。代わりに、DHCPv4 では、/etc/default/dhcpagentPARAM_REQUEST_LIST が使用されます。

構成の構文

DHCPv6 クライアントを構成するには、既存の DHCPv4 クライアントの場合とほぼ同様に、/etc/default/dhcpagent を使用します。

構文は、インタフェース名 (存在する場合) と構成対象のパラメータの間に挿入される「.v6」マーカーで拡張されます。たとえば、グローバルな IPv4 オプション要求リストは、次のように設定されます。

PARAM_REQUEST_LIST=1,3,6,12,15,28,43

特定のインタフェースでホスト名オプションを省略するには、次のように設定します。

hme0.PARAM_REQUEST_LIST=1,3,6,15,28,43

DHCPv6 のグローバルな要求リストを設定する場合は、先頭にドットを付加します。

.v6.PARAM_REQUEST_LIST=23,24

特定のインタフェースを設定する場合は、次の例に従います。

hme0.v6.PARAM_REQUEST_LIST=21,22,23,24

参考として、DHCPv6 構成の実際の /etc/default/dhcpagent ファイルを次に示します。


# The default DHCPv6 parameter request list has preference (7), unicast (12),
# DNS addresses (23), DNS search list (24), NIS addresses (27), and
# NIS domain (29).  This may be changed by altering the following parameter- 
# value pair.  The numbers correspond to the values defined in RFC 3315 and 
# the IANA dhcpv6-parameters registry. 
.v6.PARAM_REQUEST_LIST=7,12,23,24,27,29

DHCP クライアントの起動

ほとんどの場合、DHCPv6 クライアントを起動するために操作は必要ありません。in.ndpd デーモンが必要に応じて DHCPv6 を自動的に起動します。ブート時に IPv6 用に plumb されるようにインタフェースを設定するには、/etc/hostname6.$IFNAME の変更が必要となる場合があります。ただし、インストール時にシステムで IPv6 を有効にした場合、これはインストーラによってすでに実行されています。

これに対し、DHCPv4 では、Oracle Solaris のインストール時にクライアントの起動を要求しなかった場合は、これを要求する必要があります。「Oracle Solaris DHCP クライアントを使用可能にする方法」を参照してください。

dhcpagent デーモンは、システムのブートに関与するほかのプロセスに必要な構成情報を取得します。そのため、システム起動スクリプトは、ブートプロセスの初期段階に dhcpagent を起動し、DHCP サーバーからネットワーク構成情報が到着するのを待ちます。

デフォルトでは DHCPv6 が実行されますが、DHCPv6 を実行しないように選択することもできます。DHCPv6 の実行開始後は、ifconfig コマンドで停止することができます。/etc/inet/ndpd.conf ファイルを変更して DHCPv6 を無効にし、リブート時に DHCPv6 が起動しないようにすることもできます。

たとえば、hme0 という名前のインタフェースで DHCPv6 をただちに停止するには、次の手順に従います。


ex# echo ifdefault StatefulAddrConf false >> /etc/inet/ndpd.conf  
ex# pkill -HUP -x in.ndpd   
ex# ifconfig hme0 inet6 dhcp release

/etc/dhcp.interface ファイル (たとえば、Sun Fire 880 システム上の /etc/dhcp.ce0) が存在していると、起動スクリプトは、指定されたインタフェース上で DHCPv4 が使用されるものとみなします。起動スクリプトは、dhcp.interface ファイルを見つけると、dhcpagent を起動します。

起動された dhcpagent は、ネットワークインタフェースの構成を行う指示を受信するまで待機します。そのあと、起動スクリプトは、ifconfig interface dhcp start コマンドを発行して、dhcpagent に DHCPv4 の起動を指示します (「DHCP の動作」を参照)。dhcp.interface ファイルにコマンドが含まれている場合は、それらのコマンドが ifconfigdhcp start オプションに付加されます。ifconfig interface dhcp コマンドのオプションについては、ifconfig(1m) のマニュアルページを参照してください。

DHCPv6 通信

DHCPv4 は手動構成によって起動されるのに対し、DHCPv6 はルーター広告 (RA) によって起動されます。ルーターの構成に応じて、システムはルーター広告メッセージが受信されたインタフェースで DHCPv6 を自動的に起動し、DHCP を使用してアドレスとほかのパラメータを取得するか、DHCPv6 でアドレス以外のデータ (DNS サーバーなど) だけを要求します。

in.ndpd デーモンはルーター広告メッセージを受信します。これは、システムで IPv6 用に plumb されているすべてのインタフェースで、自動的に実行されます。in.ndpd は、DHCPv6 を実行するように指定する RA を検出すると、DHCPv6 を起動します。

in.ndpd が DHCPv6 を起動しないようにするには、/etc/inet/ndpd.conf ファイルを変更します。

次のいずれかの ifconfig コマンドを使用して、DHCPv6 の起動後に DHCPv6 を停止することもできます。

ifconfig <interface> inet6 dhcp drop

または

ifconfig <interface> inet6 dhcp release

DHCP クライアントプロトコルはネットワーク構成情報をどのように管理するか

DHCPv4 クライアントプロトコルと DHCPv6 クライアントプロトコルでは、ネットワーク構成情報の管理方法が異なります。主な相違点は、DHCPv4 では単一のアドレスのリースとそれに関連するいくつかのオプションのためにネゴシエーションが行われ、DHCPv6 では一連のアドレスとオプションに対して一括でネゴシエーションが行われることです。

DHCPv4 クライアントとサーバー間の対話の概要については、第 12 章Oracle Solaris DHCP について (概要)を参照してください。

DHCPv4 クライアントはネットワーク構成情報をどのように管理するか

DHCP サーバーから情報パケットを取得すると、dhcpagent はネットワークインタフェースを構成し、使用可能にします。デーモンは、そのインタフェースを IP アドレスのリース期間が終わるまで制御し、その構成データを内部テーブルに保持します。システム起動スクリプトは dhcpinfo コマンドを使用して内部テーブルから構成オプションの値を抽出します。それらの値は、システムを構成し、システムがネットワーク上で通信できるようにするために使用されます。

dhcpagent デーモンは、一定時間 (通常はリース期間の半分) が過ぎるまで何もせずに待機します。この時間が過ぎると、デーモンは、リースの延長を DHCP サーバーに要求します。dhcpagent デーモンは、インタフェースが停止していたり、IP アドレスが変更されていることをシステムから通知されると、ifconfig コマンドから指示があるまでそのインタフェースの制御を行いません。また、dhcpagent は、インタフェースが適切に動作し、IP アドレスが変更されていないことを検出すると、リースの更新要求をサーバーに送信します。リースを更新できない場合、dhcpagent はリース期間の満了時にそのインタフェースを停止します。

dhcpagent は、リースに関連する活動を行うたびに、/etc/dhcp/eventhook という実行可能ファイルを探します。この名前の実行可能ファイルが見つかると、dhcpagent はこのファイルを起動します。イベント実行可能ファイルの使用については、「DHCP クライアントのイベントスクリプト」を参照してください。

DHCPv6 クライアントはネットワーク構成情報をどのように管理するか

クライアントとサーバーの間の DHCPv6 通信は、クライアントがサーバーを見つけるために要請メッセージを送信することによって開始されます。応答として、DHCP サービスに使用可能なすべてのサーバーが通知メッセージを送信します。サーバーのメッセージには、複数の IA_NA (非一時アドレス用アイデンティティーアソシエーション) レコードに加え、サーバーが提供できるほかのオプション (DNS サーバーアドレスなど) が含まれています。

クライアントは、独自の IA_NA/IAADDR レコードを要求メッセージに設定することにより、特定のアドレス (またはその複数) を要求できます。通常、クライアントが特定のアドレスを要求するのは、古いアドレスが記録されており、可能な限り同じアドレスがサーバーから提供されることを望む場合です。クライアントの動作にかかわらず (クライアントがまったくアドレスを要求しない場合でも)、サーバーは 1 つの DHCPv6 トランザクション用に任意の数のアドレスをクライアントに提供することができます。

クライアントとサーバーの間で行われるメッセージのやり取りは次のとおりです。

通知メッセージ内の優先値が 255 であれば、DHCPv6 クライアントはただちにそのサーバーを選択します。もっとも優先値の高いサーバーが応答しない場合や要求メッセージに正常な応答を返すことができない場合、クライアントは、取得済みの通知メッセージの中で優先値の高いものから順にサーバーを検索します。すべての通知メッセージの検索が終わると、クライアントは再び要請メッセージを送信して処理を繰り返します。

選択されたサーバーは、要請メッセージまたは要求メッセージへの応答として、割り当てるアドレスと構成パラメータを含む応答メッセージを送信します。

DHCP クライアントのシャットダウン

クライアントはシャットダウン時に、クライアントにアドレスを割り当てたサーバーに解放メッセージを送信して、割り当てられたアドレスの 1 つ以上を使用しなくなることを示します。DHCPv4 クライアントシステムが正常にシャットダウンされた場合、dhcpagent は現在の構成情報を /etc/dhcp/interface.dhc ファイルに書き込みます。DHCPv6 の場合は、/etc/dhcp/interface.dh6 ファイルに書き込みます。デフォルトでは、リースは解放されずに保存されるため、IP アドレスが使用されなくなったことが DHCP サーバーにはわかりません。そのため、クライアントは次のブート時にそのアドレスを簡単に再取得できます。このデフォルトの動作は、ifconfig <interface> dhcp drop コマンドと同じです。

システムの再起動時にそのファイル内のリースが依然として有効であると、dhcpagent は、同じ IP アドレスとネットワーク構成情報を使用する (短縮形の) 要求を送信します。DHCPv4 の場合、これは要求メッセージです。DHCPv6 の場合、これは確認メッセージです。

DHCP サーバーがこれを許可した場合、dhcpagent はシステムのシャットダウン時にディスクに書き込んだ情報を使用できます。クライアントがこの情報を使用することをサーバーが許可しなかった場合、dhcpagent は DHCP プロトコルシーケンスを開始します (「DHCP の動作」を参照)。その結果、クライアントは、新しいネットワーク構成情報を取得します。

Oracle Solaris DHCP クライアントを使用可能または使用不可にする

Oracle Solaris はすでに動作している、DHCP がまだ使用されていないサーバーで DHCP クライアントを使用可能にするためには、まず、システムを構成解除する必要があります。システムが起動されたら、ある一連のコマンドを実行してシステムを設定し、DHCP クライアントを使用可能にします。


注 –

多くの配備では、インフラストラクチャーの重要な部分には DHCP を使用せずに静的 IP アドレスを設定することが一般的です。ネットワーク上のルーターや特定のサーバーなど、クライアントになるべきデバイスとそうでないデバイスの判定については、このマニュアルでは説明しません。


ProcedureOracle Solaris DHCP クライアントを使用可能にする方法

この手順が必要なのは、Oracle Solaris のインストール時に DHCPv4 が使用可能にされていない場合だけです。DHCPv6 の場合、この手順は不要です。

  1. クライアントシステムでスーパーユーザーになります。

  2. このシステムで事前構成 (対話型構成ではなく) を使用している場合は、sysidcfg ファイルを編集します。そして、sysidcfg ファイル内の network_interface キーワードに dhcp サブキーを追加します。

    たとえば、network_interface=hme0 {dhcp} のように指定します。詳細は、sysidcfg(4) のマニュアルページを参照してください。

  3. システムを構成解除し、シャットダウンします。


    # sys-unconfig
    

    このコマンドで削除される構成情報についての詳細は、sys-unconfig(1m) のマニュアルページを参照してください。

  4. シャットダウンが完了したら、システムを再起動します。

    事前構成を使用している場合、システムは起動時に、sysidcfg ファイルの dhcp サブキーによって、DHCP クライアントを使用するように構成されます。

    事前構成を使用していない場合には、システムの再起動時に、システム構成情報の入力を sysidtool プログラムから求められます。詳細は、sysidtool(1M) のマニュアルページを参照してください。

  5. DHCP を使用してネットワークインタフェースを構成するようにプロンプトが表示されたら、Yes を選択します。

ProcedureOracle Solaris DHCP クライアントを使用不可にする方法

  1. クライアントシステムでスーパーユーザーになります。

  2. sysidcfg ファイルを使用してシステムを事前構成した場合には、dhcp サブキーを network_interface キーワードから削除します。

  3. システムを構成解除し、シャットダウンします。


    # sys-unconfig
    

    このコマンドで削除される構成情報についての詳細は、sys-unconfig(1m) のマニュアルページを参照してください。

  4. シャットダウンが完了したら、システムを再起動します。

    システムで事前構成を使用している場合には、構成情報を求めるメッセージは表示されず、DHCP クライアントは構成されません。

    事前構成を使用していない場合には、システムの再起動時に、システム構成情報の入力を sysidtool プログラムから求められます。詳細は、sysidtool(1M) のマニュアルページを参照してください。

  5. DHCP を使用してネットワークインタフェースを構成するように要求するプロンプトが表示されたら、No を選択します。

DHCP クライアント管理

通常のシステムオペレーションのもとでは、Oracle Solaris DHCP クライアントソフトウェアの操作は必要ありません。dhcpagent デーモンはシステムブート時に自動的に起動し、リースについてサーバーとネゴシエーションを行い、シャットダウン時に停止します。dhcpagent デーモンを手動で直接、起動または停止しないようにしてください。代わりに、クライアントシステム上のスーパーユーザーであれば、必要に応じて ifconfig コマンドを使い、dhcpagent によるネットワークインタフェースの管理を変更できます。

DHCP クライアントで使用する ifconfig コマンドオプション

この節では、ifconfig(1m) のマニュアルページに記載されているコマンドオプションについてまとめます。これらのコマンドの DHCPv4 バージョンと DHCPv6 バージョンでは、「inet6」キーワードだけが異なります。DHCPv6 の場合は「inet6」キーワードを使用し、DHCPv4 の場合は省略してください。

ifconfig コマンドでは、次のことができます。

DHCP クライアント構成パラメータの設定

クライアントシステムの /etc/default/dhcpagent ファイルには、dhcpagent に対する調整可能パラメータが含まれています。テキストエディタを使用して、クライアントの動作に影響を与えるパラメータを変更できます。/etc/default/dhcpagent ファイルには十分な説明が記載されていますので、詳細については、dhcpagent(1M) のマニュアルページだけでなく、このファイルも参照してください。

/etc/dhcp.interface ファイルは、DHCP クライアントに影響を及ぼすパラメータの設定が行われるもう 1 つの場所です。このファイルで設定されたパラメータは、システム起動スクリプトの ifconfig コマンドによって使用されます。ただし、これは DHCPv4 にのみ当てはまります。DHCPv6 には、これに相当するものはありません。

デフォルトで、DHCP クライアントは次のように構成されます。

DHCPv4 の場合

DHCPv4 および DHCPv6 の場合

複数のネットワークインタフェースを備えた DHCP クライアントシステム

DHCP クライアントは、同じシステムにあるいくつかの異なるインタフェースを同時に管理できます。インタフェースは、物理インタフェースでも論理インタフェースでもかまいません。個々のインタフェースは、独自の IP アドレスとリース時間をもっています。複数のネットワークインタフェースが DHCP 用に構成されていると、クライアントは個別の要求を出してそれらのインタフェースを構成します。クライアントは、インタフェースごとに別々のネットワーク構成パラメータ群を維持します。パラメータは別々に格納されますが、パラメータの中にはその性質上、広域的なものがあります。グローバルパラメータは、システム全体 (特定のネットワークインタフェースではなく) に適用されます。

グローバルパラメータには、ホスト名、NIS ドメイン名、時間帯などがあります。通常、グローバルパラメータの値はインタフェースごとに異なります。ただし、各システムに関連付けられたグローバルパラメータには、それぞれ 1 つの値だけを使用できます。グローバルパラメータの問い合わせに対して応答が 1 つだけ返されるようにするために、一次ネットワークインタフェース用のパラメータだけが使用されます。一次インタフェースとして扱うインタフェースについては、そのインタフェースの /etc/dhcp.interface ファイルに primary という文字を挿入できます。primary というキーワードが使用されていないと、英字順で見た最初のインタフェースが一次インタフェースとみなされます。

DHCP クライアントは、論理インタフェースの場合も、物理インタフェースの場合も、そのリースを同じように管理します。ただし、論理インタフェースの場合は、次の制限があります。

DHCPv4 クライアントのホスト名

デフォルトでは、Oracle Solaris DHCPv4 クライアントは、それ自身のホスト名を提供しません。DHCP サーバーがホスト名を提供するとみなすからです。デフォルトでは、Oracle Solaris DHCPv4 サーバーは、DHCPv4 クライアントにホスト名を提供するように構成されています。Oracle Solaris DHCPv4 クライアントとサーバーを同時に使用する場合には、2 つのデフォルトが有効に機能します。しかし、Oracle Solaris DHCPv4 クライアントと Sun 以外の DHCP サーバーを使用する場合には、ホスト名がサーバーからクライアントに提供されないことがあります。ホスト名が DHCP を通して Oracle Solaris DHCP クライアントに提供されない場合、クライアントシステムは、ホスト名として使用する名前を /etc/nodename ファイルに求めます。ホスト名がファイルにない場合は、unknown に設定されます。

DHCP サーバーが DHCP Hostname オプションで名前を提供している場合には、/etc/nodename ファイルの値が異なっていても、このホスト名が使用されます。クライアントで特定のホスト名を使用する場合は、その名前をクライアントから要求できます。そのための手順は次のとおりです。


注 –

次の手順は、すべての DHCP サーバーで機能するとは限りません。この手順では、クライアントに対し、特定のホスト名を DHCP サーバーに送信して同じ名前を応答で受け取るように指示します。

ただし、DHCP サーバーはこの要求を尊重する必要はないため、尊重しないことがあります。その場合は、単に別の名前を返します。


Procedure特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法

  1. クライアントシステム上で、スーパーユーザーとして /etc/default/dhcpagent ファイルを編集します。

  2. /etc/default/dhcpagent ファイルで REQUEST_HOSTNAME キーワードを見つけ、次のように変更します。


    REQUEST_HOSTNAME=yes

    REQUEST_HOSTNAME の前にコメント符号 (#) がある場合は、# を削除します。REQUEST_HOSTNAME キーワードがない場合は、これを挿入します。

  3. クライアントシステム上で /etc/hostname.interface ファイルを編集して、次の行を追加します。

    inet hostname
    

    hostname には、クライアントで使用する名前を指定します。

  4. 次のコマンドを入力し、クライアントは再起動時に完全な DHCP ネゴシエーションを実行します。


    # ifconfig interface dhcp release
    # reboot
    

    クライアントにキャッシュされている DHCP データは削除されます。クライアントは、プロトコルを再開して、新しい構成情報 (新しいホスト名を含む) を要求します。DHCP サーバーは、そのホスト名がネットワークの別のシステムで使用されていないか確認してから、それをクライアントに割り当てます。DHCP サーバーは、ネームサービスの情報をクライアントのホスト名で更新できます。ただし、そのためには、DHCP サーバーがそのように構成されていなければなりません。

    このホスト名をあとで変更する場合は、手順 3 から手順 4 までを繰り返します

DHCP クライアントシステムとネームサービス

Oracle Solaris システムでは、ネームサービスとして、DNS、NIS、NIS+、およびローカルファイルストア (/etc/inet/hosts) がサポートされます。これらのネームサービスを使用するためには、ある程度の事前構成が必要です。使用するネームサービスを指定するために、ネームサービススイッチ構成ファイル (nsswitch.conf(4) を参照) も正しく設定してください。

ネームサービスのクライアントとしてシステムを構成しないと、DHCP クライアントシステムでネームサービスを使用することはできません。デフォルトでは、システムのインストール時に異なる構成を指定しないかぎり、ローカルファイルだけが使用されます。

次の表は、DHCP に関連する考慮事項をネームサービスごとに要約したものです。表には、クライアントの設定に役立つ情報へのリンクが含まれています。

表 16–1 DHCP クライアントシステムに対するネームサービスクライアント設定情報

ネームサービス  

クライアント設定情報 

NIS 

Oracle Solaris DHCP を使って Oracle Solaris ネットワークインストール情報をクライアントシステムに送信する場合には、NISservsNISdmain オプションを含む構成マクロを使用できます。これらのオプションは、NIS サーバーの IP アドレスと、NIS ドメイン名をクライアントに渡すためのものです。これによって、クライアントは自動的に NIS クライアントになります。

DHCP クライアントシステムで Oracle Solaris がすでに動作している場合、DHCP サーバーが NIS 情報をクライアントに送信しても、クライアントシステムが自動的に NIS クライアントとして構成されるわけではありません。 

DHCP クライアントシステムに NIS 情報を送信するように DHCP サーバーが構成されている場合には、クライアントで次の dhcpinfo コマンドを実行すれば、クライアントに渡された値を表示することができます。

# /sbin/dhcpinfo NISdmain

# /sbin/dhcpinfo NISservs


注 –

DHCPv6 の場合は、コマンドに -v6 および異なるプロトコルキーワードを含めます。

# /sbin/dhcpinfo -v6 NISDomain

# /sbin/dhcpinfo -v6 NISServers


NIS ドメイン名と NIS サーバーの値は、システムを NIS クライアントとして構成するときに使用します。 

Oracle Solaris DHCP クライアントシステム用の NIS クライアントを標準的な方法で設定します (『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の第 5 章「NIS サービスの設定と構成」を参照)。


ヒント –

スクリプトを作成すれば、dhcpinfoypinit を使って、DHCP クライアントシステムにおける NIS クライアントの構成を自動的に行うことができます。


NIS+ 

DHCP クライアントシステム用の NIS+ クライアントを従来の方法で設定した場合は、DHCP サーバーからクライアントに毎回異なるアドレスが割り当てられることがあります。NIS+ のセキュリティーには構成の一部として IP アドレスが含まれているため、これによってセキュリティーの問題が発生します。クライアントが毎回同じアドレスを確実に取得できるようにするには、DHCP クライアントシステム用の NIS+ クライアントを標準でない方法で設定します。その方法については、「NIS+ クライアントとしての DHCP クライアントの設定」を参照してください。

DHCP クライアントシステムに手動で IP アドレスがすでに割り当てられている場合には、クライアントのアドレスは常に同じです。NIS+ クライアントは標準的な方法で設定できます (『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』「NIS+ クライアントマシンの設定」を参照)。

/etc/inet/hosts

ネームサービスとして /etc/inet/hosts を使用する DHCP クライアントシステムには、/etc/inet/hosts ファイルを設定します。

DHCP クライアントシステム自身の /etc/inet/hosts ファイルには、そのホスト名が DHCP ツールによって追加されます。ただし、同じネットワークにあるほかのシステムの /etc/inet/hosts ファイルには、このホスト名を手動で追加する必要があります。さらに、DHCP サーバーシステムが名前を解決するために /etc/inet/hosts を使用する場合は、このシステムにもクライアントのホスト名を手動で追加する必要があります。

DNS 

DHCP クライアントシステムが DNS ドメイン名を DHCP から取得する場合には、クライアントシステムの /etc/resolv.conf ファイルは自動的に構成されます。さらに、/etc/nsswitch.conf ファイルも自動的に更新され、検索順序でほかのネームサービスより後ろにある hosts 行に dns が付加されます。DNS の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

NIS+ クライアントとしての DHCP クライアントの設定

DHCP クライアントである Oracle Solaris システムで NIS+ ネームサービスを使用できます。ただし、DHCP サーバーが毎回異なるアドレスを提供する可能性があると、NIS+ のセキュリティー強化機能の 1 つである Data Encryption Standard (DES) 資格の作成が部分的に省略されます。セキュリティーのためには、常に同じアドレスを提供するように DHCP サーバーを構成してください。つまり、DHCP を使用しない NIS+ クライアントを設定する際に、クライアント固有の DES 資格を NIS+ サーバーに追加します。nisclient スクリプトや nisaddcred コマンドを使用するなど、資格を作成する方法はいくつかあります。

NIS+ 資格を生成するためには、クライアントが静的なホスト名をもち、資格の作成と格納ができなければなりません。NIS+ と DHCP を使用するクライアントを設定するときは、すべての DHCP クライアントのホスト名に使用できる同一の資格を作成する必要があります。この方法では、DHCP クライアントがどのような IP アドレスと、関連するホスト名を受け取っても、同じ DES 資格を使用できます。

次に、すべての DHCP ホスト名に使用できる同一の資格を作成する方法を示します。この手順は、DHCP クライアントで使用されるホスト名が分かる場合にのみ使用できます。たとえば、DHCP サーバーがそれらのホスト名を生成する場合、クライアントが受け取る可能性のあるホスト名が分かります。

ProcedureNIS+ クライアントとして Oracle Solaris DHCP クライアントを設定する方法

NIS+ クライアントになる DHCP クライアントシステムは、NIS+ ドメイン内にある別の NIS+ クライアントシステムに属する資格を使用する必要があります。この手順では、当該システムのみの資格が生成され、その資格は当該システムにログインしたスーパーユーザーだけに適用されます。DHCP クライアントシステムにログインするほかのユーザーには、NIS+ サーバー内で固有の独自の資格が必要です。これらの資格は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』に示されている手順に従って作成されます。

  1. NIS+ サーバーで次のコマンドを入力して、クライアントの資格を作成します。


    # nisgrep nisplus-client-name cred.org_dir > /tmp/file
    

    このコマンドは、NIS+ クライアント用の cred.org_dir テーブルエントリを一時ファイルに書き込みます。

  2. cat コマンドで一時ファイルの内容を表示します。

    あるいは、テキストエディターを使用します。

  3. DHCP クライアント用に使用する資格をコピーします。

    公開鍵と非公開鍵をコピーする必要があります。両者とも、コロンで区切られた数字と文字からなる長い文字列です。この情報は、次のステップでコマンドに貼り付けられます。

  4. 次のコマンドを入力して DHCP クライアント用の資格を追加します。


    # nistbladm -a cname=" dhcp-client-name@nisplus-domain" auth_type=DES \
    auth_name="unix.dhcp-client-name@nisplus-domain" \
    public_data=copied-public-key \ 
    private_data=copied-private-key
    

    copied-public-key には、一時ファイルからコピーした公開鍵情報を貼り付けます。copied-private-key には、一時ファイルからコピーした非公開鍵情報を貼り付けます。

  5. DHCP クライアントシステムで次のコマンドを入力して、NIS+ クライアントシステムから DHCP クライアントシステムにファイルをリモートコピーします。


    # rcp nisplus-client-name:/var/nis/NIS_COLD_START /var/nis
    # rcp nisplus-client-name:/etc/.rootkey /etc
    # rcp nisplus-client-name:/etc/defaultdomain /etc
    

    「permission denied (アクセスが拒否された)」というメッセージを受信した場合、システムはリモートコピーを許可するように設定されていない可能性があります。この場合には、通常のユーザーとしてこれらのファイルを中間の場所にコピーします。次に、スーパーユーザーとして、中間の場所にあるファイルを DHCP クライアントシステムの適切な場所にコピーします。

  6. DHCP クライアントシステムで次のコマンドを入力して、NIS+ 用の適切なネームサービススイッチファイルをコピーします。


    # cp /etc/nsswitch.nisplus /etc/nsswitch.conf
    
  7. DHCP クライアントシステムを再起動します。

    これで、DHCP クライアントシステムは NIS+ サービスを使用できます。


例 16–1 Oracle Solaris DHCP クライアントシステムを NIS+ クライアントとして設定

次の例では、nisei というシステムがあります。これは、NIS+ ドメイン dev.example.net の NIS+ クライアントです。さらに、dhow という DHCP クライアントシステムがあります。この例では dhow を NIS+ クライアントとして設定します。


(First log in as superuser on the NIS+ server)
# nisgrep nisei cred.org_dir > /tmp/nisei-cred
# cat /tmp/nisei-cred
nisei.dev.example.net.:DES:unix.nisei@dev.example.net:46199279911a84045b8e0
c76822179138173a20edbd8eab4:90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830
c05bc1c724b
# nistbladm -a cname="dhow@dev.example.net." \
auth_type=DES auth_name="unix.dhow@dev.example.net" \
public_data=46199279911a84045b8e0c76822179138173a20edbd8eab4 \
private_data=90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830\
c05bc1c724b
# rlogin dhow
(Log in as superuser on dhow)
# rcp nisei:/var/nis/NIS_COLD_START /var/nis
# rcp nisei:/etc/.rootkey /etc
# rcp nisei:/etc/defaultdomain /etc
# cp /etc/nsswitch.nisplus /etc/nsswitch.conf
# reboot

これで、DHCP クライアントシステム dhow は NIS+ サービスを使用できます。



例 16–2 スクリプトによる資格の追加

多数の DHCP クライアントシステムを NIS+ クライアントとして設定する場合は、スクリプトを作成できます。スクリプトを使えば、cred.org_dir NIS+ テーブルのエントリをすばやく追加できます。次に、サンプルスクリプトを示します。


#! /usr/bin/ksh  
# 
# Copyright (c) by Sun Microsystems, Inc. All rights reserved. 
# 
# Sample script for cloning a credential. Hosts file is already populated  
# with entries of the form dhcp-[0-9][0-9][0-9]. The entry we're cloning 
# is dhcp-001. 
#  
#  
PUBLIC_DATA=6e72878d8dc095a8b5aea951733d6ea91b4ec59e136bd3b3 
PRIVATE_DATA=3a86729b685e2b2320cd7e26d4f1519ee070a60620a93e48a8682c5031058df4
HOST="dhcp-" 
DOMAIN="mydomain.example.com"  
 
for 
i in 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019
do         
     print - ${HOST}${i}         
     #nistbladm -r [cname="${HOST}${i}.${DOMAIN}."]cred.org_dir         
     nistbladm -a cname="${HOST}${i}.${DOMAIN}." \
         auth_type=DES auth_name="unix.${HOST}${i}@${DOMAIN}" \
         public_data=${PUBLIC_DATA} private_data=${PRIVATE_DTA} cred.org_Dir
done  
 
exit 0

DHCP クライアントのイベントスクリプト

Oracle Solaris DHCP クライアントを適切に設定すれば、実行可能なプログラムやスクリプトを実行して、クライアントシステムに必要な任意のアクションを行うことができます。「イベントスクリプト」と呼ばれるこのプログラムやスクリプトは、一定の DHCP リースイベントが発生すると自動的に実行されます。イベントスクリプトを使用すれば、特定のリースイベントに応じてほかのコマンドやプログラム、スクリプトを実行できます。この機能を使用するためには、独自のイベントスクリプトを作成する必要があります。

dhcpagent では、DHCP リースイベントを表すために次のイベントキーワードが使用されます。

イベントキーワード

備考欄

BOUNDBOUND6

インタフェースが DHCP 用に構成されました。クライアントは、DHCP サーバーから肯定メッセージ (DHCPv4 ACK) または (DHCPv6 Reply) を受け取り、IP アドレスに対するリース要求を認められます。このイベントスクリプトは、インタフェースの構成が正常に終わると直ちに呼び出されます。

EXTENDEXTEND6

クライアントによるリースの延長が成功しました。このイベントスクリプトは、クライアントが更新要求に対する肯定メッセージを DHCP サーバーから受け取ると直ちに呼び出されます。

EXPIREEXPIRE6

リース時間が終了すると、リースが期限切れになります。DHCPv4 の場合、このイベントスクリプトは、リースされたアドレスがインタフェースから削除され、インタフェースが停止状態にされる直前に呼び出されます。DHCPv6 の場合、このイベントスクリプトは、最後に残っているリースされたアドレスがインタフェースから削除される直前に呼び出されます。

DROPDROP6

クライアントがインタフェースを DHCP 制御下から削除する目的でリースを中断しました。このイベントスクリプトは、インタフェースが DHCP 制御から削除される直前に呼び出されます。

RELEASERELEASE6

クライアントが IP アドレスを解放します。このイベントスクリプトは、クライアントがインタフェース上のアドレスを解放し、DHCPv4 RELEASE または DHCPv6 Release パケットを DHCP サーバーに送信する直前に呼び出されます。

INFORM INFORM6

インタフェースは、DHCPv4 INFORM または DHCPv6 Information-Request メッセージを使用して、新しい構成情報または更新された構成情報を DHCP サーバーから取得します。これらのイベントは、DHCP クライアントがサーバーから構成パラメータだけを取得し、IP アドレスリースを取得しない場合に発生します。

LOSS6

リースが期限切れになったとき、有効なリースが 1 つ以上残っている場合は、期限切れのアドレスが削除される直前にこのイベントスクリプトが呼び出されます。削除されるアドレスは IFF_DEPRECATED フラグでマークされます。

これらのイベントが発生するたびに、dhcpagent は次のコマンドを呼び出します。


/etc/dhcp/eventhook interface event

ここで interface は DHCP を使用しているインタフェースを、event は前述のイベントキーワードの 1 つをそれぞれ表します。たとえば、最初に ce0 インタフェースを DHCP 用に構成すると、dhcpagent は、イベントスクリプトを次のように呼び出します。


/etc/dhcp/eventhook ce0 BOUND

イベントスクリプト機能を使用するためには、次のことを行う必要があります。

イベントスクリプトは、そのプログラム環境を dhcpagent から継承し、root 特権で実行します。スクリプトでは、必要に応じて、dhcpinfo ユーティリティーを使ってより詳しいインタフェースの情報を取得できます。詳細は、dhcpinfo(1) のマニュアルページを参照してください。

dhcpagent デーモンは、イベントスクリプトがすべてのイベントに対して終了するまで待ちます。55 秒経ってもイベントスクリプトが終了しないと、dhcpagentSIGTERM シグナルをスクリプトプロセスに送信します。さらに、追加の 3 秒が過ぎてもプロセスが終了しないと、デーモンは SIGKILL シグナルを送信してプロセスを強制的に終了させます。

dhcpagent(1M) のマニュアルページにイベントスクリプトの一例が示されています。

例 16–3 は、DHCP イベントスクリプトを使って /etc/resolv.conf ファイルの内容を最新の状態に保つ方法を示しています。BOUNDEXTEND イベントが発生すると、スクリプトは、ドメインサーバーとネームサーバーの名前を変更します。 EXPIREDROPRELEASE イベントが発生すると、スクリプトは、ドメインサーバーとネームサーバーの名前をファイルから削除します。


注 –

このスクリプト例では、DHCP が、ドメインサーバー名およびネームサーバー名の正式な情報源であることを想定しています。さらに、DHCP 制御下のすべてのインタフェースが、一貫性のある最新の情報を返すことを想定しています。これらの前提は、実際のシステムの条件と一致しない場合があります。



例 16–3 /etc/resolv.conf ファイルを更新するイベントスクリプト

#!/bin/ksh -p

PATH=/bin:/sbin export PATH
umask 0222

# Refresh the domain and name servers on /etc/resolv.conf

insert ()
{
	dnsservers=`dhcpinfo -i $1 DNSserv`
	if [ -n "$dnsservers" ]; then
		# remove the old domain and name servers
		if [ -f /etc/resolv.conf ]; then
			rm -f /tmp/resolv.conf.$$
			sed -e '/^domain/d' -e '/^nameserver/d' \
			    /etc/resolv.conf > /tmp/resolv.conf.$$
		fi

		# add the new domain
		dnsdomain=`dhcpinfo -i $1 DNSdmain`
		if [ -n "$dnsdomain" ]; then
			echo "domain $dnsdomain" >> /tmp/resolv.conf.$$
		fi

		# add new name servers
		for name in $dnsservers; do
			echo nameserver $name >> /tmp/resolv.conf.$$
		done
		mv -f /tmp/resolv.conf.$$ /etc/resolv.conf
	fi
}

# Remove the domain and name servers from /etc/resolv.conf

remove ()
{
	if [ -f /etc/resolv.conf ]; then
		rm -f /tmp/resolv.conf.$$
		sed -e '/^domain/d' -e '/^nameserver/d' \
		    /etc/resolv.conf > /tmp/resolv.conf.$$
		mv -f /tmp/resolv.conf.$$ /etc/resolv.conf
	fi
}

case $2 in
BOUND | EXTEND)
	insert $1
	exit 0
	;;
EXPIRE | DROP | RELEASE)
	remove
	exit 0
	;;
*)
	exit 0
	;;
esac

第 17 章 DHCP の障害追跡 (リファレンス)

この章では、DHCP サーバーまたは DHCP クライアントを構成する際に発生する可能性がある問題点の解決に役立つ情報を提供します。さらに、構成が完了したあとで DHCP を使用しているときに起こる問題とその解決方法についても説明します。

この章の内容は次のとおりです。

DHCP サーバーの構成については、第 14 章DHCP サービスの構成 (手順)を参照してください。DHCP クライアントの構成については、「Oracle Solaris DHCP クライアントを使用可能または使用不可にする」を参照してください。

DHCP サーバーの問題の障害追跡

サーバーを構成する際に発生する問題は、次のカテゴリに分類されます。

NIS+ の問題と DHCP データストア

DHCP データストアとして NIS+ を使用する場合に起こる問題は、次のカテゴリに分けられます。

NIS+ を DHCP データストアとして選択できない

NIS+ を データストアとして使用しようとしても、DHCP マネージャが NIS+ をデータストアの候補として認識しないことがあります。dhcpconfig コマンドを使用すると、NIS+ がインストールされておらず、動作していないという意味のメッセージが表示されることがあります。どちらの問題の場合も、このネットワークでは NIS+ が使用されている可能性はあるが、このサーバーには NIS+ が構成されていないことを意味します。NIS+ をデータとして選択するためには、サーバーマシンが NIS+ クライアントとして構成されている必要があります。

DHCP サーバーシステムを NIS+ クライアントとして設定する前に、次の要件が満たされていなければなりません。

NIS+ クライアントの構成に関する詳しい情報については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』「NIS+ クライアントマシンの設定」を参照してください。

NIS+ が DHCP データストア用に適切に構成されていない

DHCP で NIS+ を使用できるようになったあとに NIS+ を変更すると、エラーになることがあります。このような変更が構成の問題を引き起こす可能性があるからです。問題と解決策の次の説明に従って、構成の問題の原因を判別してください。

問題:

ルートオブジェクトが NIS+ ドメインに存在しない。

対処方法:

次のコマンドを入力します。

/usr/lib/nis/nisstat

このコマンドによって、ドメインの統計情報が表示されます。ルートオブジェクトが存在しない場合は、統計情報は表示されません。

『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』に従って NIS+ ドメインを設定します。

問題:

passwdpublickey の情報について NIS+ が使用されていない。

対処方法:

次のコマンドを入力して、ネームサービススイッチの構成ファイルを表示します。

cat /etc/nsswitch.conf

この「nisplus」キーワードに関する passwdpublickey の項目を確認します。ネームサービススイッチの構成につい ては、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。

問題:

ドメイン名が空である。

対処方法:

次のコマンドを入力します。

domainname

このコマンドによって空の文字列がリストされた場合は、このドメインについてドメイン名が設定されていません。データストアにローカルファイルを使用するか、あるいは、ネットワーク用に NIS+ ドメインを設定します。詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。

問題:

NIS_COLD_START ファイルが存在しない。

対処方法:

サーバーシステムで次のコマンドを入力して、ファイルの存在を確認します。

cat /var/nis/NIS_COLD_START

データストアのローカルファイルを使用するか、あるいは、NIS+ クライアントを作成します。詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。

DHCP データストアに対する NIS+ アクセス権の問題

NIS+ のアクセス権に問題があると、DES 資格が適切でない、またはアクセス権が不十分なため NIS+ オブジェクトやテーブルを更新できないというエラーメッセージが表示されることがあります。問題と解決策の次の説明に従って、NIS+ アクセス権のエラーの原因を判別します。

問題:

NIS+ ドメイン内の org_dir オブジェクトへの作成アクセス権が DHCP サーバーシステムにない。

対処方法:

次のコマンドを入力します。


nisls -ld org_dir

アクセス権は r---rmcdrmcdr--- といった形式でリストされます。これらのアクセス権はそれぞれ、未認証、所有者、グループ、その他に対応しています。オブジェクトの所有者が次にリストされます。

通常は、所有者とグループの両方に、org_dir ディレクトリオブジェクトへの完全なアクセス権があります。完全な権限は、読み取り、変更、作成、破棄からなります。その他と未認証のクラスには、org_dir ディレクトリオブジェクトへの読み取りアクセス権だけがあります。

DHCP サーバー名は、org_dir オブジェクトの所有者か、グループ内の主体としてリストされていなければなりません。グループには作成アクセス権が必要です。次のコマンドでグループをリストします。


nisls -ldg org_dir

必要な場合は、nischmod コマンドを使って、org_dir に対するアクセス権を変更します。たとえば、グループに作成アクセス権を追加する場合は、次のコマンドを使用します。


nischmod g+c org_dir

詳細は、nischmod(1) のマニュアルページを参照してください。

問題:

DHCP サーバーに、org_dir オブジェクトの下にテーブルを作成するアクセス権がない。

通常、この問題は、サーバーシステムの主体名が org_dir オブジェクトの所有グループのメンバーでないか、所有グループが存在しないことを意味します。

対処方法:

次のコマンドを入力して所有グループ名を検索します。


niscat -o org_dir

次のような行を見つけます。

Group : "admin.example.com."

次のコマンドを使ってグループ内の主体名をリストする


nisgrpadm -l groupname

たとえば、次のコマンドを実行すると、グループ admin.example.com の主体名が表示されます。

nisgrpadm -l admin.example.com

サーバーシステムの名前がグループの明示的なメンバーとしてリストされるか、グループの暗黙的なメンバーとして含まれているはずです。必要なら、nisgrpadm コマンドを使ってサーバーシステムの名前をグループに追加します。

たとえば、サーバー名 pacific をグループ admin.example.com に追加するには、次のように入力します。


nisgrpadm -a admin.example.com pacific.example.com

詳細は、nisgrpadm(1) のマニュアルページを参照してください。

問題:

DHCP サーバーの NIS+ cred テーブルに有効な Data Encryption Standard (DES) 資格が存在しない。

対処方法:

資格の問題がある場合には、ユーザーが NIS+ ネームサービスに DES 資格を持っていないことを示すエラーメッセージが表示されます。

nisaddcred コマンドを使って、DHCP サーバーシステムのセキュリティー資格を追加します。

次の例では、ドメイン example.com にあるシステム mercury についての DES 資格を追加する方法を示します。 。


nisaddcred -p unix.mercury@example.com \
-P mercury.example.com. DES example.com.

このコマンドは、暗号化された秘密鍵の生成に必要なスーパーユーザーのパスワードを要求します。

詳細は、nisaddcred(1M) のマニュアルページを参照してください。

DHCP における IP アドレスの割り当てエラー

クライアントが IP アドレスを取得または検証しようとすると、問題が syslog に記録されたり、サーバーデバッグモード出力に書き込まれることがあります。よく見られる次の各エラーメッセージが、考えられる原因と解決策を示しています。


There is no n.n.n.n dhcp-network table for DHCP client's network

原因:

クライアントが、特定の IP アドレスを要求しているか、現在の IP アドレスのリースを延長しようとしています。DHCP サーバーは、DHCP ネットワークテーブルでそのアドレスを発見できません。

対処方法:

DHCP ネットワークテーブルが誤って削除されている場合があります。DHCP マネージャか dhcpconfig コマンドを使ってネットワークを再び追加し、ネットワークテーブルを作り直すことができます。


ICMP ECHO reply to OFFER candidate: n.n.n.n, disabling

原因:

DHCP クライアントに提供されようとしている IP アドレスがすでに使用されています。このアドレスを複数の DHCP サーバーで所有していると、この問題が起こることがあります。さらに、アドレスが DHCP 以外のネットワーククライアント用に手動で構成されている場合にも、この問題が起こることがあります。

対処方法:

アドレスの正しい所有者を判別します。DHCP サーバーデータベースか、ホストのネットワーク構成を修正します。


ICMP ECHO reply to OFFER candidate: n.n.n.n. No corresponding dhcp network record.

原因:

DHCP クライアントに提供されようとしている IP アドレスのレコードがネットワークテーブルにありません。このエラーは、IP アドレスが、選択されたあとに DHCP ネットワークテーブルレコードから削除されたことを示します。このエラーが起こるのは (もし起こるのなら)、アドレスの重複チェックが終了するまでの短い時間においてだけです。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、DHCP ネットワークテーブルを表示します。その IP アドレスが存在しない場合は、DHCP マネージャの「アドレス (Address)」タブから「編集 (Edit)」メニュの「作成 (Create)」を選択してアドレスを作成します。さらに、pntadm 使ってこの IP アドレスを作成することもできます。


DHCP network record for n.n.n.nis unavailable, ignoring request.

原因:

要求された IP アドレスのレコードは DHCP ネットワークテーブルに存在しないので、サーバーが要求をドロップします。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、DHCP ネットワークテーブルを表示します。その IP アドレスが存在しない場合は、DHCP マネージャの「アドレス (Address)」タブから「編集 (Edit)」メニュの「作成 (Create)」を選択してアドレスを作成します。さらに、pntadm 使ってこのアドレスを作成することもできます。


n.n.n.n currently marked as unusable.

原因:

ネットワークテーブルで使用不可に指定されているため、要求された IP アドレスを提供できません。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、アドレスを使用可能にします。


n.n.n.n was manually allocated. No dynamic address will be allocated.

原因:

クライアントの ID は、手動で割り当てられたアドレスに割り当てられています。そのアドレスは使用不可に指定されています。そのため、サーバーがこのクライアントに別のアドレスを割り当てることができません。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、そのアドレスを使用できるようにするか、そのクライアントに別のアドレスを手動で割り当てます。


Manual allocation (n.n.n.n, client ID) has n other records. Should have 0.

原因:

指定されたクライアント ID を持つクライアントに、複数の IP アドレスが手動で割り当てられています。クライアントには、1 つのアドレスだけが割り当てられているべきです。サーバーは、ネットワークテーブルにある、最後に手動で割り当てられたアドレスを選択します。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、IP アドレスを修正し、余分な手動割り当てを取り除きます。


No more IP addresses on n.n.n.nnetwork.

原因:

指定されたネットワーク上で DHCP が現在管理しているすべての IP アドレスは、すでに割り当てられています。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、このネットワーク用に新しい IP アドレスを作成します。


Client: clientid lease on n.n.n.n expired.

原因:

リースがネゴシエーション可能ではなく、有効期限が切れています。

対処方法:

クライアントは、プロトコルを自動的に再起動して新しいリースを取得すべきです。


Offer expired for client: n.n.n.n

原因:

サーバーがクライアントに IP アドレスを提供したが、クライアントの応答に時間がかかり過ぎ、このオファーは期限切れとなっています。

対処方法:

クライアントは、新たな検索メッセージを自動的に発行すべきです。このメッセージも期限切れとなった場合は、DHCP サーバーのキャッシュオファータイムアウトを増加させます。DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する


Client: clientid REQUEST is missing requested IP option.

原因:

クライアントの要求が、提供された IP アドレスを指定しなかったため、DHCP サーバーはこの要求を無視しました。更新された DHCP プロトコル (RFC 2131) に準拠していない、Sun 以外の DHCP クライアントを使用すると、この問題が起こることがあります。

対処方法:

クライアントのソフトウェアを更新してください。


Client: clientid is trying to renew n.n.n.n, an IP address it has not leased.

原因:

DHCP ネットワークテーブルにあるこのクライアント用の IP アドレスが、クライアントが更新要求で指定した IP アドレスと一致しません。DHCP サーバーはこのリースを更新しません。この問題は、クライアントがまだ IP アドレスを使用しているのに、クライアントのレコードを削除した場合に発生することがあります。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、ネットワークテーブルを調べて、必要であれば、クライアントのレコードを修正します。クライアント ID は、指定された IP アドレスと結合されていなければなりません。結合されていない場合は、アドレスプロパティーを編集してこのクライアント ID を追加します。


Client: clientid is trying to verify unrecorded address: n.n.n.n, ignored.

原因:

指定されたクライアントは、このアドレスに対して DHCP ネットワークテーブルに登録されていません。そのため、要求は DHCP サーバーに無視されます。

このネットワークの別の DHCP サーバーで、このクライアントにアドレスを割り当てられます。ただし、クライアントがこの IP アドレスをまだ使用しているのにそのクライアントのレコードが削除されていることが原因の場合もあります。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、このサーバーとネットワーク上のほかの DHCP サーバーで、ネットワークテーブルを調べます。必要なら修正します。

さらに、何もせずにリースを期限切れにすることもできます。クライアントは自動的に新しいリースを要求します。

クライアントに新しいリースをすぐに取得させたい場合は、次のコマンドを使って、このクライアント上で DHCP プロトコルを再起動する


ifconfig interface dhcp release
ifconfig interface dhcp start

DHCP クライアント設定の障害追跡

DHCP クライアントに関連する問題は、一般的に次のカテゴリに分類されます。

DHCP サーバーとの通信の問題

この節では、ネットワークに DHCP クライアントを追加する際に発生する可能性がある問題について説明します。

クライアントソフトウェアを使用可能にし、システムをリブートすると、クライアントはそのネットワーク構成を DHCP サーバーから取得しようとします。クライアントがサーバーと通信できない場合は、次のようなエラーメッセージが表示されます。


DHCP or BOOTP server not responding 

    問題を特定するには、クライアントとサーバーの両方から診断情報を収集する必要があります。情報を収集するには、次の方法があります。

  1. 「DHCP クライアントをデバッグモードで実行する方法」

  2. 「DHCP サーバーをデバッグモードで実行する方法」

  3. snoop を使用して DHCP ネットワークトラフィックを監視する方法」

これらの方法を個別に、または同時に実行できます。

収集した情報は、問題が発生した場所がクライアントなのか、サーバーなのか、リレーエージェントなのかを判別する上で役立ちます。そして、そのあとで解決策を見つます。

ProcedureDHCP クライアントをデバッグモードで実行する方法

Oracle Solaris DHCP クライアント以外のクライアントをデバッグモードで実行する方法については、そのクライアントのマニュアルを参照してください。

Oracle Solaris DHCP クライアントをデバッグモードで実行するには、次のようにします。

  1. DHCP クライアントシステムでスーパーユーザーになります。

  2. DHCP クライアントデーモンを終了します。


    # pkill -x dhcpagent
    
  3. デーモンをデバッグモードで再起動します。


    # /sbin/dhcpagent -d1 -f &
    

    -d スイッチによって、DHCP クライアントは、詳細レベル 1 のデバッグモードで動作します。-f スイッチによって、出力は、syslog の代わりにコンソールに送信されます。

  4. DHCP ネゴシエーションを開始するようにインタフェースを構成します。


    # ifconfig interface dhcp start
    

    interface には、クライアントネットワークインタフェースの名前 (たとえば、ge0) を指定します。

    デバッグモードで実行すると、クライアントデーモンは、DHCP 要求を実行している間、画面にメッセージを表示します。クライアントのデバッグモード出力については、「デバッグモードで動作する DHCP クライアントの出力」を参照してください。

ProcedureDHCP サーバーをデバッグモードで実行する方法

  1. サーバーシステム上でスーパーユーザーになります。

  2. DHCP サーバーを一時的に停止します。


    # svcadm disable -t svc:/network/dhcp-server
    

    DHCP マネージャか dhcpconfig でサーバーを停止することもできます。

  3. デーモンをデバッグモードで再起動します。


    # /usr/lib/inet/in.dhcpd -d -v
    

    また、デーモンを実行する際に通常使用する in.dhcpd コマンド行オプションも使用する必要があります。たとえば、デーモンを BOOTP リレーエージェントとして実行する場合は、in.dhcpd -d -v コマンドに -r オプションを付けます。

    デバッグモードで動作しているデーモンは、DHCP 要求や BOOTP 要求を処理している間、画面にメッセージを表示します。サーバーのデバッグモードの出力については、「デバッグモードで動作する DHCP サーバーの出力」を参照してください。

Proceduresnoop を使用して DHCP ネットワークトラフィックを監視する方法

  1. DHCP サーバーシステム上でスーパーユーザーになります。

  2. snoop を起動して、サーバーのネットワークインタフェース間のネットワークトラフィックの追跡を開始します。


    # /usr/sbin/snoop -d interface -o snoop-output-filename udp port 67 or udp port 68
    

    たとえば、次のように入力します。


    #  /usr/sbin/snoop -d hme0 -o /tmp/snoop.output udp port 67 or udp port 68
    

    必要な情報を入手したあとも、Control-C を押してsnoop を停止するまで、snoop はインタフェースを監視し続けます。

  3. クライアントシステムを起動するか、クライアントシステムで dhcpagent を再起動します。

    「DHCP クライアントをデバッグモードで実行する方法」 を再起動する方法については、 How to Run the DHCP Client in Debugging Modeを参照してください。

  4. サーバーシステムで snoop を使用して、ネットワークパケットの内容を含む出力ファイルを表示させます。


    # /usr/sbin/snoop -i snoop-output-filename -x0 -v
    

    たとえば、次のように入力します。

    # /usr/sbin/snoop -i /tmp/snoop.output -x0 -v
    
参照

出力の解釈については、「DHCP snoop 出力」を参照してください。

デバッグモードで動作する DHCP クライアントの出力

次の例では、デバッグモードで動作する DHCP クライアントが DHCP 要求を送信し、DHCP サーバーから構成情報を受信した場合の、通常のデバッグ出力を示しています。


例 17–1 デバッグモードで動作する DHCP クライアントの通常の出力


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter) 
/sbin/dhcpagent: debug: init_ifs: initted interface hme0 
/sbin/dhcpagent: debug: insert_ifs: hme0: sdumax 1500, optmax 1260, hwtype 1, hwlen 6 
/sbin/dhcpagent: debug: insert_ifs: inserted interface hme0 
/sbin/dhcpagent: debug: register_acknak: registered acknak id 5 
/sbin/dhcpagent: debug: unregister_acknak: unregistered acknak id 5 
/sbin/dhcpagent: debug: set_packet_filter: set filter 0x26018 (ARP reply filter)
/sbin/dhcpagent: info: setting IP netmask on hme0 to 255.255.192.0 
/sbin/dhcpagent: info: setting IP address on hme0 to 10.23.3.233 
/sbin/dhcpagent: info: setting broadcast address on hme0 to 10.23.63.255 
/sbin/dhcpagent: info: added default router 10.23.0.1 on hme0 
/sbin/dhcpagent: debug: set_packet_filter: set filter 0x28054 (blackhole filter) 
/sbin/dhcpagent: debug: configure_if: bound ifsp->if_sock_ip_fd 
/sbin/dhcpagent: info: hme0 acquired lease, expires Tue Aug 10 16:18:33 2006 
/sbin/dhcpagent: info: hme0 begins renewal at Tue Aug 10 15:49:44 2006 
/sbin/dhcpagent: info: hme0 begins rebinding at Tue Aug 10 16:11:03 2006

クライアントから DHCP サーバーにアクセスできないと、通常、次のようなデバッグモード出力が表示されます。


例 17–2 デバッグモードで動作する DHCP クライアントの出力 (問題があることを示す)


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter)
/sbin/dhcpagent: debug: init_ifs: initted interface hme0 
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply
 

このメッセージは、クライアント要求がサーバーに届いていないか、サーバーが回答をクライアントに送信できないことを意味します。サーバーで snoop を実行して、クライアントのパケットがサーバーに届いたかどうかを判別します (snoop を使用して DHCP ネットワークトラフィックを監視する方法」 を参照)。

デバッグモードで動作する DHCP サーバーの出力

サーバーからの通常のデバッグモード出力には、サーバー構成情報が表示され、続いて、デーモンの起動とともに各ネットワークインタフェースの情報が表示されます。デーモンが起動されると、デバッグモード出力には、デーモンが処理している要求の情報が表示されます。例 17–3 は、起動されたばかりの DHCP サーバーからのデバッグモード出力を表しています。サーバーはクライアントのリースを延長します。このクライアントは現在、応答しない別の DHCP サーバーによって所有されているアドレスを使用しています。


例 17–3 デバッグモードで動作する DHCP サーバーの通常の出力


Daemon Version: 3.1  
Maximum relay hops: 4  
Transaction logging to console enabled.  
Run mode is: DHCP Server Mode.  
Datastore: nisplus  
Path: org_dir.dhcp.test..:dhcp.test..:$ 
DHCP offer TTL: 10  
Ethers compatibility enabled.  
BOOTP compatibility enabled.  
ICMP validation timeout: 1000 milliseconds, Attempts: 2.  
Monitor (0005/hme0) started...  
Thread Id: 0005 - Monitoring Interface: hme0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 10.21.255.255 
Netmask: 255.255.0.0  
Address: 10.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 10.22.255.255  
Netmask: 255.255.0.0  
Address: 10.22.0.1  
Monitor (0007/qfe0) started...  
Thread Id: 0007 - Monitoring Interface: qfe0 *****  
MTU: 1500      Type: DLPI   
Broadcast: 10.23.63.255  
Netmask: 255.255.192.0  
Address: 10.23.0.1  
Read 33 entries from DHCP macro database on Tue Aug 10 15:10:27 2006 
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4 
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4  
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4  
Datagram received on network device: qfe0  
Client: 0800201DBA3A maps to IP: 10.23.3.233  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A  
DHCP EXTEND 0934312543 0934316143 10.23.3.233 10.21.0.2 
          0800201DBA3A SUNW.Ultra-5_10 0800201DBA3A

例 17–4 は、BOOTP リレーエージェントとして起動された DHCP デーモンのデバッグモード出力を表しています。エージェントは、クライアントの要求を DHCP サーバーに中継し、サーバーの応答をクライアントに中継します。


例 17–4 デバッグモードで動作する BOOTP リレーの通常の出力


Relay destination: 10.21.0.4 (blue-servr2)     network: 10.21.0.0  
Daemon Version: 3.1  
Maximum relay hops: 4  
Transaction logging to console enabled.  
Run mode is: Relay Agent Mode.  
Monitor (0005/hme0) started...  
Thread Id: 0005 - Monitoring Interface: hme0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 10.21.255.255  
Netmask: 255.255.0.0  
Address: 10.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 10.22.255.255  
Netmask: 255.255.0.0  
Address: 10.22.0.1  
Monitor (0007/qfe0) started...  
Thread Id: 0007 - Monitoring Interface: qfe0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 10.23.63.255  
Netmask: 255.255.192.0  
Address: 10.23.0.1  
Relaying request 0800201DBA3A to 10.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297685 0000000000 0.0.0.0 10.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 10.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A  
BOOTP RELAY-CLNT 0934297688 0000000000 10.23.0.1 10.23.3.233 0800201DBA3A 
N/A 0800201DBA3A  
Relaying request 0800201DBA3A to 10.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297689 0000000000 0.0.0.0 10.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 10.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A 
 

DHCP に問題があると、デバッグモード出力に警告メッセージやエラーメッセージが表示されることがあります。次の DHCP サーバーのエラーメッセージから解決策を見つけてください。


ICMP ECHO reply to OFFER candidate: ip_address disabling

原因:

DHCP サーバーは、IP アドレスをクライアントに提供する前に、ping コマンドを実行してそのアドレスが使用されていないことを確認します。クライアントの回答がある場合には、そのアドレスは使用されています。

対処方法:

構成したアドレスが使用されていないことを確認します。それには、ping コマンドを使用します。詳細は、ping(1M) のマニュアルページを参照してください。


No more IP addresses on network-address network.

原因:

クライアントのネットワークに対応する DHCP ネットワークテーブル中に、使用可能な IP アドレスがありません。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、IP アドレスを追加作成します。DHCP デーモンが複数のサブネットを監視している場合は、クライアントが属するサブネットに IP アドレスを追加します。詳細は、「DHCP サービスへの IP アドレスの追加」を参照してください。


No more IP addresses for network-address network when you are running the DHCP daemon in BOOTP compatibility mode.

原因:

BOOTP はリース期間を使用しないので、DHCP サーバーは、BOOTP クライアントに割り当てるために設定された BOOTP フラグを持つ空きアドレスを検索します。

対処方法:

DHCP マネージャを使用して、BOOTP アドレスを割り当てます。詳細は、「DHCP サービスによる BOOTP クライアントのサポート (作業マップ)」を参照してください。


Request to access nonexistent per network database: database-name in datastore: datastore.

原因:

DHCP サーバーの構成の際に、サブネットの DHCP ネットワークテーブルが作成されていません。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、DHCP ネットワークテーブルと新しい IP アドレスを作成します。詳細は、「DHCP ネットワークの追加」を参照してください。


There is no table-name dhcp-network table for DHCP client's network.

原因:

DHCP サーバーの構成の際に、サブネットの DHCP ネットワークテーブルが作成されていません。

対処方法:

DHCP マネージャまたは pntadm コマンドを使って、DHCP ネットワークテーブルと新しい IP アドレスを作成します。詳細は、「DHCP ネットワークの追加」を参照してください。


Client using non_RFC1048 BOOTP cookie.

原因:

ネットワーク上のデバイスが、BOOTP のサポートされていない実装にアクセスしようとしました。

対処方法:

このデバイスを構成する必要がない場合は、このメッセージを無視します。このデバイスをサポートする方法については、「DHCP サービスによる BOOTP クライアントのサポート (作業マップ)」を参照してください。

DHCP snoop 出力

下記の snoop 出力を見ると、DHCP クライアントシステムと DHCP サーバーシステムの間でパケットが交換されていることがわかります。パケットには、各システムの IP アドレスが示されています。さらに、パケットのパスにルーターやリレーエージェントがある場合は、その IP アドレスも含まれています。システム間でパケットの交換が行われない場合は、クライアントシステムからサーバーシステムに全くアクセスできないことがあります。その場合、問題はそれより下のレベルにあります。

snoop 出力を評価するためには、期待する動作がどのようなものかを知っておく必要があります。たとえば、要求が BOOTP リレーエージェントを通るべきかどうかを知っている必要があります。さらに、関係するシステムの MAC アドレスや IP アドレスを知っている必要があります。それによって、それらの値が本来のものかどうかを判別できるからです。また、複数のネットワークインタフェースがある場合は、ネットワークインタフェースのアドレスも知っている必要があります。

次の例は、DHCP 肯定応答メッセージの通常の snoop 出力を示しています。このメッセージは、blue-servr2 上の DHCP サーバーから MAC アドレスが 8:0:20:8e:f3:7e のクライアントに送信されたものです。このメッセージで、サーバーは IP アドレス 192.168.252.6 とホスト名 white-6 をクライアントに割り当てます。さらに、このメッセージには、クライアントに対するいくつもの標準的なネットワークオプションといくつかのベンダー固有のオプションが含まれています。


例 17–5 1 つのパケットに関する snoop 出力の例


ETHER:  ----- Ether Header ----- 
ETHER:   
ETHER:  Packet 26 arrived at 14:43:19.14 
ETHER:  Packet size = 540 bytes 
ETHER:  Destination = 8:0:20:8e:f3:7e, Sun 
ETHER:  Source      = 8:0:20:1e:31:c1, Sun 
ETHER:  Ethertype = 0800 (IP) 
ETHER:  
IP:   ----- IP Header ----- 
IP:    
IP:   Version = 4 
IP:   Header length = 20 bytes 
IP:   Type of service = 0x00 
IP:         xxx. .... = 0 (precedence) 
IP:         ...0 .... = normal delay 
IP:         .... 0... = normal throughput 
IP:         .... .0.. = normal reliability 
IP:   Total length = 526 bytes 
IP:   Identification = 64667 
IP:   Flags = 0x4 IP:         .1.. .... = do not fragment 
IP:         ..0. .... = last fragment 
IP:   Fragment offset = 0 bytes 
IP:   Time to live = 254 seconds/hops 
IP:   Protocol = 17 (UDP) 
IP:   Header checksum = 157a 
IP:   Source address = 10.21.0.4, blue-servr2 
IP:   Destination address = 192.168.252.6, white-6 
IP:   No options 
IP:   UDP:  ----- UDP Header ----- 
UDP:   
UDP:  Source port = 67 
UDP:  Destination port = 68 (BOOTPC) 
UDP:  Length = 506  
UDP:  Checksum = 5D4C  
UDP:  
DHCP: ----- Dynamic Host Configuration Protocol ----- 
DHCP:  
DHCP: Hardware address type (htype) =  1 (Ethernet (10Mb)) 
DHCP: Hardware address length (hlen) = 6 octets 
DHCP: Relay agent hops = 0 
DHCP: Transaction ID = 0x2e210f17 
DHCP: Time since boot = 0 seconds 
DHCP: Flags = 0x0000 
DHCP: Client address (ciaddr) = 0.0.0.0 
DHCP: Your client address (yiaddr) = 192.168.252.6 
DHCP: Next server address (siaddr) = 10.21.0.2 
DHCP: Relay agent address (giaddr) = 0.0.0.0 
DHCP: Client hardware address (chaddr) = 08:00:20:11:E0:1B 
DHCP:  
DHCP: ----- (Options) field options ----- 
DHCP:  
DHCP: Message type = DHCPACK 
DHCP: DHCP Server Identifier = 10.21.0.4 
DHCP: Subnet Mask = 255.255.255.0 
DHCP: Router at = 192.168.252.1 
DHCP: Broadcast Address = 192.168.252.255 
DHCP: NISPLUS Domainname = dhcp.test 
DHCP: IP Address Lease Time = 3600 seconds 
DHCP: UTC Time Offset = -14400 seconds 
DHCP: RFC868 Time Servers at = 10.21.0.4 
DHCP: DNS Domain Name = sem.example.com 
DHCP: DNS Servers at = 10.21.0.1 
DHCP: Client Hostname = white-6 
DHCP: Vendor-specific Options (166 total octets): 
DHCP:   (02) 04 octets  0x8194AE1B (unprintable) 
DHCP:   (03) 08 octets  "pacific" 
DHCP:   (10) 04 octets  0x8194AE1B (unprintable) 
DHCP:   (11) 08 octets  "pacific" 
DHCP:   (15) 05 octets  "xterm" 
DHCP:   (04) 53 octets  "/export/s2/base.s2s/latest/Solaris_8/Tools/Boot" 
DHCP:   (12) 32 octets  "/export/s2/base.s2s/latest" 
DHCP:   (07) 27 octets  "/platform/sun4u/kernel/unix" 
DHCP:   (08) 07 octets  "EST5EDT" 
  0: 0800 208e f37e 0800 201e 31c1 0800 4500    .. .ó~.. .1...E.
 16: 020e fc9b 4000 fe11 157a ac15 0004 c0a8    ....@....z......           
 32: fc06 0043 0044 01fa 5d4c 0201 0600 2e21    ...C.D..]L.....!           
 48: 0f17 0000 0000 0000 0000 c0a8 fc06 ac15    ................           
 64: 0002 0000 0000 0800 2011 e01b 0000 0000    ........ .......           
 80: 0000 0000 0000 0000 0000 0000 0000 0000    ................           
 96: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
112: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
128: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
144: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
160: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
176: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
192: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
208: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
224: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
240: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
256: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
272: 0000 0000 0000 6382 5363 3501 0536 04ac    ......c.Sc5..6..          
288: 1500 0401 04ff ffff 0003 04c0 a8fc 011c    ................          
304: 04c0 a8fc ff40 0964 6863 702e 7465 7374    .....@.dhcp.test          
320: 3304 0000 0e10 0204 ffff c7c0 0404 ac15    3...............          
336: 0004 0f10 736e 742e 6561 7374 2e73 756e    ....sem.example.          
352: 2e63 6f6d 0604 ac15 0001 0c07 7768 6974    com.........whit          
368: 652d 362b a602 0481 94ae 1b03 0861 746c    e-6+.........pac          
384: 616e 7469 630a 0481 94ae 1b0b 0861 746c    ific.........pac          
400: 616e 7469 630f 0578 7465 726d 0435 2f65    ific...xterm.5/e          
416: 7870 6f72 742f 7332 382f 6261 7365 2e73    xport/sx2/bcvf.s          
432: 3238 735f 776f 732f 6c61 7465 7374 2f53    2xs_btf/latest/S          
448: 6f6c 6172 6973 5f38 2f54 6f6f 6c73 2f42    olaris_x/Tools/B          
464: 6f6f 740c 202f 6578 706f 7274 2f73 3238    oot. /export/s2x          
480: 2f62 6173 652e 7332 3873 5f77 6f73 2f6c    /bcvf.s2xs_btf/l         
496: 6174 6573 7407 1b2f 706c 6174 666f 726d    atest../platform          
512: 2f73 756e 346d 2f6b 6572 6e65 6c2f 756e    /sun4u/kernel/un          
528: 6978 0807 4553 5435 4544 54ff              ix..EST5EDT.  

不正確な DHCP 設定情報に伴う問題

DHCP クライアントが受信するネットワーク構成情報に不正確な情報がある場合は、DHCP サーバーのデータを参照する必要があります。DHCP サーバーが処理するこのクライアント用のマクロのオプション値を確認してください。不正確な情報の例には、間違った NIS ドメイン名やルーター IP アドレスがあります。

正しくない情報の原因がどこにあるのかを特定する際には、次の一般的な指針に従ってください。

DHCP クライアント指定のホスト名に関連する問題

ここでは、独自のホスト名を DNS に登録する必要がある DHCP クライアントの問題について説明します。

DHCP クライアントがホスト名を要求しない

クライアントが Oracle Solaris DHCP クライアントでない場合は、そのクライアントのマニュアルを参照して、ホスト名を要求するために必要なクライアントの構成方法を調べてください。Oracle Solaris DHCP クライアントの場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。

要求されたホスト名を DHCP クライアントが受け取らない

次の各項では、クライアントがそのホスト名を取得する際に起こる問題とその解決策について説明します。

問題:

クライアントは DHCP サーバーからオファーを受け取るが、サーバーが DNS 更新を行わない。

対処方法:

クライアントから 2 つの DHCP サーバーにアクセスできる場合は、両方のサーバーが DNS 更新を行うように構成されている必要があります。DHCP サーバーと DNS サーバーの構成については、「DHCP サーバーによる動的 DNS 更新の有効化」を参照してください。

DNS 更新を提供するように DHCP サーバーが構成されているかどうかを判別するには、次のようにします。

  1. クライアントの DHCP サーバーの IP アドレスを判別します。クライアントシステムで snoop か別のアプリケーションを使ってネットワークパケットを捕捉します。snoop を使用して DHCP ネットワークトラフィックを監視する方法」を参照し、その手順をクライアント (サーバーではなく) で実行します。snoop 出力で DHCP Server Identifier を探して、サーバーの IP アドレスを取得します。

  2. DHCP サーバーシステムにログインして、システムが、DNS 更新を行うように構成されているか確認します。次のコマンドをスーパーユーザーとして入力します。

    dhcpconfig -P

    UPDATE_TIMEOUT がサーバーパラメータとして表示される場合、DHCP サーバーは DNS 更新を行うように構成されています。

  3. DNS サーバーで /etc/named.conf ファイルを調べます。適切なドメインの zone セクションで allow-update キーワードを探します。サーバーが DHCP サーバーによる DNS 更新を許している場合は、DHCP サーバーの IP アドレスが allow-update キーワードにあります。

問題:

クライアントが FQDN オプションを使ってホスト名を指定している。FQDN オプションは DHCP プロトコルに正式には含まれていないため、現在、Oracle Solaris DHCP ではサポートされていません。

対処方法:

そのサーバーで snoop か別のアプリケーションを使ってネットワークパケットを捕捉します。詳細は、snoop を使用して DHCP ネットワークトラフィックを監視する方法」を参照してください。snoop 出力で、クライアントからのパケットにある FQDN オプションを探します。

Hostname オプションを使ってホスト名を指定するようにクライアントの構成を変更します。Hostname はオプションコード 12 です。 詳細は、クライアントのマニュアルを参照してください。

Oracle Solaris クライアントの場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。

問題:

クライアントにアドレスオファーを行う DHCP サーバーがクライアントの DNS ドメインを知らない。

対処方法:

DHCP サーバーで、DNSdmain オプションに有効な値が設定されているか確認します。このクライアントに対して処理されるマクロの DNSdmain オプションに正しい DNS ドメイン名を設定します。DNSdmain は通常、ネットワークマクロに含まれているマクロ内のオプションの値を変更する方法については、「DHCP マクロの変更」を参照してください。

問題:

クライアントが要求したホスト名が DHCP サーバーが管理していない IP アドレスに対応している。Oracle Solaris DHCP サーバーは、自らが管理していない IP アドレスに対し DNS 更新を行いません。

対処方法:

次のいずれかの DHCP サーバーメッセージが syslog に書き込まれていないか調べます。

別の名前を要求するようにクライアントを構成します。「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。新しく指定する名前には、DHCP サーバーが管理しているアドレスに対応する名前を選択します。DHCP マネージャの「アドレス (Addresses)」タブのアドレスマッピングを見てください。あるいは、どの IP アドレスにも対応していないアドレスを選択することもできます。

問題:

クライアントから要求されたホスト名が、使用不可の状態にある IP アドレスに対応している。このアドレスは、ほかの目的で使用されている可能性があります (別のクライアントにリースされているか、別のクライアントにオファー中である)。

対処方法:

次の DHCP サーバーメッセージが syslog に書き込まれていないか調べます。 ICMP ECHO reply to OFFER candidate: n.n.n.n.

異なる IP アドレスに対応する名前を選択するようにクライアントを構成します。あるいは、そのアドレスを使用するクライアントからアドレスを取り返します。

問題:

DHCP サーバーからの更新を受け付けるように DNS サーバーが構成されていない。

対処方法:

DNS サーバーの /etc/named.conf ファイルを調べます。DHCP サーバーのドメインに対する適切な zone セクションで allow-update キーワードが付いた DHCP サーバーの IP アドレスを探します。IP アドレスが存在しないなら、DNS サーバーは、DHCP サーバーからの更新を受け付けるようには構成されていません。

詳細は、「DHCP クライアント用に動的 DNS 更新を有効にする方法」を参照してください。

DHCP サーバーに複数のインタフェースがある場合は、DHCP サーバーのすべてのアドレスからの更新を受け付けるように DNS サーバーを構成する必要がある場合があります。DNS サーバーのデバッグ機能を有効にして、更新が DNS サーバーに届いているか確認します。DNS サーバーが更新要求を受け取っている場合は、デバッグモード出力を見て、更新が行われなかった原因を調べます。DNS デバッグモードについては、in.named(1M) のマニュアルページを参照してください。

問題:

DNS 更新が、割り当てられた時間内に行われていない可能性がある。設定された時間内に DNS 更新が完了しないと、DHCP サーバーはホスト名をクライアントに返しません。ただし、DNS 更新を完了する試みは続けられます。

対処方法:

nslookup コマンドを使って、更新が正常に終わっているかを確認します。詳細は、nslookup(1M) のマニュアルページを参照してください。

たとえば、DNS ドメインが hills.example.org で、DNS サーバーの IP アドレスが 10.76.178.11 であるとします。さらに、クライアントが登録したいホスト名は cathedral だとします。cathedral が DNS サーバーに登録されているかどうかを知るには、次のコマンドが使用できます。

nslookup cathedral.hills.example.org 10.76.178.11

更新は正常に行われたが、割り当てられた時間を超えている場合は、タイムアウト値を増やす必要があります。詳細は、「DHCP クライアント用に動的 DNS 更新を有効にする方法」を参照してください。この手順では、タイムアウトになる前に DNS サーバーから応答を受け取れるように、タイムアウトの秒数を増やすべきです。

第 18 章 DHCP コマンドと DHCP ファイル (リファレンス)

この章では、DHCP コマンドと DHCP ファイルの関連について説明します。ただし、この章にはコマンドの使い方は含まれていません。

この章では、次の内容について説明します。

DHCP のコマンド

次の表に、ネットワーク上で DHCP を管理するために使用できるコマンドを示します。

表 18–1 DHCP で使用されるコマンド

コマンド 

説明 

マニュアルページ 

dhtadm

dhcptab 内のオプションやマクロを変更するときに使用します。このコマンドは、DHCP 情報を自動的に変更するために作成するスクリプトでもっとも役立ちます。dhtadm-P オプションを指定し、その結果を grep コマンドに渡すと、dhcptab テーブル内の特定のオプション値をすばやく検索できます。

dhtadm(1M)

pntadm

DHCP ネットワークテーブルを変更するときに使用します。このテーブルでは、クライアント ID と IP アドレスが対応付けられ、オプションとして構成情報と IP アドレスが関連付けられています。

pntadm(1M)

dhcpconfig

DHCP サーバーや BOOTP リレーエージェントの構成や構成解除を行うときに使用します。さらに、データストアを別のデータストアへ変換したり、DHCP 構成データのインポートやエクスポートを行うときにも使用します。

dhcpconfig(1M)

in.dhcpd

DHCP サーバーデーモン。デーモンはシステムの起動時に起動されます。したがって、サーバーデーモンを直接起動すべきではありません。デーモンの起動や停止には、DHCP マネージャ、 svcadm コマンド、または dhcpconfig を使用できます。問題を解決するためにデーモンをデバッグモードで実行する場合にのみデーモンを直接起動します。

in.dhcpd(1M)

dhcpmgr

DHCP マネージャ。DHCP サービスの構成や管理に使用するグラフィカルユーザーインタフェース (GUI) ツールです。DHCP マネージャは、推奨される Oracle Solaris DHCP 管理ツールです。

dhcpmgr(1M)

ifconfig

IP アドレスをネットワークインタフェースに割り当てたり、ネットワークインタフェースパラメータを構成したりする場合 (あるいはその両方の場合)、システムブート時に使用します。 Oracle Solaris DHCP クライアントでは、ifconfig は DHCP を起動し、IP アドレスなどの、ネットワークインタフェースの設定に必要なパラメータを取得します。

ifconfig(1m)

dhcpinfo

Oracle Solaris クライアントシステムのシステム起動スクリプトの中で、DHCP クライアントデーモン (dhcpagent) からホスト名などの情報を取得するときに使用します。また、スクリプトやコマンド行で dhcpinfo を使用して、特定のパラメータ値を取得することもできます。

dhcpinfo(1)

snoop

ネットワークを介して送信されているパケットの内容を獲得および表示するときに使用します。snoop は、DHCP サービスに伴う問題を障害追跡する際に役立ちます。

snoop(1m)

dhcpagent

DHCP クライアントデーモン。DHCP プロトコルのクライアント側を実装したものです。 

dhcpagent(1M)

スクリプトにおける DHCP コマンドの実行

dhcpconfigdhtadmpntadm コマンドは、スクリプト中での使用に適しています。特に、pntadm コマンドは大量の IP アドレスエントリを DHCP ネットワークテーブルに作成するときに便利です。次のサンプルスクリプトでは、バッチモードで pntadm を使って、IP アドレスを作成しています。


例 18–1 addclient.ksh スクリプトで pntadm コマンドを使用する

#! /usr/bin/ksh
#
# This script utilizes the pntadm batch facility to add client entries
# to a DHCP network table. It assumes that the user has the rights to
# run pntadm to add entries to DHCP network tables.

#
# Based on the nsswitch setting, query the netmasks table for a netmask.
# Accepts one argument, a dotted IP address.
#
get_netmask()
{
	MTMP=`getent netmasks ${1} | awk '{ print $2 }'`
	if [ ! -z "${MTMP}" ]
	then
		print - ${MTMP}
	fi
}

#
# Based on the network specification, determine whether or not network is 
# subnetted or supernetted.
# Given a dotted IP network number, convert it to the default class
# network.(used to detect subnetting). Requires one argument, the
# network number. (e.g. 10.0.0.0) Echos the default network and default
# mask for success, null if error.
#
get_default_class()
{
	NN01=${1%%.*}
	tmp=${1#*.}
	NN02=${tmp%%.*}
	tmp=${tmp#*.}
	NN03=${tmp%%.*}
	tmp=${tmp#*.}
	NN04=${tmp%%.*}
	RETNET=""
	RETMASK=""

	typeset -i16 ONE=10#${1%%.*}
	typeset -i10 X=$((${ONE}&16#f0))
	if [ ${X} -eq 224 ]
	then
		# Multicast
		typeset -i10 TMP=$((${ONE}&16#f0))
		RETNET="${TMP}.0.0.0"
		RETMASK="240.0.0.0"
	fi
	typeset -i10 X=$((${ONE}&16#80))
	if [ -z "${RETNET}" -a ${X} -eq 0 ]
	then
		# Class A
		RETNET="${NN01}.0.0.0"
		RETMASK="255.0.0.0"
	fi
	typeset -i10 X=$((${ONE}&16#c0))
	if [ -z "${RETNET}" -a ${X} -eq 128 ]
	then
		# Class B
		RETNET="${NN01}.${NN02}.0.0"
		RETMASK="255.255.0.0"
	fi
	typeset -i10 X=$((${ONE}&16#e0))
	if [ -z "${RETNET}" -a ${X} -eq 192 ]
	then
		# Class C
		RETNET="${NN01}.${NN02}.${NN03}.0"
		RETMASK="255.255.255.0"
	fi
	print - ${RETNET} ${RETMASK}
	unset NNO1 NNO2 NNO3 NNO4 RETNET RETMASK X ONE
}

#
# Given a dotted form of an IP address, convert it to its hex equivalent.
#
convert_dotted_to_hex()
{
	typeset -i10 one=${1%%.*}
	typeset -i16 one=${one}
	typeset -Z2 one=${one}
	tmp=${1#*.}

	typeset -i10 two=${tmp%%.*}
	typeset -i16 two=${two}
	typeset -Z2 two=${two}
	tmp=${tmp#*.}

	typeset -i10 three=${tmp%%.*}
	typeset -i16 three=${three}
	typeset -Z2 three=${three}
	tmp=${tmp#*.}

	typeset -i10 four=${tmp%%.*}
	typeset -i16 four=${four}
	typeset -Z2 four=${four}

	 hex=`print - ${one}${two}${three}${four} | sed -e 's/#/0/g'`
	 print - 16#${hex}
	 unset one two three four tmp
}

#
# Generate an IP address given the network address, mask, increment.
# 
get_addr()
{
	typeset -i16 net=`convert_dotted_to_hex ${1}`
	typeset -i16 mask=`convert_dotted_to_hex ${2}`
	typeset -i16 incr=10#${3}

	# Maximum legal value - invert the mask, add to net.
	typeset -i16 mhosts=~${mask}
	typeset -i16 maxnet=${net}+${mhosts}

	# Add the incr value.
	let net=${net}+${incr}

	if [ $((${net} < ${maxnet})) -eq 1 ]
	then
		typeset -i16 a=${net}\&16#ff000000
		typeset -i10 a="${a}>>24"

		typeset -i16 b=${net}\&16#ff0000
		typeset -i10 b="${b}>>16"

		typeset -i16 c=${net}\&16#ff00
		typeset -i10 c="${c}>>8"

		typeset -i10 d=${net}\&16#ff
		print - "${a}.${b}.${c}.${d}"
	fi
	unset net mask incr mhosts maxnet a b c d
}

# Given a network address and client address, return the index.
client_index()
{
	typeset -i NNO1=${1%%.*}
	tmp=${1#*.}
	typeset -i NNO2=${tmp%%.*}
	tmp=${tmp#*.}
	typeset -i NNO3=${tmp%%.*}
	tmp=${tmp#*.}
	typeset -i NNO4=${tmp%%.*}

	typeset -i16 NNF1
	let NNF1=${NNO1}
	typeset -i16 NNF2
	let NNF2=${NNO2}
	typeset -i16 NNF3
	let NNF3=${NNO3}
	typeset -i16 NNF4
	let NNF4=${NNO4}
	typeset +i16 NNF1
	typeset +i16 NNF2
	typeset +i16 NNF3
	typeset +i16 NNF4
	NNF1=${NNF1#16\#}
	NNF2=${NNF2#16\#}
	NNF3=${NNF3#16\#}
	NNF4=${NNF4#16\#}
	if [ ${#NNF1} -eq 1 ]
	then
		NNF1="0${NNF1}"
	fi
	if [ ${#NNF2} -eq 1 ]
	then
		NNF2="0${NNF2}"
	fi
	if [ ${#NNF3} -eq 1 ]
	then
		NNF3="0${NNF3}"
	fi
	if [ ${#NNF4} -eq 1 ]
	then
		NNF4="0${NNF4}"
	fi
	typeset -i16 NN
	let NN=16#${NNF1}${NNF2}${NNF3}${NNF4}
	unset NNF1 NNF2 NNF3 NNF4

	typeset -i NNO1=${2%%.*}
	tmp=${2#*.}
	typeset -i NNO2=${tmp%%.*}
	tmp=${tmp#*.}
	typeset -i NNO3=${tmp%%.*}
	tmp=${tmp#*.}
	typeset -i NNO4=${tmp%%.*}
	typeset -i16 NNF1
	let NNF1=${NNO1}
	typeset -i16 NNF2
	let NNF2=${NNO2}
	typeset -i16 NNF3
	let NNF3=${NNO3}
	typeset -i16 NNF4
	let NNF4=${NNO4}
	typeset +i16 NNF1
	typeset +i16 NNF2
	typeset +i16 NNF3
	typeset +i16 NNF4
	NNF1=${NNF1#16\#}
	NNF2=${NNF2#16\#}
	NNF3=${NNF3#16\#}
	NNF4=${NNF4#16\#}
	if [ ${#NNF1} -eq 1 ]
	then
		NNF1="0${NNF1}"
	fi
	if [ ${#NNF2} -eq 1 ]
	then
		NNF2="0${NNF2}"
	fi
	if [ ${#NNF3} -eq 1 ]
	then
		NNF3="0${NNF3}"
	fi
	if [ ${#NNF4} -eq 1 ]
	then
		NNF4="0${NNF4}"
	fi
	typeset -i16 NC
	let NC=16#${NNF1}${NNF2}${NNF3}${NNF4}
	typeset -i10 ANS
	let ANS=${NC}-${NN}
	print - $ANS
}

#
# Check usage.
#
if [ "$#" != 3 ]
then
	print "This script is used to add client entries to a DHCP network"
	print "table by utilizing the pntadm batch facilty.\n"
	print "usage: $0 network start_ip entries\n"
	print "where: network is the IP address of the network"
        print "       start_ip is the starting IP address \n"
        print "       entries is the number of the entries to add\n"
	print "example: $0 10.148.174.0 10.148.174.1 254\n"
	return
fi

#
# Use input arguments to set script variables.
#
NETWORK=$1
START_IP=$2
typeset -i STRTNUM=`client_index ${NETWORK} ${START_IP}`
let ENDNUM=${STRTNUM}+$3
let ENTRYNUM=${STRTNUM}
BATCHFILE=/tmp/batchfile.$$
MACRO=`uname -n`

#
# Check if mask in netmasks table. First try
# for network address as given, in case VLSM
# is in use.
#
NETMASK=`get_netmask ${NETWORK}`
if [ -z "${NETMASK}" ]
then
	get_default_class ${NETWORK} | read DEFNET DEFMASK
	# use the default.
	if [ "${DEFNET}" != "${NETWORK}" ]
	then
		# likely subnetted/supernetted.
		print - "\n\n###\tWarning\t###\n"
		print - "Network ${NETWORK} is netmasked, but no entry was found  \n
              in the 'netmasks' table; please update the 'netmasks'  \n
              table in the appropriate nameservice before continuing. \n 
              (See /etc/nsswitch.conf.) \n" >&2
		return 1
	else
		# use the default.
		NETMASK="${DEFMASK}"
	fi
fi

#
# Create a batch file.
#
print -n "Creating batch file "
while [ ${ENTRYNUM} -lt ${ENDNUM} ]
do
	if [ $((${ENTRYNUM}-${STRTNUM}))%50 -eq 0 ]
	then
		print -n "."
	fi

	CLIENTIP=`get_addr ${NETWORK} ${NETMASK} ${ENTRYNUM}`
	print "pntadm -A ${CLIENTIP} -m ${MACRO} ${NETWORK}" >> ${BATCHFILE}
	let ENTRYNUM=${ENTRYNUM}+1
done
print " done.\n"

#
# Run pntadm in batch mode and redirect output to a temporary file.
# Progress can be monitored by using the output file.
#
print "Batch processing output redirected to ${BATCHFILE}"
print "Batch processing started."

pntadm -B ${BATCHFILE} -v > /tmp/batch.out 2 >&1

print "Batch processing completed."

DHCP サービスによって使用されるファイル

次の表に、Oracle Solaris DHCP に関連するファイルを示します。

表 18–2 DHCP デーモンや DHCP コマンドで使用されるファイル

ファイルまたはテーブル名 

説明 

マニュアルページ 

dhcptab

オプションとその値の組み合わせからなる DHCP 構成情報のテーブルを表す総称的な用語。構成情報はさらにマクロとしてグループ化されます。dhcptab テーブルの名前と位置は、DHCP 情報の格納にどのデータストアを使用するかによって異なります。

dhcptab(4)

DHCP ネットワークテーブル 

IP アドレスをクライアント ID と構成オプションに割り当てます。DHCP ネットワークテーブルの名前は、10.21.32.0 など、ネットワークの IP アドレスに基づいて付けられます。dhcp_network というファイルはありません。DHCP ネットワークテーブルの名前と位置は、DHCP 情報の格納にどのデータストアを使用するかによって異なります。

dhcp_network(4)

dhcpsvc.conf

DHCP デーモンの起動オプションと、データストア情報を格納しています。このファイルを手動で編集してはいけません。起動オプションの変更には dhcpconfig コマンドを使用します。

dhcpsvc.conf(4)

nsswitch.conf

ネームサービスデータベースの場所と、それらのデータベースをどのような順序で検索してさまざまな情報を入手するかを指定します。nsswitch.conf ファイルは、DHCP サーバーを構成する際に正確な構成情報を入手するために使用されます。このファイルは、/etc ディレクトリに存在します。

nsswitch.conf(4)

resolv.conf

DNS クエリーを解決するための情報が含まれています。DHCP サーバーの構成中に、このファイルで、DNS ドメインと DNS サーバーに関する情報が調べられます。このファイルは、/etc ディレクトリに存在します。

resolv.conf(4)

dhcp.interface

ファイル名 dhcp.interface で指定されたクライアントネットワークインタフェースで DHCP が使用されることを示します。たとえば、dhcp.qe0 という名前のファイルが存在する場合、DHCP は qe0 インタフェースで使用されることを表します。その場合、 dhcp.interface ファイルには、ifconfig コマンド (DHCP をそのインタフェースで起動するために使用される) にオプションとして渡されるコマンドが含まれていることがあります。このファイルは、Oracle Solaris DHCP クライアントシステムの /etc ディレクトリに存在します。

特定のマニュアルページはありません。dhcp(5) を参照してください。

interface.dhc

DHCP から得られた特定のネットワークインタフェースの構成パラメータが含まれています。インタフェースの IP アドレスのリースが停止されると、このクライアントは、/etc/dhcp/ interface.dhc にある現在の設定情報をキャッシュします。たとえば、DHCP が qe0 インタフェースで使用されている場合、dhcpagent は、構成情報を /etc/dhcp/qe0.dhc にキャッシュします。DHCP が次にこのインタフェースで起動するときに、リースの有効期限内であれば、このクライアントはキャッシュされた情報を使用するように要求します。DHCP サーバーがこの要求を拒否すると、クライアントは標準の DHCP リースネゴシエーション手順を開始します。

特定のマニュアルページはありません。dhcpagent(1M) を参照してくささい。

dhcpagent

dhcpagent クライアントデーモンのパラメータ値を設定します。このファイルへのパスは /etc/default/dhcpagent です。パラメータについては、/etc/default/dhcpagent ファイルか、 dhcpagent(1M) のマニュアルページを参照してください。

dhcpagent(1M)

DHCP inittab

データタイプなど、DHCP オプションコードのさまざまな要素を定義するとともに、ニーモニックラベルを割り当てます。ファイルの構文については、dhcp_inittab(4) のマニュアルページを参照してください。

クライアント側では、 dhcpinfo/etc/dhcp/inittab ファイル中の情報を人が判読可能な情報として提供します。DHCP サーバーシステムでは、DHCP デーモンと管理ツールがこのファイルから DHCP オプション情報を入手します。

以前のリリースで使用されていた /etc/dhcp/dhcptags ファイルは /etc/dhcp/inittab ファイルで置き換えられている。これについては、 「DHCP のオプション」を参照してください。

dhcp_inittab(4)

DHCP のオプション

従来、DHCP のオプション情報は、サーバーの dhcptab テーブルやクライアントの dhcptags ファイル、さらにさまざまなプログラムの内部テーブルなど、複数の場所に格納されてきました。そのため、Solaris 8 以降のリリースでは、すべてのオプション情報が /etc/dhcp/inittab ファイルに統合されています。ファイルの詳細については、dhcp_inittab(4) のマニュアルページを参照してください。

Oracle Solaris DHCP クライアントでは、dhcptags ファイルの代わりに DHCP の inittab ファイルを使用します。クライアントは、DHCP パケットの一部としてオプションコードを受け取ると、その情報をこのファイルから取得します。DHCP サーバーの in.dhcpdsnoopdhcpmgr プログラムでもこの inittab ファイルを使用します。

サイトが影響を受けるかどうかの判別

Oracle Solaris DHCP を使用するほとんどのサイトは、/etc/dhcp/inittab ファイルへの切り替えによる影響を受けません。影響を受けるのは、次の条件がすべて当てはまるサイトだけです。

アップグレードを行うと、dhcptags ファイルが変更されたために DHCP inittab ファイルを変更する必要があることを示すメッセージがアップグレードログに書き込まれます。

dhcptags ファイルと inittab ファイルの違い

inittab ファイルには、dhcptags ファイルよりも多くの情報が含まれています。さらに、inittab ファイルでは、異なる構文が使用されます。

次に、dhcptags のエントリ例を示します。

33 StaticRt - IPList Static_Routes

33 は DHCP パケットで渡される数値コードです。StaticRt はオプション名です。IPList は、StaticRt のデータタイプが一連の IP アドレスでなければならないことを示します。Static_Routes は記述名です。

inittab ファイルは、これらのオプションを 1 行で表した複数のレコードから構成されています。形式は、dhcptab のシンボルを定義する形式と似ています。次の表に、inittab ファイルの構文について説明します。

オプション

説明

option-name

オプションの名前。オプション名は、そのオプションのカテゴリ内部で一意である必要があります。また、Standard、Site、Vendor のカテゴリにある、ほかのオプション名と重複できません。たとえば、同じ名前を持つ Site オプションを 2 つ持つことはできず、Standard のオプションと同じ名前の Site のオプションは作成できません。

category

オプションが所属する名前空間を特定します。次のいずれかである必要があります。 Standard、Site、Vendor、Field、または Internal。

code

オプションがネットワーク経由で送信されたときにそのオプションを特定します。多くの場合、カテゴリがなくてもコードはオプションを一意に特定します。ただし、Field や Internal などの内部カテゴリの場合は、コードがほかの目的に使用される場合があります。コードは、広域的に一意でない場合があります。コードは、オプションのカテゴリ内部では一意であることが必要で、Standard と Site のフィールドにあるコードと重複することはできません。

type

このオプションと関連するデータを記述します。有効なタイプは、IP、ASCII、Octet、Boolean、Unumber8、Unumber16、Unumber32、Unumber64、Snumber8、Snumber16、Snumber32、および Snumber64 です。数値の場合、先頭の U や S は、数値が符号なしか符号ありかを示します。終わりの数字は、数値にいくつのビットが含まれているかを表します。たとえば、Unumber8 は無符号の 8 ビット数値を表します。タイプには、大文字小文字の区別はありません。

granularity

このオプションの値を構成するデータ単位数を記述します。

maximum

このオプションに指定可能な値の個数を記述します。0 は、無限大の数を表します。

consumers

この情報を使用できるプログラムを記述します。これには次の sdmi を指定します。

s

snoop

d

in.dhcpd

m

dhcpmgr

i

dhcpinfo

次に inittab エントリの例を示します。

StaticRt - Standard, 33, IP, 2, 0, sdmi

このエントリは、オプションが StaticRt という名前で、Standard カテゴリに属し、オプションコード 33 であることを示します。これで表されるデータは、理論上無数の IP アドレスの組です。なぜなら、タイプが IP、データ単位が 2、最大が無限 (0) だからです。このオプションを利用するのは sdmi: snoopin.dhcpddhcpmgrdhcpinfo です。

dhcptags エントリの inittab エントリへの変換

以前に dhcptags ファイルにエントリを追加している場合は、対応するエントリを新しい inittab ファイルにも追加する必要があります。ただし、以前に追加したオプションを使用しない場合は不要です。次の例では、dhcptags エントリの例を inittab フォーマットで表す方法を示しています。

ネットワークに接続されたファックスについて、次の dhcptags エントリを追加したと想定してください。

128 FaxMchn - IP Fax_Machine

コード 128 は、オプションが Site カテゴリに属していなければならないことを示します。オプション名は FaxMchn、データタイプは IP です。

対応する inittab エントリは次のとおりです。

FaxMchn SITE, 128, IP, 1, 1, sdmi

データ単位数が 1、指定可能な値の数が 1 なので、このオプションには 1 つの IP アドレスを指定することを表しています。