Настройка сервера DNS
Программа, которая является сервером имен и реализует службу DNS в Solaris, называется in.named (/usr/sbin/in.named). С системой Solaris 9 поставляется пакет BIND версии 8.2.4, в который входит эта программа.
Конфигурационный файл этой программы называется /etc/named.conf. Сервер имен всегда имеет рабочий каталог, где он хранит базу данных информации о доменах .
Этот каталог указывается в инструкции directory в файле конфигурации named.conf, и довольно часто администраторы выбирают в качестве такого каталога /var/named/.
В файле /etc/named.conf кроме имени рабочего каталога указываются все домены , за которые отвечает данный сервер имен, и названия файлов с описаниями этих доменов ; каждому домену соответствует свой файл описания. Один сервер имен может хранить информацию о нескольких доменах .
Правила регистрации доменов требуют, чтобы за каждый домен отвечали, как минимум, два сервера имен в разных IP-сетях; это правило ввели для страховки на случай непредвиденного отключения маршрутизации к одной из сетей.
Прежде чем начать подробное изучение файлов данных и файла конфигурации сервера имен, сделаем важное замечание: во всех этих файлах в Solaris 9 поставляемый с системой in.named ожидал в качестве разделителей полей знаки табуляции, а не пробелы! Если сервер имен при загрузке сообщает, что не смог найти информацию в файле конфигурации или файлах данных, следует:
Если не уверены в том, что там верные символы, лучше заменить их на табуляцию.
Рассмотрим файл /etc/named.conf в нашей системе. Положим, наш сервер имен обслуживает два домена : klava.net и macro.ru, причем для последнего домена наш сервер будет выполнять роль вторичного сервера имен.
options { // это комментарий, раз строка начинается с // directory "/var/named"; }; // дальше идет описание зон. // эти - корневая и обратная локальная - обязательны zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "127.0.0"; }; // дальше - описания зон, за которые мы отвечаем zone "klava.net" { type master; file "klava.net"; }; // а это - те зоны, для которых наш сервер - вторичный zone "macro.ru" { type slave; file "sec/macro.ru"; masters { 194.220.38.65; }; };
Файл описания корневого домена named.root (фактически, список серверов имен корневого домена ) может быть уже установлен в системе. Если это не так, то его можно получить из самого надежного источника - по адресу ftp://ftp.rs.internic.net/domain/.
Каталог, в котором будут храниться файлы описаний доменов , для которых наш сервер имен является вторичным, должен быть доступен демону in.named для записи. Обычно это каталог /var/named/sec.
Файл описания домена состоит из записей, по одной на строку, называемых записями о ресурсах (RR - resource records). Каждый из ресурсов имеет класс и тип. В сети Интернет используется только класс IN, но DNS позволяет описывать ресурсы и других классов. Мы не будем рассматривать никакие классы, кроме IN. Типы ресурса бывают такими:
Каждая запись имеет определенный формат, а именно:
имя ресурса класс тип информация
Изучим файлы описания доменов , на которые ссылались инструкции из файла /etc/named.conf:
klava.net: $TTL 3600 @ IN SOA sunny.eu.spb.ru. hostmaster.sunny.eu.spb.ru. ( 2004060101 3600 1200 3600000 3600 ) IN NS sunny.eu.spb.ru. IN MX 5 mail.eu.spb.ru. IN MX 10 sunny.eu.spb.ru. mail IN A 194.221.15.1 127.0.0: $TTL 3600 @ IN SOA sunny.eu.spb.ru. hostmaster.sunny.eu.spb.ru. ( 2004060100 3600 1200 3600000 3600 ) IN NS sunny.eu.spb.ru. 1 IN PTR localhost.
Тип SOA - это единственный тип, который предполагает многострочную запись. В записи SOA указывается имя домена (символ @ - это макроопределение, вместо которого подставляется имя домена из файла named.conf), полное имя авторитетного name-сервера домена , адрес персоны, ответственной за домен , времена и тайм-ауты обновления сведений о домене :
Обратите внимание на то, что в конце адреса и в конце имени сервера стоит знак "точка" (.) - это для того, чтобы явно указать, что мы имеем дело с полностью определенным доменным именем . Если точку в конце имени не поставить, то после написанного в файле имени будет подставлено имя домена , например, если написать вместо "sunny.eu.spb.ru." то же самое, но без точки - "sunny.eu.spb.ru", фактически сервер имен поймет это как sunny.eu.spb.ru.klava.net. (если мы говорим об описании домена klava.net).
После открывающей круглой скобки следует указывать серийный номер версии файла данных домена . Этот номер необходимо изменять каждый раз, когда меняется хоть что-то в описании домена . Если забыть об этом, информация на вторичных серверах имен не обновится.
Серийный номер удобно указывать в формате YYYYMMDDVV, где YYYY - год, MM - месяц, DD - число месяца, VV - версия описания домена за этот день. Как видите, этот стандартный формат ограничивает нас в количестве изменений за день - не более ста. Постарайтесь унять торопливость и вносите изменения, только когда это действительно понадобится, а не раз в пять минут, пожалуйста!
Числа на следующих строках обозначают, соответственно, в секундах:
Инструкция $TTL в начале файла указывает, что серверы, получающие от нас ответы на свои вопросы, должны кэшировать эти ответы на время TTL (в секундах).
Записи типа NS содержат имена серверов имен домена , причем здесь не делается различия между главными и вторичными серверами имен, порядок следования записей в файле домена сам по себе ничего не означает.
Записи MX описывают правила маршрутизации почты. Каждая запись указывает на один из почтовых серверов, принимающих почту для данного домена (или компьютера):
IN MX 5 mail.eu.spb.ru. IN MX 10 sunny.eu.spb.ru.
В приведенном выше примере почта для домена klava.net принимается одним из двух почтовых серверов - mail.eu.spb.ru или sunny.eu.spb.ru.
Число, следующее за ключевым словом MX в записях о маршрутизации почты, называется показателем предпочтительности (preference). Это число показывает, насколько предпочтительно посылать почту на указанный почтовый сервер по сравнению с другими почтовыми серверами. Если для домена или компьютера указаны несколько записей MX с различными показателями предпочтительности, то почта направляется на первый доступный почтовый сервер с минимальным значением показателя предпочтительности.
Алгоритм отправки почты любым почтовым сервером таков:
Попытки отправки почты повторяются до тех пор, пока почтовое сообщение не будет успешно отправлено либо время, прошедшее с начала первой попытки, не превысит установленный тайм-аут. В последнем случае отправитель получит уведомление о невозможности доставить письмо. По умолчанию большинство почтовых серверов пытаются доставить письмо в течение 5 суток.
Все временно неотправленные письма накапливаются в очереди сообщений, и почтовый сервер регулярно обрабатывает очередь, вновь и вновь пытаясь отправить письма согласно вышеописанному алгоритму.