web-dev-qa-db-ja.com

Linuxがresolv.confにリストされているバックアップDNSサーバーにフェイルオーバーするのにかかる時間の調整

現在、私はresolv.conf...の単純なバニラLinux構成を使用しています...

nameserver 123.123.123.123
nameserver 8.8.8.8

123.123.123.123がダウンすると、DNSクエリが遅くなり、不可能になるので、Linuxは毎回最初のクエリを再試行すると想定しています。これについてLinuxを賢くする方法はありますか?健康診断か何か?または、resolv.confの動作を誤解していますか?

15
Adam Terrey

Ewwhiteの素晴らしい応答に加えて、いくつかの補遺。

/etc/resolv.confに追加できます

options timeout:1 attempts:1 rotate

デフォルトは時間:5回の試行:2回です。

何が起こるかというと、回転オプションが存在しない場合、リゾルバライブラリは/etc/resolv.confにリストされているネームサーバーを上から下に使用しようとします。回転が存在する場合、ラウンドロビン選択を行います。リゾルバーがリストの最後に移動し、サーバーがX秒以内に応答しない場合(Xはタイムアウトパラメーターと見なされます)、ラウンドロビン選択のプロセス全体がY-1回繰り返されます(Yは試行の値)。

ただし、これらのresolv.confオプションをテストするためにDigやその仲間を避けることは少し注意する必要があります。彼らはリゾルバーライブラリを避け、直接ネームサーバーに尋ねます。 getent hostsを使用することをお勧めします。 glibcリゾルバーを使用するものはすべて、/etc/resolv.confファイルに従う必要があることに注意してください。

18

これはman resolv.confで記述されます。

タイムアウトオプションのいずれかを試して、デフォルトを5秒からおそらく1秒に下げてください...

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

しかし、実際には、DNSには非常に多くの回復力があり、より低い解像度のタイムアウトなしで生きることができます。より優れたパブリックDNSを選択するか、独自の内部リゾルバーを実行することは可能ですか?

12
ewwhite