このパートには、Dynamic Host Configuration Protocol (DHCP) の概念と、Oracle Solaris DHCP サービスの計画、構成、管理、問題追跡に必要な作業が含まれています。
この章では、Dynamic Host Configuration Protocol (DHCP) の概要とそのプロトコルを支える概念について説明します。さらに、DHCP をネットワークで使用することの利点についても述べます。
この章では、次の内容について説明します。
DHCP プロトコルを使用すれば、TCP/IP ネットワーク上のホストシステムを、システムのブート時に、そのネットワークに合わせて自動的に構成できます。DHCP では、クライアント/サーバーメカニズムが使用されます。サーバーは、クライアントの構成情報を格納、管理し、クライアントの要求に応じてその構成情報を提供します。構成情報には、クライアントの IP アドレスと、クライアントが使用可能なネットワークサービス情報が含まれます。
DHCP は、従来の BOOTP プロトコルをベースに機能拡張されたプロトコルです。BOOTP は、TCP/IP ネットワーク経由のブートを可能にすることを目的に設計されました。クライアントとサーバー間のメッセージの形式は、DHCP の場合も BOOTP の場合も同じです。ただし、DHCP メッセージには、BOOTP メッセージとは異なり、クライアント用のネットワーク構成データを組み込むことができます。
DHCP の主な利点は、リースを通して IP アドレス割り当てを管理できることです。「リース」を使用すれば、使用されていない IP アドレスを取り戻すことができます。取り戻された IP アドレスは、ほかのクライアントに割り当てられます。そのため、DHCP を使用する 1 つのサイト用の IP アドレスプールは、すべてのクライアントに常時 IP アドレスを割り当てた場合に比べて、小さくなります。
DHCP は、TCP/IP ネットワークの設定やネットワークの日々の管理に伴う時間のかかる作業を部分的に軽減します。なお、Oracle Solaris DHCP は IPv4 でのみ動作します。
Oracle Solaris DHCP には、次の利点があります。
IP アドレス管理 – DHCP の主な利点は、IP アドレスをより簡単に管理できることです。DHCP を使用しないネットワークでは、IP アドレスを手動で割り当てる必要があります。個々のクライアントに固有の IP アドレスを割り当て、クライアントを個別に構成するためには、慎重な作業が必要です。さらに、クライアントが別のネットワークに移動したら、そのクライアントのために手動で修正を加える必要があります。DHCP が使用可能な場合は、管理者が介在しなくても、DHCP サーバーが IP アドレスを管理し、割り当てます。クライアントは、別のサブネットに移動する際に新しいネットワークに適した新しいクライアント情報を DHCP サーバーから取得するため、手動による再構成は必要ありません。
一元的なネットワーククライアントの構成 – 構成は、クライアントまたはクライアントのタイプに合わせてカスタマイズできます。構成情報は、同じ場所 (DHCP データストア) に格納されます。したがって、クライアントの構成を変更するためにクライアントにログインする必要はありません。DHCP データストア内の情報を変更するだけで、複数のクライアントに対する変更を実行できます。
BOOTP クライアントのサポート – BOOTP サーバーと DHCP サーバーはどちらも、クライアントからのブロードキャストを待機して、応答します。DHCP サーバーは、DHCP クライアントからの要求だけではなく、BOOTP クライアントからの要求にも応答できます。BOOTP クライアントは、IP アドレスと、ブートに必要な情報をサーバーから受け取ります。
ローカルおよびリモートクライアントのサポート – BOOTP は、あるネットワークから別のネットワークへのメッセージリレー (中継) 機能を備えています。DHCP は、さまざまな方法で BOOTP リレー機能を使用します。ほとんどのネットワークルーターは、BOOTP リレーエージェントとして機能するように構成できます。そのように構成されたネットワークルーターは、要求側クライアントのネットワーク上に存在しないサーバーに BOOTP 要求を渡します。同じ方法で、DHCP 要求をリレーすることも可能です。これは、ルーターには DHCP 要求と BOOTP 要求の区別がないためです。また、BOOTP リレー機能をサポートするルーターが使用できない場合には、Oracle Solaris DHCP サーバーを BOOTP リレーエージェントとして動作するように構成することもできます。
ネットワークブート機能 – クライアントは、DHCP を使用すると、RARP (逆アドレス解決プロトコル) や bootparams ファイルを使用しなくても、ネットワーク上のサーバーからブートに必要な情報を取得できます。DHCP サーバーは、IP アドレス、ブートサーバー、ネットワーク構成情報を含む、クライアントが動作するのに必要なすべての情報をクライアントに提供できます。DHCP 要求は、サブネットを越えてリレーできるので、DHCP ネットワークブート機能を使用すれば、ネットワーク内のブートサーバー数を削減できます。RARP でのブートには、サブネットごとにブートサーバーが必要です。
大規模ネットワークのサポート – 何百万という DHCP クライアントをもつネットワークでは Oracle Solaris DHCP を使用できます。DHCP サーバーは、マルチスレッド機能を使って多数のクライアント要求を同時に処理します。さらに、大量データを処理できるように最適化されたデータストアをサポートします。データストアアクセスは、別個の処理モジュールによって行われます。このようなデータストアアプローチでは、データベースが必要になるたびにそのサポートを追加できます。
まず始めに、DHCP サーバーのインストールと構成を行う必要があります。構成作業では、クライアントがネットワーク上で機能するために必要なネットワーク情報を指定します。この情報が正しく設定されると、クライアントはネットワーク情報を要求し、受け取ることができます。
次の図は、DHCP サービスにおける一連のイベントを示したものです。丸の中の番号は、図のあとに続く説明の箇条書き番号を示しています。
上の図には、次の手順が示されています。
クライアントは、ローカルサブネット上で制限付きブロードキャストアドレス (255.255.255.255) に「検索メッセージ」を送信することで、DHCP サーバーを検索します。ルーターが存在し、BOOTP リレーエージェントとして動作するように構成されている場合、要求は異なるサブネット上の別の DHCP サーバーに渡されます。クライアントの「ブロードキャスト」にはクライアント固有のID が含まれています。Oracle Solaris DHCP 実装では、この ID はクライアントの MAC (Media Access Control) アドレスから抽出されます。Ethernet ネットワークでは、MAC アドレスは Ethernet アドレスと同じです。
検索メッセージを受け取った DHCP サーバーは、次の情報からクライアントのネットワークを特定します。
この要求がどのネットワークインタフェースから入ってきたか。これによってサーバーは、クライアントが、インタフェースが接続されているネットワーク上にあるのか、あるいはそのネットワークに接続された BOOTP リレーエージェントを使用しているのかがわかります。
BOOTP リレーエージェントの IP アドレスが要求に含まれているか。要求がリレーエージェントを通過する際に、リレーエージェントは要求ヘッダーにリレーエージェントのアドレスを挿入します。サーバーが「リレーエージェントのアドレス」を検出すると、サーバーは、そのアドレスのネットワーク部分がクライアントのネットワークアドレスを示していることを認識します。これは、リレーエージェントがクライアントのネットワークに接続されている必要があるからです。
クライアントのネットワークは、サブネット化されているか。サーバーは、リレーエージェントのアドレス、または要求を受け取ったネットワークインタフェースのアドレスが示すネットワークのサブネットマスクを netmasks テーブルから見つけます。サーバーは、使用されているサブネットマスクを認識すると、ネットワークアドレスのどの部分がホスト部分であるかを特定し、クライアント用の適切な IP アドレスを選択できます。netmasks については、netmasks(4) のマニュアルページを参照してください。
DHCP サーバーは、クライアントのネットワークを特定すると、適切な IP アドレスを選択し、そのアドレスがまだ使用されていないことを確認します。次に DHCP サーバーは、「オファーメッセージ」を送信し、そのクライアントに応答します。オファーメッセージには、選択された IP アドレスと、クライアントの構成に使用できるサービスの情報が含まれています。サーバーは、この IP アドレスを使用するかどうかをクライアントが決めるまで、これを一時的に予約します。
クライアントは、オファーされたサービスの数とタイプに基づいて最善のオファーを選択します。そして、最善のオファーとなったサーバーの IP アドレスを求める要求を送信します。この伝送によって、クライアントがサーバーを選択したことを、応答中のすべての DHCP サーバーに知らせることができます。選択されなかったサーバーは、オファーした IP アドレスの予約を取り消します。
選択されたサーバーは、クライアント用の IP アドレスを割り当て、その情報を DHCP データストアに格納します。そして、承認メッセージ (ACK) をクライアントに送信します。「承認メッセージ」には、クライアントのためのネットワーク構成パラメータが含まれています。クライアントは、ping ユーティリティーを使って IP アドレスをテストし、ほかのシステムがそれを使っていないか確かめます。そして、ブートを続行しネットワークに参加します。
クライアントはリース時間を監視します。設定された時間が経過すると、クライアントは、さきほど選択したサーバーに新しいメッセージを送信してリースを増やそうとします。
要求を受け取った DHCP サーバーは、リース期間と、管理者が規定したローカルリースポリシーとが合っていれば、そのリース期間を延長します。サーバーが 20 秒以内に応答しない場合、クライアントは、ほかの DHCP サーバーのいずれかがリース期間を延長できるように要求をブロードキャストします。
クライアントは、その IP アドレスが不要になると、IP アドレスが解放されたことをサーバーに知らせます。この通知は、通常のシャットダウンの際に実行され、また手動で実行することも可能です。
Oracle Solaris DHCP サーバーは、ホストシステム上で Oracle Solaris のデーモンとして動作します。Solaris DHCP サーバーは、2 つの基本機能を備えています。
IP アドレスの管理 – DHCP サーバーは、IP アドレスの範囲を制御し、常時または定義した期間、IP アドレスをクライアントに割り当てます。サーバーはリースメカニズムを使って、クライアントが一時的なアドレスを使用できる期間を決めます。アドレスは、不要になるとプールに返され、再割り当てされます。DHCP サーバーは、DHCP ネットワークテーブル内にクライアントへの IP アドレス結合情報を保持し、複数のクライアントが同じアドレスを使用しないようにします。
クライアントにネットワーク構成情報を提供 – Solaris DHCP サーバーは、クライアントの IP アドレスを割り当て、ホスト名やブロードキャストアドレス、ネットワークサブネットマスク、デフォルトゲートウェイ、ネームサービスといったネットワーク構成情報をクライアントに提供します。ネットワーク構成情報は、サーバーの dhcptab データベースから取得されます。
また、Oracle Solaris DHCP サーバーは次の追加機能を実行するように構成することも可能です。
BOOTP クライアント要求への応答 – Solaris DHCP サーバーは、BOOTP サーバーを検索する BOOTP クライアントからのブロードキャストを待機し、BOOTP クライアントに IP アドレスとブートパラメータを提供します。管理者は、これらの情報をあらかじめ静的に構成しておく必要があります。DHCP サーバーは、同時に BOOTP サーバーとしても DHCP サーバーとしても動作できます。
要求のリレー – Solaris DHCP サーバーは、ほかのサブネット上の適切なサーバーに BOOTP 要求と DHCP 要求をリレーします。DHCP サーバーは BOOTP リレーエージェントとして構成された場合、DHCP サービスや BOOTP サービスを提供できなくなります。
DHCP クライアントにネットワークブート情報を提供 – Solaris DHCP サーバーは、DHCP クライアントがネットワーク経由でブートするために必要な情報を DHCP クライアントに提供できます。 この情報には、IP アドレスやブートパラメータ、ネットワーク構成情報などがあります。さらにサーバーは、広域ネットワーク (WAN) を介したブートやインストールに必要な情報を DHCP クライアントに提供します。
ホスト名を指定したクライアントに代わって DNS テーブルを更新 – DHCP サービスを求めるクライアントの要求に Hostname オプションと値が含まれている場合には、DHCP サーバーが、クライアントに代わって DNS を更新できます。
スーパーユーザーであれば、DHCP マネージャやコマンド行ユーティリティーを使って DHCP サーバーの起動、停止、構成を行うことができます (コマンド行ユーティリティーについては、「DHCP コマンド行ユーティリティー」を参照)。通常、DHCP サーバーは、システムのブート時に自動的に起動され、システムのシャットダウン時に自動的に終了するように構成されています。したがって、通常は、サーバーの起動や終了を手動で行う必要はありません。
Oracle Solaris DHCP サーバーが使用するすべてのデータはデータストアに保持されます。データストアの内容は、プレーンテキストファイル、NIS+ テーブル、またはバイナリ形式ファイルの場合があります。どの形式のデータストアを使用するかは、DHCP サービスを構成するときに選択されます。データストアのタイプによる違いについては、「DHCP データストアの選択」を参照してください。DHCP マネージャや dhcpconfig コマンドを使ってデータストアの形式を変換することはできません。
ある DHCP サーバーのデータストアから別のサーバーのデータストアにデータを移動できます。それらのサーバーが、異なるデータストア形式を使用している場合でも、それらのデータストアを扱うエクスポートやインポートユーティリティーが使用できます。DHCP マネージャか dhcpconfig コマンドを使って、データストアの内容全体またはその一部をエクスポートしたりインポートしたりできます。
Oracle Solaris DHCP (サーバーツールと管理ツール) とデータベース間のインタフェースになる独自のコードモジュールを開発する場合には、DHCP データ領域のデータベースやファイルのフォーマットはどのようなものでもかまいません。詳細は、『Solaris DHCP サービス開発ガイド』を参照してください。
Oracle Solaris DHCP データストア内には、2 つのタイプのテーブルがあります。これらのテーブルの内容を表示したり管理したりするには、DHCP マネージャかコマンド行ユーティリティーを使用します。データテーブルの種類は次のとおりです。
dhcptab テーブル – クライアントに提供することが可能な構成情報が入っています。
DHCP ネットワークテーブル – テーブル名が示すネットワーク上にある DHCP クライアントや BOOTP クライアントの情報が含まれています。たとえば、ネットワーク 192.168.32.0 のテーブル名には、192_168_32_0 が含まれています。
dhcptab テーブルには、クライアントが DHCP サーバーから取得できるすべてのデータが含まれています。DHCP サーバーは、起動されるたびに dhcptab テーブルをスキャンします。dhcptab テーブルのファイル名は、使用されるデータストアによって異なります。たとえば、NIS+ データストア SUNWnisplus によって作成された dhcptab テーブルは SUNWnisplus1_dhcptab になります。
DHCP プロトコルは、クライアントに渡すことができる情報の標準的な項目を多数定義しています。これらの項目は、パラメータ、シンボル、またはオプションと呼ばれます。DHCP プロトコルでは、オプションは数値コードとテキストラベルで定義されており、値は与えられていません。例として、一般的に使用される標準オプションの一部を示します。
表 12–1 DHCP 標準オプションの例
コード |
ラベル |
説明 |
---|---|---|
1 |
Subnet |
サブネットマスク IP アドレス |
3 |
Router |
ルーターの IP アドレス |
6 |
DNSserv |
DNS サーバーの IP アドレス |
12 |
Hostname |
クライアントホスト名を表すテキスト文字列 |
15 |
DNSdmain |
DNS ドメイン名 |
オプションの中には、サーバーの構成中に情報が提供されると、自動的に値が割り当てられるものがあります。また、あとで、ほかのオプションに値を明示的に割り当てることもできます。オプションとその値はクライアントに渡され、構成情報を形成します。たとえば、オプションと値のペアである DNSdmain=Georgia.Peach.COM は、クライアントの DNS ドメイン名を Georgia.Peach.COM に設定します。
オプションは、「マクロ」として知られているコンテナ内でほかのオプションと共にグループ化することができ、これによりクライアントへ容易に情報を渡すことができます。マクロの中には、サーバー構成時に自動的に作成され、構成時に値が割り当てられるオプションを含むものがあります。また、マクロにはほかのマクロを含めることもできます。
dhcptab テーブルのフォーマットについては、dhcptab(4) のマニュアルページを参照してください。DHCP マネージャでは、「オプション (Options)」タブや「マクロ (Macros)」タブに示されるすべての情報は dhcptab ファイルから得られます。オプションについては、「DHCP オプションについて」を参照してください。マクロについては、「DHCP マクロについて」を参照してください。
dhcptab テーブルをテキストエディタで編集しないでください。オプションやマクロの作成、削除、変更には、dhtadm コマンドまたは DHCP マネージャを使用する必要があります。
DHCP ネットワークテーブルは、クライアントの識別子を IP アドレスと、各アドレスに関連した構成パラメータに対応付けます。ネットワークテーブルの書式については、dhcp_network(4) のマニュアルページを参照してください。DHCP マネージャでは、「アドレス (Addresses)」タブに示されるすべての情報はネットワークテーブルから得られます。
DHCP マネージャは、DHCP サービスに関連するすべての管理業務を行うためのグラフィカルユーザーインタフェース (GUI) ツールです。このツールを使用すると、サーバーそのものだけでなく、サーバーが使用するデータも管理できます。DHCP マネージャを実行するためにはスーパーユーザーでなければなりません。
サーバー上では DHCP マネージャを下記の場合に使用できます。
DHCP サーバーを構成または構成解除する場合
DHCP サーバーを起動、停止、および再起動する場合
DHCP サービスを有効または無効にする場合
DHCP サーバーの設定をカスタマイズする場合
さらに、DHCP マネージャでは、IP アドレスやネットワーク構成マクロ、ネットワーク構成オプションに関して次のことができます。
DHCP 管理下にあるネットワークの追加や削除
DHCP 管理下にある IP アドレスの表示、追加、変更、削除、解放
ネットワーク構成マクロの表示、追加、変更、削除
標準以外のネットワーク構成オプションの表示、追加、変更、削除
DHCP マネージャでは、DHCP データストアに関して次のことができます。
データを新しいデータストアフォーマットに変換する。
DHCP データをある DHCP サーバーから別のサーバーに移動する。 データを最初のサーバーからエクスポートし、次のサーバーにインポートする必要があります。
DHCP マネージャでは、実行できる手順についての詳細なオンラインヘルプも利用できます。詳細は、「DHCP マネージャについて」を参照してください。
すべての DHCP 管理機能は、コマンド行ユーティリティーを使用して実行できます。コマンド行ユーティリティーを実行するには、スーパーユーザーとして、または DHCP 管理プロファイルに割り当てられているユーザーでログインしている必要があります。詳細は、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
次の表に、各ユーティリティーとその使用目的を示します。
表 12–2 DHCP コマンド行ユーティリティー
dhcpconfig、dhtadm、pntadm コマンドのセキュリティーは、役割によるアクセス制御 (RBAC, Role-Based Access Control) の設定値に基づいて決められます。デフォルトでは、これらのコマンドを実行できるのはスーパーユーザーだけです。別のユーザー名の下でコマンドを使用する場合は、ユーザー名を DHCP 管理プロファイルに割り当てる必要があります (「DHCP コマンドへのユーザーアクセスの設定」を参照)。
Oracle Solaris DHCP サーバーを動作させたいシステム上で DHCP マネージャを初めて実行するときは、DHCP サーバーを構成します。
DHCP マネージャのサーバー構成ダイアログボックスに、1 つのネットワーク上で DHCP サーバーを使用可能にして実行するために必要な基本情報を入力するように要求するメッセージが表示されます。既存のシステムファイルからいくつかのデフォルト値を取得できます。そのネットワークに対してシステムを構成していない場合には、デフォルト値はありません。DHCP マネージャは下記の情報を入力するように促します。
そのサーバーの役割 : DHCP サーバーまたは BOOTP リレーエージェントのいずれか
データストアの形式 (ファイル、バイナリファイル、NIS+、または独自のもの)
選択したデータストアタイプに対するデータストア構成パラメータ
ホストレコードの更新に使用するネームサービス (使用する場合) (/etc/inet/hosts、NIS+、または DNS)
リース期間と、クライアントがリース期間を更新できるようにするかどうか
DNS サーバーの DNS ドメイン名および IP アドレス
DHCP サービス用に構成する最初のネットワークのネットワークアドレスとサブネットマスク
ネットワークタイプ (ローカルエリアネットワーク (LAN) かポイントツーポイントネットワーク)
ルーターの検索、または特定のルーターの IP アドレス
NIS サーバーの NIS ドメイン名および IP アドレス
NIS+ サーバーの NIS+ ドメイン名および IP アドレス
DHCP サーバーは dhcpconfig コマンドを使用しても構成できます。このユーティリティーは、既存のシステムファイルから情報を自動的に収集して、使える初期構成を提供します。そのため、dhcpconfig コマンドを実行する前に既存のシステムファイルが正しいことを確認しておく必要があります。dhcpconfig がどのファイルから情報を入手するかについては、dhcpconfig(1M) のマニュアルページを参照してください。
Oracle Solaris DHCP サーバーは、下記のタイプの IP アドレス割り当て機能をサポートしています。
手動割り当て – DHCP サーバーは、特定の DHCP クライアント用に選択された専用の IP アドレスを割り当てます。このアドレスは変更したりほかのクライアントに割り当てたりすることはできません。
自動または常時割り当て – DHCP サーバーは有効期限のない IP アドレスを割り当て、その割り当てが変更されるか、あるいは、クライアントがそのアドレスを解放するまで、そのアドレスを永続的にそのクライアントに使用します。
動的割り当て – DHCP サーバーは IP アドレスを要求しているクライアントに、一定期間このアドレスをリースします (貸し出します)。この期間が過ぎると、サーバーはこのアドレスを回収し、ほかのクライアントに割り当てることができます。このアドレスの使用期間はサーバーに構成されているリース期間によって決まります。
どのような情報を DHCP クライアントに提供するかを決める必要があります。DHCP サーバーを構成するときにはネットワークの基本的な情報を指定しますが、あとでクライアントに提供したい情報を追加することもできます。
DHCP サーバーは、オプションと値の対、およびマクロの形でdhcptab テーブルにネットワーク構成情報を保存します。オプションはクライアントに供給するネットワークデータのキーワードです。値はオプションに割り当てられ、DHCP メッセージでクライアントに渡されます。たとえば、NIS サーバーアドレスは、NISservs というオプションで渡されます。NISservs オプションの値は、DHCP サーバーによって割り当てられる一連の IP アドレスと同じものです。マクロは、クライアントに供給したい任意の個数のオプションをグループ化するための便利な方法です。DHCP マネージャを使えば、オプションをグループ化するマクロを作成し、それらのオプションに値を割り当てることができます。コマンド行ツールを使用する場合は、dhtadm (DHCP 構成テーブル管理ユーティリティー) を使ってオプションやマクロを扱うことができます。
Oracle Solaris DHCP では、「オプション」とはクライアントに渡されるネットワーク情報です。DHCP の資料では、オプションは「シンボル」や「タグ」と呼ばれる場合もあります。オプションは、数値コードやテキストラベルで定義されます。オプションは、DHCP サービスで使用されるときに値を受け取ります。
DHCP プロトコルは、一般的に指定されているネットワークデータに対して多数の標準オプションを定義しています。 それらオプションには、たとえば Subnet、Router、Broadcst、NIS+dom、Hostname、および LeaseTim があります。すべての標準オプションのリストについては、dhcp_inittab(4) のマニュアルページを参照してください。標準オプションのキーワードを変更することは一切できません。ただし、ネットワークに関連するオプションをマクロに組み込む際に、オプションに値を割り当てることができます。
標準オプションで指定できないデータに対しては、新しいオプションを作ることができます。作成するオプションは下記のいずれかのカテゴリに分類されるものでなければなりません。
拡張 – この DHCP サーバーにはまだ実装されていないが、標準 DHCP オプションとしてすでに予約されています。使用したい標準オプションがわかっているが、DHCP サーバーをグレードアップしない場合に使用できます。
サイト – 使用しているサイトに固有なオプションのために予約されています。このようなオプションを作成します。
ベンダー – ハードウェアまたはベンダープラットホームなどの特定クラスのクライアントにだけ適用するオプションのために予約されています。Oracle Solaris DHCP の実装には、Oracle Solaris クライアント用の多数のベンダーオプションが含まれています。たとえばオプション SrootIP4 は、ネットワークからブートされるクライアントがそのルート (/) ファイルシステムとして使用すべきサーバーの IP アドレスを指定します。
DHCP オプションの作成、変更、削除に必要な手順については、第 15 章DHCP の管理 (手順)を参照してください。
Oracle Solaris DHCP サービスにおける「マクロ」とは、ネットワーク構成オプションとそれらに割り当てられた値の集合をいいます。マクロは、オプションをグループ化し、特定のクライアントまたはクライアントタイプにオプションをまとめて渡すために作成します。たとえば、特定のサブネット上のすべてのクライアントを対象としたマクロには、サブネットマスク、ルーター IP アドレス、ブロードキャストアドレス、NIS+ ドメイン、およびリース期間のためのオプションと値のペアを含めることができます。
DHCP サーバーがマクロを処理するときは、そのマクロに定義されているネットワークオプションと値を、クライアントへの DHCP メッセージに含めます。サーバーは、特定のタイプのクライアントに対し一部のマクロを自動的に処理します。
サーバーでマクロを自動的に処理するためには、マクロの名前が、次の表に示すカテゴリのいずれかに従っている必要があります。
表 12–3 自動処理のための DHCP マクロカテゴリ
表 12–3 に記載されたどのカテゴリとも一致しない名前をもつマクロは、次の条件の 1 つが当てはまるときだけ処理されます。
マクロが IP アドレスに割り当てられる場合。
マクロが、自動的に処理されるほかのマクロに含まれる場合。
マクロが、IP アドレスに割り当てられているほかのマクロに含まれている場合。
サーバーを構成する場合、デフォルトでは、そのサーバーの名前と一致する名前の付いたマクロが作られます。このサーバーマクロは、自動処理が行われる名称タイプのいずれとも一致しないため、いずれのクライアントに対しても自動的に処理されません。あとでサーバー上で IP アドレスを作成する場合、その IP アドレスは、サーバーのデフォルトのマクロを使用するように割り当てられます。
DHCP クライアントが DHCP サービスを要求するときは、DHCP サーバーはどのマクロがそのクライアントに一致するかを決定します。サーバーは、マクロを処理する際に、マクロカテゴリを使って処理の順序を決めます。最も一般的なカテゴリが最初に処理され、最も特定されるカテゴリが最後に処理されます。マクロは下記の順序で処理されます。
クライアントクラスマクロ – 最も一般的なカテゴリ
ネットワークアドレスマクロ – クライアントクラスよりは特定なマクロ
IP アドレスに割り当てられたマクロ – ネットワークアドレスよりは特定されたマクロ
クライアント ID マクロ – 1 クライアントだけに適用される最も特定されたカテゴリ
ほかのマクロに含まれているマクロはそのマクロの一部として処理されます。
複数のマクロに同じオプションが含まれている場合は、最も特定されたカテゴリのマクロ内のオプションに設定されている値が一番最後に処理されるため、その値が使用されます。たとえば、ネットワークアドレスに、24 時間の値を持つリース期間オプションが含まれていて、クライアント ID マクロに 8 時間の値を持つリース期間オプションが含まれている場合は、そのクライアントは 8 時間のリース期間を受け取ります。
マクロのすべてのオプションに割り当てられている値の長さの合計は、オプションコードと長さ情報を含め 255 バイト以内でなければなりません。この制限は、DHCP プロトコルによるものです。
この制限による影響が最も大きいと思われるマクロは、Oracle Solaris インストールサーバー上のファイルへのパスを渡すためのマクロです。一般に、渡すベンダー情報は、必要最小限に留めるべきです。さらに、パス名を必要とするオプションでは、短いパス名を使用すべきです。長いパスへのシンボリックリンクを作成する場合は、短いこのリンク名を渡すことができます。
「クライアント」という用語は、ネットワーク上でクライアントとしての役割を実行している物理的なマシンについて言及するために使用される場合があります。ただし、このマニュアルで説明している DHCP クライアントはソフトウェアエンティティーです。Oracle Solaris DHCP クライアントは、そのネットワーク構成を DHCP サーバーから受け取るように構成されているシステムの Oracle Solaris で動作するデーモン (dhcpagent) です。ほかのベンダーの DHCP クライアントも Oracle Solaris DHCP サーバーのサービスを使用できます。ただし、このマニュアルでは Oracle Solaris DHCP クライアントについてのみ説明します。
Oracle Solaris DHCP クライアントの詳細は、第 16 章DHCP クライアントの構成と管理を参照してください。
DHCP サービスは、既存のネットワークで使用することも、これから構築するネットワークで使用することもできます。ネットワークを設定する必要がある場合には、DHCP サービスを設定する前に第 2 章TCP/IP ネットワークの計画 (手順)を参照してください。既存のネットワークを使用する場合は、そのままこの章をお読みください。
この章では、ネットワークに DHCP サービスを設定する前に行うべき作業について説明します。この章の説明は、DHCP マネージャを使用することを前提にしていますが、DHCP サービスの設定はコマンド行ユーティリティー dhcpconfig を使って行うこともできます。
この章では、次の内容について説明します。
DHCP の使用に先立ってネットワークを設定する際には、1 つまたは複数のサーバーを構成する際の判断に役立つ情報を収集する必要があります。次の表の作業マップを使用して、DHCP を使用するためにネットワークを準備する作業を特定します。この表では、必要な作業、各作業で実行する内容の説明、および、個別の作業の実行手順を詳しく説明した節を一覧にして示しています。
作業 |
説明 |
説明 |
---|---|---|
ネットワークトポロジをマッピングします。 |
ネットワークでどのようなサービスが利用できるのかを判別し、その場所を突き止めます。 | |
必要な DHCP サーバーの数を決めます。 |
予想される DHCP クライアント数を元にして必要な DHCP サーバーの数を決めます。 | |
システムファイルと netmasks テーブルを更新します。 |
ネットワークトポロジを正確に反映します。 |
ネットワークの物理的な構造を示すマップをまだ作成していない場合は、それを作成します。このマップには、ルーターやクライアントの場所と、ネットワークサービスを提供するサーバーの場所を明示してください。ネットワークトポロジを示すこのマップは、どのサーバーから DHCP サービスを提供するかや、どのような構成情報をクライアントに提供するかを決める上で役立ちます。
ネットワークの計画については、第 2 章TCP/IP ネットワークの計画 (手順)を参照してください。
DHCP 構成プロセスは、サーバーのシステムファイルとネットワークファイルから、いくつかのネットワーク情報を検索できます。これらのファイルについては、 「システムファイルとネットマスクテーブルの更新」を参照してください。ただし、クライアントにほかのサービス情報を提供したい場合には、サーバーのマクロに入力する必要があります。ネットワークトポロジを点検する際には、クライアントが認識する必要があるサーバーの IP アドレスを控えておいてください。たとえば、次のサーバーがネットワークでサービスを提供している場合があります。しかし、DHCP 構成では、これらのサーバーは検出されません。
タイムサーバー
ログサーバー
プリントサーバー
インストールサーバー
ブートサーバー
Web プロキシサーバー
スワップサーバー
X Window フォントサーバー
Trivial File Transfer Protocol (TFTP) サーバー
IP ネットワーク環境によっては、いくつかのローカルエリアネットワーク (LAN) が同じネットワークハードウェアメディアを共有していることがあります。このようなネットワークでは、複数のネットワークハードウェアインタフェースが使用されていたり、複数の論理インタフェースが使用されていたりします。このような共有メディアネットワークでは、DHCP はうまく動作しません。同じ物理ネットワークで複数の LAN が動作していると、DHCP クライアントの要求はすべてのネットワークハードウェアインタフェースに送信されます。そのため、クライアントは、すべての IP ネットワークに同時に接続されているものとみなされます。
DHCP は、適切な IP アドレスをクライアントに割り当てられるように、クライアントのネットワークアドレスを特定できる必要があります。同じハードウェアメディアに複数のネットワークが存在していると、サーバーは、クライアントのネットワークを特定できないため、IP アドレスを割り当てることができません。
DHCP は、複数のネットワークの 1 つでしか実行できません。1 つのネットワークがユーザーの DHCP ニーズと合わない場合は、すべてのネットワークを再構成する必要があります。次のヒントを参考にしてください。
サブネットに対して可変長サブネットマスク (VLSM) を使用して、現在の IP アドレス空間をより有効に活用します。これにより、同じ物理ネットワーク上で複数のネットワークを使用する必要がなくなるかもしれません。可変長サブネットの実装については、netmasks(4) のマニュアルページを参照してください。Classless Inter-Domain Routing (CIDR) と VLSM の詳細は、http://www.ietf.org/rfc/rfc1519.txt を参照してください。
スイッチ上のポートを構成し、デバイスを別の物理 LAN に割り当てます。これにより、Oracle Solaris DHCP の要件である、1 つの LAN から 1 つの IP ネットワークへのマッピングが維持されます。ポートの構成については、スイッチに関する技術資料を参照してください。
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 サービスを実行するためのシステム要件をサーバーが満たしているかどうか判断します。 | |
データストアを選択します。 |
データストアタイプを比較して、サイトに最も適したデータストアを決定します。 | |
リースポリシーを設定します。 |
サイトに適したリースポリシーを決定するために、IP アドレスのリースについて確認します。 | |
ルーターのアドレスを指定するか、ルーターを検索するかを選択します。 |
DHCP クライアントでルーターを検索するか、特定のルーターを使用するかを決定します。 |
ネットワークトポロジを念頭に置き、次のシステム要件に従って、DHCP サーバーを設定するホストを選択します。
ホストの必要条件は次のとおりです。
Solaris 2.6 リリース以降が動作している。多数のクライアントをサポートする場合は、Solaris 8 7/01 リリース以降のバージョンをインストールする必要があります。
DHCP を使用する予定のクライアントがあるすべてのネットワークに、直接ネットワーク経由、または BOOTP リレーエージェントを介してホストからアクセスできる。
経路制御を使用するように構成されている。
ホストでは、ネットワークトポロジを反映した netmasks テーブルが正しく構成されている。
DHCP データは、テキストファイル、バイナリファイル、または NIS+ ディレクトリサービスに保存できます。次の表に、各データストアの特長と、各データストアを使用すべき環境を示します。
表 13–3 DHCP データストアの比較
データストア |
パフォーマンス |
保守 |
共有 |
環境 |
---|---|---|---|---|
バイナリファイル |
高性能、大容量 |
少ない保守で、データベースサーバーが不要です。内容は、DHCP マネージャ、dhtadm 、 pntadm で表示する必要があります。ファイルの定期的なバックアップが必要です。 |
データストアを DHCP サーバーの間で共有することはできません。 |
多数のネットワークからなり、ネットワークごとに数千のクライアントがいる中規模から大規模の環境。小規模から中規模の ISP に適しています。 |
NIS+ |
中程度の性能と容量。NIS+ サービスの性能と容量に依存する |
DHCP サーバーシステムが NIS+ クライアントとして構成されていなければなりません。NIS+ サービスの保守が必要です。内容は、DHCP マネージャ、dhtadm 、 pntadm で表示する必要があります。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 アドレスが使用されなくなったときには、それを検出できます。
ホストシステムは、ローカルネットワークの外側にあるネットワークと通信する場合、ルーターを使用します。ホストは、これらのルーターの IP アドレスを知っていなければなりません。
DHCP サーバーを構成する際には、次のどちらかの方法で DHCP クライアントにルーターアドレスを提供する必要があります。 1 つの方法は、ルーターの IP アドレスを指定する方法です。これより望ましい方法としては、クライアントがルーター発見プロトコルを使ってルーターを検索する方法があります。
そのネットワークのクライアントがルーター発見機能を実行できる場合には、ルーターが 1 つしかなくてもルーター発見プロトコルを使用すべきです。ルーター発見プロトコルを使用すると、クライアントはネットワーク内でのルーター変更に容易に対応できます。たとえば、ルーターに故障が発生したために、新しいアドレスを持つルーターに置き換えられる場合でも、クライアントは、新しいアドレスを自動的に検出できます。新しいネットワーク構成を受信して新しいルーターアドレスを取得する必要はありません。
DHCP サービスの設定の一環として、サーバーが管理する IP アドレスに関する要素を決定します。ネットワークに複数の DHCP サーバーが必要な場合には、いくつかの IP アドレスに対する役割をサーバーごとに割り当てることができます。その際には、アドレス管理をどのように分担させるかを決定する必要があります。次の表の作業マップでは、ネットワークで DHCP を使用するときに IP アドレスを管理するための作業について説明しています。表には、各作業の実行方法を詳しく説明した節へのリンクも含まれています。
作業 |
説明 |
参照先 |
---|---|---|
サーバーが管理する IP アドレスを指定します。 |
DHCP サーバーが管理する IP アドレスの数と範囲を決定します。 | |
サーバーがクライアントのホスト名を自動的に生成するかどうかを決定します。 |
ホスト名を生成すべきかどうかを決定できるように、クライアントホスト名が生成される方法を確認します。 | |
クライアントに割り当てる構成マクロを決定します。 |
クライアントに適したマクロを選択できるように、クライアント構成マクロについて確認します。 | |
使用するリースタイプを決定します。 |
DHCP クライアントに最適なリースタイプを決定するために、リースタイプについて確認します。 |
DHCP マネージャを使用すると、サーバーの初期構成時に、総アドレス数とブロックの開始アドレスを指定することにより、そのブロック分の IP アドレス、またはその範囲内の IP アドレスを DHCP の管理下に追加できます。DHCP マネージャは、この情報から連続するアドレスのリストを作成し、追加します。アドレスが連続していない複数のブロックがある場合は、初期構成のあとに DHCP マネージャのアドレスウィザードを再起動してほかのアドレスを追加できます。
IP アドレスの構成を行う前に、アドレスを追加する最初のブロックにあるアドレスの数と、その範囲内の開始のアドレスの IP アドレスを控えておいてください。
DHCP 本来の動的な特性により、IP アドレスはそれを使用するシステムのホスト名に恒久的に関連付けられる訳ではありません。DHCP 管理ツールでは、各 IP アドレスに対応するクライアント名を生成できます。クライアント名には、接頭辞 (ルート名) とダッシュ、それにサーバーから割り当てられる数字が使用されます。たとえば、ルート名が charlie なら、クライアント名は charlie-1、charlie-2、charlie-3 のようになります。
デフォルトでは、生成されたクライアント名は、それを管理する DHCP サーバーの名前で始まります。この方法は、複数の DHCP サーバーが存在する環境で便利です。特定の DHCP サーバーがどのクライアントを管理しているのかを DHCP ネットワークテーブルから簡単に知ることができるからです。ただし、ルート名は任意の名前に変更できます。
IP アドレスを構成する前に、DHCP 管理ツールを使ってクライアント名を生成するかどうか、生成する場合は、そのクライアント名に使用するルート名を決めてください。
生成されるクライアント名は、DHCP の構成時にホスト名を登録するように指定すれば、/etc/inet/hosts、DNS、または NIS+ 内の IP アドレスに対応付けることができます。詳細は、「クライアントホスト名の登録」を参照してください。
Oracle Solaris DHCP で、「マクロ」は複数のネットワーク構成オプションとその設定値の集まりです。DHCP サーバーは、マクロを使って、どのようなネットワーク構成情報を DHCP クライアントに送信するかを決めます。
管理ツールは、DHCP サーバーの構成時に、システムファイルから情報を収集するだけでなく、プロンプトやコマンド行オプションを通して管理者から直接情報を収集します。この情報から次のマクロを作成します。
ネットワークアドレスマクロ — ネットワークアドレスマクロの名前は、クライアントネットワークの IP アドレスと同じになります。たとえば、ネットワークのアドレスが 192.68.0.0 なら、ネットワークアドレスマクロの名前も 192.68.0.0 になります。このマクロには、ネットワークのどのクライアントでも必要になる情報が含まれています。たとえば、サブネットマスク、ネットワークブロードキャストアドレス、デフォルトルーター、またはルーター発見トークン、さらに、サーバーで NIS/NIS+ を使用する場合には、NIS/NIS+ のドメインとサーバーなどです。ネットワークに適用可能なその他のオプションも含まれることがあります。ネットワークアドレスマクロは、そのネットワークにあるすべてのクライアントに対して自動的に処理されます (「マクロ処理の順序」を参照)。
ロケールマクロ — ロケールマクロの名前は Locale です。このマクロには、時間帯を指定するための協定世界時 (UTC) からの時間差 (秒単位) が含まれています。ロケールマクロは自動的には処理されません。これは、サーバーマクロに含まれています。
サーバーマクロ — サーバーマクロの名前はサーバーのホスト名と同じになります。たとえば、サーバーの名前が pineola なら、サーバーマクロの名前も pineola になります。このサーバーマクロには、リースポリシー、時間サーバー、DNS ドメイン、DNS サーバーに関する情報のほかに、構成プログラムがシステムファイルから入手したその他の情報が含まれていることがあります。サーバーマクロにはロケールマクロが含まれているため、DHCP は、ロケールマクロをサーバーマクロの一部として処理します。
最初のネットワークの IP アドレスを構成する際に、これらのアドレスを使用するすべての DHCP クライアントに対して使用するクライアント構成マクロを選択する必要があります。選択したマクロは、その IP アドレスにマップされます。デフォルトではサーバーマクロが選択されます。このサーバーマクロには、このサーバーを使用するすべてのクライアントに必要な情報が含まれています。
クライアントは、IP アドレスにマップされているマクロのオプションより先に、ネットワークアドレスマクロに含まれているオプションを受け取ります。そのため、サーバーマクロのオプションとネットワークアドレスマクロのオプションが矛盾する場合は、サーバーマクロのオプションが優先します。マクロが処理される順序については、「マクロ処理の順序」を参照してください。
構成しようとするアドレスにリースポリシーが適用されるかどうかは、「リースタイプ」で決まります。DHCP マネージャでは、最初のサーバーの構成時に、追加するアドレスに動的リースを使用するか、常時リースを使用するかを選択できます。dhcpconfig コマンドによる DHCP サーバーの構成では、動的リースが使用されます。
IP アドレスのリースが「動的リース」なら、DHCP サーバーはこのアドレスを管理できます。DHCP サーバーは、IP アドレスをクライアントに割り当て、リース期間を延長し、さらに、そのアドレスが使用されなくなったら、それを検出し、再利用できます。IP アドレスのリースが「常時リース」の場合、DHCP サーバーはアドレスを割り当てることしかできません。その場合、クライアントは、そのアドレスを、明示的に解放するまで所有します。アドレスが解放されると、サーバーはアドレスをほかのクライアントに割り当てることができます。そのアドレスは、常時リースとして構成されている限り、リースポリシーの対象となることはありません。
IP アドレスの範囲を構成した場合、選択したリースタイプはその範囲内のすべてのアドレスに適用されます。DHCP の利点を最大限に活かすためには、大部分のアドレスに対して動的リースを使用する必要があります。必要なら、あとで個々のアドレスを変更して常時リースを指定できます。ただし、常時リースの数は最小限に抑えるべきです。
IP アドレスは、特定のクライアントに手動で割り当てることにより予約できます。予約済みアドレスは、常時リースとも動的リースとも関連付けることもできます。予約済みアドレスに常時リースが割り当てられている場合には、次の条件が適用されます。
そのアドレスに結合されているクライアント以外のクライアントにそのアドレスを割り当てることはできません。
DHCP サーバーがこのアドレスを別のクライアントに割り当てることはできません。
DHCP サーバーがこのアドレスを再利用することはできません。
予約済みアドレスに動的リースが割り当てられている場合には、このアドレスに結合されているクライアントだけにこのアドレスを割り当てることができます。ただし、クライアントは、アドレスが予約されていないかのように、リース期間を管理し、リースの延長をネゴシエートする必要があります。この方法を使用すると、ネットワークテーブルを参照するだけで、クライアントがそのアドレスを使用しているかどうかを監視できます。
初期構成時にすべての IP アドレスに対して予約済みアドレスを生成することはできません。予約済みアドレスは、個々のアドレスに対しての使用は制限すべきものだからです。
複数の DHCP サーバーを構成して IP アドレスを管理する場合には、次のガイドラインに従ってください。
各サーバーがそれぞれのアドレス範囲を受け持ち、またアドレス範囲が重複しないように、IP アドレスのプールを分割します。
可能であれば、データストアとして NIS+ を選択します。そうでない場合は、テキストファイルを選択し、データストアへの絶対パスとして共有ディレクトリを指定します。バイナリファイルのデータストアを共有することはできません。
アドレスの所有権が正しく割り当てられるように、またサーバーベースのマクロが自動的に作成されるように、個々のサーバーを個別に構成します。
指定された時間間隔で dhcptab テーブルのオプションとマクロを走査するようにサーバーを設定します。これによって、すべてのサーバーが最新の情報を使用します。DHCP マネージャでは、dhcptab の自動的な読み取りをスケジュールできます (「DHCP サーバー用の性能オプションのカスタマイズ」を参照)。
すべてのクライアントからすべての DHCP サーバーにアクセスできるようにします。これによって、個々のサーバーがそれぞれを相互にサポートできます。たとえば、有効な IP アドレスリースを持つクライアントが、そのアドレスを所有するサーバーにアクセスできないため、構成の検証またはリースの延長を行おうとしているとします。クライアントが一次サーバーに 20 秒間アクセスを試みても応答がない場合は、別のサーバーがクライアントに応答できます。さらに、あるクライアントが特定の IP アドレスを要求しても、そのアドレスを所有するサーバーが応答しない場合にも、ほかのいずれかのサーバーが要求を処理します。ただし、この場合、クライアントが受信するのは、要求したアドレスではありません。クライアントは、応答した DHCP サーバーが所有している IP アドレスを受け取ります。
DHCP の初期構成が完了すると、リモートネットワーク内の IP アドレスを DHCP の管理下に置くことができます。ただし、システムファイルはサーバー内にないため、DHCP マネージャや dhcpconfig はデフォルト値を提供するための情報を検索できません。したがって、管理者が情報提供する必要があります。リモートネットワークの構成を行う前に、次の情報を用意してください。
リモートネットワークの IP アドレス。
リモートネットワークのサブネットマスク。この情報は、ネームサービスの netmasks テーブルから取得できます。ネットワークがローカルファイルを使用する場合は、そのネットワーク内のシステム上にある /etc/netmasks を参照してください。ネットワークが NIS+ を使用する場合は、niscat netmasks.org_dir コマンドを使用します。ネットワークが NIS を使用する場合には、ypcat -k netmasks.byaddr コマンドを使用します。netmasks テーブルが、管理対象としたいすべてのサブネットに関するトポロジ情報をすべて含んでいることを確認してください。
ネットワークタイプ。クライアントは、ローカルエリアネットワーク (LAN) 接続か、ポイントツーポイントプロトコル (PPP) を通してネットワークに接続します。
経路制御情報。クライアントはルーター発見機能を使用できますか。使用できない場合は、クライアントが使用するルーターの IP アドレスを指定する必要があります。
NIS ドメインと NIS サーバー (使用する場合)。
NIS+ ドメインと NIS+ サーバー (使用する場合)。
DHCP ネットワークの追加手順については、「DHCP ネットワークの追加」を参照してください。
情報の収集や DHCP サービスの計画が終わったら、DHCP サーバーを構成します。サーバーの構成には、DHCP マネージャかコマンド行ユーティリティー dhcpconfig を使用します。DHCP マネージャでオプションを選択し、データを指定すると、そのデータから DHCP サーバーが使用する dhcptab テーブルとネットワークテーブルが作成されます。dhcpconfig ユーティリティーでは、コマンド行オプションを使ってデータを入力する必要があります。
Java™ 技術ベースの GUI ツールである DHCP マネージャには、DHCP 構成ウィザードがあります。DHCP サーバーとして構成されていないシステムで DHCP マネージャを初めて実行すると、DHCP 構成ウィザードが自動的に起動されます。DHCP 構成ウィザードの一連のダイアログボックスでは、サーバーの構成に不可欠な次の情報を入力する必要があります。 データストア形式、リースポリシー、DNS/NIS/NIS+ サーバーとドメイン、ルーターのアドレスなど。ただし、この情報の一部はウィザードがシステムファイルから入手します。したがって、情報が正しいかどうかを確認したり、正しくない場合は訂正します。
いくつかのダイアログボックスを表示し、情報が正しいことを確認すると、DHCP サーバーデーモンがサーバーシステムで起動されます。そして、追加アドレスウィザードを起動し、ネットワーク用の IP アドレスを構成するように求められます。最初は、サーバーのネットワークだけが DHCP 用に構成され、その他のサーバーオプションにはデフォルト値が与えられます。初期構成が完了したあとで DHCP マネージャを再起動すると、ネットワークを追加したり、ほかのサーバーオプションを変更したりできます。
DHCP 構成ウィザードについては、「DHCP サーバーの構成と構成解除 (DHCP マネージャ)」を参照してください。DHCP マネージャの詳細については、「DHCP マネージャについて」を参照してください。
dhcpconfig ユーティリティーは、DHCP サーバーの構成や構成解除だけでなく、新しいデータストアへの変換やほかの DHCP サーバーとのデータのインポート/エクスポートを行うことができます。dhcpconfig ユーティリティーを使って DHCP サーバーを構成しようとすると、このユーティリティーは、システムファイルから情報を取得します (「システムファイルとネットマスクテーブルの更新」を参照)。DHCP マネージャの場合とは異なり、システムファイルから取得した情報の表示や確認を行うことはできません。したがって、dhcpconfig を使用する場合は、システムファイルを事前に更新しておくことが重要になります。コマンド行オプションを使用すると、dhcpconfig がデフォルトでシステムファイルから得る値を無効にできます。dhcpconfig ユーティリティーは、スクリプト中で使用できます。詳細は、dhcpconfig(1M) のマニュアルページを参照してください。
下の表に、2 つのサーバー構成ツールの相違点を示します。
表 13–4 DHCP マネージャと dhcpconfig コマンドの比較
機能 |
DHCP マネージャ |
dhcpconfig (オプションの指定) |
---|---|---|
システムから収集されたネットワーク情報。 |
システムファイルから収集された情報を表示し、必要な場合は変更できます。 |
コマンド行オプションを使ってネットワーク情報を指定できます。 |
構成処理の速さ。 |
必須ではないサーバーオプションのプロンプトを省略することによって、構成処理を高速化できます。代わりにデフォルト値を使用します。必須ではないオプションは、初期構成後に変更できます。 |
構成処理はもっとも速いですが、多くのオプションを使って値を指定しなければならない場合があります。 |
DHCP マネージャまたは dhcpconfig ユーティリティーを使ってサーバーを構成する手順については、第 14 章DHCP サービスの構成 (手順)を参照してください。
ネットワーク上の DHCP サービスを構成する際には、最初の DHCP サーバーを構成し起動します。ほかの DHCP サーバーはあとで追加できます。データストアが共有データをサポートする場合、共有された場所から同じデータにアクセスできます。この章では、DHCP サーバーを構成し、ネットワークと関連する IP アドレスを DHCP の管理下に置く作業について説明します。さらに、DHCP サーバーを構成解除する方法についても説明します。
作業ごとに、同じ作業を DHCP マネージャで処理する手順と、 dhcpconfig ユーティリティーで処理する手順を説明します。この章では、次の内容について説明します。
DHCP サービスの構成作業で問題がある場合は、第 17 章DHCP の障害追跡 (リファレンス)を参照してください。
DHCP サービスの構成が終了したら、DHCP サービスの管理に関する説明が記載されている第 15 章DHCP の管理 (手順)を参照してください。
この節では、DHCP マネージャを使用して DHCP サーバーを構成および構成解除する手順について説明します。なお、DHCP マネージャを使用するには、CDE や GNOME などの X Window System が動作している必要があります。
/usr/sadm/admin/bin/dhcpmgr コマンドで DHCP マネージャを実行するためには、スーパーユーザーになる必要があります。このユーティリティーの一般的な説明については、「DHCP マネージャについて」を参照してください。DHCP マネージャを実行する方法についての詳細は、「DHCP サービスを起動および停止する方法 (DHCP マネージャ)」を参照してください。
DHCP として構成されていないサーバーで DHCP マネージャを実行すると、次の画面が表示されます。DHCP サーバーを構成するのか、BOOTP リレーエージェントを構成するのかを指定できます
DHCP サーバーを構成する場合は、DHCP マネージャによって DHCP 構成ウィザードが起動され、サーバーの構成に必要な情報の入力を求められます。次の図に示すような、ウィザードの初期画面が表示されます。
ウィザードの質問に答えると、DHCP マネージャは、次のテーブルに示されている項目を作成します。
表 14–1 DHCP サーバーの構成時に作成される項目
DHCP サーバーを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。特に、次の作業を行う際には、「DHCP サーバーの構成前に必要な選択 (作業マップ)」 のガイドラインが役立ちます。
DHCP サーバーとして使用するシステムを選択します。
データストア、リースポリシー、ルーター情報について決定します。
サーバーシステム上でスーパーユーザーになります。
DHCP マネージャを起動します。
#/usr/sadm/admin/bin/dhcpmgr & |
「DHCP サーバーとして構成 (Configure as DHCP Server)」オプションを選択します。
サーバーの構成を支援する「DHCP 構成ウィザード (DHCP Configuration Wizard)」が表示されます。
計画作成段階で決めた事項に基づいて、オプションを選択するか、要求された情報を入力します。
わからないことがある場合は、ウィザードウィンドウ内の「ヘルプ (Help)」をクリックして Web ブラウザを開き、DHCP 構成ウィザードのヘルプを表示します。
要求された情報の指定が終了したら、「完了 (Finish)」をクリックしてサーバー構成を完了します。
アドレス起動ウィザードのプロンプトで「はい (Yes)」をクリックし、サーバーの IP アドレスを構成します。
「ネットワークへアドレスの追加 (Add Addresses to Network)」ウィザードでは、どのアドレスを DHCP の制御下に置くかを指定できます。
計画作成段階で決めた事柄に従って質問に答えます。
詳細は、「IP アドレスの管理に必要な選択 (作業マップ)」を参照してください。わからないことがある場合は、ウィザードウィンドウ内の「ヘルプ (Help)」をクリックして Web ブラウザを開き、「ネットワークへアドレスの追加 (Add Addresses to Network )」ウィザードのヘルプを表示します。
選択した項目を確認し、「完了 (Finish)」をクリックしてネットワークテーブルに IP アドレスを追加します。
指定した範囲内にある各アドレスのレコードで、ネットワークテーブルが更新されます。
「ネットワークウィザード (Network Wizard)」を使えば、ほかのネットワークを DHCP サーバーに追加できます (「DHCP ネットワークの追加」を参照)。
BOOTP リレーエージェントを構成する場合は、DHCP マネージャが次の動作を行います。
要求をリレーすべき 1 つまたは複数の DHCP サーバーの IP アドレスを入力するように求める
BOOTP リレーサービスに必要な設定を格納する
次に、BOOTP リレーエージェントの構成を選択した場合に表示される画面を示します。
BOOTP リレーエージェントを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。とりわけ、使用するシステムの選択には、「DHCP サービスを実行するホストの選択」が役立ちます。
サーバーシステム上でスーパーユーザーになります。
DHCP マネージャを起動します。
#/usr/sadm/admin/bin/dhcpmgr & |
システムが DHCP サーバーか BOOTP リレーエージェントとして構成されていないと、「DHCP 構成ウィザード (DHCP Configuration Wizard)」が起動されます。システムがすでに DHCP サーバーとして構成されている場合は、まずサーバーを構成解除する必要があります。詳細は、「DHCP サーバーと BOOTP リレーエージェントの構成解除」を参照してください。
「BOOTP リレーとして構成 (Configure as BOOTP Relay)」を選択します。
「BOOTP リレーの構成 (Configure BOOTP Relay)」ダイアログボックスが表示されます。
1 つまたは複数の DHCP サーバーの IP アドレスかホスト名を入力し、「追加 (Add)」をクリックします。
指定する DHCP サーバーは、この BOOTP リレーエージェントによって受信される BOOTP 要求や DHCP 要求を処理できるように構成されていなければなりません。
「了解 (OK)」をクリックして、ダイアログボックスを終了します。
DHCP マネージャ はアプリケーションを終了するための「ファイル (File)」メニューと、サーバーを管理するための「サービス (Service)」メニューだけを表示します。無効になっているメニューオプションは DHCP サーバーだけで使用されます。
DHCP サーバーまたは BOOTP リレーエージェントを構成解除するとき、DHCP マネージャは次の動作を行います。
DHCP デーモン (in.dhcpcd) プロセスを停止する
デーモンの起動に関する情報とデータストアの場所を記録している /etc/inet/dhcpsvc.conf ファイルを削除する
次に、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 サーバーへ要求を転送するために、このエージェントを使用しているクライアントが存在しないことを確認してください。
スーパーユーザーになります。
DHCP マネージャを起動します。
#/usr/sadm/admin/bin/dhcpmgr & |
「サービス (Service)」メニューから、「構成解除 (Unconfigure)」を選択します。
「サービスの解除 (Unconfigure Service)」ダイアログボックスが表示されます。サーバーが BOOTP リレーエージェントの場合、このダイアログボックスでリレーエージェントを構成解除することを確認できます。サーバーが DHCP サーバーの場合、DHCP データをどうするかを決定し、このダイアログボックスで選択する必要があります。図 14–4 を参照してください。
(省略可能) データを削除するためのオプションを選択します。
サーバーが共有データ (NIS+ 経由で共有されるデータ、または NFS 経由で共有されるファイル) を使用する場合、データを削除するオプションは選択しないでください。サーバーが共有データを使用しない場合、データを削除するオプションの 1 つまたは両方を選択します。
データの削除については、「構成解除したサーバー上の DHCP データ」を参照してください。
「了解 (OK)」をクリックしてサーバーを構成解除します。
「サービスの解除 (Unconfigure Service)」ダイアログボックスと DHCP マネージャが終了します。
この節では、dhcpconfig とコマンド行オプションを使用して、DHCP サーバーまたは BOOTP リレーエージェントを構成または構成解除する手順について説明します。
DHCP サーバーを構成する前に第 13 章DHCP サービスの使用計画 (手順)を必ずお読みください。特に、次の作業を行う際には、「DHCP サーバーの構成前に必要な選択 (作業マップ)」 のガイドラインが役立ちます。
DHCP サーバーとして使用するシステムを選択します。
データストア、リースポリシー、ルーター情報について決定します。
DHCP サーバーの構成を行うシステムにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して 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) のマニュアルページを参照してください。
1 つまたは複数のネットワークを DHCP サービスに追加します。
ネットワークを追加する手順については、「DHCP ネットワークを追加する方法 (dhcpconfig)」を参照してください。
「DHCP サービスを実行するホストの選択」に記載されている要件に従って、BOOTP リレーエージェントとして使用するシステムを選択します。
BOOTP リレーエージェントとして構成したいサーバーにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して BOOTP リレーエージェントを構成します。
# /usr/sbin/dhcpconfig -R server-addresses |
要求を転送する DHCP サーバーの 1 つまたは複数の IP アドレスを指定します。複数のアドレスを指定する場合には、アドレス間をコンマで区切ります。
たとえば、次のようなコマンドを入力します。
/usr/sbin/dhcpconfig -R 192.168.1.18,192.168.42.132 |
構成解除したい DHCP サーバーまたは BOOTP リレーエージェントシステムにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
DHCP サーバーまたは BOOTP リレーエージェントを構成解除します。
# /usr/sbin/dhcpconfig -U |
サーバーが共有データを使用していない場合は、-x オプションを使って、構成解除と同時に dhcptab テーブルとネットワークテーブルを削除できます。サーバーが共有データを使用する場合、-x オプションは使用しないでください。-h オプションを使用すると、ホスト名をホストテーブルから削除できます。dhcpconfig のオプションについては、dhcpconfig(1M) のマニュアルページを参照してください。
データの削除については、「構成解除したサーバー上の DHCP データ」を参照してください。
この章では、Oracle Solaris DHCP サービスを管理するときに便利な作業について説明します。この章では、サーバー、BOOTP リレーエージェント、およびクライアントに関する作業を説明します。各作業ごとに、DHCP マネージャを使用する手順と DHCP コマンド行ユーティリティーを使用する手順を説明します。DHCP コマンド行ユーティリティーについての詳細は、マニュアルページを参照してください。
この章に進む前に、DHCP サービスとネットワークの初期構成を済ませておく必要があります。DHCP の構成については、第 14 章DHCP サービスの構成 (手順)を参照してください。
この章では、次の内容について説明します。
DHCP マネージャは、DHCP サービスで管理作業を実行するために使用するグラフィカルユーザーインタフェース (GUI) ツールです。
DHCP マネージャウィンドウの外観は、DHCP マネージャが動作するシステムで DHCP サーバーがどのように構成されているかによって異なります。
システムが DHCP サーバーとして構成されている場合、DHCP マネージャはタブ形式のウィンドウを使用します。作業に応じて適切なタブを選択してください。DHCP マネージャには次のタブがあります。
「アドレス (Addresses)」タブ – DHCP が管理しているすべてのネットワークと IP アドレスをリストします。「アドレス (Addresses)」タブでは、ネットワークや IP アドレスを操作できます。追加や削除は、1 つずつ行うこともブロック単位で行うこともできます。また、各ネットワークや IP アドレスの属性を変更したり、アドレスをまとめて同時に同じ属性に変更したりできます。DHCP マネージャを起動すると、「アドレス (Addresses)」タブが最初に開かれます。
「マクロ (Macros)」タブ – DHCP 構成テーブル (dhcptab) で利用できるすべてのマクロと、それらのマクロに含まれるオプションをリストします。「マクロ (Macros)」タブでは、マクロの作成や削除ができます。さらに、オプションを追加し、その値を設定することによってマクロを変更できます。
「オプション (Options)」タブ – この DHCP サーバーについて定義されたすべてのオプションをリストします。このタブで表示されるオプションは、DHCP プロトコルで定義された標準的なオプションではありません。「拡張 (Extended)」、「ベンダー (Vendor)」、または「サイト (Site)」のクラスを持つ、標準オプションを拡張したものです。標準オプションは変更できないため、このタブには表示されません。
DHCP サーバーで DHCP マネージャを起動すると、次のような DHCP マネージャのウィンドウが表示されます。
サーバーが BOOTP リレーエージェントとして構成されている場合、DHCP マネージャウィンドウにはこれらのタブは表示されません。BOOTP リレーエージェントでは、これらのタブの情報は必要ないからです。BOOTP リレーエージェントの属性を変更し、DHCP マネージャを使用して DHCP デーモンを停止または起動することだけが可能です。次の図は、BOOTP リレーエージェントとして構成されたシステム上で起動した場合の DHCP マネージャウィンドウです。
「ファイル (File)」– DHCP マネージャを終了します。
「編集 (Edit)」– ネットワーク、アドレス、マクロ、およびオプションについて管理作業を実行します。
「表示 (View)」– 現在選択されているタブの表示を変更します。
「サービス (Service)」 – DHCP デーモンとデータストアを管理します。
「ヘルプ (Help)」– Web ブラウザを開いて、DHCP マネージャのヘルプを表示します。
DHCP マネージャが BOOTP リレーエージェントで実行されている場合、「編集 (Edit)」メニューと「表示 (View)」メニューは使用できません。
すべての DHCP 管理機能は、「編集 (Edit)」メニューと「サービス (Service)」メニューで実行されます。
「編集 (Edit)」メニューにあるコマンドを使用して、選択されているタブの項目を作成、削除、変更できます。この項目には、ネットワーク、アドレス、マクロ、オプションがあります。また、「アドレス (Addresses)」タブが選択されている場合、「編集 (Edit)」メニューはウィザードも表示します。このウィザードは、ネットワークと複数の IP アドレスを容易に作成できるダイアログのセットです。
「サービス (Service)」メニューは、DHCP デーモンを管理するためのコマンドを表示します。「サービス (Service)」メニューでは、次のタスクを実行できます。
DHCP デーモンを起動および停止する。
DHCP デーモンを有効化および無効化する。
サーバー構成を変更する。
サーバー構成を解除する。
データストアを変換する。
サーバー上のデータをエクスポートおよびインポートする。
DHCP マネージャを DHCP サーバーシステムで実行する場合、スーパーユーザーとして実行する必要があります。DHCP マネージャをリモートから実行する必要がある場合には、X Window リモート表示機能を使用して、表示画面を使用しているシステムに送信できます。
(省略可能) リモートで DHCP サーバーシステムにログインしている場合、次の手順でローカルのシステムに DHCP マネージャを表示できます。
DHCP マネージャを起動します。
# /usr/sadm/admin/bin/dhcpmgr & |
DHCP マネージャウィンドウが開きます。サーバーが DHCP サーバーとして構成されている場合には、「アドレス (Addresses)」タブが表示されます。サーバーが BOOTP リレーエージェントとして構成されている場合には、タブは表示されません。
DHCP マネージャを停止するには、「ファイル (File)」メニューから「終了 (Exit)」を選択します。
デフォルトでは、dhcpconfig、dhtadm、および pntadm コマンドを実行できるのは、root またはスーパーユーザーだけです。これらのコマンドを root ユーザー以外で使用する場合は、これらのコマンドに対して、役割によるアクセス制御 (RBAC) を設定する必要があります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
さらに、次のマニュアルページも役立ちます。rbac(5)、exec_attr(4)、および user_attr(4) です。
次の手順では、ユーザーに DHCP 管理プロファイルを割り当て、そのユーザーが DHCP コマンドを実行できるようにする方法を説明します。
DHCP サーバーシステム上でスーパーユーザーになります。
/etc/user_attr ファイルを編集してエントリを次の書式で追加します。DHCP サーバーを管理するユーザーまたは役割ごとに 1 つのエントリを追加します。
username::::type=normal;profiles=DHCP Management |
たとえば、ユーザー ram には、次のエントリを追加します。
ram::::type=normal;profiles=DHCP Management
この節では、DHCP マネージャや dhcpconfig コマンドを使用した DHCP サービスの起動や停止を説明します。DHCP サービスの起動や停止は、サービス管理機能 (SMF) コマンドでもできます。DHCP サービスで SMF コマンドを使用する方法については、「DHCP サービスとサービス管理機能」を参照してください。
DHCP サービスの起動と停止には、DHCP デーモンの動作に影響する可能性がある処理をいくつか実行する必要があります。正しい手順を選択して希望する結果を得るためには、それぞれの処理の意味を理解しておく必要があります。これらの処理の意味は次のとおりです。
「起動、停止、再起動コマンド」は、現在のセッションのデーモンだけに影響します。つまり、DHCP サービスを停止すると現在実行中のデーモンは終了しますが、システムを再起動すると終了したデーモンは再び起動します。サービスを停止しても、DHCP データテーブルは影響されません。DHCP マネージャや SMF コマンドを使って、サービスを有効にも無効にもすることなく、DHCP サービスを一時的に起動したり停止したりできます。
「有効コマンドと無効コマンド」は、現在のセッションと将来のセッションのデーモンに影響します。DHCP サービスを無効にすると、現在実行中のデーモンは終了し、サーバーを再起動しても終了したデーモンは起動しません。DHCP デーモンがシステム起動時に自動的に起動するように設定しておく必要があります。DHCP データテーブルは影響されません。DHCP サービスを有効または無効にするには、DHCP マネージャ、dhcpconfig コマンド、または SMF コマンドを使用できます。
「構成解除コマンド」は、デーモンをシャットダウンし、システムの再起動時にデーモンが起動されないようにし、DHCP データテーブルを削除できるようにします。DHCP サービスを構成解除する操作には、DHCP マネージャや dhcpconfig コマンドが使用できます。構成解除については、第 14 章DHCP サービスの構成 (手順)を参照してください。
サーバーに複数のネットワークインタフェースがあり、すべてのネットワークでは DHCP サービスを提供したくない場合、「DHCP で監視するネットワークインタフェースの指定」を参照してください。
次に、DHCP サービスを起動および停止、有効および無効にする手順を説明します。
DHCP サーバーシステムにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のいずれかを選択してください。
サービス管理機能 (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 マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログが使用できます。あるいは、dhcpconfig コマンドでオプションを指定することもできます。
次の表のマップでは、DHCP サービスオプションを変更するための作業について説明しています。この表には、各作業を完了するための手順へのリンクも含まれています。
作業 |
説明 |
説明 |
---|---|---|
ログオプションを変更します。 |
ログを有効または無効にし、さらに DHCP トランザクションのログに使用する syslog 機能を選択します。 |
「詳細 DHCP ログメッセージを生成する方法 (DHCP マネージャー)」 「詳細 DHCP ログメッセージを生成する方法 (コマンド行)」 「DHCP トランザクションログを有効または無効にする方法 (DHCP マネージャ)」 |
DNS 更新オプションを変更します。 |
クライアント用の DNS エントリ (ホスト名を指定する) を動的に追加するサーバーの機能を有効または無効にします。DNS を更新する際にサーバーが使用できる最大の時間を決めます。 | |
重複 IP アドレス検出を有効または無効にします。 |
DHCP サーバーが IP アドレスをクライアントに提供する前に IP アドレスがまだ使用されていないことを確認できるようにするかどうかを指定します。 | |
DHCP サーバーの構成情報の読み込みに関するオプションを変更します。 |
指定された間隔での dhcptab の自動読み込みを有効または無効にします。また、読み込み間隔を変更します。 | |
リレーエージェントホップ数を変更します。 |
DHCP デーモンでドロップされる前に要求をやり取りできるネットワーク数を増減します。 | |
提供される IP アドレスがキャッシュされている時間を変更します。 |
新しいクライアントに IP アドレスを提供する前に DHCP サービスが提供された IP アドレスを予約する秒数を増減します。 |
次に、DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックスを示します。
DHCP サービスは、DHCP サービスメッセージと DHCP トランザクションを syslog に記録できます。syslog についての詳細は、syslogd(1M) および syslog.conf(4) のマニュアルページを参照してください。
syslog に記録される DHCP サービスメッセージには、次のものがあります。
エラーメッセージ。DHCP サービスがクライアントまたは管理者の要求を完了するのを妨げる条件を、管理者に通知します。
警告と通知。DHCP サービス完了を妨げはしないが、正常終了しなかった状態を管理者に通知します。
DHCP デーモンの詳細オプションを使用して、報告される情報を増やすことができます。詳細メッセージ出力は、DHCP に関する問題の障害追跡に役立つ場合があります。詳細は、「詳細 DHCP ログメッセージを生成する方法 (DHCP マネージャー)」を参照してください。
もう 1 つの有用な障害追跡方法は、トランザクションの記録です。トランザクションは、DHCP サーバーや BOOTP リレーとクライアントとの間のすべての交換に関する情報を提供します。DHCP トランザクションのメッセージには、次のタイプがあります。
ASSIGN – IP アドレスの割り当て
ACK – サーバーは、クライアントが提供された IP アドレスを受け入れることを認め、構成パラメータを送る
EXTEND – リース期間の延長
RELEASE – IP アドレスの解放
DECLINE – クライアントはアドレス割り当てを拒否している
INFORM – クライアントはネットワーク構成パラメータを要求しているが IP アドレスは要求していない
NAK – サーバーは、クライアントに対して、すでに使用された IP アドレスの使用要求を認めない
ICMP_ECHO – サーバーは、可能性のある IP アドレスがほかのホストですでに使用中であることを検出する
BOOTP リレートランザクションのメッセージには、次のタイプがあります。
RELAY-CLNT – メッセージは DHCP クライアントから DHCP サーバーへリレーされる
RELAY-SRVR – メッセージは DHCP サーバーから DHCP クライアントへリレーされる
DHCP トランザクションのログは、デフォルトでは使用不可になっています。DHCP トランザクションのログが使用可能になっていると、デフォルトで syslog の local0 機能が使用されます。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 ファイルに記録する方法」を参照してください。
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「DHCP マネージャを起動および停止する方法」を参照してください。
「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開かれ、そこに「オプション (Options)」タブが表示されます。図 15–3 を参照してください。
「詳細ログメッセージ (Verbose Log Messages)」を選択します。
「サーバーの再起動 (Restart Server)」を選択します。
「サーバーの再起動 (Restart Server)」オプションはダイアログボックス下部にあります。
「了解 (OK)」をクリックします。
このセッション以降、このオプションを再設定するまで、デーモンは詳細モードで動作します。メッセージを表示するのに時間がかかるため、詳細モードではデーモンの効率が低下する場合があります。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のコマンドを入力して詳細モードにします。
# /usr/sbin/dhcpconfig -P VERBOSE=true |
次回の DHCP サーバーの起動からサーバーは詳細モードで実行されます (詳細モードがオフにされるまで) 。
詳細モードをオフに設定する場合は、次のコマンドを入力します。
# /usr/sbin/dhcpconfig -P VERBOSE= |
このコマンドは、VERBOSE キーワードを値なしに設定します。すると、このキーワードはサーバーの構成ファイルから削除されます。
メッセージを表示するのに時間がかかるため、詳細モードではデーモンの効率が低下する場合があります。
この手順では、以後すべての DHCP サーバーセッションに関するトランザクションログを有効または無効にします。
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「DHCP マネージャを起動および停止する方法」を参照してください。
「syslog へのログトランザクション (Log Transactions to Syslog Facility)」を選択します。
トランザクションログを無効にするには、このオプションの選択を解除します。
(省略可能) ローカル機能を 0 から 7 まで選択して、DHCP トランザクションログに使用します。
デフォルトでは、DHCP トランザクションはシステム通知が書き込まれる場所に書き込まれます。システム通知が書き込まれる場所は syslogd で構成できます。DHCP トランザクションをほかのシステム通知とは別の場所に記録する場合は、「DHCP トランザクションを別の syslog ファイルに記録する方法」を参照してください。
トランザクションログを有効にすると、メッセージファイルのサイズは急速に大きくなります。
「サーバーの再起動 (Restart Server)」を選択します。
「了解 (OK)」をクリックします。
このセッション以降、ログを無効にするまで、デーモンは選択された syslog 機能にトランザクションを記録します。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の手順から 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= |
パラメータの値を指定しません。
DHCP サーバーシステムでスーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
DHCP 管理プロファイルに割り当てられている役割が、この作業の実施に十分であるとは限りません。この役割には、syslog ファイルを編集する権限が必要です。
サーバーシステムの /etc/syslog.conf ファイルを編集し、次の書式の行を追加します。
localn.notice path-to-logfile |
n にはトランザクションログ用に指定した syslog 機能番号を指定します。path-to-logfile には、トランザクションを記録するファイルへの絶対パスを指定します。
たとえば、次のような行を追加できます。
local0.notice /var/log/dhcpsrvc
syslog.conf ファイルについての詳細は、syslog.conf(4) のマニュアルページを参照してください。
DNS はインターネット用にネームサービスを提供します。DNS マッピングが行われていれば、ホスト名からでも IP アドレスからでもシステムにアクセスできます。さらに、このシステムにはドメインの外からでもアクセスできます。
DHCP サービスでは、DNS を 2 つの方法で使用できます。
DHCP サーバーは、クライアントに割り当てようとする IP アドレスにマップされているホスト名を検索できます。サーバーは、クライアントのホスト名とクライアントのそのほかの構成情報を返します。
DHCP サーバーは、クライアントに代わって DNS マッピングを行うことができます。ただし、DHCP サーバーの構成で DNS の更新が可能になっていなければなりません。クライアントは、DHCP サービスを要求する際に独自のホスト名を指定できます。DNS の更新が可能に設定されていると、DHCP サーバーは指定されたホスト名を使って DNS を更新します。DNS 更新が正常なら、DHCP サーバーは要求されたホスト名をクライアントに返します。DNS 更新が正常でないなら、DHCP サーバーは異なるホスト名をクライアントに返します。
自身のホスト名を供給する DHCP クライアントのために DNS サービスを更新するように DHCP サービスを構成できます。DNS 更新機能が正しく働くためには、DNS サーバー、DHCP サーバー、DHCP クライアントがどれも正しく設定されていなければなりません。さらに、要求されたホスト名が、ドメインのほかのシステムによって使用されているものではなりません。
DHCP サーバーの DNS 更新機能が動作するのは、次の条件がすべて真であるときです。
DNS サーバーが RFC 2136 をサポートする。
DNS ソフトウェアが BIND v8.2.2 パッチレベル 5 以降のものである。DNS ソフトウェアが DHCP サーバーシステムで動作するか、DNS サーバーシステムで動作するかを問いません。
DNS サーバーがDHCP サーバーからの動的 DNS 更新を受け入れるように構成されている。
DHCP サーバーが動的 DNS 更新を行うように構成されている。
DNS サポートが、DHCP サーバー上の DHCP クライアントのネットワーク用に構成されている。
DHCP クライアントが、その DHCP 要求メッセージで要求されたホスト名を供給するように構成されている。
要求されたホスト名が、DHCP 所有のアドレスに対応している。そのホスト名に対応するアドレスがない場合もあります。
動的 DNS 更新は「セキュリティー上のリスク」であることに注意してください。
デフォルトでは、Oracle Solaris DNS デーモン (in.named) は動的更新を許可しません。動的 DNS 更新を行う権限は、DNS サーバーシステムの named.conf 構成ファイルで与えられます。ほかのセキュリティーは提供されません。動的 DNS 更新を有効にするときには、この機能のユーザーに対する便利さとセキュリティーリスクのバランスを注意深く考慮する必要があります。
DNS サーバーで、スーパーユーザーとして /etc/named.conf ファイルを編集します。
named.conf ファイルで、適切なドメインの zone セクションを見つけます。
DHCP サーバーの IP アドレスを allow-update キーワードに追加します。
allow-update キーワードが存在しない場合は、このキーワードを挿入します。
たとえば、DHCP サーバーのアドレスが 10.0.0.1 と 10.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 を有効にする必要があります。
DHCP サーバー上で、DHCP マネージャを起動します。
# /usr/sadm/admin/bin/dhcpmgr & |
詳細は、「DHCP マネージャを起動および停止する方法」を参照してください。
「サービス (Service)」メニューから「変更 (Modify)」を選択します。
「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。
「クライアント要求により DNS ホスト情報を更新 (Update DNS Host Information Upon Client Request)」を選択します。
DNS サーバーからの応答を待ち、時間切れになるまでの秒数を指定し、「了解 (OK)」をクリックします。
通常は、デフォルト値として 15 秒を指定すれば十分です。時間切れに関する問題が発生した場合は、あとでこの値を増やすことも可能です。
「マクロ (Macros)」タブをクリックして、正しい DNS ドメインが指定されていることを確認します。
DNSdmain オプションを渡すには、動的 DNS 更新のサポートを期待するクライアントへの正しいドメイン名と共に指定する必要があります。デフォルトでは、DNSdmain がサーバーマクロ中に指定されています。この値は、各 IP アドレス構成マクロとして使用されます。
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 サーバーの性能に影響するオプションを変更できます。これらのオプションについて、次の表で説明します。
表 15–3 DHCP サービスの性能に影響するオプション
次の手順では、これらのオプションを変更する方法を説明します。
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「DHCP マネージャを起動および停止する方法」を参照してください。
必要なオプションを変更します。
オプションについては、表 15–3 を参照してください。
「サーバーの再起動 (Restart Server)」を選択します。
「了解 (OK)」をクリックします。
この手順で変更したオプションは、DHCP サーバーを再起動するまで有効にはなりません。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
1 つまたは複数の性能オプションを変更します。
# /usr/sbin/dhcpconfig -P keyword=value,keyword=value... |
keyword=value には、次のキーワードが使用できます。
デーモンが DHCP または BOOTP のデータグラムをドロップする前に発生することができるリレーエージェントホップの最大数を指定します。
重複 IP アドレスの自動検出を有効または無効にします。このキーワードに FALSE を設定することはお勧めできません。
DHCP サーバーが dhcptab 情報を自動的に読み込み直す間隔を分で指定します。
DHCP サーバーが DHCP クライアントを検索するために提供した IP アドレスをキャッシュに書き込んでおく秒数を指定します。デフォルトは 10 秒です。
次に、すべてのコマンドオプションを指定する方法の例を示します。
# dhcpconfig -P RELAY_HOPS=2,ICMP_VERIFY=TRUE,\ RESCAN_INTERVAL=30,OFFER_CACHE_TIMEOUT=20 |
DHCP サーバーを構成する際に、DHCP サービスを使用するために少なくとも 1 つのネットワークを構成する必要があります。いつでもネットワークを追加できます。
次の表のマップでは、初期構成を完了した DHCP ネットワークを管理するときに実行できる追加の作業について説明しています。この作業マップには、作業の実施に必要な手順へのリンクが含まれています。
タスク |
説明 |
説明 |
---|---|---|
サーバーネットワークインタフェースでの DHCP サービスを有効または無効にします |
デフォルトの動作では、DHCP 要求に対するすべてのネットワークインタフェースを監視します。DHCP 要求をすべてのインタフェースで受け付けない場合は、監視するインタフェースのリストからインタフェースを削除できます。 | |
DHCP サービスに新しいネットワークを追加します。 |
ネットワーク上の IP アドレスを管理するため、ネットワークを DHCP の管理下に置きます。 | |
DHCP に管理されたネットワークのパラメータを変更します。 |
特定のネットワークのクライアントに渡される情報を変更します。 | |
DHCP サービスからネットワークを削除します。 |
これ以降、ネットワーク上の IP アドレスが DHCP によって管理されないようにネットワークを削除します。 |
デフォルトでは、dhcpconfig も DHCP マネージャの構成ウィザードも、サーバーシステムのすべてのネットワークインタフェースを監視するように DHCP サーバーを構成します。新しいネットワークインタフェースをサーバーシステムに追加した場合、システムを起動すると、DHCP サーバーがこの新しいネットワークインタフェースを自動的に監視します。そのため、どのネットワークを追加してもそのネットワークインタフェースを通して監視できます。
ただし、どのネットワークインタフェースを監視し、どのインタフェースを無視すべきかを指定することもできます。特定のネットワーク上で DHCP サービスを提供したくない場合、インタフェースを無視すると便利なことがあります。
どのインタフェースも無視するように設定したあとに新しいインタフェースをインストールすると、DHCP サーバーは新しいインタフェースを無視します。その場合には、サーバーの監視インタフェーリストに新しいインタフェースを追加する必要があります。インタフェースを指定するには、DHCP マネージャまたは dhcpconfig ユーティリティーを使用できます。
この節では、DHCP が監視または無視するネットワークインタフェースを指定できるようにするための手順についても説明します。この DHCP マネージャの手順では、DHCP マネージャの「サービスオプションの変更 (Modify Service Options)」ダイアログボックスの「インタフェース (Interfaces)」タブを使用します (次図を参照)。
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが表示されます。
「DHCP マネージャを起動および停止する方法」を参照してください。
「インタフェース (Interfaces)」タブを選択します。
適切なネットワークインタフェースを選択します。
矢印ボタンをクリックして、インタフェースを適切なリストに移動します。
たとえば、インタフェースを無視する場合は、「監視中のインタフェース (Monitored Interfaces)」リストからそのインタフェースを選択し、右矢印ボタンをクリックします。インタフェースは、「削除するインタフェース (Ignored Interfaces)」リストに表示されます。
「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。
これらの変更は、再起動が行われたあとも有効です。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
DHCP サーバーシステム上で次のコマンドを入力します。
# /usr/sbin/dhcpconfig -P INTERFACES=int,int,... |
int, int,... は、監視するインタフェースのリストです。インタフェース名をコンマで区切って指定します。
たとえば、ge0 と ge1 だけを監視する場合は、次のコマンドを使用します。
#/usr/sbin/dhcpconfig -P INTERFACES=ge0,ge1 |
無視するインタフェースは、dhcpconfig コマンド行から除外します。
このコマンドによる変更は再起動後も引き続き有効です。
DHCP マネージャを使用してサーバーを構成すると、最初のネットワークも同時に構成されます。最初のネットワークは通常、サーバーシステムの主インタフェースにあるローカルネットワークです。さらにほかのネットワークを構成したい場合は、DHCP マネージャの DHCP ネットワークウィザードを使用します。
dhcpconfig -D コマンドを使用してサーバーを構成する場合は、DHCP サービスを使用するすべてのネットワークを別個に構成する必要があります。詳細は、「DHCP ネットワークを追加する方法 (dhcpconfig)」を参照してください。
次の図は、DHCP マネージャの DHCP ネットワークウィザード用の最初のダイアログボックスを示しています。
新しいネットワークを構成すると、DHCP マネージャが次の内容を作成します。
データストアにネットワークテーブルを作成します。新しいネットワークは、DHCP マネージャの「アドレス (Addresses)」タブにあるネットワークリストに表示されます。
このネットワークに常駐するクライアントで必要とする情報を含むネットワークマクロを作成します。このネットワークマクロの名前はネットワークの IP アドレスと一致します。ネットワークマクロはデータストア内の dhcptab テーブルに追加されます。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
すでに DHCP サービス用に構成されているネットワークがリストされます。
「DHCP マネージャを起動および停止する方法」を参照してください。
「編集 (Edit)」メニューから「ネットワークウィザード (Network Wizard)」を選択します。
オプションを選択するか、要求された情報を入力します。計画フェーズで行なった決定に基づいて、指定すべき情報を決めます。
計画フェーズについては、「リモートネットワークの DHCP 構成の計画」を参照してください。
このウィザードでわからないことがある場合は、ウィザードウィンドウの「ヘルプ (Help)」をクリックすると、DHCP ネットワークウィザードのヘルプが表示されます。
必要な情報を入力し終えたあと、「完了 (Finish)」をクリックしてネットワークの構成を終了します。
ネットワークウィザードは、空のネットワークテーブルを作成します。このテーブルはウィンドウの左側の区画に表示されます。
さらに、ネットワークウィザードは、そのネットワークの IP アドレスと一致する名前のネットワークマクロを作成します。
(省略可能) 「マクロ (Macros)」タブを選択し、作成したネットワークマクロを選択して、マクロの内容を表示します。
ウィザードで指定した情報が、ネットワークマクロのオプションの値として挿入されているか確認します。
このネットワークのアドレスを追加してから、そのネットワークの IP アドレスを DHCP で管理する必要があります。詳細は、「DHCP サービスへの IP アドレスの追加」を参照してください。
ネットワークテーブルが空であっても、DHCP サーバーは、構成情報をクライアントに提供できます。詳細は、「情報だけを受け取るように DHCP クライアントを設定 (作業マップ)」を参照してください。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
DHCP サーバーシステム上で次のコマンドを入力します。
# /usr/sbin/dhcpconfig -N network-address |
network-address には、DHCP サービスに追加するネットワークの IP アドレスを指定します。-N オプションで使用できるサブオプションについては、dhcpconfig(1M) のマニュアルページを参照してください。
サブオプションを使用しない場合、dhcpconfig はネットワークファイルを使用して、ネットワークについての情報を取得します。
このネットワークのアドレスを追加してから、そのネットワークの IP アドレスを DHCP で管理する必要があります。詳細は、「DHCP サービスへの IP アドレスの追加」を参照してください。
ネットワークテーブルが空であっても、DHCP サーバーは、構成情報をクライアントに提供できます。詳細は、「情報だけを受け取るように DHCP クライアントを設定 (作業マップ)」を参照してください。
ネットワークを DHCP サービスに追加したら、そのあとで、最初に入力した構成情報を変更できます。構成情報は、ネットワーク上のクライアントに情報を渡すためのネットワークマクロに格納されています。ネットワーク構成を変更するためには、ネットワークマクロを変更する必要があります。
次に、DHCP マネージャの「マクロ (Macros)」タブを示します。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
この DHCP サーバーについて定義されたすべてのマクロが左側の区画にリストされます。
「DHCP マネージャを起動および停止する方法」を参照してください。
変更するネットワーク構成と名前が一致するネットワークマクロを選択します。
ネットワークマクロ名は、そのネットワークの IP アドレスです。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「マクロの属性 (Macro Properties)」ダイアログボックスに、マクロに含まれるオプションが示されます。
変更するオプションを選択します。
オプションの名前とその値は、ダイアログボックス上部のテキストフィールドに表示されます。
(省略可能) オプション名を変更するか、「選択 (Select)」ボタンをクリックしてオプション名のリストを表示します。
「(Select Option)」ダイアログボックスに、DHCP のすべての標準オプションが表示されます。各オプションには簡単な説明がついています。
(省略可能) 「(Select Option)」ダイアログボックスから 1 つのオプション名を選択し、「了解 (OK)」をクリックします。
新しいオプション名が 「(Option Name)」フィールドに表示されます。
そのオプションの新しい値を入力して、「変更 (Modify)」をクリックします。
(省略可能) さらに、ダイアログボックスの「選択 (Select)」を使用することによって、ネットワークマクロにオプションを追加できます。
マクロの変更に関するより一般的な情報については、「DHCP マクロの変更」を参照してください。
「DHCP サーバーに変更を通知する (Notify DHCP Server of Change)」を選択して、「了解 (OK)」をクリックします。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ネットワークのすべてのクライアントに関する情報を含むマクロを特定します。
ネットワークマクロの名前は、ネットワークの IP アドレスと一致します。
この情報がどのマクロに含まれているがわからない場合、dhtadm -P コマンドを使用すると、dhcptab テーブルを表示して、すべてのマクロを表示できます。
次の書式でコマンドを入力して、変更したいオプションの値を変更します。
# dhtadm -M -m macro-name -e 'symbol=value' -g |
dhtadm コマンド行オプションについては、dhtadm(1M) のマニュアルページを参照してください。
たとえば、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 に管理された IP アドレスに関連するホストテーブルのエントリを自動的に削除するオプションもあります。次に、DHCP マネージャの「ネットワークの削除 (Delete Networks)」ダイアログボックスを示します。
pntadm コマンドを使用する場合、ネットワークからそれぞれの IP アドレスのエントリを削除してからそのネットワークを削除する必要があります。一度に 1 つのネットワークだけを削除できます。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
「編集 (Edit)」メニューから「ネットワークの削除 (Delete Networks)」を選択します。
「ネットワークの削除 (Delete Networks)」ダイアログボックスが開きます。
「保持するネットワーク (Keep Networks)」リストで、削除したいネットワークを選択します。
Control キーを押しながらマウスをクリックすれば、複数のネットワークを選択できます。Shift キーを押しながらクリックすれば、ある範囲のネットワークを選択できます。
右矢印ボタンをクリックして、選択したネットワークを「ネットワークの削除 (Delete Networks)」リストに移動します。
このネットワークの DHCP アドレスに対するホストテーブルエントリを削除する場合は、「ホストテーブルエントリも削除 (Delete Host Table Entries)」を選択します。
ホストテーブルエントリを削除しただけでは、これらのアドレスに関する DNS サーバー上のホスト登録は削除されません。エントリは、ローカルネームサービスからのみ削除されます。
「了解 (OK)」をクリックします。
この手順では、ネットワークを削除する前に DHCP ネットワークテーブルから ネットワークの IP アドレスを削除します。これらのアドレスを削除することによって、そのホスト名が hosts ファイルまたはデータベースから確実に削除されます。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式でコマンドを入力して、ネームサービスから IP アドレスとそのホスト名を削除します。
# pntadm -D -y IP-address |
たとえば、IP アドレス 10.25.52.1 を削除するには、次のコマンドを入力します。
# pntadm -D -y 10.25.52.1
この -y オプションは、ホスト名の削除を指定します。
ネットワークのアドレスごとに pntadm -D -y コマンドを繰り返し入力します。
多数のアドレスを削除する場合には、pntadm コマンドを実行するスクリプトを作成することもできます。
すべてのアドレスを削除してから、次のコマンドを入力して、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 クライアントを指定したい場合は、BOOTP クライアントを DHCP サーバーのネットワークテーブルに登録できます。あるいは、その代わりに、BOOTP クライアントに自動的に割り当てるいくつかの IP アドレスを予約しておくこともできます。
BOOTP アドレスは常時割り当てられます。アドレスに常時リースを明示的に割り当てたかどうかは関係ありません。
次の表では、BOOTP クライアントをサポートするために実行する必要がある作業について説明します。作業マップには、作業の実行に必要な手順へのリンクが含まれています。
タスク |
説明 |
説明 |
---|---|---|
自動 BOOTP サポートを設定します。 |
DHCP に管理されたネットワークや、リレーエージェントによって DHCP に管理されたネットワークに接続されたネットワークにあるすべての BOOTP クライアントに IP アドレスを提供します。 そのため、BOOTP クライアントでアドレスを排他的に使用するためにアドレスのプールを予約する必要があります。このオプションは、サーバーが多くの BOOTP クライアントをサポートする必要がある場合に便利です。 | |
手動 BOOTP サポートを設定します。 |
DHCP サービスを使用して手動で登録された BOOTP クライアントだけに IP アドレスを提供します。 このオプションでは、BOOTP クライアント用に指定された特定の IP アドレスにクライアントの ID を結びつける必要があります。このオプションは、BOOTP クライアントが少数の場合や、DHCP サーバーを使用できる BOOTP クライアントの数を制限する場合に便利です。 |
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。
「DHCP マネージャを起動および停止する方法」を参照してください。
このダイアログボックスの「BOOTP 互換 (BOOTP Compatibility)」セクションで、「自動 (Automatic)」を選択します。
「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。
「アドレス (Addresses)」タブを選択します。
BOOTP クライアント用に予約したいアドレスを選択します。
最初のアドレスをクリックし、Shift キーを押しながら最後のアドレスをクリックして、一定範囲のアドレスを選択します。Control キーを押しながら各アドレスをクリックして、重複していない複数のアドレスを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。
「BootP」セクションで、「BootP クライアントだけにすべてのアドレスを割り当てる (Assign All Addresses Only to BOOTP Clients)」を選択します。
残りのオプションは「現在の設定を維持 (Keep Current Settings)」に設定しておきます。
「了解 (OK)」をクリックします。
これで、すべての BOOTP クライアントがこの DHCP サーバーからアドレスを取得できるようになりました。
DHCP マネージャでは、「サービス (Service)」メニューから「変更 (Modify)」を選択する
「サービスオプションの変更 (Modify Service Options)」ダイアログボックスが開きます。
「DHCP マネージャを起動および停止する方法」を参照してください。
このダイアログボックスの「BOOTP 互換 (BOOTP Compatibility)」セクションで、「手動 (Manual)」を選択します。
「サーバーの再起動 (Restart Server)」を選択し、「了解 (OK)」をクリックします。
「アドレス (Addresses)」タブを選択します。
特定の BOOTP クライアントに割り当てるアドレスを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「アドレスの属性 (Address Properties)」ダイアログボックスが開きます。
「アドレス属性 (Address Properties)」ダイアログボックスの「リース (Lease)」タブを選択します。
「クライアント 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
「予約 (Reserved)」を選択して、このクライアント用に IP アドレスを予約します。
「BOOTP クライアントのみに割り当てる ( Assign Only to BOOTP Clients)」を選択し、「了解 (OK)」をクリックします。
「アドレス (Addresses)」タブでは、BOOTP は「状態 (Status)」フィールドに表示され、指定したクライアント ID は「クライアント ID (Client ID)」フィールドに表示されます。
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 アドレスの属性を変更します。 |
表 15–4 に示す IP アドレスの属性を変更します。 | |
DHCP サービスから IP アドレスを削除します。 |
指定された IP アドレスを DHCP から使用できないように設定します。 |
「IP アドレスを使用不可に指定する方法 (DHCP マネージャ)」 「IP アドレスを使用不可に指定する方法 (pntadm)」 |
固定 IP アドレスを DHCP クライアントに割り当てます。 |
クライアントがその構成を要求するたびに同じ 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 オプションを使用して所有サーバー名を指定します。 たとえば、サーバー blue2 が 10.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 |
クライアント 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 |
IP アドレスを追加する前に、それらのアドレスを所有するネットワークを DHCP サービスに追加する必要があります。ネットワークの追加については、「DHCP ネットワークの追加」を参照してください。
アドレスの追加は、DHCP マネージャまたは pntadm コマンドで行うことができます。
すでに DHCP サービスによって管理されているネットワーク上では、DHCP マネージャを使用すると、次のような複数の方法でアドレスを追加できます。
単一の IP アドレスの追加 – 単一の新しい IP アドレスを DHCP の管理下に置きます。
既存の IP アドレスの複製 – DHCP が管理する既存の IP アドレスの属性をコピーし、新しい IP アドレスとクライアント名を与えます。
一定範囲の複数の IP アドレスの追加 – アドレスウィザードを使用して、一連の IP アドレスを DHCP の管理下に置きます。
次に、「アドレスの作成 (Create Address)」ダイアログボックスを示します。「アドレスの複製 (Duplicate Address)」ダイアログボックスは、テキストフィールドに既存のアドレスの値が表示されていることを除いて「アドレスの作成 (Create Address)」ダイアログボックスと同じです。
次の図に、一定範囲の IP アドレスの追加に使用する「ネットワークへアドレスの追加 (Add Addresses to Network)」ウィザードの最初のダイアログを示します。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
新しい IP アドレスを追加するネットワークを選択します。
「編集 (Edit)」メニューから「作成 (Create)」を選択します。
「アドレスの作成 (Create Address)」ダイアログボックスが開きます。
「アドレス (Address)」と「リース (Lease)」タブで、値を選択または入力します。
「ヘルプ (Help)」ボタンを選択して Web ブラウザを開き、ダイアログボックスのヘルプを表示します。また、設定値については、表 15–4 を参照してください。
「了解 (OK)」をクリックします。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
新しい IP アドレスを配置するネットワークを選択します。
複製したい属性をもつアドレスを選択します。
「編集 (Edit)」メニューから「複製 (Duplicate)」を選択します。
「IP アドレス (IP Address)」フィールドに新しい IP アドレスを指定します。
(省略可能) そのアドレスの新しいクライアント名を指定します。
複製するアドレスと同じ名前のクライアント名を使用することはできません。
(省略可能) 必要に応じて、ほかのオプションの値を変更します。
ほとんどのオプションの値は変更の必要がないはずです。
「了解 (OK)」をクリックします。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
新しい IP アドレスを追加するネットワークを選択します。
「編集 (Edit)」メニューから「アドレスウィザード (Address Wizard)」を選択します。
「ネットワークへアドレスの追加 (Add Addresses to Network)」ダイアログボックスに IP アドレス属性の値を指定する必要があります。属性については、表 15–4 を参照するか、ダイアログボックスの「ヘルプ (Help)」ボタンをクリックしてください。「IP アドレスの管理に必要な選択 (作業マップ)」 には、さらに詳しい情報が記載されています。
情報を入力し終わったら、画面ごとに右矢印ボタンをクリックし、最後の画面で「完了 (Finish)」をクリックします。
「アドレス (Addresses)」 タブに新規アドレスが更新されます。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して IP アドレスを追加します。
# pntadm -A ip-address options network-address |
pntadm -A で使用できるオプションの一覧については、pntadm(1M) のマニュアルページを参照してください。また、表 15–4 には、オプションを指定した pntadm コマンドの例が記載されています。
pntadm を利用して複数のアドレスを追加するような、スクリプトを作成することもできます。例 18–1 の例を参照してください。
DHCP マネージャまたは 表 15–4 コマンドを使用すると、 Table 15–4 に記載されているアドレス属性を変更できます。pntadm -M の詳細は、pntadm(1M) のマニュアルページを参照してください。
次に、IP アドレスの属性を変更するときに使用する「アドレスの属性 (Address Properties)」ダイアログボックスを示します。
次に、複数の IP アドレスを変更するために使用する「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスを示します。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
その IP アドレスのネットワークを選択します。
変更する IP アドレスを 1 つまたは複数選択します。
複数のアドレスを変更する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「アドレスの属性 (Address Properties)」ダイアログボックスまたは「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。
適切な属性を変更します。
属性については、「ヘルプ (Help)」ボタンをクリックするか、表 15–4 を参照してください。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して IP アドレスの属性を変更します。
# pntadm -M ip-address options network-address |
pntadm コマンドでは、多数のオプションが使用できます。詳細は、pntadm(1M) のマニュアルページを参照してください。
表 15–4 には、オプションを指定した pntadm コマンドの例が記載されています。
特定の 1 つまたは複数の IP アドレスについて、DHCP サービスによる管理を停止したい場合があります。DHCP からアドレスを削除する方法は、その変更が一時的なものか永続的なものかによって異なります。
アドレスを一時的に使用できないようにするには、「Address Properties (アドレスの属性)」ダイアログボックスでそのアドレスを使用不可として設定できます。詳細は、「DHCP サービスで IP アドレスを使用不可にする」を参照してください。
アドレスを DHCP クライアントから永続的に使用できないようにするには、DHCP ネットワークテーブルからそのアドレスを削除する必要があります。詳細は、「DHCP サービスからの IP アドレスの削除」を参照してください。
-f UNUSABLE オプションを付けて pntadm -M コマンドを使用すると、アドレスを使用不可に指定できます。
個々のアドレスの設定には、DHCP マネージャの「アドレスの属性 (Address Properties)」ダイアログボックス (図 15–10) を使用します。複数のアドレスの設定には、DHCP マネージャの「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックス (図 15–11) を使用します。次の手順に従ってください。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
その IP アドレスのネットワークを選択します。
使用不可に指定したい IP アドレスを 1 つまたは複数選択します。
複数のアドレスを使用不可に指定する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「アドレスの属性 (Address Properties)」ダイアログボックスまたは「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。
アドレスを 1 つ変更する場合は、「リース (Lease)」タブを選択します。
「アドレスを使用しない (Address is Unusable)」を選択します。
複数のアドレスを編集する場合は、「すべてのアドレスを使用しない (Mark All Addresses Unusable)」を選択します。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して 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
IP アドレスを DHCP で管理したくない場合は、DHCP ネットワークテーブルからそのアドレスを削除する必要があります。pntadm -D コマンドまたは DHCP マネージャの「アドレスの削除 (Delete Address)」ダイアログボックスを使用できます。
次に、「アドレスの削除 (Delete Address)」ダイアログボックスを示します。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
その IP アドレスのネットワークを選択します。
削除する IP アドレスを選択します。
複数のアドレスを削除する場合は、Control キーを押しながらマウスをクリックして、複数のアドレスを選択します。Shift キーを押しながらマウスをクリックして、一定範囲のアドレスを選択することもできます。
「編集 (Edit)」メニューから「削除 (Delete)」を選択します。
「アドレスの削除 (Delete Address)」ダイアログボックスに、選択したアドレスがリストされるので、削除する内容を確認できます。
ホスト名をホストテーブルから削除したい場合、「ホストテーブルから削除 (Delete From Hosts Table)」を選択します。
ホスト名が DHCP マネージャによって生成されたものである場合、ホストテーブルからその名前を削除できます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して 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
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)」タブを示します。
DHCP マネージャの「アドレス (Addresses)」タブをクリックします。
「DHCP マネージャを起動および停止する方法」を参照してください。
適切なネットワークを選択します。
クライアントで使用したい IP アドレスをダブルクリックします。
「アドレスの属性 (Address Properties)」ウィンドウが開きます。
「リース (Lease)」タブを選択します。
「クライアント ID (Client ID)」フィールドにクライアント ID を入力します。
クライアント ID は、クライアントのハードウェアアドレスから派生したものです。詳細は、表 15–4 の「クライアント ID」の項を参照してください。
「予約 (Reserved)」オプションを選択して、その IP アドレスがサーバーによって返還を要求されないようにします。
「アドレスの属性 (Address Properties)」ウィンドウの「リースポリシー (Lease Policy)」領域で、「動的 (Dynamic)」または「常時 (Permanent)」の割り当てを選択します。
クライアントでリースを更新するネゴシエーションを行なって、アドレスが使用されている場合に追跡できるようにしたい場合は、「動的 (Dynamic)」を選択します。「予約 (Reserved)」を選択しているので、動的リースが使用されていても、アドレスは再利用できません。このリースの有効期限は指定する必要がありません。DHCP サーバーが、リース期間を使って有効期限を計算します。
「常時 (Permanent)」を選択した場合、トランザクションの記録を有効にしない限り、IP アドレスの使用を追跡できません。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してリースフラグを設定します。
# 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 オプションのコンテナです。Oracle Solaris DHCP サービスはマクロを使用して、クライアントに渡す必要があるオプションをまとめます。サーバーが構成されると、DHCP マネージャと dhcpconfig ユーティリティーは、いくつかのマクロを自動的に作成します。マクロの背景情報については、「DHCP マクロについて」を参照してください。デフォルトで作成されるマクロについては、第 14 章DHCP サービスの構成 (手順)を参照してください。
ネットワークに変更が生じると、クライアントに渡す構成情報を変更しなければならない場合があります。構成情報を変更する場合には、DHCP マクロを使用する必要があります。DHCP マクロは、表示、作成、変更、複製、削除できます。
マクロを使用する場合には、DHCP の標準オプションの知識が必要になります。標準オプションについては、dhcp_inittab(4) のマニュアルページを参照してください。
次の作業マップに、DHCP マクロを表示、作成、変更、および削除するのに必要な作業を示します。マップには、各作業を完了する方法を詳しく説明した節のリンクも含まれています。
作業 |
説明 |
説明 |
---|---|---|
DHCP マクロを表示します。 |
DHCP サーバーで定義されているすべてのマクロのリストを表示します。 | |
DHCP マクロを作成します。 |
DHCP クライアントをサポートする新しいマクロを追加します。 | |
DHCP クライアントに渡されるマクロ内の値を変更します。 |
既存のオプションの変更、マクロへのオプションの追加、マクロからのオプションの削除によって、マクロを変更します。 |
「DHCP マクロ内のオプションの値を変更する方法 (DHCP マネージャ)」 「DHCP マクロ内のオプションの値を変更する方法 (dhtadm)」 「DHCP マクロにオプションを追加する方法 (DHCP マネージャ)」 「DHCP マクロにオプションを追加する方法 (dhtadm)」 |
DHCP マクロを削除します。 |
使用しない DHCP マクロを削除します。 |
次に、DHCP マネージャウィンドウの「マクロ (Macros)」タブを示します。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
ウィンドウ左側の「マクロ (Macros)」領域に、この DHCP サーバーで定義されたすべてのマクロがアルファベット順に表示されます。前にフォルダアイコンが付いたマクロには、ほかのマクロへの参照が含まれていますが、前にドキュメントアイコンが付いたマクロには、ほかのマクロへの参照が含まれていません。
マクロフォルダを開くには、フォルダアイコンの左にあるハンドルアイコンをクリックします。
選択したマクロに含まれるマクロがリストされます。
マクロの内容を表示するには、マクロ名をクリックします。
オプションとそれらに割り当てられた値が表示されます。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のコマンドを入力してマクロを表示します。
# dhtadm -P |
このコマンドは、dhcptab テーブルの内容 (DHCP サーバー上で定義されたすべてのマクロとシンボルを含む) をフォーマットして標準出力に出力します。
ネットワークの一部の設定が変更され、1 台または複数の DHCP クライアントにその変更を通知する必要がある場合、マクロを変更する必要がある場合があります。たとえば、ルーターや NIS サーバーを追加したり、新しいサブネットを作成したり、リースポリシーを変更したりした場合です。
マクロを変更する際には、まず、変更、追加、または削除したい DHCP オプションの名前が何か知らなければなりません。標準的な DHCP オプションについては、DHCP マネージャのヘルプや dhcp_inittab(4) のマニュアルページを参照してください。
dhtadm -M -m コマンドまたは DHCP マネージャを使用して、マクロを変更できます。dhtadm の詳細については、dhtadm(1M) のマニュアルページを参照してください。
次に、DHCP マネージャの「マクロの属性 (Macro Properties)」ダイアログボックスを示します。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
変更するマクロを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。
「オプション (Options)」のテーブルで、変更するオプションを選択します。
このオプションの名前とその値は、「オプション名 (Option Name)」と「オプションの値 (Option Value)」のフィールドに表示されます。
「オプションの値 (Option Value)」フィールドで、古い値を選択し、そのオプションの新しい値を入力します。
「変更 (Modify)」をクリックします。
新しい値がオプションテーブルに表示されます。
「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してオプションの値を変更します。
# dhtadm -M -m macroname -e 'option=value:option=value' -g |
たとえば、マクロ bluenote 内のリース期間、および UTC との時間差を変更する場合には、次のように入力します。
# dhtadm -M -m bluenote -e 'LeaseTim=43200:UTCOffst=28800' -g
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
変更するマクロを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。
「オプション名 (Option Name)」フィールドで、次のどちらかの方法を使用して、オプション名を指定します。
「オプション名 (Option Name)」フィールドの隣にある「選択 (Select)」ボタンをクリックして、マクロに追加するオプションを選択します。
「オプションの選択 (Select Option)」ダイアログボックスに、標準カテゴリのオプションの名前と説明がアルファベット順にリストされます。標準カテゴリ以外のオプションを追加する場合は、「カテゴリ (Category)」リストを使用してカテゴリを選択してください。
マクロのカテゴリについては、「DHCP マクロについて」を参照してください。
既存のマクロへの参照を新しいマクロに含めたい場合は、Include と入力してください。
「オプションの値 (Option Value)」フィールドにオプションの値を入力します。
オプション名を Include と入力した場合は、「オプションの値 (Option Value)」フィールドに既存のマクロの名前を指定する必要があります。
「追加 (Add)」をクリックします。
このオプションは、このマクロのオプションリストの一番下に追加されます。マクロ内でのオプションの位置を変更する場合は、オプションを選択し、矢印ボタンをクリックしてオプションを上下に移動させます。
「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してマクロにオプションを追加します。
# dhtadm -M -m macroname -e 'option=value' -g |
たとえば、リースのネゴシエーションを行うオプションをマクロ bluenote に追加するには、次のコマンドを入力します。
# dhtadm -M -m bluenote -e 'LeaseNeg=_NULL_VALUE' -g
値を必要としないオプションの場合、オプションの値として _NULL_VALUE を使用してください。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
変更するマクロを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「マクロの属性 (Macro Properties)」ダイアログボックスが開きます。
マクロから削除するオプションを選択します。
「削除 (Delete)」をクリックします。
選択されたオプションが、このマクロに関するオプションのリストから削除されます。
「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してマクロからオプションを削除します。
# dhtadm -M -m macroname -e 'option=' -g |
たとえば、リースのネゴシエーションを行うオプションをマクロ bluenote から削除するには、次のコマンドを入力します。
# dhtadm -M -m bluenote -e 'LeaseNeg=' -g
オプションに値を指定しなかった場合、オプションはマクロから削除されます。
特別な要求を持ったクライアントをサポートするために、DHCP サービスに新しいマクロを追加する場合があります。dhtadm -A -m コマンドまたは DHCP マネージャの「マクロの作成 (Create Macro)」ダイアログボックスを使用して、マクロを追加できます。dhtadm コマンドの詳細については、dhtadm(1M) のマニュアルページを参照してください。
次に、DHCP マネージャの「マクロの作成 (Create Macro)」ダイアログボックスを示します。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
「編集 (Edit)」メニューから「作成 (Create)」を選択します。
「マクロの作成 (Create Macro)」ダイアログボックスが開きます。
そのマクロの名前 (固有の名前) を入力します。
名前には 128 文字までの英数字を使用できます。ベンダークラス識別子、ネットワークアドレス、またはクライアント ID に一致する名前を使用している場合は、そのマクロは適切なクライアントに対して自動的に処理されます。異なる名前を使用している場合は、自動的には処理されません。そのマクロは、特定の IP アドレスに割り当てられているか、または自動的に処理される別のマクロに含まれていなければなりません。詳細は、「DHCP サーバーによるマクロ処理」を参照してください。
「オプション名 (Optioin Name)」フィールドの隣にある「選択 (Select)」ボタンをクリックします。
「オプションの選択 (Select Option)」ダイアログボックスに、標準カテゴリのオプションの名前と説明がアルファベット順にリストされます。標準カテゴリ以外のオプションを追加したい場合は、「カテゴリ (Category)」リストを使用します。必要なカテゴリを「カテゴリ (Category)」リストから選択してください。オプションのカテゴリについての詳細は、「DHCP オプションについて」を参照してください。
マクロに追加するオプションを選択して、「了解 (OK)」をクリックします。
「マクロの属性 (Macro Properties)」ダイアログボックスが、「オプション名 (Option Name)」フィールドに選択されたオプションを表示します。
「オプションの値 (Option Value)」フィールドにオプションの値を入力し、「追加 (Add)」をクリックします。
このオプションは、このマクロのオプションリストの一番下に追加されます。マクロ内でのオプションの位置を変更する場合は、オプションを選択し、矢印ボタンをクリックしてオプションを上下に移動させます。
オプションの追加が終了したら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してマクロを作成します。
# 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 サービスからネットワークを削除する場合、関連するネットワークマクロも削除できます。
dhtadm -D -m コマンドまたは DHCP マネージャを使用して、マクロを削除できます。
DHCP マネージャの「マクロ (Macros)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
削除するマクロを選択します。
「マクロの削除 (Delete Macro)」ダイアログボックスは、指定したマクロの削除を確認するように求めます。
「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してマクロを削除します。
# dhtadm -D -m macroname -g |
たとえば、マクロ bluenote を削除するには、次のコマンドを入力します。
# dhtadm -D -m bluenote -g
オプションは、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 オプションを削除します。 |
作成済みの DHCP オプションを削除します。 |
DHCP オプションを作成する前に、次の表に示すオプションの属性をよく理解しておく必要があります。
表 15–5 DHCP オプションの属性
渡す必要があるクライアント情報に対応するオプションが DHCP プロトコルにない場合は、オプションを作成できます。独自のオプションを作成する前に、Oracle Solaris DHCP にどのようなオプションが定義されているかを知りたい場合は、 dhcp_inittab(4) のマニュアルページを参照してください。
dhtadm -A -s コマンドまたは DHCP マネージャの「オプションの作成 (Create Option)」ダイアログボックスを使用して、新しいオプションを作成できます。
次に、DHCP マネージャの「オプションの作成 (Create Option)」ダイアログボックスを示します。
DHCP マネージャの「オプション (Options)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
「編集 (Edit)」メニューから「作成 (Create)」を選択します。
「オプションの作成 (Create Option)」ダイアログボックスが開きます。
新しいオプションの略式記述名を入力します。
この名前には、128 文字までの英数字と空白文字を含めることができます。
ダイアログボックスの各設定について、値を入力または選択します。
各設定については、表 15–5 を参照するか、DHCP マネージャのヘルプを参照してください。
オプションの作成が終わったら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
これでオプションをマクロに追加し、クライアントに渡すオプションに値を割り当てることができます。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して DHCP オプションを作成します。
# dhtadm -A -s option-name -d 'category,code,data-type,granularity,maximum' -g |
128 文字以内の英数字文字列です。
次のうちの 1 つです。 Site、Extend、または Vendor=list-of-classes。list-of-classes は、オプションが適用されるベンダークライアントクラスを空白文字で区切ったものです。ベンダークライアントクラスを決定する方法については、表 15–5 を参照してください。
このオプションカテゴリに適した 1 つの数値です。表 15–5 の説明を参照してください。
このオプションで渡されるデータのタイプを示すキーワードを指定します。表 15–5 の説明を参照してください。
負ではない 1 桁の数を指定します。表 15–5 の説明を参照してください。
負ではない 1 桁の数です。表 15–5 の説明を参照してください。
次のコマンドを実行すると、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 サービス用のオプションをすでに作成している場合、そのオプションの属性は変更できます。オプションの変更には、dhtadm -M -s コマンドか、DHCP マネージャの「オプションの属性 (Option Properties)」ダイアログボックスを使用します。
Oracle Solaris DHCP クライアントのオプション情報を変更して、DHCP サービスに加えたのと同じ変更内容を反映する必要があります。「Oracle Solaris DHCP クライアントのオプション情報の変更」を参照してください。
次に、DHCP マネージャの「オプションの属性 (Option Properties)」ダイアログボックスを示します。
DHCP マネージャの「オプション (Options)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
変更するオプションを選択します。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「オプションの属性 (Option Properties)」ダイアログボックスが開きます。
必要に応じて属性を編集します。
属性については、表 15–5 を参照するか、DHCP マネージャのヘルプを参照してください。
オプションの処理が終了したら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
変更は dhcptab テーブルに対して行われます。DHCP サーバーは、dhcptab テーブルを再読み込みして変更を有効にします。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してオプションを変更します。
# dhtadm -M -s option-name -d 'category,code,data-type,granularity,maximum' -g |
変更するオプションの名前を指定します。
Site、Extend、または Vendor=list-of-classes のうちの 1 つです。list-of-classes は、オプションが適用されるベンダークライアントクラスを空白文字で区切ったものです。たとえば、SUNW.Sun-Blade-100 SUNW.Ultra-80 SUNWi86pc。
このオプションカテゴリに適した 1 つの数値を指定します。表 15–5 の説明を参照してください。
このオプションで渡されるデータのタイプを示すキーワードを指定します。表 15–5 の説明を参照してください。
負ではない 1 桁の数です。表 15–5 の説明を参照してください。
負ではない 1 桁の数です。表 15–5 の説明を参照してください。
変更する属性だけでなく、DHCP オプション属性すべてを -d スイッチで指定する必要があります。
次のコマンドでは、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 マネージャか dhtadm コマンドを使って削除できます。
DHCP マネージャの「オプション (Options)」タブを選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
削除したいオプションを選択します。
「編集 (Edit)」メニューから「削除 (Delete)」を選択します。
「オプションの削除 (Delete Option)」ダイアログボックスが開きます。
オプションの削除が終わったら、「DHCP サーバーに変更を通知 (Notify DHCP Server of Change)」を選択します。
この選択によって、DHCP サーバーは dhcptab テーブルを再読み込みし、「了解 (OK)」をクリックすると直ちに変更が適用されます。
「了解 (OK)」をクリックします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力して DHCP オプションを削除します。
# dhtadm -D -s option-name -g |
新しい 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 をインストールできます。この機能を使用できるシステムは、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 サーバーを構成する必要があります。
プロキシサーバーの IP アドレス
wanboot—cgi プログラムの場所
この情報を 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 にします。 | |
OS サービス用のディスクレスクライアントを設定します。 |
smdiskless コマンドを使用して、クライアントごとにオペレーティングシステムサポートを OS サーバーに追加します。クライアントごとに予約済みの IP アドレスを指定します。 |
『Solaris のシステム管理 (基本編)』の第 7 章「ディスクレスクライアントの管理 (手順)」 smdiskless(1M) のマニュアルページも参照してください。 |
ネットワークによっては、DHCP サービスから構成情報だけをクライアントに提供する場合があります。情報 (リースではなく) を必要とするクライアントシステムは、DHCP クライアントから INFORM メッセージを送信できます。INFORM メッセージを受け取ると、DHCP サーバーは適切な構成情報をクライアントに送信します。
Oracle Solaris DHCP サーバーを適切に設定すれば、情報だけを必要とするクライアントをサポートできます。そのためには、クライアントをもつネットワークに対応する空のネットワークテーブルを作成する必要があります。それによって、DHCP サーバーはそのネットワークのクライアントに応答できます。
次の作業マップは、情報のみクライアントのサポートに必要な作業を示しています。さらに、作業マップには、作業の実行に必要な手順へのリンクが含まれています。
タスク |
説明 |
説明 |
---|---|---|
空のネットワークテーブルを作成します。 |
DHCP マネージャか pntadm コマンドを使って、情報のみクライアントのネットワークに対応するネットワークテーブルを作成します。 | |
クライアントが必要とする情報を含むマクロを作成します。 |
DHCP マネージャか dhtadm コマンドを使って、必要な情報をクライアントに渡すマクロを作成します。 | |
DHCP クライアントから INFORM メッセージを発行します。 |
ifconfig int dhcp inform コマンドを使って、DHCP クライアントから INFORM メッセージを発行します。 |
「DHCP クライアントで使用する ifconfig コマンドオプション」 ifconfig(1m) のマニュアルページ |
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 コマンドで実行できます。
次に、データストア変換ウィザードの初期ダイアログボックスを示します。
変換を開始する前、古いデータストアのテーブル (dhcptab テーブルとネットワークテーブル) を保存するかどうかを指定する必要があります。次に、変換ユーティリティーは DHCP サーバーを停止し、データストアを変換し、変換が完了したあとに、サーバーを再起動します。古いテーブルを保存すると指定しない場合、変換が完了したあと、変換ユーティリティーは古いテーブルを削除します。変換の処理には、長い時間がかかることがあります。変換は背景で実行されますが、進捗状況を示す図が表示されます。
DHCP マネージャで、「サービス (Service)」メニューから「データストアの変換 (Convert Data Store)」を選択します。
「DHCP マネージャを起動および停止する方法」を参照してください。
データストア変換ウィザードが開きます。
ウィザードの質問に答えます。
質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、各ダイアログボックスについての詳細な情報を見ることができます。
選択内容を確認し、「完了 (Finish)」をクリックしてデータストアを変換します。
変換が完了すると、DHCP サーバーは再起動されます。サーバーは、直ちに新しいデータストアを使用します。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してデータストアを変換します。
# /usr/sbin/dhcpconfig -C -r resource -p path |
新しいデータストアタイプ (SUNWbinfiles など)
データへのパス (/var/dhcpなど)
変換後も元のデータ (古いデータストア) を保存しておきたい場合は、-k オプションを指定してください。たとえば、自分のデータストアを SUNWbinfiles に変換し、古いデータストアを保存する場合は、次のように入力します。
# /usr/sbin/dhcpconfig -C -r SUNWbinfiles -p /var/dhcp -k |
dhcpconfig ユーティリティーについての詳細は、dhcpconfig(1M) のマニュアルページを参照してください。
DHCP マネージャと dhcpconfig ユーティリティーを使用すると、DHCP 構成データの一部またはすべてを、ある Oracle Solaris DHCP サーバーから別のサーバーに移動できます。その場合には、ネットワーク全体と、ネットワークに関連するすべてのアドレス、マクロ、およびオプションを移動できます。あるいは、特定の IP アドレス、マクロ、およびオプションだけを選択して移動することも可能です。さらに、マクロやオプションを元のサーバーから削除せずに、コピーだけを行うこともできます。
データを移動するのは、次のような場合です。
サーバーを追加して DHCP の処理を分担させる。
DHCP サーバーのシステムを交換する。
データストアへのパスを変更する (同じデータストアを使用したままで)。
次の作業マップに、DHCP 構成データを移動する場合に実行する必要がある手順を示します。マップには、作業の実行手順へのリンクが含まれています。
作業 |
説明 |
説明 |
---|---|---|
1. 移動元のサーバーからデータをエクスポートします。 |
移動先のサーバーに移動するデータを選択し、それをエクスポートしたデータのファイルを作成します。 | |
2. 移動先のサーバーにデータをインポートします。 |
エクスポートしたデータを移動先の DHCP サーバーのデータストアにコピーします。 | |
3. インポートされたデータを新しいサーバー環境に合わせて変更します。 |
サーバー固有の構成データを新しいサーバーの情報に一致するように変更します。 |
DHCP マネージャでは、「データをエクスポート(Export Data)」ウィザードと「データをインポート(Import Data)」ウィザードを使用して、データをあるサーバーから別のサーバーに移動します。そして、そのあとに「マクロ (Macros)」タブでマクロを変更します。次に、「データをエクスポート (Export Data)」ウィザードと「データをインポート (Import Data)」ウィザードの初期ダイアログボックスを示します。
データの移動 (またはコピー) 元のサーバー上で、DHCP マネージャを起動します。
「DHCP マネージャを起動および停止する方法」を参照してください。
「サービス (Service)」メニューから「データをエクスポート (Export Data)」を選択します。
「データをエクスポート (Export Data)」ウィザードが表示されます。図 15–20 を参照してください。
ウィザードの質問に答えます。
質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、質問についての詳細な情報を見ることができます。
エクスポートするデータが入ったファイルを、データをインポートする DHCP サーバーがアクセス可能なファイルシステムに移動します。
データをインポートします (「DHCP サーバーにデータをインポートする方法 (DHCP マネージャ)」を参照)。
データの移動 (またはコピー) 元のサーバーにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
データをエクスポートします。
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) のマニュアルページを参照してください。
エクスポートするファイルを、そのデータをインポートするサーバーからアクセス可能な場所に移動します。
データをインポートします (「DHCP サーバーにデータをインポートする方法 (dhcpconfig -I)」 を参照)。
DHCP サーバーからエクスポートしたデータの移動先サーバーで DHCP マネージャを起動します。
「DHCP マネージャを起動および停止する方法」を参照してください。
「サービス (Service)」から「データをインポート (Import Data)」を選択します。
「データをインポート (Import Data)」ウィザードが表示されます。図 15–21 を参照してください。
ウィザードの質問に答えます。
質問に対する回答がわからない場合は、「ヘルプ (Help)」をクリックすると、質問についての詳細な情報を見ることができます。
必要なら、インポートされたデータを変更します。
詳細は、「インポートした DHCP データを変更する方法 (DHCP マネージャ)」を参照してください。
データをインポートするサーバーにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次の書式のコマンドを入力してデータをインポートします。
# dhcpconfig -I filename |
filename は、エクスポートされるデータを含むファイルの名前です。
必要なら、インポートされたデータを変更します。
詳細は、「インポートした DHCP データを変更する方法 (pntadm、dhtadm)」を参照してください。
データをインポートしたサーバーで DHCP マネージャを起動します。
「DHCP マネージャを起動および停止する方法」を参照してください。
インポートしたデータを調べて、変更する必要があるネットワーク固有情報を見つけます。
ネットワークを移動した場合は、「アドレス (Addresses)」タブを開いて、移動 (インポート) したネットワーク内にあるアドレスの所有サーバーを変更する必要があります。また、「マクロ (Macros)」タブを開いて、一部のマクロの中にある NIS、NIS+、または DNS のドメイン名を変更する必要があります。
「アドレス (Addresses)」タブを開いて、インポートしたネットワークを選択します。
すべてのアドレスを選択するには、最初のアドレスをクリックして、Shift キーを押したまま、最後のアドレスをクリックします。
「編集 (Edit)」メニューから「属性 (Properties)」を選択します。
「複数アドレスの変更 (Modify Multiple Addresses)」ダイアログボックスが開きます。
「管理サーバー (Managing Server)」プロンプトで、新しいサーバーの名前を選択します。
「構成マクロ (Configuration Macro)」プロンプトで、当該ネットワーク上にあるすべてのクライアントに使用されるマクロを選択し、「了解 (OK)」をクリックします。
「マクロ (Macros)」タブを開きます。
「(Find)」ボタンを使って、値の変更が必要と思われるオプションを見つけます。
「(Find)」ボタンはウィザードの下端にあります。
新しいサーバー上で変更する必要がありそうなオプションには、DNSdmain、DNSserv、NISservs、NIS+serv、NISdmain などがあります。
該当するマクロのオプションを変更します。
オプションの変更手順については、「DHCP オプションの属性を変更する方法 (DHCP マネージャ)」を参照してください。
データをインポートしたサーバーにログインします。
スーパーユーザーになるか、DHCP 管理プロファイルに割り当てられている役割またはユーザー名になります。
DHCP 管理プロファイルの詳細については、「DHCP コマンドへのユーザーアクセスの設定」を参照してください。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ネットワークテーブルを調べて、変更する必要があるデータを見つけます。
ネットワークを移動した場合は、pntadm -P network-address コマンドを使用して、移動したネットワークのネットワークテーブルを出力します。
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) のマニュアルページを参照してください。
dhcptab マクロを調べて、値を変更する必要があるオプションを見つけます。
dhcptab テーブル全体を画面に表示する場合は、dhtadm -P コマンドを使用します。変更するオプションや値を検索する場合は、grep などのツールを使用します。
マクロ中のオプションを変更する必要がある場合は、dhtadm -M コマンドを使って変更します。
たとえば、マクロ中の NIS、NIS+、または DNS のドメイン名やサーバー名を変更する必要もあります。たとえば、次のコマンドは、マクロ mymacro 内にある DNSdmain と DNSserv の値を変更します。
dhtadm -M -m mymacro -e 'DNSserv=dnssrv2:DNSdmain=example.net' -g
この章では、Oracle Solaris に含まれている動的ホスト構成プロトコル (DHCP) クライアントについて説明します。この章では、クライアントの DHCPv4 プロトコルおよび DHCPv6 プロトコルの機能と、クライアントの動作の変更方法について説明します。
一方のプロトコル DHCPv4 は、かなり以前から Oracle Solaris に含まれています。これを使用すると、DHCP サーバーは IPv4 ネットワークアドレスなどの構成パラメータを IPv4 ノードに渡すことができます。
もう一方のプロトコル DHCPv6 を使用すると、DHCP サーバーは IPv6 ネットワークアドレスなどの構成パラメータを IPv6 ノードに渡すことができます。DHCPv6 は、「IPv6 ステートレスアドレスの自動構成」(RFC 2462) に対応するステートフルアドレス版であり、構成パラメータを取得するためにステートレスアドレスとは別に使用することも同時に使用することもできます。
この章では、次の内容について説明します。
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 クライアントを使用可能または使用不可にする」を参照してください。
Sun Microsystems は Oracle Solaris 用の DHCPv6 サーバーを提供していません。サードパーティーが提供しているサーバーには Sun の DHCPv6 との互換性があり、ネットワーク上に DHCPv6 サーバーが存在している場合、Sun の DHCPv6 クライアントはそれを使用します。
Sun の DHCPv4 サーバーについては、「Oracle Solaris DHCP サーバー」を参照してください。
DHCPv4 と DHCPv6 の主な相違点は次の 2 つです。
管理モデル
DHCPv4–管理者が各インタフェースに対して DHCP を有効にします。管理は論理インタフェースごとに行われます。
DHCPv6–明示的な構成は必要ありません。このプロトコルは、特定の物理インタフェース上で有効にされます。
プロトコルの詳細
DHCPv4–DHCP サーバーが各アドレスのサブネットマスクを指定します。ホスト名オプションによってシステム全体のノード名が設定されます。
DHCPv6–サブネットマスクは、DHCPv6 サーバーではなくルーター広告によって指定されます。DHCPv6 のホスト名オプションはありません。
「DHCPv4」では、クライアントを明示的に構成する必要があります。必要な場合はアドレス指定用の DHCPv4 システムを設定します。この設定は通常、システムを最初にインストールするときに行うか、ifconfig(1m) のオプションを使用して動的に行います。
「DHCPv6」では、クライアントを明示的に構成する必要はありません。DHCP の使用はネットワークの属性であり、DHCP を使用する指示は、ローカルルーターからのルーター広告メッセージで伝送されます。DHCP クライアントは、必要に応じて論理インタフェースを自動的に作成したり破棄したりします。
DHCPv6 機構は、管理上、既存の IPv6 ステートレス (自動) アドレス構成によく似ています。ステートレスアドレス構成の場合は、ローカルルーターにフラグを設定することにより、一連の接頭辞に対して各クライアントが独自に自動的なアドレス生成を行うように指示します。このときクライアントは、通知された接頭辞に加え、ローカルインタフェースのトークンまたは乱数を使用します。DHCPv6 の場合は、同じ接頭辞が必要ですが、アドレスは「ランダムに」割り当てられるのではなく、DHCPv6 サーバーを介して取得され管理されます。
「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/dhcpagent の PARAM_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 |
ほとんどの場合、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 ファイルにコマンドが含まれている場合は、それらのコマンドが ifconfig の dhcp start オプションに付加されます。ifconfig interface dhcp コマンドのオプションについては、ifconfig(1m) のマニュアルページを参照してください。
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
DHCPv4 クライアントプロトコルと DHCPv6 クライアントプロトコルでは、ネットワーク構成情報の管理方法が異なります。主な相違点は、DHCPv4 では単一のアドレスのリースとそれに関連するいくつかのオプションのためにネゴシエーションが行われ、DHCPv6 では一連のアドレスとオプションに対して一括でネゴシエーションが行われることです。
DHCPv4 クライアントとサーバー間の対話の概要については、第 12 章Oracle Solaris DHCP について (概要)を参照してください。
DHCP サーバーから情報パケットを取得すると、dhcpagent はネットワークインタフェースを構成し、使用可能にします。デーモンは、そのインタフェースを IP アドレスのリース期間が終わるまで制御し、その構成データを内部テーブルに保持します。システム起動スクリプトは dhcpinfo コマンドを使用して内部テーブルから構成オプションの値を抽出します。それらの値は、システムを構成し、システムがネットワーク上で通信できるようにするために使用されます。
dhcpagent デーモンは、一定時間 (通常はリース期間の半分) が過ぎるまで何もせずに待機します。この時間が過ぎると、デーモンは、リースの延長を DHCP サーバーに要求します。dhcpagent デーモンは、インタフェースが停止していたり、IP アドレスが変更されていることをシステムから通知されると、ifconfig コマンドから指示があるまでそのインタフェースの制御を行いません。また、dhcpagent は、インタフェースが適切に動作し、IP アドレスが変更されていないことを検出すると、リースの更新要求をサーバーに送信します。リースを更新できない場合、dhcpagent はリース期間の満了時にそのインタフェースを停止します。
dhcpagent は、リースに関連する活動を行うたびに、/etc/dhcp/eventhook という実行可能ファイルを探します。この名前の実行可能ファイルが見つかると、dhcpagent はこのファイルを起動します。イベント実行可能ファイルの使用については、「DHCP クライアントのイベントスクリプト」を参照してください。
クライアントとサーバーの間の DHCPv6 通信は、クライアントがサーバーを見つけるために要請メッセージを送信することによって開始されます。応答として、DHCP サービスに使用可能なすべてのサーバーが通知メッセージを送信します。サーバーのメッセージには、複数の IA_NA (非一時アドレス用アイデンティティーアソシエーション) レコードに加え、サーバーが提供できるほかのオプション (DNS サーバーアドレスなど) が含まれています。
クライアントは、独自の IA_NA/IAADDR レコードを要求メッセージに設定することにより、特定のアドレス (またはその複数) を要求できます。通常、クライアントが特定のアドレスを要求するのは、古いアドレスが記録されており、可能な限り同じアドレスがサーバーから提供されることを望む場合です。クライアントの動作にかかわらず (クライアントがまったくアドレスを要求しない場合でも)、サーバーは 1 つの DHCPv6 トランザクション用に任意の数のアドレスをクライアントに提供することができます。
クライアントとサーバーの間で行われるメッセージのやり取りは次のとおりです。
クライアントがサーバーを見つけるために要請メッセージを送信します。
サーバーは通知メッセージを送信して、DHCP サービスに使用可能であることを示します。
クライアントは要求メッセージを送信して、もっとも大きい優先値を持つサーバーに、IP アドレスなどの構成パラメータを要求します。サーバーの優先値は、最低値 0 から最高値 255 の範囲で、管理者によって設定されます。
サーバーは、アドレスリースと構成データを含む応答メッセージを送信します。
通知メッセージ内の優先値が 255 であれば、DHCPv6 クライアントはただちにそのサーバーを選択します。もっとも優先値の高いサーバーが応答しない場合や要求メッセージに正常な応答を返すことができない場合、クライアントは、取得済みの通知メッセージの中で優先値の高いものから順にサーバーを検索します。すべての通知メッセージの検索が終わると、クライアントは再び要請メッセージを送信して処理を繰り返します。
選択されたサーバーは、要請メッセージまたは要求メッセージへの応答として、割り当てるアドレスと構成パラメータを含む応答メッセージを送信します。
クライアントはシャットダウン時に、クライアントにアドレスを割り当てたサーバーに解放メッセージを送信して、割り当てられたアドレスの 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 がまだ使用されていないサーバーで DHCP クライアントを使用可能にするためには、まず、システムを構成解除する必要があります。システムが起動されたら、ある一連のコマンドを実行してシステムを設定し、DHCP クライアントを使用可能にします。
多くの配備では、インフラストラクチャーの重要な部分には DHCP を使用せずに静的 IP アドレスを設定することが一般的です。ネットワーク上のルーターや特定のサーバーなど、クライアントになるべきデバイスとそうでないデバイスの判定については、このマニュアルでは説明しません。
この手順が必要なのは、Oracle Solaris のインストール時に DHCPv4 が使用可能にされていない場合だけです。DHCPv6 の場合、この手順は不要です。
クライアントシステムでスーパーユーザーになります。
このシステムで事前構成 (対話型構成ではなく) を使用している場合は、sysidcfg ファイルを編集します。そして、sysidcfg ファイル内の network_interface キーワードに dhcp サブキーを追加します。
たとえば、network_interface=hme0 {dhcp} のように指定します。詳細は、sysidcfg(4) のマニュアルページを参照してください。
# sys-unconfig |
このコマンドで削除される構成情報についての詳細は、sys-unconfig(1m) のマニュアルページを参照してください。
シャットダウンが完了したら、システムを再起動します。
事前構成を使用している場合、システムは起動時に、sysidcfg ファイルの dhcp サブキーによって、DHCP クライアントを使用するように構成されます。
事前構成を使用していない場合には、システムの再起動時に、システム構成情報の入力を sysidtool プログラムから求められます。詳細は、sysidtool(1M) のマニュアルページを参照してください。
DHCP を使用してネットワークインタフェースを構成するようにプロンプトが表示されたら、Yes を選択します。
クライアントシステムでスーパーユーザーになります。
sysidcfg ファイルを使用してシステムを事前構成した場合には、dhcp サブキーを network_interface キーワードから削除します。
# sys-unconfig |
このコマンドで削除される構成情報についての詳細は、sys-unconfig(1m) のマニュアルページを参照してください。
シャットダウンが完了したら、システムを再起動します。
システムで事前構成を使用している場合には、構成情報を求めるメッセージは表示されず、DHCP クライアントは構成されません。
事前構成を使用していない場合には、システムの再起動時に、システム構成情報の入力を sysidtool プログラムから求められます。詳細は、sysidtool(1M) のマニュアルページを参照してください。
DHCP を使用してネットワークインタフェースを構成するように要求するプロンプトが表示されたら、No を選択します。
通常のシステムオペレーションのもとでは、Oracle Solaris DHCP クライアントソフトウェアの操作は必要ありません。dhcpagent デーモンはシステムブート時に自動的に起動し、リースについてサーバーとネゴシエーションを行い、シャットダウン時に停止します。dhcpagent デーモンを手動で直接、起動または停止しないようにしてください。代わりに、クライアントシステム上のスーパーユーザーであれば、必要に応じて ifconfig コマンドを使い、dhcpagent によるネットワークインタフェースの管理を変更できます。
この節では、ifconfig(1m) のマニュアルページに記載されているコマンドオプションについてまとめます。これらのコマンドの DHCPv4 バージョンと DHCPv6 バージョンでは、「inet6」キーワードだけが異なります。DHCPv6 の場合は「inet6」キーワードを使用し、DHCPv4 の場合は省略してください。
DHCP クライアントの起動 – ifconfig interface [inet6] dhcp start コマンドは、dhcpagent と DHCP サーバー間の対話を開始して、IP アドレスと新しい構成オプション群を取得します。このコマンドは、IP アドレスを追加したり、サブネットマスクを変更する場合など、情報を変更してそれをクライアントですぐに使用したいときに便利です。
ネットワーク構成情報だけの要求 – ifconfig interface [inet6] dhcp inform コマンドを実行すると、dhcpagent は、IP アドレス以外のネットワーク構成パラメータを求める要求を発行します。このコマンドは、ネットワークインタフェースが静的 IP アドレスを持っているが、クライアントシステムが更新されたネットワークオプションを必要としているような場合に便利です。たとえば、DHCP を IP アドレスの管理には使用しないが、ネットワーク上のホストの構成には使用したいような場合です。
リースの延長の要求 – ifconfig interface [inet6] dhcp extend コマンドを実行すると、dhcpagent は、リースを延長する要求を発行します。クライアントは、リースの延長を自動的に要求します。ただし、リース期間を変更し、次のリース更新を待たずにクライアントで新しいリース期間をただちに使用したい場合は、このコマンドを使用できます。
IP アドレスの解放 – ifconfig interface [inet6] dhcp release コマンドを実行すると、dhcpagent は、ネットワークインタフェースで使用されている IP アドレスを解放します。IP アドレスの解放は、リースの期限が切れると自動的に行われます。たとえば、ラップトップをネットワークから切り離し、別のネットワーク上で起動する予定の場合に、このコマンドを実行することをお勧めします。/etc/default/dhcpagent 構成ファイルの RELEASE_ON_SIGTERM プロパティーも参照してください。
IP アドレスの中断 – ifconfig interface [inet6] dhcp drop コマンドを実行すると、dhcpagent は、DHCPサーバーに通知せずに、ネットワークインタフェースを停止し、リースをファイルシステムにキャッシュします。この処理により、クライアントは次回リブート時に同じ IP アドレスを使用できます。
ネットワークインタフェースへの ping – ifconfig interface [inet6] dhcp ping は、インタフェースが DHCP の制御下にあるかどうかを示します。
ネットワークインタフェースの DHCP 構成状態の表示 – ifconfig interface [inet6] dhcp status コマンドは、DHCP クライアントの現在の状態を表示します。この表示には、次の情報が含まれています。
クライアントに IP アドレスがバインドされているかどうか
送信、受信、および拒否された要求の数
このインタフェースが一時インタフェースかどうか
リースが取得された時刻、リースが期限切れになった時刻、リース更新の開始が予定されている時刻
次に例を示します。
# ifconfig hme0 dhcp status Interface State Sent Recv Declined Flags hme0 BOUND 1 1 0 [PRIMARY] (Began,Expires,Renew)=(08/16/2005 15:27, 08/18/2005 13:31, 08/17/2005 15:24) |
# ifconfig hme0 inet6 dhcp status Interface State Sent Recv Declined Flags hme0 BOUND 1 0 0 [PRIMARY] (Began,Expires,Renew)=(11/22/2006 20:39, 11/22/2006 20:41, 11/22/2006 20:40) |
クライアントシステムの /etc/default/dhcpagent ファイルには、dhcpagent に対する調整可能パラメータが含まれています。テキストエディタを使用して、クライアントの動作に影響を与えるパラメータを変更できます。/etc/default/dhcpagent ファイルには十分な説明が記載されていますので、詳細については、dhcpagent(1M) のマニュアルページだけでなく、このファイルも参照してください。
/etc/dhcp.interface ファイルは、DHCP クライアントに影響を及ぼすパラメータの設定が行われるもう 1 つの場所です。このファイルで設定されたパラメータは、システム起動スクリプトの ifconfig コマンドによって使用されます。ただし、これは DHCPv4 にのみ当てはまります。DHCPv6 には、これに相当するものはありません。
デフォルトで、DHCP クライアントは次のように構成されます。
クライアントシステムは特定のホスト名を必要としない。
特定のホスト名をクライアントから要求する場合は、「DHCPv4 クライアントのホスト名」を参照してください。
クライアントのデフォルトの要求は /etc/default/dhcpagent で指定され、これには DNS サーバー、DNS ドメイン、ブロードキャストアドレスが含まれる。
DHCP クライアントのパラメータファイルを適切に設定すれば、/etc/default/dhcpagent ファイルの PARAM_REQUEST_LIST キーワードでより多くのオプションを要求できます。さらに、DHCP サーバーを適切に構成すれば、特別に要求されているオプション以外のオプションを提供できます。DHCP サーバーマクロを使ってクライアントに情報を送信する方法については、「DHCP マクロについて」と「DHCP マクロを使用した作業 (作業マップ)」を参照してください。
クライアントシステムは、1 つの物理ネットワークインタフェースで DHCP を使用する。
複数の物理ネットワークインタフェースで DHCP を使用する場合は、「複数のネットワークインタフェースを備えた DHCP クライアントシステム」を参照してください。
Oracle Solaris のインストールよりあとに DHCP クライアントが構成されている場合、クライアントは自動的にネームサービスとして構成されるわけではない。
DHCP クライアントでネームサービスを使用する場合は、「DHCP クライアントシステムとネームサービス」を参照してください。
DHCP クライアントは、同じシステムにあるいくつかの異なるインタフェースを同時に管理できます。インタフェースは、物理インタフェースでも論理インタフェースでもかまいません。個々のインタフェースは、独自の IP アドレスとリース時間をもっています。複数のネットワークインタフェースが DHCP 用に構成されていると、クライアントは個別の要求を出してそれらのインタフェースを構成します。クライアントは、インタフェースごとに別々のネットワーク構成パラメータ群を維持します。パラメータは別々に格納されますが、パラメータの中にはその性質上、広域的なものがあります。グローバルパラメータは、システム全体 (特定のネットワークインタフェースではなく) に適用されます。
グローバルパラメータには、ホスト名、NIS ドメイン名、時間帯などがあります。通常、グローバルパラメータの値はインタフェースごとに異なります。ただし、各システムに関連付けられたグローバルパラメータには、それぞれ 1 つの値だけを使用できます。グローバルパラメータの問い合わせに対して応答が 1 つだけ返されるようにするために、一次ネットワークインタフェース用のパラメータだけが使用されます。一次インタフェースとして扱うインタフェースについては、そのインタフェースの /etc/dhcp.interface ファイルに primary という文字を挿入できます。primary というキーワードが使用されていないと、英字順で見た最初のインタフェースが一次インタフェースとみなされます。
DHCP クライアントは、論理インタフェースの場合も、物理インタフェースの場合も、そのリースを同じように管理します。ただし、論理インタフェースの場合は、次の制限があります。
DHCP クライアントは、論理インタフェースに関連付けられたデフォルトルートを管理しません。
Oracle Solaris カーネルは、ルートを物理インタフェース (論理インタフェースではなく) と関連付けます。通常は、物理インタフェースの IP アドレスが確立されると、必要なデフォルトルートが経路制御テーブルに入れられます。そのあと、 DHCP を使って、その物理インタフェースに関連付けられた論理インタフェースを構成した場合、通常、必要なルートはすでに決まっています。したがって、この論理インタフェースは同じルートを使用します。
ある物理インタフェースのリースが期限切れになると、DHCP クライアントは、そのインタフェースに関連付けられているデフォルトルートを削除します。しかし、ある論理インタフェースのリースが期限切れになっても、DHCP クライアントは、その論理インタフェースに関連付けられているデフォルトルートを削除しません。対応する物理インタフェースは (場合によっては、そのほかの論理インタフェースも)、前と同じルートを使用する必要がある場合があります。
DHCP 制御のインタフェースに関連付けられたデフォルトルートの追加や削除が必要な場合は、DHCP クライアントのイベントスクリプト機構を使用できます。詳細は、 「DHCP クライアントのイベントスクリプト」を参照してください。
デフォルトでは、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 サーバーはこの要求を尊重する必要はないため、尊重しないことがあります。その場合は、単に別の名前を返します。
クライアントシステム上で、スーパーユーザーとして /etc/default/dhcpagent ファイルを編集します。
/etc/default/dhcpagent ファイルで REQUEST_HOSTNAME キーワードを見つけ、次のように変更します。
REQUEST_HOSTNAME=yes |
REQUEST_HOSTNAME の前にコメント符号 (#) がある場合は、# を削除します。REQUEST_HOSTNAME キーワードがない場合は、これを挿入します。
クライアントシステム上で /etc/hostname.interface ファイルを編集して、次の行を追加します。
inet hostname
hostname には、クライアントで使用する名前を指定します。
次のコマンドを入力し、クライアントは再起動時に完全な DHCP ネゴシエーションを実行します。
# ifconfig interface dhcp release # reboot |
クライアントにキャッシュされている DHCP データは削除されます。クライアントは、プロトコルを再開して、新しい構成情報 (新しいホスト名を含む) を要求します。DHCP サーバーは、そのホスト名がネットワークの別のシステムで使用されていないか確認してから、それをクライアントに割り当てます。DHCP サーバーは、ネームサービスの情報をクライアントのホスト名で更新できます。ただし、そのためには、DHCP サーバーがそのように構成されていなければなりません。
Oracle Solaris システムでは、ネームサービスとして、DNS、NIS、NIS+、およびローカルファイルストア (/etc/inet/hosts) がサポートされます。これらのネームサービスを使用するためには、ある程度の事前構成が必要です。使用するネームサービスを指定するために、ネームサービススイッチ構成ファイル (nsswitch.conf(4) を参照) も正しく設定してください。
ネームサービスのクライアントとしてシステムを構成しないと、DHCP クライアントシステムでネームサービスを使用することはできません。デフォルトでは、システムのインストール時に異なる構成を指定しないかぎり、ローカルファイルだけが使用されます。
次の表は、DHCP に関連する考慮事項をネームサービスごとに要約したものです。表には、クライアントの設定に役立つ情報へのリンクが含まれています。
表 16–1 DHCP クライアントシステムに対するネームサービスクライアント設定情報
ネームサービス |
クライアント設定情報 |
---|---|
NIS |
Oracle Solaris DHCP を使って Oracle Solaris ネットワークインストール情報をクライアントシステムに送信する場合には、NISservs と NISdmain オプションを含む構成マクロを使用できます。これらのオプションは、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 サービスの設定と構成」を参照)。 ヒント – スクリプトを作成すれば、dhcpinfo や ypinit を使って、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 編)』を参照してください。 |
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 サーバーがそれらのホスト名を生成する場合、クライアントが受け取る可能性のあるホスト名が分かります。
NIS+ クライアントになる DHCP クライアントシステムは、NIS+ ドメイン内にある別の NIS+ クライアントシステムに属する資格を使用する必要があります。この手順では、当該システムのみの資格が生成され、その資格は当該システムにログインしたスーパーユーザーだけに適用されます。DHCP クライアントシステムにログインするほかのユーザーには、NIS+ サーバー内で固有の独自の資格が必要です。これらの資格は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』に示されている手順に従って作成されます。
NIS+ サーバーで次のコマンドを入力して、クライアントの資格を作成します。
# nisgrep nisplus-client-name cred.org_dir > /tmp/file |
このコマンドは、NIS+ クライアント用の cred.org_dir テーブルエントリを一時ファイルに書き込みます。
cat コマンドで一時ファイルの内容を表示します。
あるいは、テキストエディターを使用します。
DHCP クライアント用に使用する資格をコピーします。
公開鍵と非公開鍵をコピーする必要があります。両者とも、コロンで区切られた数字と文字からなる長い文字列です。この情報は、次のステップでコマンドに貼り付けられます。
次のコマンドを入力して 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 には、一時ファイルからコピーした非公開鍵情報を貼り付けます。
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 クライアントシステムの適切な場所にコピーします。
DHCP クライアントシステムで次のコマンドを入力して、NIS+ 用の適切なネームサービススイッチファイルをコピーします。
# cp /etc/nsswitch.nisplus /etc/nsswitch.conf |
DHCP クライアントシステムを再起動します。
これで、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+ サービスを使用できます。
多数の 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 |
Oracle Solaris DHCP クライアントを適切に設定すれば、実行可能なプログラムやスクリプトを実行して、クライアントシステムに必要な任意のアクションを行うことができます。「イベントスクリプト」と呼ばれるこのプログラムやスクリプトは、一定の DHCP リースイベントが発生すると自動的に実行されます。イベントスクリプトを使用すれば、特定のリースイベントに応じてほかのコマンドやプログラム、スクリプトを実行できます。この機能を使用するためには、独自のイベントスクリプトを作成する必要があります。
dhcpagent では、DHCP リースイベントを表すために次のイベントキーワードが使用されます。
備考欄
インタフェースが DHCP 用に構成されました。クライアントは、DHCP サーバーから肯定メッセージ (DHCPv4 ACK) または (DHCPv6 Reply) を受け取り、IP アドレスに対するリース要求を認められます。このイベントスクリプトは、インタフェースの構成が正常に終わると直ちに呼び出されます。
クライアントによるリースの延長が成功しました。このイベントスクリプトは、クライアントが更新要求に対する肯定メッセージを DHCP サーバーから受け取ると直ちに呼び出されます。
リース時間が終了すると、リースが期限切れになります。DHCPv4 の場合、このイベントスクリプトは、リースされたアドレスがインタフェースから削除され、インタフェースが停止状態にされる直前に呼び出されます。DHCPv6 の場合、このイベントスクリプトは、最後に残っているリースされたアドレスがインタフェースから削除される直前に呼び出されます。
クライアントがインタフェースを DHCP 制御下から削除する目的でリースを中断しました。このイベントスクリプトは、インタフェースが DHCP 制御から削除される直前に呼び出されます。
クライアントが IP アドレスを解放します。このイベントスクリプトは、クライアントがインタフェース上のアドレスを解放し、DHCPv4 RELEASE または DHCPv6 Release パケットを DHCP サーバーに送信する直前に呼び出されます。
インタフェースは、DHCPv4 INFORM または DHCPv6 Information-Request メッセージを使用して、新しい構成情報または更新された構成情報を DHCP サーバーから取得します。これらのイベントは、DHCP クライアントがサーバーから構成パラメータだけを取得し、IP アドレスリースを取得しない場合に発生します。
リースが期限切れになったとき、有効なリースが 1 つ以上残っている場合は、期限切れのアドレスが削除される直前にこのイベントスクリプトが呼び出されます。削除されるアドレスは IFF_DEPRECATED フラグでマークされます。
これらのイベントが発生するたびに、dhcpagent は次のコマンドを呼び出します。
/etc/dhcp/eventhook interface event |
ここで interface は DHCP を使用しているインタフェースを、event は前述のイベントキーワードの 1 つをそれぞれ表します。たとえば、最初に ce0 インタフェースを DHCP 用に構成すると、dhcpagent は、イベントスクリプトを次のように呼び出します。
/etc/dhcp/eventhook ce0 BOUND |
イベントスクリプト機能を使用するためには、次のことを行う必要があります。
実行可能ファイルに /etc/dhcp/eventhook という名前を付ける。
ファイルの所有者を root にする。
アクセス権限を 755 (rwxr-xr-x) にする。
前述のイベントに応えて一連のアクションを行うスクリプトまたはプログラムを記述する。Sun は新しいイベントを追加する場合があるため、プログラムは、認識されないイベントや処理を必要としないイベントについては何もせずに無視する必要があります。たとえば、このプログラムまたはスクリプトでは、イベントが RELEASE の場合はログファイルに書き込み、それ以外のイベントは無視します。
スクリプトやプログラムを非対話型にする。イベントスクリプトが呼び出される前に、stdin、stdout、stderr は /dev/null に接続されます。出力またはエラーを見るためには、ファイルにリダイレクトする必要があります。
イベントスクリプトは、そのプログラム環境を dhcpagent から継承し、root 特権で実行します。スクリプトでは、必要に応じて、dhcpinfo ユーティリティーを使ってより詳しいインタフェースの情報を取得できます。詳細は、dhcpinfo(1) のマニュアルページを参照してください。
dhcpagent デーモンは、イベントスクリプトがすべてのイベントに対して終了するまで待ちます。55 秒経ってもイベントスクリプトが終了しないと、dhcpagent は SIGTERM シグナルをスクリプトプロセスに送信します。さらに、追加の 3 秒が過ぎてもプロセスが終了しないと、デーモンは SIGKILL シグナルを送信してプロセスを強制的に終了させます。
dhcpagent(1M) のマニュアルページにイベントスクリプトの一例が示されています。
例 16–3 は、DHCP イベントスクリプトを使って /etc/resolv.conf ファイルの内容を最新の状態に保つ方法を示しています。BOUND や EXTEND イベントが発生すると、スクリプトは、ドメインサーバーとネームサーバーの名前を変更します。 EXPIRE や DROP、RELEASE イベントが発生すると、スクリプトは、ドメインサーバーとネームサーバーの名前をファイルから削除します。
このスクリプト例では、DHCP が、ドメインサーバー名およびネームサーバー名の正式な情報源であることを想定しています。さらに、DHCP 制御下のすべてのインタフェースが、一貫性のある最新の情報を返すことを想定しています。これらの前提は、実際のシステムの条件と一致しない場合があります。
#!/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
この章では、DHCP サーバーまたは DHCP クライアントを構成する際に発生する可能性がある問題点の解決に役立つ情報を提供します。さらに、構成が完了したあとで DHCP を使用しているときに起こる問題とその解決方法についても説明します。
この章の内容は次のとおりです。
DHCP サーバーの構成については、第 14 章DHCP サービスの構成 (手順)を参照してください。DHCP クライアントの構成については、「Oracle Solaris DHCP クライアントを使用可能または使用不可にする」を参照してください。
サーバーを構成する際に発生する問題は、次のカテゴリに分類されます。
DHCP データストアとして NIS+ を使用する場合に起こる問題は、次のカテゴリに分けられます。
NIS+ を データストアとして使用しようとしても、DHCP マネージャが NIS+ をデータストアの候補として認識しないことがあります。dhcpconfig コマンドを使用すると、NIS+ がインストールされておらず、動作していないという意味のメッセージが表示されることがあります。どちらの問題の場合も、このネットワークでは NIS+ が使用されている可能性はあるが、このサーバーには NIS+ が構成されていないことを意味します。NIS+ をデータとして選択するためには、サーバーマシンが NIS+ クライアントとして構成されている必要があります。
DHCP サーバーシステムを NIS+ クライアントとして設定する前に、次の要件が満たされていなければなりません。
ドメインがすでに構成されている。
NIS+ ドメインのマスターサーバーが動作している。
マスターサーバーのテーブルにデータが格納されている。
ホストテーブルに、新しいクライアントシステム (DHCP サーバーシステム) のエントリがすでにある。
NIS+ クライアントの構成に関する詳しい情報については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』の「NIS+ クライアントマシンの設定」を参照してください。
DHCP で NIS+ を使用できるようになったあとに NIS+ を変更すると、エラーになることがあります。このような変更が構成の問題を引き起こす可能性があるからです。問題と解決策の次の説明に従って、構成の問題の原因を判別してください。
問題:ルートオブジェクトが NIS+ ドメインに存在しない。
対処方法:次のコマンドを入力します。
/usr/lib/nis/nisstat
このコマンドによって、ドメインの統計情報が表示されます。ルートオブジェクトが存在しない場合は、統計情報は表示されません。
『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』に従って NIS+ ドメインを設定します。
問題:passwd と publickey の情報について NIS+ が使用されていない。
対処方法:次のコマンドを入力して、ネームサービススイッチの構成ファイルを表示します。
cat /etc/nsswitch.conf
この「nisplus」キーワードに関する passwd と publickey の項目を確認します。ネームサービススイッチの構成につい ては、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。
問題:ドメイン名が空である。
対処方法:次のコマンドを入力します。
domainname
このコマンドによって空の文字列がリストされた場合は、このドメインについてドメイン名が設定されていません。データストアにローカルファイルを使用するか、あるいは、ネットワーク用に NIS+ ドメインを設定します。詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。
問題:NIS_COLD_START ファイルが存在しない。
対処方法:サーバーシステムで次のコマンドを入力して、ファイルの存在を確認します。
cat /var/nis/NIS_COLD_START
データストアのローカルファイルを使用するか、あるいは、NIS+ クライアントを作成します。詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : 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) のマニュアルページを参照してください。
クライアントが 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 or BOOTP server not responding |
問題を特定するには、クライアントとサーバーの両方から診断情報を収集する必要があります。情報を収集するには、次の方法があります。
これらの方法を個別に、または同時に実行できます。
収集した情報は、問題が発生した場所がクライアントなのか、サーバーなのか、リレーエージェントなのかを判別する上で役立ちます。そして、そのあとで解決策を見つます。
Oracle Solaris DHCP クライアント以外のクライアントをデバッグモードで実行する方法については、そのクライアントのマニュアルを参照してください。
Oracle Solaris DHCP クライアントをデバッグモードで実行するには、次のようにします。
DHCP クライアントシステムでスーパーユーザーになります。
DHCP クライアントデーモンを終了します。
# pkill -x dhcpagent |
デーモンをデバッグモードで再起動します。
# /sbin/dhcpagent -d1 -f & |
-d スイッチによって、DHCP クライアントは、詳細レベル 1 のデバッグモードで動作します。-f スイッチによって、出力は、syslog の代わりにコンソールに送信されます。
DHCP ネゴシエーションを開始するようにインタフェースを構成します。
# ifconfig interface dhcp start |
interface には、クライアントネットワークインタフェースの名前 (たとえば、ge0) を指定します。
デバッグモードで実行すると、クライアントデーモンは、DHCP 要求を実行している間、画面にメッセージを表示します。クライアントのデバッグモード出力については、「デバッグモードで動作する DHCP クライアントの出力」を参照してください。
サーバーシステム上でスーパーユーザーになります。
DHCP サーバーを一時的に停止します。
# svcadm disable -t svc:/network/dhcp-server |
DHCP マネージャか dhcpconfig でサーバーを停止することもできます。
デーモンをデバッグモードで再起動します。
# /usr/lib/inet/in.dhcpd -d -v |
また、デーモンを実行する際に通常使用する in.dhcpd コマンド行オプションも使用する必要があります。たとえば、デーモンを BOOTP リレーエージェントとして実行する場合は、in.dhcpd -d -v コマンドに -r オプションを付けます。
デバッグモードで動作しているデーモンは、DHCP 要求や BOOTP 要求を処理している間、画面にメッセージを表示します。サーバーのデバッグモードの出力については、「デバッグモードで動作する DHCP サーバーの出力」を参照してください。
DHCP サーバーシステム上でスーパーユーザーになります。
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 はインタフェースを監視し続けます。
クライアントシステムを起動するか、クライアントシステムで dhcpagent を再起動します。
「DHCP クライアントをデバッグモードで実行する方法」 を再起動する方法については、 How to Run the DHCP Client in Debugging Modeを参照してください。
サーバーシステムで snoop を使用して、ネットワークパケットの内容を含む出力ファイルを表示させます。
# /usr/sbin/snoop -i snoop-output-filename -x0 -v |
たとえば、次のように入力します。
# /usr/sbin/snoop -i /tmp/snoop.output -x0 -v
出力の解釈については、「DHCP snoop 出力」を参照してください。
次の例では、デバッグモードで動作する DHCP クライアントが DHCP 要求を送信し、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 サーバーにアクセスできないと、通常、次のようなデバッグモード出力が表示されます。
/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 ネットワークトラフィックを監視する方法」 を参照)。
サーバーからの通常のデバッグモード出力には、サーバー構成情報が表示され、続いて、デーモンの起動とともに各ネットワークインタフェースの情報が表示されます。デーモンが起動されると、デバッグモード出力には、デーモンが処理している要求の情報が表示されます。例 17–3 は、起動されたばかりの DHCP サーバーからのデバッグモード出力を表しています。サーバーはクライアントのリースを延長します。このクライアントは現在、応答しない別の 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 サーバーに中継し、サーバーの応答をクライアントに中継します。
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 クライアントのサポート (作業マップ)」を参照してください。
下記の 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 をクライアントに割り当てます。さらに、このメッセージには、クライアントに対するいくつもの標準的なネットワークオプションといくつかのベンダー固有のオプションが含まれています。
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 サーバーが処理するこのクライアント用のマクロのオプション値を確認してください。不正確な情報の例には、間違った NIS ドメイン名やルーター IP アドレスがあります。
正しくない情報の原因がどこにあるのかを特定する際には、次の一般的な指針に従ってください。
サーバーに定義されているマクロを調べます (「DHCP サーバー上で定義されたマクロを表示する方法 (DHCP マネージャ)」を参照)。「マクロ処理の順序」の情報を確認し、このクライアントのためにどのマクロが自動的に処理されるかを判別します。
ネットワークテーブルを調べて、クライアントの IP アドレスに構成マクロとして割り当てられたマクロ (ある場合) を確認します。詳細は、「DHCP サービスで IP アドレスを使用して作業する (作業マップ)」を参照してください。
複数のマクロで使用されているオプションがないか調べます。オプションに指定したい値が、最後に処理されるマクロに設定されるか確認します。
適切なマクロを編集して、正確な値がクライアントに確実に渡されるようにします。詳細は、「DHCP マクロの変更」を参照してください。
ここでは、独自のホスト名を DNS に登録する必要がある DHCP クライアントの問題について説明します。
クライアントが Oracle Solaris DHCP クライアントでない場合は、そのクライアントのマニュアルを参照して、ホスト名を要求するために必要なクライアントの構成方法を調べてください。Oracle Solaris DHCP クライアントの場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。
次の各項では、クライアントがそのホスト名を取得する際に起こる問題とその解決策について説明します。
問題:クライアントは DHCP サーバーからオファーを受け取るが、サーバーが DNS 更新を行わない。
対処方法:クライアントから 2 つの DHCP サーバーにアクセスできる場合は、両方のサーバーが DNS 更新を行うように構成されている必要があります。DHCP サーバーと DNS サーバーの構成については、「DHCP サーバーによる動的 DNS 更新の有効化」を参照してください。
DNS 更新を提供するように DHCP サーバーが構成されているかどうかを判別するには、次のようにします。
クライアントの DHCP サーバーの IP アドレスを判別します。クライアントシステムで snoop か別のアプリケーションを使ってネットワークパケットを捕捉します。「snoop を使用して DHCP ネットワークトラフィックを監視する方法」を参照し、その手順をクライアント (サーバーではなく) で実行します。snoop 出力で DHCP Server Identifier を探して、サーバーの IP アドレスを取得します。
DHCP サーバーシステムにログインして、システムが、DNS 更新を行うように構成されているか確認します。次のコマンドをスーパーユーザーとして入力します。
dhcpconfig -P
UPDATE_TIMEOUT がサーバーパラメータとして表示される場合、DHCP サーバーは DNS 更新を行うように構成されています。
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 に書き込まれていないか調べます。
There is no n.n.n.n dhcp-network table for DHCP client's network.
DHCP network record for n.n.n.n is unavailable, ignoring request.
別の名前を要求するようにクライアントを構成します。「特定のホスト名を要求するように 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 サーバーから応答を受け取れるように、タイムアウトの秒数を増やすべきです。
この章では、DHCP コマンドと DHCP ファイルの関連について説明します。ただし、この章にはコマンドの使い方は含まれていません。
この章では、次の内容について説明します。
次の表に、ネットワーク上で DHCP を管理するために使用できるコマンドを示します。
表 18–1 DHCP で使用されるコマンド
dhcpconfig、dhtadm、pntadm コマンドは、スクリプト中での使用に適しています。特に、pntadm コマンドは大量の IP アドレスエントリを DHCP ネットワークテーブルに作成するときに便利です。次のサンプルスクリプトでは、バッチモードで pntadm を使って、IP アドレスを作成しています。
#! /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." |
次の表に、Oracle Solaris DHCP に関連するファイルを示します。
表 18–2 DHCP デーモンや DHCP コマンドで使用されるファイル
ファイルまたはテーブル名 |
説明 |
マニュアルページ |
---|---|---|
dhcptab |
オプションとその値の組み合わせからなる DHCP 構成情報のテーブルを表す総称的な用語。構成情報はさらにマクロとしてグループ化されます。dhcptab テーブルの名前と位置は、DHCP 情報の格納にどのデータストアを使用するかによって異なります。 | |
DHCP ネットワークテーブル |
IP アドレスをクライアント ID と構成オプションに割り当てます。DHCP ネットワークテーブルの名前は、10.21.32.0 など、ネットワークの IP アドレスに基づいて付けられます。dhcp_network というファイルはありません。DHCP ネットワークテーブルの名前と位置は、DHCP 情報の格納にどのデータストアを使用するかによって異なります。 | |
dhcpsvc.conf |
DHCP デーモンの起動オプションと、データストア情報を格納しています。このファイルを手動で編集してはいけません。起動オプションの変更には dhcpconfig コマンドを使用します。 | |
nsswitch.conf |
ネームサービスデータベースの場所と、それらのデータベースをどのような順序で検索してさまざまな情報を入手するかを指定します。nsswitch.conf ファイルは、DHCP サーバーを構成する際に正確な構成情報を入手するために使用されます。このファイルは、/etc ディレクトリに存在します。 | |
resolv.conf |
DNS クエリーを解決するための情報が含まれています。DHCP サーバーの構成中に、このファイルで、DNS ドメインと DNS サーバーに関する情報が調べられます。このファイルは、/etc ディレクトリに存在します。 | |
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) のマニュアルページを参照してください。 | |
DHCP inittab |
データタイプなど、DHCP オプションコードのさまざまな要素を定義するとともに、ニーモニックラベルを割り当てます。ファイルの構文については、dhcp_inittab(4) のマニュアルページを参照してください。 クライアント側では、 dhcpinfo が /etc/dhcp/inittab ファイル中の情報を人が判読可能な情報として提供します。DHCP サーバーシステムでは、DHCP デーモンと管理ツールがこのファイルから DHCP オプション情報を入手します。 以前のリリースで使用されていた /etc/dhcp/dhcptags ファイルは /etc/dhcp/inittab ファイルで置き換えられている。これについては、 「DHCP のオプション」を参照してください。 |
従来、DHCP のオプション情報は、サーバーの dhcptab テーブルやクライアントの dhcptags ファイル、さらにさまざまなプログラムの内部テーブルなど、複数の場所に格納されてきました。そのため、Solaris 8 以降のリリースでは、すべてのオプション情報が /etc/dhcp/inittab ファイルに統合されています。ファイルの詳細については、dhcp_inittab(4) のマニュアルページを参照してください。
Oracle Solaris DHCP クライアントでは、dhcptags ファイルの代わりに DHCP の inittab ファイルを使用します。クライアントは、DHCP パケットの一部としてオプションコードを受け取ると、その情報をこのファイルから取得します。DHCP サーバーの in.dhcpd、snoop、dhcpmgr プログラムでもこの inittab ファイルを使用します。
Oracle Solaris DHCP を使用するほとんどのサイトは、/etc/dhcp/inittab ファイルへの切り替えによる影響を受けません。影響を受けるのは、次の条件がすべて当てはまるサイトだけです。
Solaris 8 よりも前の Oracle Solaris リリースをアップグレードする予定がある。
以前に新しい DHCP オプションを作成したことがある。
/etc/dhcp/dhcptags ファイルを変更したことがあり、その変更を保持したい。
アップグレードを行うと、dhcptags ファイルが変更されたために DHCP inittab ファイルを変更する必要があることを示すメッセージがアップグレードログに書き込まれます。
inittab ファイルには、dhcptags ファイルよりも多くの情報が含まれています。さらに、inittab ファイルでは、異なる構文が使用されます。
次に、dhcptags のエントリ例を示します。
33 StaticRt - IPList Static_Routes
33 は DHCP パケットで渡される数値コードです。StaticRt はオプション名です。IPList は、StaticRt のデータタイプが一連の IP アドレスでなければならないことを示します。Static_Routes は記述名です。
inittab ファイルは、これらのオプションを 1 行で表した複数のレコードから構成されています。形式は、dhcptab のシンボルを定義する形式と似ています。次の表に、inittab ファイルの構文について説明します。
説明
オプションの名前。オプション名は、そのオプションのカテゴリ内部で一意である必要があります。また、Standard、Site、Vendor のカテゴリにある、ほかのオプション名と重複できません。たとえば、同じ名前を持つ Site オプションを 2 つ持つことはできず、Standard のオプションと同じ名前の Site のオプションは作成できません。
オプションが所属する名前空間を特定します。次のいずれかである必要があります。 Standard、Site、Vendor、Field、または Internal。
オプションがネットワーク経由で送信されたときにそのオプションを特定します。多くの場合、カテゴリがなくてもコードはオプションを一意に特定します。ただし、Field や Internal などの内部カテゴリの場合は、コードがほかの目的に使用される場合があります。コードは、広域的に一意でない場合があります。コードは、オプションのカテゴリ内部では一意であることが必要で、Standard と Site のフィールドにあるコードと重複することはできません。
このオプションと関連するデータを記述します。有効なタイプは、IP、ASCII、Octet、Boolean、Unumber8、Unumber16、Unumber32、Unumber64、Snumber8、Snumber16、Snumber32、および Snumber64 です。数値の場合、先頭の U や S は、数値が符号なしか符号ありかを示します。終わりの数字は、数値にいくつのビットが含まれているかを表します。たとえば、Unumber8 は無符号の 8 ビット数値を表します。タイプには、大文字小文字の区別はありません。
このオプションの値を構成するデータ単位数を記述します。
このオプションに指定可能な値の個数を記述します。0 は、無限大の数を表します。
この情報を使用できるプログラムを記述します。これには次の sdmi を指定します。
snoop
in.dhcpd
dhcpmgr
dhcpinfo
次に inittab エントリの例を示します。
StaticRt - Standard, 33, IP, 2, 0, sdmi
このエントリは、オプションが StaticRt という名前で、Standard カテゴリに属し、オプションコード 33 であることを示します。これで表されるデータは、理論上無数の IP アドレスの組です。なぜなら、タイプが IP、データ単位が 2、最大が無限 (0) だからです。このオプションを利用するのは sdmi: snoop、in.dhcpd、 dhcpmgr、dhcpinfo です。
以前に 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 アドレスを指定することを表しています。