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

BIND: отказоустойчивость DNS и высокая доступность с динамическими обновлениями

Я пытаюсь разработать систему с двумя серверами, которые действуют как DHCP и DNS-серверы с динамическими обновлениями. Я использую ISC DHCP и BIND9.

Это похоже на это.

Сервер1 - Основной DHCP и мастер DNS. IP-адрес - 10.99.99.11

Сервер2 - Вторичный DHCP и подчиненный DNS. IP-адрес - 10.99.99.12

Серверы DHCP настроены на динамическое обновление зон DNS.

Все работает правильно, пока главный DNS-сервер не выйдет из строя и в это время не произойдет динамическое обновление.

Вопрос в том, как я могу добиться настройки, при которой динамические обновления с любого из DHCP-серверов могут выполняться независимо от того, работает ли главный сервер DNS или нет?

Я попытался настроить пересылку обновлений на подчиненном DNS, думая, что он «кэширует» обновления до тех пор, пока главный DNS-сервер не вернется, а затем пересылает «кэшированные» обновления, но, похоже, это не работает. Мое предположение основано на этот ответ на очень похожий вопрос

Регистрируйтесь с подчиненного DNS-сервера в то время, когда главный не работает (иногда последняя строка не отображается вообще):

Jun  9 05:02:02 localhost named[2767]: client 10.99.99.11#40668/key dhcpupdate: signer "dhcpupdate" approved
Jun  9 05:02:02 localhost named[2767]: client 10.99.99.11#40668/key dhcpupdate: forwarding update for zone 'scetest.com/IN'
Jun  9 05:02:02 localhost named[2767]: zone test.com/IN: could not forward dynamic update to 10.99.99.11#53: operation canceled

Конфигурация зоны DNS Master:

zone "test.com" {
  type master;
  file "data/db.test.com";
  allow-update {
    10.99.99.11; 
    10.99.99.12; 
    key dhcpupdate; 
  };
};

zone "99.99.10.in-addr.arpa" {
  type master;
  file "data/db.10.99.99";
  allow-update {
    10.99.99.11; 
    10.99.99.12; 
    key dhcpupdate; 
  };
};

Конфигурация подчиненной зоны DNS:

zone "test.com" {
  type slave;
  file "data/db.test.com";
  masters { 10.99.99.11; };
  allow-update-forwarding {
    10.99.99.11; 
    10.99.99.12; 
    key dhcpupdate; 
  };
};

zone "99.99.10.in-addr.arpa" {
  type slave;
  file "data/db.10.99.99";
  masters { 10.99.99.11; };
  allow-update-forwarding {
    10.99.99.11; 
    10.99.99.12; 
    key dhcpupdate; 
  };
};

Конфигурация DDNS

ddns-update-style interim;

key dhcpupdate {
  algorithm hmac-md5;
  secret SomeSecret;
}

zone 99.99.10.in-addr.arpa {
  primary 10.99.99.11;
  secondary 10.99.99.12;
  key dhcpupdate;
}

zone test.com {
  primary 10.99.99.11;
  secondary 10.99.99.122;
  key dhcpupdate;
}

P.S. Я знаю, что некоторые люди настраивают LDAP или некоторые базы данных SQL в качестве бэкэнда для хранения информации о зоне для своих DNS-серверов, но я все еще стараюсь избегать использования других инструментов, кроме BIND.