我有一个运行着大约 200 个 CentOS 实例的 OpenStack 集群,托管服务提供商向我抱怨 DNS 流量对他们的服务器来说太大了。为了解决这个问题,我设置了几个绑定解析器实例,并希望通过 DHCP 将它们推送出去,但我无法找到一种方法来确保 resolv.conf 指令通过options rotate
dhcp 推送出去,或者可以通过我认为存在于 中的某个配置文件进行设置/etc/sysconfig
。
答案1
该options rotate
设置实际上是客户端设置,而不是通过 DHCP 服务器指定和分发的设置。
您将需要设置配置文件。我倾向于将其设置为 Puppet 部署的 resolv.conf,但我认为也可以在 sysconfig 中设置。
答案2
Tim 说得对,这是一个客户端配置,但我很好奇你为什么要这么做?你的目标是什么?原因是可能还有其他方法可以实现你的目标,例如:
您可以使用 LVS(Linux 虚拟服务器)来构建 DNS 服务器集群,并向所有服务器提供单个 IP。
您可以使用 pacemaker 构建一个 powerDNS 递归器双节点集群,并让该递归器使用多个名称服务器进行查询。
答案3
我又遇到了这个问题,之后很多经过谷歌搜索和搜索,我发现以下内容可以添加options rotate
或字面上您想要的任何其他内容,而/etc/resolv.conf
无需锁定文件或以其他方式破坏功能:
创建并将以下内容放入文件中/etc/dhcp/dhclient.d/rotate.sh
:
rotate_config() {
echo "options rotate" >> /etc/resolv.conf
}
rotate_restore() {
:
}
进而chmod +x /etc/dhcp/dhclient.d/rotate.sh
。
任何类似的可执行文件/etc/dhcp/dhclient.d/*.sh
都会被 dhclient/NetworkManager 拾取,并且需要两个函数,*_config()
分别*_restore()
在接口启动/关闭时运行。
所以/etc/dhcp/dhclient.d/*.sh
需要foo_config()
和foo_restore()
。