В системе DNS имена узлов должны оканчиваться точкой. Если, работая с клиентскими программами Internet (Web-броузером, клиентом FTP, программой подготовки почты), вы не укажете завершающую точку, система Linux сначала посчитает, что имя домена не указано, поэтому добавит к имени узла имя домена, заданное в
/etc/resolv.conf
. Если попытка преобразования такого имени окажется неудачной, система вместо имени домена добавит к имени, указанному пользователем, точку и снова попытается выполнить преобразование. Эти действия скрыты от пользователя, поэтому он может пренебрегать точкой в конце имени без ущерба для себя. Настраивая сервер DNS, администратор не может позволить себе подобной небрежности. В конфигурационном файле можно задавать либо полностью определенное доменное имя, оканчивающееся точкой, либо имя узла, не содержащее
имени домена. Если вы забудете указать точку в конце полного доменного имени, система добавит к нему имя домена. Сформированное таким образом имя будет иметь вид
gingko.threeroomco.com.threeroomco.com
.
Листинг 18.2. Простой конфигурационный файл зоны
threeroomco.com. IN SOA spruce.threeroomco.com. \
admin.threeroomco.com. (
2002043004 ; serial (последовательный номер)
3600 ; refresh (обновление)
600 ; retry (повторное обращение)
604800 ; expire (срок действия)
86400 ; default_ttl (время жизни)
)
gingko.threeroomco.com. IN A 192.168.1.1
birch IN A 192.168.1.2
spruce IN A 192.168.1.3
threeroomco.com. IN A 192.168.1.4
www IN CNAME gingko
kelp IN CNAME jacques.pangaea.edu.
@ IN MX 10 birch.threeroomco.com.
@ IN MX 20 mail.pangaea.edu.
@ IN NS spruce.threeroomco.com.
Формат записи в конфигурационном файле зоны выглядит следующим образом:
имя IN тип_записи содержимое_записи
Здесь под именем подразумевается имя компьютера или псевдоимя, связанное с адресом и применяемое для обратного преобразования. Идентификатор
IN
сокращенно означает Internet и определяет класс записи. Кроме
IN
существуют и другие классы записей, но в данной главе они рассматриваться не будут. Тип записи — это код, определяющий запись для прямого или обратного преобразования адресов, или запись, используемая почтовым сервером. Содержимое записи может занимать одну или несколько строк и обычно представляет собой IP-адрес или имя узла. Если содержимое записи является описанием зоны, оно располагается в нескольких строках, в остальных случаях вся запись помещается в одной строке. Признаком комментариев является точка с запятой, текст, следующий за ней, не обрабатывается сервером.
Внимание
В различных конфигурационных файлах BIND точка с запятой интерпретируется по-разному: в файле
named.conf
ею заканчивается выражение, а в файле зоны она определяет комментарии. Это следует учитывать при редактировании конфигурационных файлов BIND, в противном случае сервер будет работать некорректно.
Конфигурационный файл зоны обычно помещается в каталог
/var/named
, и ему присваивается имя, связанное с именем зоны. Обычно для такого файла выбирается имя
db.имя-зоны
или
named.имя-зоны
. Конфигурационному файлу можно присвоить любое имя, необходимо лишь, чтобы оно совпадало с именем, указанным в
/etc/named.conf
.
Формирование описания зоны
Для описания зоны используется запись SOA (Start of Authority — начало полномочий). В поле, определяющем тип записи, указано значение SOA. Наличие этой записи означает, что сервер имен поддерживает данный домен. В поле имени указывается имя зоны, совпадающее с именем, заданным в файле
/etc/named.conf
(не забывайте о завершающей точке!). Содержимое записи в данном случае состоит из трех частей.
• Ведущий сервер имен. Первое имя (в листинге 18.2 это
spruce.threeroomco.com
.) представляет имя ведущего сервера имен для зоны. В листинге 18.2 за этим именем следует обратная косая черта (
\
). Как и во многих конфигурационных файлах, этот символ означает, что продолжение записи находится на следующей строке. Часто в конфигурационных
файлах зоны две строки объединяются в одну, и в этом случае обратная косая черта не нужна.
• Почтовый адрес администратора. Второе имя (в листинге 18.2 это
admin.threeroomco.com.
) определяет почтовый адрес администратора, отвечающего за поддержку зоны. Этот адрес представляется в несколько необычном формате. Чтобы его можно было использовать, надо заменить первую точку на символ
• Временные соотношения. Числовые значения, помещенные в скобки и располагающиеся в последующих строках, задают информацию о временных соотношениях. В листинге 18.2 приведены комментарии, поясняющие назначение соответствующих чисел. В строке, помеченной комментариями
serial
, содержится последовательный номер, который необходимо увеличивать при каждом редактировании файла. Ведомый сервер на основании данного значения определяет, следует ли обновлять свой конфигурационный файл. Многие администраторы задают последовательный номер как дату (в формате YYYYMMDD), сопровождая ее номером изменений, произведенных в течение текущего дня. В строке
refresh
задается время в секундах между обращениями ведомого сервера к ведущему. Значение 3600, приведенное в листинге 18.2, соответствует одному часу, следовательно, ведомый сервер будет каждый час проверять, не изменились ли параметры зоны на ведущем сервере. Значение
retry
представляет время в секундах, по истечении которого ведомый сервер предпримет повторную попытку обращения к ведущему серверу в случае, если первая попытка окажется неудачной. Значение
expire
также определяет время в секундах, в течение которого запись считается действительной, если ведомому серверу не удается связаться с ведущим. По истечении указанного времени запись не может быть использована для преобразования имен. Величина
expire
обычно соответствует одной неделе и, конечно же, должна превышать значение
refresh
. Значение
default_ttl
задает время жизни. В течение этого времени сервер DNS должен хранить информацию о результатах преобразования. Обычно величина времени жизни составляет от одного дня (86400 в листинге до одной недели (604800). Если IP-адреса вашей сети часто изменяются или если вы предполагаете, что вскоре придется произвести много изменений, имеет смысл задать время жизни порядка часа.
Определение адресов и имен
Большинство записей в конфигурационном файле зоны предоставляет информацию о соответствии между именами и IP-адресами. В поле имени, как правило, задается имя компьютера либо другое имя, связанное с IP-адресом. В поле имени также можно задавать символ
@
, заменяющий имя домена. Данный символ обычно используют в записях
MX
и
NS
(листинг 18.2). Эти записи не несут информации о взаимосвязи имен и адресов, а определяют специальные имена для всего домена.
Ниже описаны основные типы записей.
•
А
. В записи
A
(address — адрес) в поле имени задается имя узла, а содержимое записи представляет собой IP-адрес. В качестве имени узла можно использовать полное доменное имя (с завершающей точкой), например
gingko.threeroomco.com.
, либо имя узла без указания имени домена, например
birch
или
spruce
. Можно также в качестве имени компьютера указать имя домена, так, например, в листинге 18.2 задано соответствие между именем
threeroomco.com.
и IP-адресом 192.168.1.4.
•
CNAME
. Запись
CNAME
(canonical name — каноническое имя) ставит в соответствие имени другое имя. В поле содержимого может быть указано либо полное доменное имя с завершающей точкой, либо имя узла без имени домена. Если вы задаете полное доменное имя, оно не обязательно должно принадлежать домену, определяемому посредством файла зоны. Например, в листинге 18.2 имя
kelp
связывается с компьютером в другом домене. Записи
CNAME
обычно применяются в тех случаях, когда важные IP-адреса могут изменяться без вашего участия. Например, если вы размещаете Web-страницу на внешнем компьютере, то можете связать имя
www
с именем этой машины. Если адрес внешнего компьютера изменится, ваша запись останется корректной.