Ada*_*m C 11 domain-name-system resolv.conf centos
CentOS 会/etc/resolv.conf
定期清除任何手动更改。Linux 中的默认值在合理时间内进行故障转移方面很差(每次以相同的顺序查询名称服务器,5 秒超时,2 次重试)。
因此,您的第一个 DNSresolv.conf
本质上是关键路径。如果失败,您可以在故障转移前查看 10 秒。
这些默认值是可以调整的(请参阅resolv.conf手册页),但是如何使 CentOS 中的任何更改永久化并通过重新启动等保持不变?
Ada*_*m C 13
答案可以在/sbin/dhclient-script
:
if [ -n "${RES_OPTIONS}" ]; then
echo "options ${RES_OPTIONS}" >> ${rscf}
fi
Run Code Online (Sandbox Code Playgroud)
但是,您可以在何处设置RES_OPTIONS
以使脚本拾取它并不是很明显- 可以在ifcfg-ethX
文件中设置搜索域等某些内容,但在其他地方设置解析器选项。您想要的文件实际上是/etc/sysconfig/network
. 要设置相关选项,请将此行添加到该文件中:
RES_OPTIONS="rotate timeout:1 retries:1"
Run Code Online (Sandbox Code Playgroud)
这会将超时设置为 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
Run Code Online (Sandbox Code Playgroud)
公认的答案是使用旧版网络脚本时。如果您使用NetworkManager,您可能甚至没有/etc/sysconfig/network
,并且即使您这样做,它仍然不会用于由NetworkManager管理的连接。
如果您使用NetworkManager:
要添加选项,例如添加rotate
到bond0
:
nmcli con mod bond0 +ipv4.dns-options rotate
Run Code Online (Sandbox Code Playgroud)
要删除该选项:
nmcli con mod bond0 -ipv4.dns-options rotate
Run Code Online (Sandbox Code Playgroud)
+
改变选项也很好;NetworkManager足够智能,可以检测现有选项并更新它们。例如,更改超时值:
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options: "rotate,timeout:5"
root@debian:~# nmcli con mod bond0 +ipv4.dns-options timeout:3
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options: "rotate,timeout:3"
Run Code Online (Sandbox Code Playgroud)
这意味着该值在删除时会被忽略,甚至不需要。要删除超时:
nmcli con mod bond0 -ipv4.dns-options timeout
Run Code Online (Sandbox Code Playgroud)
它也可以使用超时值,但该值将被忽略,因此删除timeout:5
也将删除任何其他超时值。
注意:在研究这个问题时,我遇到了一个相关的错误,该错误已在network-manager v1.14.6、v1.15.2-dev和v1.16中修复中修复。如果您遇到任何问题,请先检查您的网络管理器版本。
归档时间: |
|
查看次数: |
20661 次 |
最近记录: |