轮换 DHCP 指定的 DNS 服务器

轮换 DHCP 指定的 DNS 服务器

我有一个运行着大约 200 个 CentOS 实例的 OpenStack 集群,托管服务提供商向我抱怨 DNS 流量对他们的服务器来说太大了。为了解决这个问题,我设置了几个绑定解析器实例,并希望通过 DHCP 将它们推送出去,但我无法找到一种方法来确保 resolv.conf 指令通过options rotatedhcp 推送出去,或者可以通过我认为存在于 中的某个配置文件进行设置/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()

相关内容