Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1081 / 308 | Оценка: 4.30 / 3.78 | Длительность: 18:28:00
Лекция 5:

DNS

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >

Настройка сервера DNS

Программа, которая является сервером имен и реализует службу DNS в Solaris, называется in.named ( /usr/sbin/in.named ). С системой Solaris 10 поставляется пакет BIND версии 9 (например, в SXDE 1/08 установлен bind 9.3.4-P1), в который входит эта программа.

Конфигурационный файл этой программы называется /etc/named.conf. Сервер имен всегда имеет рабочий каталог, где он хранит базу данных информации о доменах. Этот каталог указывается в инструкции directory в файле конфигурации named.conf, и довольно часто администраторы выбирают в качестве такого каталога /var/named/.

В файле /etc/named.conf кроме имени рабочего каталога указываются все домены, за которые отвечает данный сервер имен, и названия файлов с описаниями этих доменов; каждому домену соответствует свой файл описания. Один сервер имен может хранить информацию о нескольких доменах.

Правила регистрации доменов требуют, чтобы за каждый домен отвечали, как минимум, два сервера имен в разных IP-сетях; это правило ввели ради страховки на случай непредвиденного отключения маршрутизации к одной из сетей.

Прежде чем начать подробное изучение файлов данных и файла конфигурации сервера имен, сделаем важное замечание: во всех этих файлах в Solaris 10 поставляемый с системой in.named ожидал в качестве разделителей полей знаки табуляции, а не пробелы! Если при загрузке сервера имен он сообщает, что не смог найти информацию в файле конфигурации или файлах данных, следует:

  1. уточнить, действительно ли вы строго следовали синтаксису файлов. Наиболее распространенными ошибками являются: отсутствие точки с запятой после инструкции в named.conf, отсутствие точки с запятой перед фигурной скобкой в named.conf, использование не тех скобок (круглых в named.conf или фигурных при описании домена в файле данных домена в записи SOA), непарные скобки (часто появляются в результате редактирования ранее созданного файла);
  2. проверить, не являются ли символы-разделители полей в записях в файлах чем-либо, кроме табуляции (возникает при переносе файлов откуда-либо методом cut-and-paste ). Если вы не уверены, что там за символы, а понять тяжело, правильнее заменить на табуляции.

Рассмотрим файл /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. Типы ресурса бывают такими:

  • A – указание адреса компьютера с определенным именем (для поиска адреса по имени);
  • PTR – указание имени компьютера с определенным адресом (для поиска имени по адресу);
  • MX – указание почтового сервера для ресурса (домена или компьютера);
  • CNAME – псевдоним другого ресурса;
  • HINFO – текстовое описание ресурса;
  • SOA (starting of authority) – служебная информация о домене в целом.

Каждая запись имеет определенный формат, а именно:

имя ресурса класс тип информация

Изучим файлы описания доменов, на которые ссылались инструкции из файла /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. – это имя авторитетного сервера имен. Авторитетным называется такой сервер имен, ответы которого не подвергается сомнению. Хитрость в том, что на запрос о домене может отозваться не только сервер имен, отвечающий за этот домен, но и любой другой сервер имен, если он получил эту информацию по запросу. Авторитетный ответ (autoritative answer) может быть получен только с сервера имен, непосредственно отвечающий за интересующий нас домен;
  • hostmaster.sunny.eu.spb.ru. – это адрес e-mail персоны, ответственной за домен; так как символ @ уже используется в описании домена в другом значении, то здесь он заменен на точку; когда вы будете писать письма ответственному лицу, делайте обратную замену и пишите по адресу hostmaster@sunny.eu.spb.ru.

Обратите внимание на то, что в конце адреса и в конце имени сервера стоит знак "точка" (.) – чтобы явно указать, что мы имеем дело с полностью определенным доменным именем. Если точку в конце имени не указать, то после написанного в файле имени будет подставлено имя домена, например, если написать вместо "sunny.eu.spb.ru." то же самое, но без точки – "sunny.eu.spb.ru", фактически сервер имен поймет это как sunny.eu.spb.ru.klava.net. (если мы говорим об описании домена klava.net).

После открывающей круглой скобки следует указывать серийный номер версии файла данных домена. Этот номер необходимо изменять каждый раз, когда меняется хоть что-то в описании домена. Если забыть об этом, информация на вторичных серверах имен не обновится.

Серийный номер удобно указывать в формате YYYYMMDDVV, где YYYY – год, MM – месяц, DD – число месяца, VV – версия описания домена за этот день. Как видите, этот стандартный формат ограничивает нас в количестве изменений за день – не более ста. Постарайтесь унять торопливость и вносите изменения, только когда это действительно понадобится, а не раз в пять минут, пожалуйста!

Числа на следующих строках обозначают, соответственно, в секундах:

  • 3600 – период опроса главного сервера имен вторичными серверами;
  • 1200 – период повторных попыток опроса главного сервера имен вторичными серверами, в случае неудачи при первой попытке опроса;
  • 3600000 – время устаревания информации на вторичном сервере (т.е. время, через которое вторичный сервер должен считать, что информация потеряла актуальность, и, если не удается получить обновление с главного сервера, перестать отвечать на запросы о домене);
  • 3600 – время жизни негативного ответа (т.е. ответа "нет такого компьютера у нас в домене!"). Это время, в течение которого сервер, запросивший информацию от нашего сервера, не будет посылать вторичный запрос, если на первый запрос пришел отрицательный ответ.

Инструкция $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 с различными показателями предпочтительности, то почта направляется на первый доступный почтовый сервер с минимальным значением показателя предпочтительности.

Алгоритм отправки почты любым почтовым сервером таков:

  1. почтовый сервер отправителя запрашивает свой сервер имен (тот, что указан в /etc/resolv.conf ), куда надо отправить письмо для указанного в заголовке письма адресата;
  2. сервер имен выдает ему список записей MX для адресата;
  3. почтовый сервер выбирает запись с наименьшим значением показателя предпочтительности и пытается отправить почту указанному в этой записи почтовому серверу;
  4. если это не удается, выбирается следующая запись с минимальным (из оставшихся) показателей предпочтительности и делается попытка отправить почту через указанный в ней почтовый сервер.

Попытки отправки почты повторяются, пока почтовое сообщение не будет успешно отправлено либо пока время, прошедшее с начала первой попытки, не превысит установленный тайм-аут. В последнем случае отправитель получит уведомление о невозможности доставить письмо. По умолчанию большинство почтовых серверов пытаются доставить письмо в течение 5 суток.

Все временно не отправленные письма накапливаются в очереди сообщений, и почтовый сервер регулярно обрабатывает очередь, вновь и вновь пытаясь отправить письма согласно вышеописанному алгоритму.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.