web-dev-qa-db-ja.com

Ubuntu resolv.conf、次のネームサーバーに行きませんか?

私はUbuntu10.04デスクトップを使用しています。これは、デフォルトで「ネットワークマネージャー」に付属しています(私は非常に疑っています)。 2つの異なるネームサーバーのDNSゾーンの解決に問題があります。

resolv.conf:

$ cat /etc/resolv.conf
#Generated by Network Manager
search example.org
nameserver 10.0.0.20 #public nameserver, contains public.example.org
nameserver 10.0.0.30 #private nameserver, contains private.example.org

そして問題。最初にリストされているネームサーバーが解決されます:

$ ping Host.public.example.org
PING Host.public.example.org (10.0.0.50) 56(84) bytes of data.

2番目にリストされているものはしません:

$ ping Host.private.example.org
ping: unknown Host host.private.example.org

しかし、ISあり:

$ Dig @10.0.0.30 Host.private.example.org
...
;; ANSWER SECTION:
Host.private.example.org.   3600    IN  A   10.0.0.60
...

/etc/resolv.conf内のネームサーバーの順序を逆にすると、Host.privateにアクセスできるようになり、Host.publicにはアクセスできなくなります。どうして? resolv.conf manページから:

複数のサーバーがある場合、リゾルバーライブラリはリストされている順序でサーバーを照会します。

問題があるのはpingだけではありません。メールサーバーのDNSレコードがリストされている2番目のサーバーにあるために、Thunderbirdがメールを受信できなかったときにこれに気付きました。私がここでやろうとしていることはうまくいかないのですか?

7
Cory J

ああ...それは本当にそのように動作しません。最初のネームサーバーが実行中でアクティブである限り、すべてのバインド要求はそれに送信されます。 2番目のネームサーバーにアクセスする唯一の方法は、リスト内の前のネームサーバーが停止し、長いタイムアウトが発生した場合です。

あなたの問題を解決するために、ローカルキャッシングDNSサーバー構成を構築し、2つのゾーンのネームサーバーを2つの異なるサーバーに転送する必要があるかもしれません。次に、リゾルバー構成は、ホストのIPを使用するように設定されます。

12
mdpc

このヒントでは、複数のネームサーバーを使用してDNSルックアップを改善する方法を示します。これは、何らかの理由でプライマリDNSサーバーに到達できなくなった場合に役立ちます。

ネームサーバーは/etc/resolv.confに1行に1つずつリストされています。

コードリスト1:/etc/resolv.confの例

ネームサーバー192.168.1.1

ネームサーバー10.0.0.1

DNSルックアップを改善するには、複数のDNSサーバー(できれば異なるサブネット上)と次のオプションを/etc/resolv.confに追加します。

コードリスト2:/etc/resolv.confオプション

オプションが回転します

オプションタイムアウト:1

これは、ローテーションでネームサーバーと最大待機の両方を使用します。次の問題を試す前に、回答に1秒かかります。

7
pcaceres

パブリックネームサーバーは、プライベートアドレスが存在しないことを応答する必要があります。それが最初で実行されている場合、あなたは公の答えを得るでしょう。最初にプライベートサーバーをリストします。パブリックサーバーは、フォールバックとしてのみ使用する必要があります。

ネームサーバー側の解決策は、分割構成を使用することです。これにより、プライベートネットワーク上のプライベートデータが提供され、パブリック側のパブリックデータのみが提供されます。パブリックサーバーは、プライベートネットワーク上でのみ紹介(google.comなど)を提供する必要があります。

0
BillThor