標準の Debian でのドメイン解決の問題

標準の Debian でのドメイン解決の問題

Virtualbox でゲストとして Debian を簡単にインストールしました。resolvconfパッケージをインストールしました。resolv.conf ファイルは次のとおりです。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 10.3.x.x
nameserver 10.219.x.x

GUI (アプリケーション/システム ツール/ネットワーク ツール) を通じてネームサーバーを追加しました。

8.8.8.8 は Google の DNS であり、インターネット アドレスを解決するために使用したいと考えています。10.3.xx と 10.219.xx は、teleportal.company.intra などの内部ドメインを解決するために必要です。

resolv.conf にこれらのネームサーバーがある場合 (8.8.8.8 が最初)、内部アドレスを照会するときにエラーが発生します。

> host teleportal.company.intra           
Host teleportal.company.intra not found: 3(NXDOMAIN)

nameserverただし、2 番目のアドレスを nslookup のネーム サーバーとして明示的に設定すると、次のように機能します。

» nslookup teleportal.company.intra 10.3.x.x
Server:     10.3.x.x
Address:    10.3.x.x#53

teleportal.company.intra    canonical name = proxy.dummy1.dummy2.private.
Name:   proxy.dummy1.dummy2.private
Address: 172.27.x.x
Name:   proxy.dummy1.dummy2.private
Address: 172.27.x.x

resolv.conf のドキュメントには、nameserverエントリの 1 つがクエリを解決できない場合、エントリが順番に試行されると記載されています。ただし、使用時にデバッグをオンにすると、他のエントリも試行されず、最初のエントリのみが試行されるnslookupことがわかります。nslookup

の順序を変更するとnameservers、内部アドレスが適切に解決されます (nslookup は引き続き最初のエントリのみを使用します)。

ユーティリティが 3 つのネームサーバーを順番に使用するように設定するにはどうすればよいですか?

答え1

ネームサーバーのリストresolv.confは、タイムアウトの場合にのみ、次々にアクセスされます。 ネームサーバーの 1 つが正式に「そのようなドメインはありません」( NXDOMAIN) と言っている場合はアクセスされません。 この場合、DNS は8.8.8.8を認識していないようteleportal.company.intraで、 を取得したときにリゾルバーが停止しましたNXDOMAIN

可能であれば、1 つの DNS サーバーを構成してすべての解決に使用し、DNS サーバーに名前の解決方法を決定させる必要があります。10.3.x.xイントラネット DNS サーバーの場合は、インターネット ホスト名も解決できる可能性があります。

そうは言っても、本当に名前に基づいて異なるDNSサーバーにリクエストを中継したい場合は、いいえローカルで実行するキャッシュ DNS プロキシ プログラムです。これをインストールし ( apt-get install pdnsd)、localhost ( 127.0.0.1) を resolv.conf に追加します。pdnsd.conf構成ファイルでは、名前の一致に基づいて接続する DNS サーバーを指定できます。の例文/etc/pdnsd.conf:

server {
    label= "google";
    exclude = ".company.intra";
    ip = 8.8.8.8;
}

server {
    label= "intra";
    include = ".company.intra";
    ip = 10.3.x.x;
}

上記のファイルでは、他の多くのパラメータを省略しています。 を設定するには、ドキュメントと、Debian パッケージに同梱されているサンプル設定ファイルに従う必要がありますpdnsd.conf

答え2

考えるリゾルバがセカンダリ(またはターシャリなど)DNSにフォールバックする最初の(または2番目または...)が失敗した場合のみ

この場合、クエリ失敗しない、正しく を返しますNXDOMAIN。つまり、ドメイン名は存在しません。

外部ドメインを解決するためにGoogleのDNS(または他のDNS)を(内部ネームサーバーの代わりに)使用したい場合は、サーバーを内部名のみに使用し、他のすべてのクエリを外部DNSに転送するように設定し10.3.x.x、内部ネームサーバー10.219.x.xauthoritativeのみ社内のコンピューター上のネームサーバー。

関連情報