Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1812 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 4:

DNS и доменные имена

Записи в базе данных DNS

DNS-сервер, отвечающий за имена хостов в своей зоне, должен хранить информацию о хостах в базе данных и выдавать ее по запросу с удаленных компьютеров. База данных DNS представляет собой текстовый файл, состоящий из исходных записей RR (resource records). Эти записи описывают компьютеры и их функции в локальной зоне. Для организации обмена информацией с удаленными серверами DNS на сервере Linux должно быть запущено программное обеспечение сервера DNS (обычно это программа named ). Чуть позже в этой лекции мы рассмотрим работу этой программы.

Прежде всего в базе данных сервера DNS должна быть объявлена зона, за которую данный сервер несет ответственность. Далее в ней должны быть объявлены все хост-компьютеры, имеющиеся в зоне. И, наконец, в базе данных можно объявлять специальную информацию, касающуюся зоны (например, о серверах электронной почты и DNS-серверах). Формат записи базы данных был разработан таким образом, чтобы DNS-сервер мог почерпнуть из нее любую информацию, нужную для его работы. В табл. 4.2 приведены основные типы исходных записей, которые могут присутствовать в базе данных DNS. База данных DNS в последнее время стала темой для дискуссий среди исследователей. Так как многие хотят дополнить ее новыми возможностями и наряду с этим повысить уровень безопасности. В настоящее время в базу данных DNS постоянно вносятся новые типы записей. В табл. 4.2 отражены лишь основные типы записей, которые необходимы для открытия и ведения новой зоны в базе данных DNS.

Таблица 4.2. Типы записей в базе данных DNS
Тип записи Описание
SOA Начало полномочий
A Internet-адрес
NS Сервер имен
CNAME Каноническое имя (имя машины)
HINFO Информация о машине (хосте)
MX Почтовый сервер
PTR Указатель

Каждый DNS-сервер домена должен содержать исходные записи для всех хостов этого домена. В нем должна присутствовать одна запись SOA, которая вносится в самом начале базы данных. Все остальные исходные записи могут добавляться далее в произвольном порядке. На рис. 4.4 показан пример базы данных DNS для сети с рис. 4.2. В следующем разделе основные типы записей будут рассмотрены более подробно.

Пример ведения записей DNS для небольшой сети

Рис. 4.4. Пример ведения записей DNS для небольшой сети
Запись "начало полномочий" (SOA- Start of Authority)

Всякая база данных DNS должна начинаться с записи SOA, которая отмечает начало зоны, описываемой в базе данных.

Формат записи SOA:

domain name [TTL] [class] SOA origin
person (
serial number
refresh
retry
expire
minimum)

Здесь domain name — имя зоны, которая далее описывается в базе данных (можно использовать также знак @ для обозначения домена по умолчанию для данного компьютера).

TTL — время (в секундах), в течение которого запрашивающий компьютер может хранить любую информацию в своем локальном кэше DNS. Этот параметр не является обязательным.

class обозначает протокол, который используется в системе (в нашем случае везде будет присутствовать класс IN для сети Internet ). Этот параметр также необязателен и по умолчанию ставится в значение IN.

origin — имя компьютера, где ведется основная зона. Будьте осторожны при расстановке разделительных точек ( .)! Не забудьте поставить точку после имени хоста, иначе доменное имя будет добавлено к имени хоста (если конечно вы не хотите обратного).

person — адрес электронной почты лица, ответственного за данную зону. Здесь имеется небольшое отличие от предыдущих версий DNS. Так как значок @ уже применяется для указания домена по умолчанию, его нельзя еще раз указывать в адресе электронной почты. Вместо знака @ используйте обычную точку " .". Так, например, вместо адреса sysadm@smallorg.org используйте sysadm.smallorg.org. Если в адресе электронной почты имеются другие точки, то вместо них используйте обратную косую черту \. Например, адрес john.jones@smallorg.org будет преобразован в john\jones.smallorg.org.

serial number является уникальным числом, которое идентифицирует версию файла базы данных. Очень часто для этой цели используется дата создания файла или последней его модификации и номер версии файла (например, 200026061).

refresh — интервал времени (в секундах), по истечении которого вторичный DNS-сервер должен опрашивать первичный DNS-сервер о текущей версии записи SOA. Если версия отличается от имеющейся во вторичном сервере DNS, то он пошлет запрос на обновление своей базы данных. Обычно для этого параметра устанавливается значение 1 час (3600 секунд).

retry — интервал времени (в секундах), по истечении которого вторичный DNS-сервер повторяет попытку обновить содержимое своей базы после неудачной предыдущей попытки.

expire — это интервал времени (в секундах) по истечении которого вторичный DNS-сервер может использовать данные, полученные от первичного DNS-сервера, без обновлений. Обычно это значение довольно большое, например 3600000 секунд (около 42 дней).

minimum — интервал времени (в секундах), который должен использоваться как TTL для всех исходных записей в зоне. Обычно 86400 секунд (т.е. одного дня) достаточно для этого параметра.

Запись Internet-адреса (A)

Каждый хост в зоне должен иметь в базе данных запись типа А, которая определяет его имя в сети Internet. Формат записи типа А:

host [TTL] [ class ] A address,

где host — полностью определенное имя компьютера (включая доменное имя), а address — IP-адрес этого компьютера.

Каноническое имя (CNAME)

Кроме обычного имени, некоторые хосты могут иметь два-три дополнительных имени (псевдонима). Это удобно, когда требуется идентифицировать различные сервисы. При этом нет необходимости переименовывать компьютеры в домене. Например, имя, зарезервированное для Web-сервера, — www.smallorg.org. Запись CNAME связывает псевдонимы с реальными именами хостов. Ее формат следующий:

nickname [TTL] [ class ] CNAME host name