CentOSは、/etc/resolv.conf
に加えられた手動による変更を定期的に消去します。 Linuxのデフォルトは、妥当な時間内にフェイルオーバーするという点では不十分です(クエリネームサーバーは毎回同じ順序で、タイムアウトは5秒、再試行は2回です)。
したがって、resolv.conf
の最初のDNSは基本的にクリティカルパスです。失敗した場合は、フェイルオーバーする前の10秒を見ている可能性があります。
これらのデフォルトは微調整可能ですが( resolv.conf のマニュアルページを参照)、CentOSで変更を永続化し、再起動後も維持するにはどうすればよいですか?
答えは/sbin/dhclient-script
にあります:
if [ -n "${RES_OPTIONS}" ]; then
echo "options ${RES_OPTIONS}" >> ${rscf}
fi
しかし、RES_OPTIONS
を設定してスクリプトがそれを取得できる場所は明確ではありません。検索ドメインなどの一部はifcfg-ethX
ファイルで設定できますが、リゾルバーオプションは他の場所で設定されます。必要なファイルは実際には/etc/sysconfig/network
です。関連するオプションを設定するには、次の行のようなものをそのファイルに追加します。
RES_OPTIONS="rotate timeout:1 retries:1"
これは、タイムアウトを1秒に設定し、1回の再試行を使用して、毎回リストを順番に処理するのではなく、要求ごとにリゾルバーをローテーションするようにクライアントに指示します。
変更をすぐに有効にする場合は、service network restart
コマンドを発行して、新しい/etc/resolv.conf
を確認してください。これをテストしたときの私の様子は次のとおりです。
# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com
options rotate timeout:1 retries:1
nameserver 10.1.1.2
nameserver 10.1.1.1
追加するだけ
resolv_conf_options=rotate\ timeout:1\ retries:1
あなたのresolvconf.conf