web-dev-qa-db-ja.com

CentOSで回転、タイムアウトなどのresolv.confオプションを永続化する方法は?

CentOSは、/etc/resolv.confに加えられた手動による変更を定期的に消去します。 Linuxのデフォルトは、妥当な時間内にフェイルオーバーするという点では不十分です(クエリネームサーバーは毎回同じ順序で、タイムアウトは5秒、再試行は2回です)。

したがって、resolv.confの最初のDNSは基本的にクリティカルパスです。失敗した場合は、フェイルオーバーする前の10秒を見ている可能性があります。

これらのデフォルトは微調整可能ですが( resolv.conf のマニュアルページを参照)、CentOSで変更を永続化し、再起動後も維持するにはどうすればよいですか?

8
Adam C

答えは/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
12
Adam C

追加するだけ

resolv_conf_options=rotate\ timeout:1\ retries:1

あなたのresolvconf.conf

0
Evgeny F