Основой для примеров настройки основного и подчиненного серверов имен станет воображаемый домен wrotethebook.com. Вот файл named.conf, обозначающий узел crab в качестве основного сервера имен домена wrotethebook.com:
options { directory "/var/named"; }; // настройка основного сервера имен // zone "." { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.local"; }; zone "wrotethebook.com" { type master; file "wrotethebook.com.hosts"; }; zone "16.172.in-addr.arpa" { type master; file "172.16.rev"; };
Параметр directory позволяет экономить время при наборе имен файлов. Он сообщает named, что все относительные имена файлов (то есть имена, которые не начинаются символом /) в данном файле должны интерпретироваться относительно каталога /var/named. Данный параметр также сообщает named, куда записывать различные файлы, в частности файл образа.
Первые два оператора zone связаны с кольцевым адресом и файлом корневых указателей. Эти операторы мы уже обсуждали в процессе настройки специального кэширующего сервера. Их функциональность неизменна, и они встречаются практически в каждом файле named.conf.
Первый из новых операторов zone гласит, что данный сервер является основным сервером имен для домена wrotethebook.com и что данные домена загружаются из файла wrotethebook.com.hosts.
Второй из новых операторов zone указывает на файл, в котором хранятся отображения IP-адресов сети 172.16.0.0 в имена узлов. Оператор гласит, что локальный сервер является основным сервером имен для обратного домена 16.172.in-addr.arpa и что данные домена загружаются из файла 172.16.rev.
Настройка подчиненного сервера имен отличается от настройки основного лишь строением операторов zone. Оператор zone подчиненного сервера в качестве источника доменной информации обозначает удаленный сервер, а не локальный дисковый файл, а тип такой зоны - slave.
В отличие от инструкции fil e в операторе zone основного сервера, инструкция fil e в операторе zone подчиненного сервера содержит имя локального файла, в котором будет храниться информация, полученная от удаленного сервера, а вовсе не имя файла, из которого загружается домен. Следующий файл named.conf настраивает узел ога как подчиненный сервер домена wrotethebook.com:
options { directory "/var/named"; }; // настройка подчиненного сервера имен // zone V { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.local"; }; zone "wrotethebook.com" { type slave; file "wrotethebook.hosts"; masters { 172.16.12.1; }; }; zone "16.172.in-addr.arpa" { type slave; file "172.16.rev"; masters { 172.16.12.1; >; };
Первый оператор zone (тип slave) гласит, что данный сервер является подчиненным сервером имен для домена wrotethebook.com. Оператор предписывает named загружать данные домена wrotethebook.com с сервера, IP-адрес которого - 172.16.12.1, и сохранять полученные данные в файле /var/named/wrotethebook.hosts. Если файл wrotethebook.hosts не существует, named создает его, получает данные зоны от удаленного сервера и записывает данные в созданный файл. Если файл существует, named сверяется с удаленным сервером и выясняет, изменились ли данные. Если данные изменились, named загружает обновленные данные и перезаписывает содержимое файла. Если данные не изменились, named загружает в память содержимое дискового файла и благополучно пропускает передачу зоны. Хранение копии базы данных в локальном файле позволяет избежать передачи зоны при каждой перезагрузке локального узла. Передача зоны должна производиться лишь в том случае, когда данные изменились.
И последний оператор zone гласит, что локальный сервер является также подчиненным сервером имен обратного домена 16.172.in-addr.arpa и что данные этого домена также должны загружаться с сервера по адресу 172.16.12.1. Данные обратного домена хранятся в локальном файле 172.16.rev, для которого выполняются все те же правила, что и для файла wrotethebook.hosts.