Сегодня я столкнулся со странной ситуацией.
Обычно, когда мы настраиваем запись зоны bind9, мы устанавливаем запись NS, такую же, как наш ORIGIN. Однако сегодня я нашел одну рабочую настройку bind9 на производственном сайте, в которой запись NS указывает на другой домен:
[data/cat_com.zone]
$ORIGIN cat.com.
$TTL 600
@ IN SOA ns.tree.com. hostmaster.cat.com. (
2015030200
21600
3600
604800
86400 )
IN NS ns.tree.com.
IN NS ns2.tree.com.
IN MX 10 cat.com.
ns IN A 1.2.3.124
ns2 IN A 1.2.3.124
host19 IN A 1.2.3.66
И в записи tree.com: [data/tree_com.zone]
$TTL 600
@ IN SOA ns.tree.com. hostmaster.tree.com. (
2015030200 ; serial
28800 ; refresh
7200 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS ns.tree.com.
@ IN NS ns2.tree.com.
@ IN MX 10 mail.tree.com.
tree.com. IN A 1.2.3.66
ns.tree.com. IN A 1.2.3.124
ns2.tree.com. IN A 1.2.3.124
А в named.conf есть следующее:
zone "tree.com" {
type master;
file "data/tree_com.zone";
};
zone "cat.com" {
type master;
file "data/cat_com.zone";
};
Итак, когда я пытаюсь разрешить запись A в cat.com, скажем, host19.cat.com, я могу получить запись 1.2.3.66. Это странно, потому что согласно файлу зоны SOA, запись NS указывает на ns.tree.com, а в файле зоны SOA tree.com нет информации о host19.cat.com. Как процесс разрешения DNS может работать без ошибок в этом случае? Играет ли здесь роль запись NS или только named.conf решает, какой файл зоны SOA следует использовать (в этом случае cat.com будет ссылаться на файл cat_com.zone), а запись NS в SOA cat.com ничего не значит?
решение1
Совершенно нормально иметь доменное имя/файл зоны, указывающий на серверы имен за пределами этого домена, т.е. его совершенно нормально использовать ns1.example.com
в качестве сервера имен для example.org
домена.
Это не только означает, что вам не нужноКлей пластинкив example.org
зоне часто бывает и легче управлять.
Я думаю, вы допустили небольшую концептуальную ошибку, думая, что внешние записи NS, такие как ns1.example.com
подразумевают, что записи ресурсов для example.org
домена также должны быть извлечены из example.com
данных зоны. Это не так, запись NS указывает только нахозяинзапуск службы имен для этого домена, но записи ресурсов будут поступать из данных зоны, специфичных для домена example.org
.