Вот быстрое и грязное: на BIND9 с динамической зоной, которая разделяется между представлениями , выполнение nsupdate, обновление / создание / удаление записи будет работать нормально, если я запрашиваю эту запись у клиента, который попадает в то же представление, что и nsupdate от.
Запросы с тем , что не является такой же , как я использовал , чтобы nsupdate выбросит NXDOMAIN (при добавлении новой записи) или покажет старые записи информации в случае изменения / обновления до некоторой произвольной длины (скажем , 15 минут) проходит или я насильно делаю $ rndc freeze && rndc thaw
. $ rndc sync
похоже, ничего не делает для решения проблемы - я надеялся, что это была просто вещь из файла журнала, так как документально очищаются журналы, чтобы сбрасывать около 15 минут.
Если это не ясно, вот некоторый псевдокод, чтобы начать нас:
BIND Просмотры
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Пример командной строки
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds with correct answer 10.5.6.7 ]
В другом месте хост попадает в то же представление, что и nsupdate.
user@10.11.12.50:~$ foohost.example.com (resolv.conf points to above nameserver)
[ responds with correct answer 10.5.6.7 ]
В другом месте хост попадает в другое представление, как nsupdate
user@10.1.1.50:~$ dig foohost.example.com (resolv.conf points to above nameserver)
[ responds with NXDOMAIN even though I'm asking the same server ]
В этот момент, если я буду терпелив, проблема со временем разрешится сама собой (возможно, через 15 минут), но у меня часто не хватает роскоши терпения, поэтому я вынужден обратиться $ rndc freeze && rndc thaw
к серверу имен, чтобы принудительно решить проблему.
С другой стороны
С другой стороны, если я сделаю nsupdate для сервера с адреса, который попадает в представление «cdn-redir», проблема решается сама собой. Последующие запросы от клиентов, соответствующих «cdn-redir», получают правильную запись сразу после nsupdate, не путаясь с «rndc freeze / thaw», но запросы с адресов, которые выходят за пределы представления «cdn-redir», теперь имеют глупость delay / rndc.
Мой окончательный вопрос
Если бы это было так просто, как 42, я бы взял его с распростертыми объятиями ...
Я хотел бы избежать необходимости "заморозить rndc && rndc thaw" из-за страха пропустить динамическое обновление с сервера DHCP. Кто-нибудь знает, как синхронизировать обновленные записи между представлениями более эффективно / действенно, или может пролить свет на то, где я могу ошибаться?
Редактировать: BIND 9.9.5 / Ubuntu 14.04, но это произошло в предыдущих версиях Ubuntu и BIND.
Спасибо всем!
По просьбе Эндрю Б , вот отредактированная (и частичная) зона:
$ORIGIN .
$TTL 3600
example.com IN SOA ns1.example.com. HOSTMASTER.example.com. (
2009025039 ; serial
900 ; refresh 15
600 ; retry 10
86400 ; expire 1 day
900 ; minimum 15 min
)
NS ns1.example.com.
$ORIGIN example.com.
$TTL 30
AEGIS A 10.2.1.60
TXT "31bdb9b3dec929e051f778dda5abd0dfc7"
$TTL 86400
ts-router A 10.1.1.1
A 10.1.2.1
A 10.1.3.1
A 10.1.4.1
A 10.1.5.1
A 10.1.6.1
A 10.1.7.1
A 10.1.8.1
A 10.2.1.1
A 10.2.2.1
A 10.2.3.1
ts-server A 10.2.1.20
ts-squid0 A 10.2.2.20
ts-squid1 A 10.2.2.21
$TTL 600
tssw4 A 10.2.3.4
tssw5 A 10.2.3.5
tssw6 A 10.2.3.6
tssw7 A 10.2.3.7
; wash rinse repeat for more hosts
$TTL 30
wintermute A 10.2.1.61
TXT "003f141e5bcd3fc86954ac559e8a55700"
zone
декларацию, потому что мои мысли шли в направлении, аналогичном мысли Хокана.
server
вместо вместо этого local external-ip-address
приведет к обращению к MNAME зоны (в SOA зоны) и может привести вас в другое место к другому серверу имен для обновления DNS (особенно если вы получили hidden-master / public-slave) или топология сети стелс-мастер).