このトピックでは、Alibaba Cloud DNS のセカンダリ ドメインネームシステム(DNS)機能を有効にする方法について説明します。
制限事項
セカンダリ DNS 機能は、Alibaba Cloud DNS Enterprise Ultimate Edition のユーザーのみが利用できます。このエディションのAlibaba Cloud DNSを購入したい場合、「here」をクリックしてください。
ドメイン名に対してセカンダリ DNS 機能が有効になっている場合、そのドメイン名に対して Domain Name System Security Extensions(DNSSEC)を有効にすることはできません。
ドメイン名に対してセカンダリ DNS 機能を有効にすると、Alibaba Cloud DNS サーバーはセカンダリ DNS サーバーとして機能し、元の DNS サーバーはプライマリ DNS サーバーとして機能します。
ドメイン名に対してセカンダリ DNS 機能を有効にすると、Alibaba Cloud DNS コンソールでそのドメイン名の DNS レコードを変更することはできません。プライマリ DNS サーバーから DNS レコードを同期して、Alibaba Cloud DNS の DNS レコードを更新する必要があります。
セカンダリ DNS 機能は、セルフマネージド DNS サーバーとサードパーティ DNS サービスプロバイダーによってホストされている DNS サーバーでのみ使用できます。サードパーティ DNS サービスプロバイダーによってホストされている DNS サーバーを使用する場合は、サードパーティ DNS サービスプロバイダーもセカンダリ DNS 機能をサポートしていることを確認してください。
セルフマネージド DNS サーバーを使用する場合は、DNS サーバーが Requests for Comments(RFC)のゾーン転送(XFR)および NOTIFY メカニズムをサポートしていることを確認してください。Alibaba Cloud DNS のセカンダリ DNS 機能との互換性が高い 9.1.0 以降の Berkeley Internet Name Domain(BIND)バージョンを使用することをお勧めします。
ステップ 1:準備を行う
Alibaba Cloud DNS でセカンダリ DNS 機能を有効にする前に、プライマリ DNS サーバーの特定の構成を完了する必要があります。次のセクションでは、BIND 9.9.4 以降のセルフマネージド DNS サーバーを例として使用して、プライマリ DNS サーバーの構成を実行する方法について説明します。実際の手順は、DNS サーバーの種類によって異なります。
1. TSIG キーを生成する
次の dnssec-keygen コマンドを実行して、トランザクション署名(TSIG)キーに関する情報を含むファイルを生成できます。
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST test_key
コマンドを実行してから長い間キーファイルが生成されない場合は、-r /dev/urandom パラメーターを含む次のコマンドを使用できます。
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST -r /dev/urandom test_key
パラメーターの説明
• -a:使用する暗号化アルゴリズム。有効な値:HMAC-MD5、HMAC-SHA1、HMAC-SHA256。
• -b:キーのバイト数。許可されるキーサイズは、暗号化アルゴリズムによって決まります。ハッシュベースのメッセージ認証コード(HMAC)キーは、1~512 バイトの長さにすることができます。
• -n:キーのオーナータイプ。有効な値:ZONE、HOST、ENTITY、USER。ほとんどの場合、HOST と ZONE の値が使用されます。
• test_key:キーファイルの名前。このパラメーターは、BIND のプライマリ DNS 構成の allow-transfer パラメーターと、Alibaba Cloud DNS コンソールのプライマリ DNS 情報の TSIG キー名パラメーターに相当します。
• -r /dev/urandom:乱数ジェネレータ。
コマンドを実行すると、現在のディレクトリに .key ファイルと .private ファイルが生成されます。例: Ktest_key.+157+64252.key と Ktest_key.+157+64252.private。 .key ファイルには DNS キー レコードが含まれており、Alibaba Cloud DNS コンソールの [プライマリ DNS 情報] で [TSIG キー値] パラメーターを設定するために使用されます。 .private ファイルには、暗号化アルゴリズムで指定されたフィールドが含まれています。
2. BIND を使用してプライマリ DNS サーバーを構成する
/etc/named.conf 構成ファイルに次のコードを追加します。
zone "xxx.com などのドメイン名" IN {
type master;
allow-update { 127.0.0.1; };
allow-transfer {key test_key;};
notify explicit;
also-notify {47.92.XX.XX port 53 key test_key;47.92.XX.XXX port 53 key test_key;};
file "zone_file";
};パラメーターの説明
zone:セカンダリ DNS 機能を有効にするドメイン名。
allow-transfer:プライマリ DNS サーバーとセカンダリ DNS サーバー間の通信を有効にするために使用される TSIG キーの名前。
注:RFC に基づいて、DNS サーバー間の通信のセキュリティを確保するために TSIG を使用することをお勧めします。通常、TSIG は共有キーと一方向ハッシュを使用して、DNS サーバー間の通信を認証します。これにより、プライマリ DNS サーバーとセカンダリ DNS サーバー間でデータを安全に同期できます。HMAC-MD5、HMAC-SHA256、または HMAC-SHA1 アルゴリズムを使用して暗号化された TSIG キーを生成し、プライマリ DNS サーバーとセカンダリ DNS サーバーの構成でキーを指定できます。詳細については、「TSIG キーを生成する」ステップをご参照ください。
also-notify:ドメイン名のゾーンが変更されたときに通知を受信するセカンダリ DNS サーバーの IP アドレス。複数の IP アドレスを指定できます。この例では、このパラメーターを Alibaba Cloud DNS のセカンダリ DNS サーバーの IP アドレスに設定します。IP アドレスの詳細については、Alibaba Cloud DNS コンソールのセカンダリ DNS 構成ページをご参照ください。
DNS サーバー名:
IP アドレス:47.92.XX.XX、47.92.XX.XXXtest_key:キーファイルの名前。このパラメーターは、BIND のプライマリ DNS 構成の allow-transfer パラメーターと、Alibaba Cloud DNS コンソールのプライマリ DNS 情報の TSIG キー名パラメーターに相当します。
3. 次のいずれかの方法で、生成されたキーを named.conf ファイルに追加します
必要な形式でキーを直接追加する
key "test_key" { algorithm hmac-sha256; secret "生成された .key ファイルの暗号化文字列。";};
include コマンドを実行する
include コマンドを実行して、キーを named.conf ファイルに追加できます。コマンドの例:
include "/etc/named/dns-key";
/etc/named/dns-key ファイルの内容は次の形式です。
key "test_key" {
algorithm hmac-sha256;
secret "生成された .key ファイルの暗号化文字列。";
};注:named.conf ファイルの構成を変更した後、次のコマンドを実行してアプリケーションを再起動する必要があります。
systemctl restart named
ステップ 2:必要な構成を実行する
1. セカンダリ DNS 機能を構成する
a. Alibaba Cloud DNS コンソールにログインします。
b. 左側のナビゲーションウィンドウで、セカンダリ DNSセカンダリ DNS を有効にする をクリックします。表示されるページで、 をクリックします。
c. [セカンダリ DNS を追加] をクリックします。セカンダリ DNS を追加するヒント: パネルで、セカンダリ DNS 機能を有効にするドメイン名を指定し、 をクリックします。
d. [セカンダリ DNS を追加] ページで、スケーラビリティと自動スケーリング:通知送信元のサーバー IP アドレスを追加するOK セクションと セクションの設定を完了し、障害に関する通知を受信するかどうかを指定して、 をクリックします。

プライマリ DNS サーバー注:
セクション:このセクションの右上隅にある をクリックします。次に、プライマリ DNS サーバーのレコードを追加します。IP アドレス: プライマリ DNS サーバの IP アドレスです。インターネット経由でアドレスにアクセスできることを確認してください。
スタックの更新
TSIG キー名: 生成された TSIG キーの名前。この例では、「test_key」と入力します。
TSIG キー値: 生成された TSIG キーの値。この例では、TSIG キーファイル file.key の暗号化された文字列を入力します。
[通知送信者のサーバ IP アドレスを追加] セクション: このセクションの右上隅にある [追加] をクリックします。次に、プライマリ DNS サーバの変更に関する通知を受信するために使用する IP アドレスまたは CIDR ブロックを指定します。

IPアドレス: プライマリDNSサーバーのDNSレコードが変更された際に、標準のNotify Protocolに基づいて通知を送信するサーバーのIPアドレスです。通知がブロックされないよう、IPアドレスが接続可能であることを確認してください。
障害に関する通知を受信するかの設定:チェックボックスをオンにすると、プライマリ DNS サーバーとセカンダリ DNS サーバー間の通信が中断されたときに、Alibaba Cloud DNS からショートメッセージが送信されます。Premium V2
をクリックします。
e. [セカンダリ DNS] ページにドメイン名が表示されるかどうかを確認します。[セカンダリ DNS] ページにドメイン名が表示されている場合、そのドメイン名に対してセカンダリ DNS 機能が有効になって構成されています。
接続状態 列に表示されている値がドメイン名に対して 接続済み の場合、セカンダリ DNS サーバはプライマリ DNS サーバに接続されています。
接続状態 列に表示されている値がドメイン名に対して 切断 になっている場合、セカンダリ DNS サーバはプライマリ DNS サーバから切断されています。この問題が発生した場合は、次の項目を確認してください。
- セカンダリ DNS 機能のパラメーター設定が有効かどうか、および指定されたプライマリ DNS サーバーの IP アドレスまたは CIDR ブロックがインターネット経由でアクセスできるかどうか。
- プライマリ DNS サーバーが正常に動作しているかどうか。
- プライマリ DNS サーバーの構成ファイルが RFC に準拠しているかどうか。たとえば、関係する Start of Authority(SOA)レコードのシーケンス番号が [1、2^32-1] の範囲内にあるかどうかを確認します。プライマリ DNS サーバーの SOA レコードのシーケンス番号がこの範囲を超えている場合、プライマリ DNS サーバーのリソースレコードはセカンダリ DNS サーバーに同期されません。詳細については、「同期エラー」をご参照ください。
f. NOTIFY メカニズムを使用せずに、プライマリ DNS サーバーとセカンダリ DNS サーバー間の同期を手動でトリガーします。この操作は、ドメイン名に対してセカンダリ DNS 機能が有効になっており、セカンダリ DNS サーバーがプライマリ DNS サーバーに接続されている場合にのみ使用できます。これを行うには、[ドメイン名解決] ページに移動し、ドメイン名をクリックして、[DNS 設定] ページの [同期の構成] をクリックします。
2. ドメイン名の DNS レコードを追加する
セカンダリ DNS 機能を有効にした後、次の3 つの方法のいずれかを使用して DNS レコードを追加します。
(1)プライマリ DNS サーバーのみを構成する
プライマリ DNS サーバーがドメイン名解決に使用され、セカンダリ DNS サーバーがリアルタイムデータバックアップに使用されるように指定します。
この例では、ホスト名が @ であるドメイン名に、次の図に示すネームサーバー(NS)レコードを追加します。

dig dns-example.com NS @ns1.dns-example.com コマンドを実行して、権威のある解決結果をクエリします。結果の例:

dig dns-example.com NS +trace +nodnssec コマンドを実行して、再帰的な解決結果をクエリします。結果の例:

(2)セカンダリ DNS サーバーのみを構成する
Alibaba Cloud DNS を示すセカンダリ DNS サーバーがドメイン名解決に使用されるように指定します。この方法により、プライマリ DNS サーバーのセキュリティを確保できます。
この例では、ホスト名が @ であるルートドメイン名に、次の図に示す NS レコードを追加します。

dig dns-example.com NS @vip3.alidns.com コマンドを実行して、権威のある解決結果をクエリします。結果の例:

dig dns-example.com NS +trace +nodnssec コマンドを実行して、再帰的な解決結果をクエリします。結果の例:

(3)プライマリ DNS サーバーとセカンダリ DNS サーバーの両方を構成する
オンプレミス DNS サーバーが特定のアルゴリズムを使用して一連の権威 DNS サーバーに解決リクエストを送信し、権威 DNS サーバーが解決サービスを提供するように指定します。
この例では、ホスト名が @ であるルートドメイン名に、次の図に示す NS レコードを追加します。

dig dns-example.com NS @ns1.dns-example.com コマンドを実行して、権威のある解決結果をクエリします。結果の例:

dig dns-example.com NS +trace +nodnssec コマンドを実行して、再帰的な解決結果をクエリします。結果の例:
