Есть два интерфейса WAN для разных интернет-провайдеров, которые настроены с помощью PEERDNS=yes
и установлен сервер BIND 9, настроенный с forward only
.
Эти интерфейсы используются по очереди (не одновременно).
Какой предпочтительный метод в CentOS 6.3 позволяет изменить серверы пересылки BIND на активные серверы имен ISP при изменении активного интерфейса WAN?
Похоже, у вас довольно простой вариант использования. Предполагая, что вы работаете только в качестве сервера пересылки (т.е. у вас нет большого набора данных зоны или сложной конфигурации для перезагрузки), у вас может быть что-то, что просто изменяет файл конфигурации, а затем заставляет named перезагружать его с помощью «rndc переконфигурировать "
Чтобы сделать это немного чище, я мог бы использовать директиву include в вашем named.conf, например
# {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"
устанавливать PEERDNS=no
для моих интерфейсов с интернет-провайдерами в /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";