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

DHCP クライアント指定のホスト名に関連する問題

ここでは、独自のホスト名を DNS に登録する必要がある DHCP クライアントの問題について説明します。

DHCP クライアントがホスト名を要求しない

クライアントが Oracle Solaris DHCP クライアントでない場合は、そのクライアントのマニュアルを参照して、ホスト名を要求するために必要なクライアントの構成方法を調べてください。Oracle Solaris DHCP クライアントの場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。

要求されたホスト名を DHCP クライアントが受け取らない

次の各項では、クライアントがそのホスト名を取得する際に起こる問題とその解決策について説明します。

問題:

クライアントは DHCP サーバーからオファーを受け取るが、サーバーが DNS 更新を行わない。

対処方法:

クライアントから 2 つの DHCP サーバーにアクセスできる場合は、両方のサーバーが DNS 更新を行うように構成されている必要があります。DHCP サーバーと DNS サーバーの構成については、「DHCP サーバーによる動的 DNS 更新の有効化」を参照してください。

DNS 更新を提供するように DHCP サーバーが構成されているかどうかを判別するには、次のようにします。

  1. クライアントの DHCP サーバーの IP アドレスを判別します。クライアントシステムで snoop か別のアプリケーションを使ってネットワークパケットを捕捉します。snoop を使用して DHCP ネットワークトラフィックを監視する方法」を参照し、その手順をクライアント (サーバーではなく) で実行します。snoop 出力で DHCP Server Identifier を探して、サーバーの IP アドレスを取得します。

  2. DHCP サーバーシステムにログインして、システムが、DNS 更新を行うように構成されているか確認します。次のコマンドをスーパーユーザーとして入力します。

    dhcpconfig -P

    UPDATE_TIMEOUT がサーバーパラメータとして表示される場合、DHCP サーバーは DNS 更新を行うように構成されています。

  3. DNS サーバーで /etc/named.conf ファイルを調べます。適切なドメインの zone セクションで allow-update キーワードを探します。サーバーが DHCP サーバーによる DNS 更新を許している場合は、DHCP サーバーの IP アドレスが allow-update キーワードにあります。

問題:

クライアントが FQDN オプションを使ってホスト名を指定している。FQDN オプションは DHCP プロトコルに正式には含まれていないため、現在、Oracle Solaris DHCP ではサポートされていません。

対処方法:

そのサーバーで snoop か別のアプリケーションを使ってネットワークパケットを捕捉します。詳細は、snoop を使用して DHCP ネットワークトラフィックを監視する方法」を参照してください。snoop 出力で、クライアントからのパケットにある FQDN オプションを探します。

Hostname オプションを使ってホスト名を指定するようにクライアントの構成を変更します。Hostname はオプションコード 12 です。 詳細は、クライアントのマニュアルを参照してください。

Oracle Solaris クライアントの場合は、「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。

問題:

クライアントにアドレスオファーを行う DHCP サーバーがクライアントの DNS ドメインを知らない。

対処方法:

DHCP サーバーで、DNSdmain オプションに有効な値が設定されているか確認します。このクライアントに対して処理されるマクロの DNSdmain オプションに正しい DNS ドメイン名を設定します。DNSdmain は通常、ネットワークマクロに含まれているマクロ内のオプションの値を変更する方法については、「DHCP マクロの変更」を参照してください。

問題:

クライアントが要求したホスト名が DHCP サーバーが管理していない IP アドレスに対応している。Oracle Solaris DHCP サーバーは、自らが管理していない IP アドレスに対し DNS 更新を行いません。

対処方法:

次のいずれかの DHCP サーバーメッセージが syslog に書き込まれていないか調べます。

別の名前を要求するようにクライアントを構成します。「特定のホスト名を要求するように Oracle Solaris DHCPv4 クライアントを有効にする方法」を参照してください。新しく指定する名前には、DHCP サーバーが管理しているアドレスに対応する名前を選択します。DHCP マネージャの「アドレス (Addresses)」タブのアドレスマッピングを見てください。あるいは、どの IP アドレスにも対応していないアドレスを選択することもできます。

問題:

クライアントから要求されたホスト名が、使用不可の状態にある IP アドレスに対応している。このアドレスは、ほかの目的で使用されている可能性があります (別のクライアントにリースされているか、別のクライアントにオファー中である)。

対処方法:

次の DHCP サーバーメッセージが syslog に書き込まれていないか調べます。 ICMP ECHO reply to OFFER candidate: n.n.n.n.

異なる IP アドレスに対応する名前を選択するようにクライアントを構成します。あるいは、そのアドレスを使用するクライアントからアドレスを取り返します。

問題:

DHCP サーバーからの更新を受け付けるように DNS サーバーが構成されていない。

対処方法:

DNS サーバーの /etc/named.conf ファイルを調べます。DHCP サーバーのドメインに対する適切な zone セクションで allow-update キーワードが付いた DHCP サーバーの IP アドレスを探します。IP アドレスが存在しないなら、DNS サーバーは、DHCP サーバーからの更新を受け付けるようには構成されていません。

詳細は、「DHCP クライアント用に動的 DNS 更新を有効にする方法」を参照してください。

DHCP サーバーに複数のインタフェースがある場合は、DHCP サーバーのすべてのアドレスからの更新を受け付けるように DNS サーバーを構成する必要がある場合があります。DNS サーバーのデバッグ機能を有効にして、更新が DNS サーバーに届いているか確認します。DNS サーバーが更新要求を受け取っている場合は、デバッグモード出力を見て、更新が行われなかった原因を調べます。DNS デバッグモードについては、in.named(1M) のマニュアルページを参照してください。

問題:

DNS 更新が、割り当てられた時間内に行われていない可能性がある。設定された時間内に DNS 更新が完了しないと、DHCP サーバーはホスト名をクライアントに返しません。ただし、DNS 更新を完了する試みは続けられます。

対処方法:

nslookup コマンドを使って、更新が正常に終わっているかを確認します。詳細は、nslookup(1M) のマニュアルページを参照してください。

たとえば、DNS ドメインが hills.example.org で、DNS サーバーの IP アドレスが 10.76.178.11 であるとします。さらに、クライアントが登録したいホスト名は cathedral だとします。cathedral が DNS サーバーに登録されているかどうかを知るには、次のコマンドが使用できます。

nslookup cathedral.hills.example.org 10.76.178.11

更新は正常に行われたが、割り当てられた時間を超えている場合は、タイムアウト値を増やす必要があります。詳細は、「DHCP クライアント用に動的 DNS 更新を有効にする方法」を参照してください。この手順では、タイムアウトになる前に DNS サーバーから応答を受け取れるように、タイムアウトの秒数を増やすべきです。