DHCP と動的ドメイン・ネーム・システム

DHCP サーバーは、動的ドメイン・ネーム・システム (DDNS) 環境で操作を行うためのオプションを提供しています。

DDNS 環境で DHCP を使用するには、DNS サーバーで動的ゾーンを設定して使用する必要があります。

DDNS サーバーが構成できたら、DHCP サーバーに A レコード更新、PTR レコード更新、または両レコード・タイプの更新、または更新なし、のいずれかを決定してください。 これは、クライアント・マシンがこの作業の一部または全部を行えるどうかによって決まります。

  • クライアントが更新を一緒に担当できる場合は、PTR レコード更新を行うようにサーバーを構成し、A レコード更新を行うようにクライアントを構成する。
  • クライアントが両方の更新を行える場合は、サーバーには何もさせないように構成する。
  • クライアントが更新を行えない場合は、サーバーに両方を行わせるように構成する。

DHCP サーバーには、更新が必要なときに実行するコマンドをユーザーが指定できる 1 組の構成キーワードがあります。 属性は次のとおりです。

updatedns
(使用すべきではありません。) コマンドがどのタイプの更新も行えることを示す。 これは、PTR レコードと A レコードの両方の更新に対して呼び出されます。
updatednsA
コマンドが A レコードを更新することを指定する。
updatednsP
コマンドが PTR レコードを更新することを指定する。

これらのキーワードは、更新が必要なときに DHCP サーバーが実行する実行可能文字列を指定します。 キーワード文字列には、4 つの %s (パーセント記号と文字 s) が入っている必要があります。 最初の %s はホスト名、2 番目はドメイン名、3 番目は IP アドレス、4 番目は貸出時間です。 これらは、dhcpaction コマンドの最初の 4 つのパラメーターとして使用されます。 dhcpaction コマンドのための残り 2 つのパラメーターは、更新するレコード (A、PTR、NONE または BOTH) と、NIM を更新すべきかどうか (NIM または NONIM) を指定します。 NIM と DHCP の対話について詳しくは、 DHCP およびネットワーク・インストール管理の提案 を参照してください。 次に例を示します。

updatednsA "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' '%s' A NONIM"
                    # This does the dhcpaction command only on the A record
updatednsP "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' '%s' PTR NONIM"
                    # This does the command only on the PTR record
updatedns "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' '%s' BOTH NIM"
                    # This does the command on both records and updates NIM

DHCP サーバーには、貸出時間が解除されたか、または貸出時間が経過したときに DNS エントリーを除去するための一連のキーワードもあります。 これらのキーワードは次のものです。

releasednsA
A レコードを除去する。
releasednsP
PTR レコードを除去する。
removedns
両方のレコード・タイプを除去する。

これらのキーワードは、アドレスが解放されたか、または有効期限切れのときに DHCP サーバーが実行する実行可能文字列を指定します。 dhcpremove コマンドの動作は、dhcpaction コマンドの動作と似ていますが、指定するパラメーターは 3 つだけです。

  1. IP アドレス。これはコマンド文字列の中で %s として指定されます。
  2. 除去すべきレコード (A、PTR、NONE または BOTH)
  3. NIM を更新すべきかどうかの別 (NIM または NONIM)
次に例を示します。
releasednsA "/usr/sbin/dhcpremove '%s' A NONIM"
                     # This does the dhcpremove command only the A record
releasednsP "/usr/sbin/dhcpremove '%s' PTR NONIM"
                     # This does the command only on the PTR record
removedns "/usr/sbin/dhcpremove '%s' BOTH NIM"
                     # This does the command on both records and updates NIM

dhcpaction スクリプトおよび dhcpremove スクリプトは、いくつかのパラメーター検査を実行してから、 nsupdateへの呼び出しをセットアップします。これは、このオペレーティング・システムのサーバーおよび OS/2 DDNS サーバーで動作するように更新されました。 詳しくは、 nsupdate コマンドの説明を参照してください。

NIM 対話が名前の更新に必要な NOT の場合は、 DHCP デーモンと nsupdate コマンドの間でソケット転送を使用するように DHCP サーバーを構成して、パフォーマンスを向上させ、障害時に DNS 更新を再試行できるようにすることができます。 このオプションを構成するには、 updateDNSAupdateDNSPreleaseDNSA、 または、 releaseDNSP キーワードでは、最初の引用符付きワードとして「nsupdate_daemon」を指定する必要があります。 この更新用のパラメーターおよびフラグは、nsupdate コマンドが受け入れるパラメーターおよびフラグと同一です。 さらに、置換のために以下の変数名を使用することもできます。

項目 説明
$hostname DNS 更新時にはそのクライアントのホスト名によって置き換えられ、DNS からの除去の場合は、以前にそのクライアントに関連付けられていたホスト名によって置き換えられます。
$domain 更新の場合は、その DNS ドメインによって置き換えられ、DNS からの除去の場合は、そのクライアントのホスト名が以前に使用されていたドメインによって置き換えられます。
$ipadress その DHCP クライアント名と関連付けられるか、あるいはそのクライアント名との関連付けを解除される IP アドレスによって置き換えられます。
$leasetime 貸出時間 (秒数) によって置き換えられます。
$clientid その DHCP クライアント ID の文字列表示によって置き換えられます。また、BOOTP クライアントの場合は、組み合わせハードウェア・タイプとハードウェア・アドレスによって置き換えられます。

次に例を示します。

updateDNSA "nsupdate_daemon -p 9.3.149.2 -h $hostname -d $domain
 -s"d;a;*;a;a;$ipaddress;s;$leasetime;3110400""

updateDNSP "nsupdate_daemon -p 9.3.149.2 -r $ipaddress
 -s"d;ptr;*;a;ptr;$hostname.$domain.;s;$leasetime;3110400""

releaseDNSA "nsupdate_daemon -p 9.3.149.2 -h $hostname -d $domain -s"d;a;*;s;1;3110400""

releaseDNSP "nsupdate_daemon -p 9.3.149.2 -r $ipaddress -s"d;ptr;*;s;1;3110400""

詳しくは、 nsupdate コマンドの説明を参照してください。

また、管理者定義によるポリシーが、サーバーとクライアントの間でのホスト名交換のために追加されています。 デフォルトでは、クライアントに戻されて DDNS 更新に使用されるホスト名は、オプション 12 (サーバー構成ファイルに定義されている) です。 あるいは、オプション 81 (DHCPDDNS オプション) またはオプション 12 (HOSTNAME オプション) によって、デフォルトのホスト名をクライアント提案のホスト名とすることもできます。 ただし、管理者は、 hostnamepolicyproxyarec、および appenddomain 構成キーワードを使用して、デフォルトのホスト名をオーバーライドできます。 これらのオプションとそのパラメーターは、 db_file データベースの DHCP サーバー・ファイル構文で定義されています。