Назад | Перейти на главную страницу

Динамическое обновление серверов пересылки BIND 9

Есть два интерфейса 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";