次の方法で共有


動的 DNS を使用して独自の DNS サーバーでホスト名を登録する

名前を解決します。 Azure の既定のドメイン ネーム サービス (DNS) によって提供される機能では対応できない名前解決が必要な場合は、独自の DNS サーバーを用意できます。 独自の DNS サーバーを使うと、独自の特定のニーズに合わせて、DNS ソリューションをカスタマイズすることができます。 たとえば、Active Directory ドメイン コントローラーを介したオンプレミスのリソースへのアクセスが必要になる場合があります。

カスタム DNS サーバーが Azure VM としてホストされていると、同じ仮想ネットワークのホスト名のクエリを Azure に転送して、ホスト名を解決できます。 このオプションを使用しない場合は、動的 DNS (DDNS) を使用して DNS サーバーに VM のホスト名を登録できます。 Azure には、DNS サーバーに直接レコードを作成するための資格情報がないため、多くの場合に代替の準備が必要になります。 この記事では、一般的なシナリオと代替手段について説明します。

Windows クライアント

ドメインに参加していない Windows クライアントは、起動時や IP アドレスの変更時に、セキュリティ保護されていない DDNS の更新を試みます。 DNS 名は、ホスト名とプライマリ DNS サフィックスの組み合わせです。 Azure はプライマリ DNS サフィックスを空白のままにしますが、VM でユーザー インターフェイスまたは PowerShell を使ってサフィックスを設定できます。

ドメインに参加している Windows クライアントは、セキュリティ保護された DDNS を使用し、その IP アドレスをドメイン コント ローラーに登録します。 ドメイン参加プロセスでは、クライアントにプライマリ DNS サフィックスを設定し、信頼関係を作成して管理します。

Linux クライアント

Linux クライアントは一般的に、起動時にそれ自体を DNS サーバーに登録しません。 動的ホスト構成プロトコル (DHCP) サービスがそれを行うことを前提としています。 Azure DHCP サーバーは、DNS サーバーにレコードを登録する資格情報を持っていません。 Bind パッケージに含まれる nsupdate という名前のツールを利用し、DDNS 更新を送信できます。 DDNS プロトコルは標準化されているため、DNS サーバーで Bind を使用していないときにも nsupdate を使用できます。

DHCP クライアントが提供するフックを使用して、DNS サーバー内にホスト名エントリを作成して登録できます。 DHCP 周期の間、クライアントは /etc/dhcp/dhclient-exit-hooks.d/ のスクリプトを実行します。 nsupdate を使用して新しい IP アドレスを登録するには、フックを使用できます。 次に例を示します。

#!/bin/sh
requireddomain=mydomain.local

# only execute on the primary nic
if [ "$interface" != "eth0" ]
then
    return
fi

# When you have a new IP, perform nsupdate
if [ "$reason" = BOUND ] || [ "$reason" = RENEW ] ||
   [ "$reason" = REBIND ] || [ "$reason" = REBOOT ]
then
   host=`hostname`
   nsupdatecmds=/var/tmp/nsupdatecmds
     echo "update delete $host.$requireddomain a" > $nsupdatecmds
     echo "update add $host.$requireddomain 3600 a $new_ip_address" >> $nsupdatecmds
     echo "send" >> $nsupdatecmds

     nsupdate $nsupdatecmds
fi

nsupdate コマンドを利用し、セキュリティ保護された DDNS 更新を実行することもできます。 たとえば、Bind DNS サーバーを使用する際に、公開キー/秘密キーのペアが生成されます (http://linux.yyz.us/nsupdate/)。 要求の署名を検証できるように、DNS サーバーはキーの公開部分で構成されます (http://linux.yyz.us/dns/ddns-server.html)。 キー ペアを nsupdate に提供するには、署名対象の DDNS 更新要求に対して -k オプションを使用します。

Windows DNS サーバーを使用する場合は、nsupdate-g パラメーターで Kerberos 認証を使用できますが、Windows 版の nsupdate では使用できません。 Kerberos を使用するには、kinit を使って資格情報を読み込んでください。 たとえば、keytab ファイルから資格情報を読み込むことができ、その後 nsupdate -g はキャッシュから資格情報を取得します。

必要に応じて、DNS 検索サフィックスを VM に追加できます。 この DNS サフィックスは、/etc/resolv.conf ファイルで指定されています。 ほとんどの Linux ディストリビューションはこのファイルの内容を自動的に管理するため、通常は編集できません。 DHCP クライアントの supersede コマンドを使用して、サフィックスをオーバーライドできます。 サフィックスをオーバーライドするには、次の行を /etc/dhcp/dhclient.conf ファイルに追加します。

supersede domain-name <required-dns-suffix>;