web-dev-qa-db-ja.com

オンザフライでレコードを追加できるようにするには、DNSサーバーをどのように設定しますか?

サブドメインベースのSaaSアプリケーションを多数のサーバーでホストする必要があります。サーバーはxx1.example.com、xx2.example.comなどです。多数のyyyが必要です。それらのサーバーでホストされている.example.comサイト。

サイトはオンザフライで作成されるため、DNSレコードもオンザフライで設定できる必要があります。 DNSワイルドカードゾーンは実際には拡張できません。最終的には最初のサーバーよりも大きくなり、新しいインスタンスを他のマシンにプッシュする必要があるためです。したがって、特定のサブドメインが特定のIPアドレスを指すことができる必要があります。

私はAPIベースのクラウドDNSサービス(これは素晴らしいでしょう)を探しましたが、それらは私のニーズ(大量の少量のインスタンス)にとって法外に高価なようです。 Rackspaceには無料のクラウドDNSサービスがありますが、最大500ゾーンしかありません。テクニカルサポートから、APIを書き直しているとのことでしたので、当面はサービスを避けたいと思います。

したがって、これらのゾーン用に独自のDNSサーバーをセットアップすることにしました。したがって、質問:再起動せずにゾーンを作成できるこの特定のニーズに適したDNSサーバーソフトウェアは何ですか?

助言がありますか?ありがとう!

6
GomoX

追加するすべてのレコードが特定のゾーンのサブドメインである場合は、動的更新のバインドを簡単に設定できます。次に、nsupdateを使用して、ゾーンに更新を送信します。

すべての新しいレコードが既存のドメイン内のレコードである場合、これは正常に機能するはずです。他のドメインを動的に追加する必要がある場合、これは実際には役に立ちません。

// zone config
// using ip only for authentication, should really use hmac auth
zone "example.com" {
        type master;
        file "/etc/bind/dyn/example.com.dns";
        allow-query {any;};
        allow-update {
                127.0.0.1;
                192.0.2.0/24;
        };
};

nsupdate を使用してスクリプトを更新します。

#!/bin/bash
record=yyy.example.com
(
 echo "server xx1.example.com"
 echo "zone example.com"

 echo "update delete ${record} A"
 echo "update add ${record} ${ttl} A 192.0.2.1"
 echo "send"
) | /usr/bin/nsupdate
12
Zoredache

私は myDNS を使用しています。これはうまく機能し、シンプルで、BINDでも簡単に機能します。 PowerDNS などの他のものがあります。

3
kaptk2

bindは、全体を再起動することなく、単一ドメインのファイルを(再)ロードできます。

3
ott--

bindのrndcインターフェースまたは私が好むもののいずれかを使用してください:PowerDNSを使用してください

3
Silent-Bob

djbdnsの更新は完全に透過的であり、中断はありません。「zonefile」構造は、スクリプトによる変更と自動化に最適です。レコード形式はBINDとはまったく異なりますが、一見しただけで理解するのはそれほど難しくありません。強くお勧めします。

0
anastrophe