resolv.conf
現在、私は次のようなプレーンな Linux 構成を使用しています。
nameserver 123.123.123.123
nameserver 8.8.8.8
123.123.123.123 がダウンすると、DNS クエリが不可能になり、遅くなります。Linux は毎回最初のクエリを再試行すると思います。Linux をこれに対してより賢くする方法はありますか? ヘルス チェックか何かでしょうか? それとも、どのようにresolv.conf
動作するべきかを私が誤解していますか?
答え1
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
ファイルに従わなければならないことに注意してください。
答え2
これは で説明されていますman resolv.conf
。
タイムアウト オプションの 1 つを試して、デフォルトを 5 秒から 1 秒に下げてみてください...
options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8
しかし、実際には、DNS には非常に多くの回復力があるため、低解像度のタイムアウトなしでも問題ありません。より優れたパブリック DNS を選択したり、独自の内部リゾルバを実行したりすることは可能ですか?