TCP/IP とデータ通信

DHCP サーバーの障害追跡

この節では、DHCP サーバーに発生する可能性がある問題について説明します。

ファイルの使用時

ネームサービスとして files を使用している際に問題が発生した場合は、以下の指示に従います。

問題

/var/dhcp ディレクトリにアクセスできない。そのディレクトリが存在しないか、または UNIX のファイル読み取り権を持っていない。

検証: 以下のコマンドを使用します。


ls -d /var/dhcp

解決策: DHCP サーバーがまだ構成されていません。dhcpconfig を実行します。

NIS+ の使用時

ネームサービスとして NIS+ を使用している際に問題が発生した場合は、以下の指示に従います。

問題

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

検証: 以下のコマンドを入力します。


niscat -o org_dir

解決策: Solaris NIS+ 設定用のマニュアルを参照してください。

問題

root のアカウントに、org_dirオブジェクトの下でテーブルを作成するアクセス権がない。

検証: 以下のコマンドを入力します。


niscat -o org_dir

解決策: nischmod コマンドを使用して table.org_dir.domainname. に対するアクセス権を変更します。

問題

root のアカウントに、org_dir の下でテーブルを作成するアクセス権がない。通常これは、root のアカウントの主体名が org_dir オブジェクトの所有グループのメンバではないか、または所有グループが存在しないかのいずれかを表します。

検証: 以下のコマンドを入力して、所有グループ名を検索します。

niscat -o org_dir

解決策:

  1. nisgrpadm -l group と入力して、グループのメンバーを確認します。

  2. 現システムの主体名がグループ内にない場合は、nisgrpadm -a group principalname と入力して主体名を追加します。通常グループは admin です。グループが admin ではない場合は、dhcpconfig スクリプトを編集してグループを変更し、使用中のグループ名と一致させます。

  3. /usr/lib/nis/nisctl -fg と入力して、変更が即時に行われるようにキャッシュをフラッシュします。

問題

ドメイン名が設定されていない。

検証: 以下のコマンドを入力します。


domainname

このコマンドにより空文字列が表示された場合、当該ドメインにはドメイン名が設定されていません。

解決策: domainname コマンドを使用して正しいドメイン名を設定します。ドメイン名の値を /etc/default ドメイン内に置きます。

問題

NIS_COLD_START ファイルが存在しない。

検証: サーバーシステム上で以下のコマンドを入力します。


strings /var/nis/NIS_COLD_START

解決策: NIS+ クライアントを 1 つ作成します。『Solaris NIS+ QuickStart』を参照してください。

問題

NIS+ を選択したが、サイトで NIS+ が動作していない

検証: サーバーにログインして、以下のコマンドを入力します。


 ps -ef | grep nis

NIS+ が動作している場合は、/usr/sbin/rpc.nisd -YB という出力に類似した出力が表示されます。

解決策: 以下のようにして、NIS+ サーバーを作成します。

  1. クライアント上で、NIS+ の root のマスターサーバーをドメイン用に設定します。たとえば、以下のようにします。


    /usr/lib/nis/nisserve -r
    

  2. ローカルの /etc ファイルから NIS+ テーブルを生成します。たとえば、以下のようにします。


    nispopulate -F /etc
    

  3. サーバー上で、NIS+ が動作していることを確認します。たとえば、以下のようにします。


    /usr/lib/nis/nisstat
    nisls org_dir  
    niscat hosts.org_dir
    

ネームサービスとして NIS+ を使用できない場合

以下のエラーメッセージのうちのいずれかまたは両方が表示されます。


!!! warning !!! trailing dot ignored - use dns domain name syntax


(!!! 警告 !!! 後尾のドットが無視された - DNS のドメイン名構文を使用してください)


Error 20 from NIS+; unable to use NIS+ as name service.


(NIS+ でエラー 20。NIS+ をネームサービスとして使用できない)

上記のメッセージは、NIS+ ドメイン内に該当する名前が存在しないか、または NIS+ ドメインが存在しないかのいずれかを表します。以下の情報を使用し、NIS+ の構成内のエラーを見つけ出して解決します。

問題

サーバーシステムのドメイン名の末尾は、ピリオド 1 つで終わる。

検証: nisdefaults コマンドを入力して、ドメイン名の末尾にピリオドが 2 つあるかどうかを確認します。

解決策:

  1. /etc/defaultdomain ファイルを編集して、ドメイン名から末尾のピリオド (.) を削除します。

  2. システムをリブートし、dhcpconfig スクリプトを再度実行します。

問題

ホスト名にドメイン名が含まれている。たとえば、ホストが myhost ではなく myhost.Faxco.COM と設定されている。

検証: nisdefaults コマンドを入力して、ドメイン名を含んでいるホスト名を 2 度表示します。

解決策:

  1. ホスト名が間違っている場合は、sys-unconfig コマンドを入力し、構成設定値を削除してシステムを停止します。

  2. システムをリブートし、ホスト名とドメイン名の適正な設定値を指定します。

問題

root のアカウントに、NIS+ ドメイン内の org_dir オブジェクトに対する作成のアクセス権がない。

検証: 以下のコマンドを入力します。


niscat -o org_dir

解決策: nischmod コマンドを使用して、table.org_dir.domainname に対するアクセス権を変更します。

ファイルのネームサービスを利用する際の入出力エラー

以下のエラーメッセージが表示されます。


File system I/O error number accessing file datastore.


(ファイルのデータストアにアクセスする際に入出力エラー number が発生)

上記のエラーメッセージを受け取った場合は、以下に示すエラーメッセージのリストを調べます。以下に示すエラーメッセージは、/var/dhcp 内のファイルのオープン、読み取り、書き込みのいずれかをオペレーティングシステムが試行した際に、オペレーティングシステムが返すエラーメッセージです。

問題

エラー番号 2 (ENOENT)

検証: ファイルまたはディレクトリが存在しません。

解決策: dhcpconfig コマンドを入力してファイルまたはディレクトリを作成します。

問題

エラー番号 13 (EACCES)

検証: ファイルまたはディレクトリにアクセスした際に、UNIX のアクセス権エラーが発生しました。

解決策: su コマンドを使用して UNIX のアクセス権を変更します。

ユーザーに DES 資格がない場合

問題

以下のエラーメッセージが表示されます。


The user user does not have DES credentials in the NIS+ name service.


(ユーザー user には、NIS+ ネームサービスにおける DES 資格がない)

検証: 現システムの root のアカウントは、有効なデータ暗号化規格 (DES) 資格を NIS+ cred テーブル内に持っていません。

解決策: nisaddcred コマンドを使用して、 root のアカウントの資格を追加します。コマンド行に、UNIX ネット名と NIS+ 主体名を入力する必要があります。

ドメイン Faxco.COM 内のシステム mercury の DES 資格を追加する方法を以下の例に示します。


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

このコマンドでは、root のパスワード (暗号化された秘密鍵を作成するために必要です) を求めるプロンプトが表示されます。

データストア内にテーブルを作成するアクセス権がない場合

以下のエラーメッセージが表示されます。


You do not have permission to create the tablename table in the servicename data store.


(servicename データストア内に tablename テーブルを作成するアクセス権がない)

テーブルをデータストア内に作成する際に問題が発生した場合は、以下の情報を検査します。

問題

root のアカウントに、org_dir オブジェクトの下でテーブルを作成するアクセス権がない。

検証: 通常これは、root のアカウントの主体名が org_dir オブジェクトの所有グループのメンバーではないか、または所有グループが存在しないかのいずれかを表します。

解決策:

  1. niscat -o org_dir と入力して、所有グループの名前を確認します。

  2. nisgrpadm -l admin と入力して、グループのメンバーを確認します。

  3. 現システムの主体名がグループ内にない場合は、nisgrpadm -a group principalname と入力して主体名を追加します。

  4. /usr/lib/nis/nisctl -f g と入力して、変更が即時行われるようにキャッシュをフラッシュします。

ネームサーバーを判定できない場合

DHCP サーバーの構成の際にネームサーバーを見つけることができない場合の解決策を以下に示します。

問題

dhcpconfig スクリプトで、サーバー名と IP アドレスが一致しなかった。

検証: コマンド getent hosts name を入力して、サーバーの IP アドレスを検索します。

解決策: hosts データベース内にエントリを作成します。

問題

dhcpconfig スクリプトが、サーバーの間違ったネームサービスを使用している。

検証: /etc/nsswitch.conf ファイル内の hosts エントリを調べて、IP アドレスの検索に使用されているネームサービス (xfnfilesnisnisplusdns のいずれか) を確認します。

解決策: /etc/nsswitch.conf ファイル内の hosts 命令を適正なネームサービスに変更します。nscd を停止して再起動します。

問題

dhcpconfig スクリプトがネームサービスを検査しなかった。

検証: /etc/nsswitch.conf ファイル内の [NOTFOUND=RETURN] 命令に先行するネームサービスが優先しています。指定されたネームサービスがエントリを見つけられなかった場合は、この命令の後に表示されているネームサービスはすべて検査されません。

解決策: /etc/nsswitch.conf ファイルから [NOTFOUND=RETURN] 命令を削除し、再度 dhcpconfig スクリプトを実行します。nscd を停止して再起動します。

DHCP テーブルの設定を試行した際のエラー

以下のエラーメッセージのうちの 1 つが表示されます。


The user username does not have permission to update the dhcptab table in the servicename resource.


(ユーザー username には、servicename リソース内の dhcptab テーブルを変更するアクセス権がない)


Error 10 from the Table subsystem accessing dhcptab table, message: NIS+ error while executing nis_modify_entry for [key=SUNW.PCNFS.5.1.1,flag=m],dhcptab.org_dir.island.ocean.: Permission denied Error trying to set up DHCP table, exiting.


(dhcptab テーブルにアクセスした際の Table サブシステムのエラー 10 の場合のメッセージ。[key=SUNW.PCNFS.5.1.1,flag=m],dhcptab.org_dir.island.ocean. に対して nis_modify_entry を実行中にNIS+ のエラー: DHCP テーブルの設定を試行した際にアクセス権拒否のエラーが発生して終了した)


Error 10 from the Table subsystem accessing dhcptab table, message: NIS+ error while executing nis_modify_entry for [key=SUNW.PCNFS.5.1.1,flag=m],dhcptab.org_dir.island.ocean.: Object with same name exists Error trying to set up DHCP table, exiting.


(dhcptab テーブルにアクセスした際の Table サブシステムのエラー 10 の場合のメッセージ。[key=SUNW.PCNFS.5.1.1,flag=m],dhcptab.org_dir.island.ocean. に対して nis_modify_entry を実行中に NIS+ のエラー: DHCP テーブルの設定を試行した際に同じ名前のオブジェクトが存在するというエラーが発生して終了した)

上記のエラーメッセージのうちの 1 つを受け取った場合は、以下の情報を検査すれば、DHCP サーバーの構成中に DHCP テーブルの設定を試行した際に発生した問題の解決策があります。

問題

NIS+ または UNIX のファイルシステムから DHCP テーブルにエントリを追加するアクセス権を持っていない。

検証: アクセス権を検査して、DHCP テーブルに対する必要なアクセス権を設定します。

解決策: 管理者が所定の管理グループのメンバーであり、NIS+ のマスターサーバーに書き込むアクセス権を持っていることを確認します。

dhcp_network テーブルへのアクセス権がない場合

以下のエラーメッセージが表示されます。


You do not have permission to create {update} the tablename table in the servicename data store.


(servicename データストア内で tablename テーブルを作成する {変更する} アクセス権がない)

上記のメッセージを受け取った場合は、以下の情報を検査します。以下に示すのは、DHCP サーバーの構成中に dhcp_network テーブルにアクセスした際に発生した問題に対する解決策です。

問題

NIS+ または UNIX のファイルシステムから dhcp_network テーブルにエントリを追加するアクセス権がない。

検証: アクセス権を検査して、 dhcp_network テーブルに対する必要なアクセス権を設定します。

解決策: 管理者が所定の管理グループのメンバーであり、NIS+ のマスターサーバーに書き込むアクセス権を持っていることを確認します。