То, что вы пытаетесь сделать, в принципе вполне выполнимо, но я вижу 4 проблемы с вашим фрагментом файла зоны. Если вы опубликуете полный файл зоны, я смогу предоставить более точные рекомендации, но ваш файл зоны совершенно неверен. Действительный файл зоны (чтобы делать то, что вы пытаетесь сделать) может выглядеть так:
@ IN SOA ns1.example.com. soa.example.com. (
2016010401 ; serial
3600; refresh
600; retry
86400 ; expire
3600 ) ; min TTL
IN NS ns1
IN NS ns2
IN A 33.33.33.33
ns1 IN A 1.1.1.1
ns2 IN A 2.2.2.2
www IN CNAME www.provider.domain.
Здесь есть несколько важных моментов -
Обратите внимание на «@» в качестве первого символа в файле зоны - это означает, что это доменное имя занимает свою очередь относительно того, на какое доменное имя мы ссылаемся из ссылки в /etc/named.conf - это позволяет нам использовать идентичный доменная структура для других доменов.
Записи IN NS nsX не имеют ничего на фронте - это потому, что мы устанавливаем записи NS для всей зоны. Бит "nsX" - это относительная адресация, т. Е. Эквивалентная ns1. @ = Ns1.example.com или ns1.example.net в зависимости от записи в named.conf
Строки ns1 в A 1.1.1.1 указывают IP-адрес для ns1. Это создает циклическую ссылку - то есть, чтобы разрешить ns1.example.com, вам нужно знать IP-адрес для nameserver example.com, который должен знать ns1.example.com. Bind может выяснить это сам - но остальная часть Интернета не может - по этой причине вам нужно указать IP-адреса и домены с регистратором при регистрации домена [так что запись "Glue" может быть создана в корне / родительские серверы имен]
Обратите внимание, что если вы укажете что-то вроде smtp.example.com в 20.20.20.20, это не будет работать так, как ожидалось. Правильный способ сделать это "smtp.example.com. В символе «20.20.20.20» (обратите внимание на.) - если вы его опустите, Bind интерпретирует вас как smtp.example.com.example.com
Для полноты картины вам, разумеется, необходимо указать файл зоны в /etc/named.conf или эквивалентном файле. Вы делаете это следующим образом:
zone "example.com"
{
type master;
file "/path/to/zone.file";
};
zone "example.net"
{
type master;
file "/path/to/zone.file";
};