代替DNSサーバーを確認できません。

代替DNSサーバーを確認できません。

Linuxでは、DNSサーバーをフォワーダとして設定しました。
組織のプライマリDNSサーバーにのみDNSクエリを渡します。

Windowsクライアント(組織の支店)では、プライマリDNSはマイDNSサーバーに設定され、
バックアップDNSサーバーはマイサーバー(配信者DNS)に設定されます。

DNSサーバーがバックアップに設定されていると確認できません。
しかし、私のDNSサーバーがデフォルトに設定されている場合、解像度は問題ありません。

代替DNSに設定したときにDNSサーバーが正しく機能するようにするにはどうすればよいですか?

ベストアンサー1

既定の DNS リゾルバー (Windows クライアントのリゾルバーなど) は、次のことを前提としています。設定されたすべてのDNSサーバーは、知っておくべきすべてを知っているか、または見つけることができます。、あるサーバーに何かが存在しないと言う場合、別のサーバーに2番目のコメントを要求する必要はありません。

DNSサーバーは、情報を取得する場所でより多くの柔軟性を持つことができます。多くのDNSサーバーは、要求を選択的に転送するように構成できます。 「リクエストがドメインに関するものであればサーバーX.Y.exampleAにリクエストを転送し、他のドメインに関するものであればY.exampleサーバーBに転送し、そうでない場合はインターネットに要求してDNSクエリを試みます。サーバーは自分で解決します。」

ただし、これはDNS解決を設定する一般的な方法ではありません。


プライマリDNSサーバーの情報がドメインに関するもので、Y.exampleDNSサーバーにサブドメインに関する情報がある場合、X.Y.exampleプライマリDNSサーバーにはいわゆる接着剤記録ドメインに関する情報Y.example。それは次のとおりです。

X.Y.example.            IN NS <your.DNS.server.name.>

DNSサーバーがドメインY.example(つまり、ドメインX.Y.exampleまたはY.exampleドメインの一部または他のサブドメイン)内にある場合:

<your.DNS.server.name.> IN A <your DNS server IP address>

X.Y.exampleNSレコードは、ドメインに関する情報を取得するためにDNSサーバーに接続するようにプライマリDNSサーバーに指示します。これは…DNS委任。 Aレコードは、単に次に接続するアドレスを提供します。接着剤記録


ネームサーバーの情報が無関係なドメインに関連する場合(例:)、Z.other.example3つのオプションがあります。

  • ネイティブネームサーバーはDNSサーバーと特別な関係がある可能性があるため、ドメインコンテンツの完全なZ.other.exampleコピーをダウンロードし、DNSサーバーを定期的に確認して自動的に最新の状態に保つことができます。これをしばしばmaster/slave関係と呼びます。サーバーはデフォルトの権限になりますが、Z.other.exampleプライマリDNSサーバーはドメインコンテンツに関するすべての情報を持ち、ダウンロードしたデータに基づいて特権応答を行うことができます。

BIND を使用すると、サーバーは次の状態になります。

options {
    allow-transfer { <IP address of primary DNS server>; };
    # The next line is not absolutely necessary but speeds up propagation of updates:
    also-notify { <IP address of primary DNS server>; }; 
    <... any other options here...>
}; 

マスターサーバーには以下が含まれます。

zone "Z.other.example" { 
    type slave; 
    masters { <IP address of your DNS server>; };
};

はい、これは組織の基本的なDNSサーバーがスレーブになります。Z.other.exampleドメインでのみ利用可能。他のドメイン/地域の場合、これは影響しません。

Z.other.example通常、この関係は、プライマリDNSサーバーがドメインのNSレコードにも一覧表示されることを意味します。そうする必要はありません。ドメインがプライマリDNSサーバーユーザーが内部でのみ使用している場合。

  • あるいは、プライマリDNSサーバーが条件付きでクエリを転送するように構成することもできます。 「リクエストがZ.other.exampleのものである場合は、他の操作を実行する代わりにDNSサーバーに転送します。」時々これは組織の内部DNSドメインを介して行われ、その存在はパブリックNSレコードに公開されてはなりません。

これを行うには、マスターサーバーには次のものが必要です。

zone "Z.other.example" { 
    type forward;
    forwarders { <IP of your DNS server>; };
    forward only;
}; 
  • または、特別な設定なしでDNSサーバーがドメインを見つけるには、NSレコードチェーンが必要ですZ.other.example
    • ルートDNSサーバーには、example最上位ドメインのDNSサーバーを表すNSレコード(および対応するAレコード)が必要です。
    • ドメインサーバーには、セカンダリドメインのDNSサーバーを指すNSレコードexampleが必要です。other.example
    • そして、そのドメインのDNSサーバーには、other.exampleあなたが担当するDNSサーバーを指すNSレコードが必要ですZ.other.example

これにより、プライマリDNSサーバーがインターネットの他のドメインと同様にドメインを見つけることができます。


Y.exampleDNSサーバーがドメインにいくつかの追加レコードのみを提供したい場合は、それは動作しません。

DNSサーバーが特定のドメイン(委任されたサブドメインを除く)に対して権限を持っている場合は、常にそのドメインのコンテンツに関する完全な知識を持っている必要があります。特権 DNS サーバーが特権を持つという意味はありません。プライマリDNSサーバーが組織に対して権限を持ち、そのレコードがなく、クエリに一致Y.exampleするサブドメイン委任がない場合、「対応するホスト/ドメインなし」応答は人の言葉で表されます。X.Y.example

「私はY.exampleについてすべてを知っていますが、XYexampleのようなものはまったくありません」


技術的には、クライアントが代替 DNS サーバーに要求するようにプライマリ サーバーからドメインへのクエリを拒否することは可能ですが、私は反対を強くお勧めします

これらの設定は最初は機能しているように見えますが、予期しない方法で失敗することがよくあります。特に、ネームサーバーの 1 つ以上が一時的にアクセスできない場合は、さらにそうです。多くの人がこれらの設定を試しましたが失敗しました。学習経験には、しばしば痛みを伴うトラブルシューティングプロセスが含まれます。いいえあなたが選択したり、経験豊富なDNS管理者が問題を解決するのを助けるようにあなたに警告します。

おすすめ記事