すべてのネームサーバーが照会されるわけではありません。

すべてのネームサーバーが照会されるわけではありません。

したがって、ネームサーバーが複数あるが/etc/resolv.conf表示される順序を考慮すると、VPNのDNSがローカルDNSの前にある場合は、会社のVPNホスト名を解決できますか?はいエンタープライズホストを確認する機能。私のローカルネームサーバーが初めてのとき、私はないエンタープライズホストを確認する機能。

私に物を投げる前にすべてのネームサーバーをテストする必要があるので、これが意図的な行動だとは思わないNXDOMAIN

順序が重要でないようにすべてのネームサーバーを有効にするには(最初の失敗時には返されません)、どうすればよいですか?

ベストアンサー1

DNSでは、NXDOMAINメッセージは完全な失敗ではありません。これは、あなたが要求したドメインが存在しないという完全に有効な情報であるか、少なくともそうでなければなりません。エラーは「わからない」、「話せません」、「[タイムアウトするまで沈黙]」です。

では/etc/resolv.conf期待される。設定されたすべてのネームサーバは同じです。つまり、それらはすべてDNS情報に同じアクセス権を持つ必要があります。つまり、どちらも解決する必要があるすべての名前を解決できる必要があります。

そうでなければ、伝統的なUnixスタイルでは十分/etc/resolv.confではありません。多くの人がファイル内のDNSサーバーの順序を調整して欲しいものを取得しようとしましたが、すべて失敗しました。しかしそれは真実ではない。

代わりに、通常はDNSリゾルバー/キャッシュ/プロキシを設定する必要があります。これは、「確認する必要がある名前が次のいずれかである」などのいくつかの規則で構成できます。これらドメインを選択してから、次のいずれかにお問い合わせください。これらサーバー名前が次の場合それドメインを選択して使用してください。それ他のすべてにサーバーを使用してください。それら仕える人。 」

dnsmasqたとえば、次のように設定して作成できますdnsmasq.conf

no-resolv
server=/corporate-domain.com.example/10.1.2.3
rev-server=10.1.0.0/16,10.1.2.3
server=/google.com/8.8.8.8
server=9.9.9.9

これは次のことを意味します。

  • 無視/etc/resolv.conf(ループを防ぐため)
  • corporate-domain.com.exampleネームサーバー10.1.2.3を使用してドメインのすべての名前を確認し、10.1.0.0/16ネットワークのIPアドレスのリバースルックアップを確認します。
  • 8.8.8.8を使用してドメインのgoogle.com名前を確認してください。
  • 他のすべてには9.9.9.9を使用してください。

これを設定したら、すべてのローカルDNS要求をローカルにリダイレクトするようにdnsmasq設定できます。/etc/resolv.confnameserver 127.0.0.1dnsmasq

ローカルネームサーバーがBINDの場合は、次のゾーン宣言を使用して同じ操作を実行できますtype forward

zone "corporate-domain.com.example" {
    type forward;
    forwarders { 10.1.2.3; };
};

zone "1.10.in-addr.arpa" {
    type forward;
    forwarders { 10.1.2.3; };
}; 

zone "google.com" {
    type forward;
    forwarders { 8.8.8.8; 8.8.4.4; }; 
};

options {
    forwarders { 9.9.9.9; };
    forward only;
};

これは上記の構成とまったく同じ結果をもたらしますが、dnsmasqBIND構成の構文は少し冗長です。

おすすめ記事