动态更新 BIND 9 转发器

动态更新 BIND 9 转发器

有两个连接不同ISP的WAN接口,配置PEERDNS=yes 并安装了BIND 9服务器,服务器配置为forward only

这些接口是轮流使用的(不是同时使用的)。

在 CentOS 6.3 中,当更改活动 WAN 接口时,允许将 BIND 转发器更改为活动 ISP 名称服务器的首选方法是什么?

答案1

听起来你的用例相当简单。假设你只是作为转发器运行(即你没有大量的区域数据或复杂的配置需要重新加载),你不妨只使用一些更改配置文件的东西,然后使用“rndc reconfig”让命名重新加载它

为了使它更简洁,我可以做的是在 named.conf 中使用“include”指令,例如

# {stuff that you do all the time}
blah
blah
blah

# ISP specific forwarding section
include "ISP-forwarder-config.conf";

# {other stuff}

然后让“ISP-forwarder-config.conf”成为一个符号链接,您可以在“ISP-1.conf”和“ISP-2.conf”的目标文件之间切换。(选择您自己的名字,但这个想法是,如果您只切换符号链接而不是一直弄乱您的主named.conf文件,那么发生一些弄乱您的配置的事故的可能性就会小得多。

要更改转发器,您需要做的就是更改符号链接的目标并执行“rndc reconfig”

答案2

设置PEERDNS=no我的 ISP 接口/etc/sysconfig/network-scripts/ifup-ppp0/etc/sysconfig/network-scripts/ifup-ppp1

使用以下代码创建可执行脚本/usr/sbin/ifup-local

#!/bin/sh
if [[ "ppp0 ppp1" =~ $1 ]] ; then
  conf='/etc/named/forwarders.conf'
  fetc=$(cat $conf)
  frun=$(echo 'forwarders {';sed 's/nameserver //g;s/$/;/g' /var/run/ppp/resolv.conf;echo '};';)
  echo $frun > $conf
  named-checkconf > /dev/null 2>&1 || echo $fetc > $conf
  rndc reconfig
fi

编辑option { }部分内容/etc/named.conf如下:

include "/etc/named/forwarders.conf";

相关内容