Solaris DHCP の管理

DHCP サーバーに関する問題の障害追跡

サーバーを構成する際に発注する問題は、次のカテゴリに分類されます。

NIS+ の問題

DHCP データとして NIS+ を使用する場合に発生する問題は、次のカテゴリに分類されます。

NIS+ をデータストアとして選択できない

NIS+ をデータストアとして選択しようとして、DHCP マネージャのデータストアの選択肢に NIS+ が含まれていなかったり、NIS+ のインストールと実行が確認できないというメッセージが dhcpconfig から返されたりすることがあります。これは、このネットワークでは NIS+ が使用されている可能性はあるが、このサーバーには NIS+ が構成されていないことを意味します。NIS+ をデータとして選択するためには、サーバーマシンが NIS+ クライアントとして構成されている必要があります。

サーバーを NIS+ クライアントとして設定するためには、ドメインがすでに構成され、そのマスターサーバーが動作している必要があります。さらに、ドメインのテーブルのマスターサーバーがすでに作成され、ホストテーブルには新しいクライアントシステムのエントリ (DHCP サーバー) が存在している必要があります。『Solaris ネーミングの設定と構成』の「NIS+ クライアントの構成」で、NIS+ クライアントの構成についての詳細が説明されています。

NIS+ が適切に構成されていない

DHCP で NIS+ が正常に使用できるようになっても、NIS+ を変更するとエラーになり、構成の問題が明らかになることがあります。表 5–1 を使用して、問題の原因を特定してください。

表 5–1 NIS+ 構成の問題

問題 

情報の収集 

解決法 

ルートオブジェクトが NIS+ ドメインに存在しない 

次のコマンドを入力する。  

/usr/lib/nis/nisstat

ドメインの統計情報が表示される。ルートオブジェクトが存在しない場合は、統計情報は表示されない

Solaris ネーミングの設定と構成』を参照して NIS+ ドメインを設定する

passwordpublickey の情報について NIS+ が使用されていない

次のコマンドを入力して、ネームサービススイッチ構成ファイルを表示する  

cat /etc/nsswitch.conf

この「nisplus」キーワードに関する passwordpublickey の項目を確認する

ネームサービススイッチの構成については、『Solaris ネーミングの設定と構成』を参照

ドメイン名が空である 

次のコマンドを入力する。  

domainname

このコマンドによって空の文字列がリストされた場合は、このドメインについてドメイン名が設定されていない 

データストアにローカルファイルを使用するか、あるいは、ネットワーク用に NIS+ ドメインを設定する。『Solaris ネーミングの設定と構成』を参照

NIS_COLD_START ファイルが存在しない

サーバーシステムで次のコマンドを入力して、ファイルの存在を確認する 

cat /var/nis/NIS_COLD_START

データストアのローカルファイルを使用するか、あるいは、NIS+ クライアントを作成します。『Solaris ネーミングの設定と構成』を参照

NIS+ アクセスの問題

NIS+ のアクセス権に問題があると、DES 資格が適切でない、またはアクセス権が不十分なため NIS+ オブジェクトやテーブルを更新できないというエラーメッセージが表示されることがあります。表 5–2 を使用して、受け取った NIS+ エラーの原因を特定してください。

表 5–2 NIS+ アクセスの問題

問題 

情報の収集 

解決法 

NIS+ ドメインの org_dir オブジェクトに対する作成アクセス権が DHCP サーバーシステムにない

次のコマンドを入力する。  

nisls -ld org_dir

アクセス権は r---rmcdrmcdr--- といった形式でリストされる。これらのアクセス権はそれぞれ、未認証、所有者、グループ、その他に対応する。次にオブジェクトの所有者がリストされる

nischmod コマンドを使って org_dir. に対するアクセス権を変更する

たとえば、グループに作成アクセス権を追加する場合は、次のコマンドを使用する  

nischmod g+c org_dir

 

通常、org_dir ディレクトリオブジェクトでは、所有者とグループにすべての権利 (読み取り、変更、作成、 削除) が与えられ、その他と未認証に読み取りアクセス権だけが与えられる

詳細は nischmod(1) のマニュアルページを参照

 

DHCP サーバー名が org_dir オブジェクトの所有者としてリストされているか、グループの主体としてリストされていなければならない。さらに、このグループに作成アクセス権が与えられていなければならない。 次のコマンドでグループをリストする

nisls -ldg org_dir

 

DHCP サーバーに、org_dir オブジェクトの下にテーブルを作成するアクセス権がない

通常は、サーバーシステムの主体名が org_dir オブジェクトの所有グループのメンバーでないか、所有グループが存在しないことを意味する

次のコマンドを入力して所有グループ名を検索する 

niscat -o org_dir

次のような行を探す 

Group :"admin.myco.com."

次のコマンドを使ってグループ内の主体名をリストする  

nisgrpadm -l groupname

nisgrpadm コマンドを使ってサーバーシステムの名前をグループに追加する

たとえば、サーバー名 pacific をグループ admin.myco.com に追加するには、次のように入力する

nisgrpadm -a admin.myco.com pacific.myco.com

 

入力例 

nisgrpadm -l admin.myco.com

サーバーシステムの名前がグループの明示的なメンバーとしてリストされるか、グループの暗黙的なメンバーとして含まれているはずである 

詳細は、nisgrpadm(1) のマニュアルページを参照

DHCP サーバーが、NIS+ cred テーブルに有効なデータ暗号化規格 (DES) 資格を持っていない

この場合には、ユーザーが NIS+ ネームサービスに DES 資格を持っていないことを示すエラーメッセージが表示される 

nisaddcred コマンドを使って DHCP サーバーシステムのセキュリティ資格を追加する

次の例では、ドメイン Faxco.COM にあるシステム mercury についての DES 資格を追加する方法を示す

  

nisaddcred -p unix.mercury@Faxco.COM \ -P mercury.Faxco.COM.DES Faxco.COM.

  

このコマンドは、暗号化された秘密鍵の生成に必要なスーパーユーザーのパスワードを要求する 

詳細は、nisaddcred(1M) のマニュアルページを参照

IP アドレスの割り当てエラー

クライアントが IP アドレスを取得または確認しようとすると、次の問題が syslog やサーバーデバッグ出力に書き込まれることがあります。

表 5–3 IP アドレスの割り当てとリースに関する問題

エラーメッセージ 

説明 

解決法 

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 アドレスが選択された後で、かつ重複アドレスチェックが完了する前に、その IP アドレスレコードが DHCP ネットワークテーブルから削除されると、この状態になることがある 

DHCP マネージャまたは pntadm を使って DHCP ネットワークテーブルを表示する。IP アドレスのレコードがない場合は、DHCP マネージャ (「アドレス (Addresses)」タブの「編集 (Edit)」メニューから「作成 (Create)」を選択) または pntadm を使ってレコードを作成する

DHCP network record for n.n.n.n is unavailable, ignoring request.

要求された IP アドレスのレコードは DHCP ネットワークテーブルに存在しないので、サーバーが要求をドロップする 

DHCP マネージャまたは pntadm を使って DHCP ネットワークテーブルを表示する。IP アドレスのレコードがない場合は、DHCP マネージャ (「アドレス (Addresses)」タブの「編集 (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 アドレスが手動で割り当てられている。割り当てられる IP アドレスは 1 つでなければならない。サーバーは、ネットワークテーブルにある、最後に手動で割り当てられたアドレスを選択する  

DHCP マネージャまたは pntadm を使って IP アドレスを修正し、余分な手動割り当てを取り除く

No more IP addresses on n.n.n.n network.

指定されたネットワーク上で 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 に準拠していないと、この状態になることがある 

クライアントのソフトウェアを更新する 

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