私は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がメールを受信できなかったときにこれに気付きました。私がここでやろうとしていることはうまくいかないのですか?
ああ...それは本当にそのように動作しません。最初のネームサーバーが実行中でアクティブである限り、すべてのバインド要求はそれに送信されます。 2番目のネームサーバーにアクセスする唯一の方法は、リスト内の前のネームサーバーが停止し、長いタイムアウトが発生した場合です。
あなたの問題を解決するために、ローカルキャッシングDNSサーバー構成を構築し、2つのゾーンのネームサーバーを2つの異なるサーバーに転送する必要があるかもしれません。次に、リゾルバー構成は、ホストのIPを使用するように設定されます。
このヒントでは、複数のネームサーバーを使用して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秒かかります。
パブリックネームサーバーは、プライベートアドレスが存在しないことを応答する必要があります。それが最初で実行されている場合、あなたは公の答えを得るでしょう。最初にプライベートサーバーをリストします。パブリックサーバーは、フォールバックとしてのみ使用する必要があります。
ネームサーバー側の解決策は、分割構成を使用することです。これにより、プライベートネットワーク上のプライベートデータが提供され、パブリック側のパブリックデータのみが提供されます。パブリックサーバーは、プライベートネットワーク上でのみ紹介(google.comなど)を提供する必要があります。