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

Ротация DNS-серверов, указанных DHCP

У меня есть кластер OpenStack, на котором работает около 200 экземпляров CentOS, и я получил жалобу от своего хостинг-провайдера на то, что трафик DNS становится слишком большим для их серверов. Чтобы решить эту проблему, я установил пару экземпляров преобразователя привязки и хотел бы отправить их через DHCP, но мне не удалось найти способ гарантировать, что директива resolv.conf options rotate либо выталкивается через dhcp, либо может быть установлен через какой-то файл конфигурации, который, как я полагаю, будет жить в /etc/sysconfig.

Я снова столкнулся с этой проблемой, и после МНОГО поиск в Google и ярость Я обнаружил, что следующее добавит 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().

Тим прав, что это конфигурация на стороне клиента, но мне любопытно, зачем вам это нужно? какова ваша цель ? Причина в том, что могут быть другие способы достижения вашей цели, например:

  • вы можете использовать LVS (виртуальный сервер Linux) для создания кластера DNS-серверов и предоставления единого IP-адреса всем вашим серверам.

  • вы можете построить двухузловой кластер рекурсии powerDNS с кардиостимулятором, и этот рекурсер будет использовать несколько серверов имен для своих запросов.

В options rotate Настройка на самом деле является настройкой на стороне клиента, а не чем-то определенным и распространяемым через DHCP-сервер.

Вам нужно будет установить файл конфигурации. Я предпочитаю устанавливать его в resolv.conf, развернутом с помощью Puppet, но я думаю, что его также можно установить в sysconfig.