
インストールでゾーンを構成しました bind9
。これは、dyndns サブドメイン用の Python スクリプトを通じて管理しているパブリック ネーム サーバーであるはずです。ただし、私のメイン Web サイトはどこか別の場所でサードパーティによってホストされており、近い将来、それらもローカルでホストしたいと考えています。現時点では、bind9 で名前解決のためにローカル データベースを調べ、失敗した場合は外部 DNS にリダイレクト (または外部 DNS から取得) するようにします。これが私の構成ですが、外部クエリ (example.com および www.example.com) では機能しません。
$ cat /etc/bind/named.conf.local
include "/etc/bind/zones.rfc1918";
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
allow-transfer { any; };
update-policy local;
};
$ cat /etc/bind/zones/db.example.com
$ORIGIN .
$TTL 172800 ; 2 days
example.com IN SOA ns1.example.com. hostmaster.example.com. (
116 ; serial
7200 ; refresh (2 hours)
900 ; retry (15 minutes)
1857600 ; expire (3 weeks 12 hours)
8400 ; minimum (2 hours 20 minutes)
)
NS ns1.example.com.
NS ns1.external-host.com.
NS ns2.external-host.com.
ns1.external-host.com A 1.2.3.1
ns2.external-host.com A 1.2.3.2
$ORIGIN example.com.
ns1 A 1.1.1.1
@ IN NS ns1.external-host.com.
@ IN NS ns2.external-host.com.
www IN NS ns1.external-host.com.
www IN NS ns2.external-host.com.
clients A 1.1.1.1
$ORIGIN clients.example.com.
$TTL 3600 ; 1 hour
test A 2.2.2.2
答え1
ネーム サーバーの 1 つがローカル (他のサーバーからはアクセスできない) であるため、これは不可能だと思います。技術的には、フォワーダーまたはマルチマスター オプションを試すことができます。ただし、たとえ機能したとしても、小規模なセットアップには適した方法ではありません。
DNS は、どのサーバーがゾーン マスターであるかという情報に基づいています。これはタイプによって設定されます。ゾーンはmaster
現在の情報を保持する責任があるため、1 つだけ存在する必要があります (インスタンス間で違いが生じる可能性があるため)。ゾーンslave
はマスターを認識しており、ゾーン全体を直接要求できます。マスターがスレーブも認識している場合は、ゾーン全体を転送することもできます。これが実行すべきことです。
パブリック ネーム サーバーをそのままの場所に保持し、マスターとして保持します。ローカル環境で 2 番目のバインドをインストールし、ゾーンをスレーブとして追加します。また、スレーブをマスターに追加して、自動更新が機能するようにします。両方のログを確認するには、AXFR または IXFR 要求が行われる必要があります。
したがって、マスターが 1.2.3.4、スレーブが 5.6.7.8 であると仮定すると、ゾーン定義は次のようになります。
マスター:
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
also-notify { 5.6.7.8; };
notify yes;
};
奴隷:
zone "example.com" {
type slave;
file "/etc/bind/zones/db.example.com"; // this is the file updated.
allow-notify { 1.2.3.4; };
allow-transfer { 1.2.3.4; };
};
ご覧のとおり、スレーブのアドレスは静的に設定されているため、マスターからスレーブに到達可能である必要があります。