Система доменных имен

Name


- это имя объекта. Объектом может быть хост, домен и поддомен. Существуют специальные правила именования объектов, которые базируются на понятии текущего имени домена.

Если в качестве значения поля name указан символ "@", то текущим именем домена является имя, указанное в директивах primary, secondary или cache файла named.boot (BIND 4) или zone файла named.conf (BIND 8 или 9), в зависимости от того, о каком файле базы данных named идет речь. В противном случае для определения текущего имени должна быть указана директива $ORIGIN.

Если имя в записи описания ресурса опущено, то ресурс относится к текущему имени домена. Если имя указано без точки на конце, то оно расширяется текущим именем домена. Для изменения текущего имени домена следует ввести либо команду $ORIGIN, либо указать имя записи ресурса с точкой на конце. Например:

Файл конфигурации named:

zone "kyky.ru" in { type master; file "kyky.ru"; };

Файл "kyky.ru":

\@ IN SOA ns.kyky.ru. user.kuku.ru. ( 1 3h 1h 1w 1h ) IN NS ns.kyky.ru. ns IN A 192.168.0.1 $ORIGIN kuku.ru. ns IN A 192.168.0.1 www.kyky.ru. IN A 192.168.0.2

В выше приведенном пример мы предполагаем, что речь идет о master файле зоны kyky.ru. Именно она у казана в файле конфигурации named (версия BIND 9). Символ "@" в первой позиции первой строки (запись SOA) указывает на то, что текущим именем домена является имя kyky.ru. Для записи описания сервера доменных имен это имя наследуется из записи SOA. Запись описания сервера доменных имен (NS), следовательно относится к домену kyky.ru, т.е. авторитативный сервер доменных для домена kyky.ru называется ns.kyky.ru.

Далее определяется адрес хоста, который имеет имя ns.kuku.ru. При этом вовсе не обязательно указывать имя целиком, т.к. у ns на конце нет символа ".", и, следовательно, данное имя является не полным, и будет расширено до ns.kyky.ru.

Последняя строка определяет адрес для хоста с именем www.kyky.ru, т.к. доменное имя в этом случае заканчивается точкой, то оно не будет расширено значением текущего доменного имени.


Теперь мы переопределяем текущее имя домена при помощи директивы $ORIGIN. Текущее имя домена теперь - kuku.ru. Следовательно, следующая строка будет определять адрес машины ns.kuku.ru.

Если в качестве имени указана одна точка(".") или две точки("..") то такая запись описывает домен root, т.е. корневой домен.



Если в качестве имени указана одна точка(".") или две точки("..") то такая запись описывает домен root, т.е. корневой домен.

Если в имени записи встречается символ "*", то это он означает что вместо него можно подразумевать любую разрешенную последовательность символов. В англоязычных источниках это называют "wildcard character". Для пользователей любой операционной системы употредление этого символа хорошо знакомо по командам dir (MS-DOS) или ls (Unix). Например, при необходимости получить список файлов, оканчивающихся расширением "bak", и только их выдается команда:

/usr/paul>ls *.bak

Точно также используется этот символ и в имени записи базы данных описания домена. Если в поле имени указан только символ "*", то это предполагает "*.. Если за "звездочкой" следует имя, то оно ограничивает расширение имен "звездочкой". Например, "*.polyn.kiae.su." определяет все имена из домена polyn.kiae.su, в том числе и имена машин в поддоменах, а не только имена машин в корне домена и имена самих поддоменов. Наиболее часто "*" используется в записях MX, которые регулируют обмен электронной почтой между Интернет-почтой и другими почтовыми службами.

Не следует, однако, думать, что символ "*" может быть использован где угодно. Место использования маски строго определено - это может быть только первый символ в поле имени текущего домена, отделенный от остальных символом ".".

Если в поле имени указан только символ "*", то он маскирует доменные имена хостов текущего домена. Однако, если для какого либо хоста существуют RR записи, то маска на этот хост не распространяется:



*.kyky.ru. IN MX 10 mail.kyky.ru. first IN A 192.168.0.1 sub.kyky.ru. IN NS second.kyky.ru.

В приведенном выше примере, для всех хостов из зоны kyky.ru в качестве почтового посредника должен использоваться хост mail.kyky.ru. Однако, для first.kyky.ru это не так - в описании зоны есть запись описания ресурса для first.kyky.ru.

Кроме того, для делегированной зоны sub.kyky.ru хост mail.kyky.ru тоже не является почтовым посредником, т.к. для делегированных зон согласно RFC-1034 "делегирование прерывает действие маски".

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

Так, например, в RFC-1033 прямо указано, что в имени можно использовать любые восьмибитовые отображаемые символы. При этом, правда сделана ссылка на то, что в других протоколах существуют ограничения, а потому рекомендованы символы "A-Z", "a-z", "0-9", а также символы "-" и "_".

Однако в RFC-1034 принято более жесткое определение того, что такое доменное имя. Из разрешенного списка исключили символ подчеркивания и постановили, что система не различает заглавные и прописные буквы, т.е. имена kuku, KUKU, KuKu - это одно и тоже имя.

Любопытно, что не во всех версиях BIND проверяется правильность доменного имени, а в последних версиях можно управлять проверкой правильности. Но уповать на то, что любые отображаемые символы будут правильно распознаны системой DNS, не стоит.

Кроме того, проблема именования доменов в настоящее время упирается в именование доменов не только символами английского алфавита. Но это уже совсем другая история.

Поле


Содержание раздела