в имен следующий: сначала создаются файлы базы DNS (напрямую или через административные утилиты), а затем запускается сервис DNS (в AIX - демон named).
В файлах базы DNS серверов имен используется так называемый формат записи стандартных ресурсов (Standard Resource Record Format). Выглядит этот формат следующим образом:
[<Name>] [<TTL>] [<Class>] <Type> <Data>
Каждая составляющая здесь является полем записи и отделена от других пробелами или знаками табуляции.
<Name> - имя описываемого ресурса. Оно зависит от поля <Type> и может обозначать домен, зону управления, имя хоста и т. д. Если поле <Name> пустое, то в качестве него используется последнее заданное поле <Name> (в предыдущих записях).
<TTL> - время жизни (в секундах). Определяет, как долго клиент DNS будет хранить запись в кэш-памяти. Если данное поле пустое, то в качестве <TTL> берется значение поля <Minimum>, задаваемое в записи SOA (см. ниже).
<Class> описание класса используемых протоколов. Для Internet (TCP/IP) значение этого поля - IN. Если поле пустое, то в качестве него используется последний заданный класс.
<Type> - поле, задающее тип ресурса записи. Возможные значения этого поля приведены в разделе "Типы ресурсов".
<Data> - поле, устанавливающее данные текущего ресурса. Его содержание зависит от поля <Type>. Поле <Data> может быть составным, т. е. состоять из нескольких полей.
Следующие символы в записях имеют специальное значение (ниже перечислены некоторые из этих символов).
. Отдельно стоящая точка в поле <Name> обозначает текущий домен.
@ Отдельно стоящий символ "@" в поле <Name> обозначает текущий исходный домен.
( ) Скобки используются для размещения поля <Data> на нескольких строках (когда поле <Data> занимает несколько строк).
* Метасимвол. Заменяет любой набор символов.
; Символ комментария. От этого символа и до конца строки информация игнорируется.
Примечание. Следует знать, что в записях ресурсов доменное имя, не заканчивающееся точкой, считается относительным. При обработке оно прибавляется к текущему домену. Поэтому, когда задается полное имя, его необходимо заканчивать точкой.
Тип ресурса задается в поле <Type> записи ресурса. Типов ресурсов множество. Полный их список можно узнать в соответствующих RFC (см. "Дополнительную информацию"). Ниже приводятся наиболее используемые типы.
Ю SOA Начало полномочий (управления)
сервера имен.
Ю NS Сервер имен.
Ю A Адрес хоста.
Ю CNAME Каноническое имя. Используется для
задания псевдонимов.
Ю HINFO Информация о хосте.
Ю MX Почтовый шлюз.
Ю PTR Указатель.
Рассмотрим каждый из этих типов.
Запись с ресурсом типа SOA обозначает начало зоны управления сервера имен. Зона управления действует до следующей записи SOA.
ПРИМЕР ЗАПИСИ SOA
<Name> [<TTL>] [<Class>] SOA <Origin> <Person> ( <Serial> <Refresh> <Retry> <Expire> <Minimum> ) komtek.dp.ua. IN SOA srv.komtek.dp.ua. root.srv.komtek.dp.ua. ( 970308 3600 600 3600000 86400 )
Здесь поле <Data> является составным и включает поля <Origin>, <Person>, <Serial> и т. д.
<Name> Обозначает имя домена зоны управления.
<Origin> Имя первичного сервера имен зоны.
<Person> Почтовый ящик лица, ответственного за зону. Данное поле формируется аналогично электронному адресу, но вместо символа "@" ставится точка (т. е. alex@komtek.dp.ua заменяется на alex.komtek.dp.ua).
<Serial> Номер версии зоны. Когда производятся изменения в зоне, то это число необходимо увеличить. Именно по данному полю ориентируется вторичный сервер имен, определяя необходимость обновления информации по зоне.
<Refresh> Время в секундах, по прошествии которого вторичный сервер проверяет необходимость обновления информации по зоне.
<Retry> Время в секундах для повторного обращения вторичного сервера зоны, если ранее попытка обращения к первичному серверу была неудачной.
<Expire> Предел времени в секундах. Если вторичный сервер не может получить доступ к первичному в течение этого времени, то он будет считать информацию по зоне устаревшей.
<Minimum> Значение TTL в записях ресурсов данной зоны по умолчанию, т. е. когда поле <TTL> пустое.
Запись с ресурсом типа NS обозначает имя хоста, являющегося первичным сервером имен для домена.
ПРИМЕР ЗАПИСИ NS
[<Domain>] [<TTL>] [<Class>] NS <Server>
komtek.dp.ua. NS srv1.komtek.dp.ua.
NS srv2.komtek.dp.ua.
<Domain> обозначает домен, а <Server> - имя сервера имен. В примере показывается, что серверы srv1.komtek.dp.ua и srv2.komtek.dp.ua представляют собой серверы имен домена komtek.dp.ua.
Запись с ресурсом типа A служит для задания сетевого адреса хоста. Здесь <Host> - доменное имя хоста, а <Address>- его IP-адрес.
ПРИМЕР ЗАПИСИ A
[<Host>]
[<TTL>] [<Class>] A
<Adress>
sri-nic.arpa.
A
10.0.0.51
Запись с ресурсом типа CNAME применяется для указания псевдонима хоста. <Nickname> обозначает псевдоним, а <Host> - официальное (каноническое) имя хоста.
ПРИМЕР ЗАПИСИ CNAME
[<Nickname>] [<TTL>] [<Class>] CNAME <Host>
rs1 CNAME srv1.komtek.dp.ua.
www CNAME srv2.komtek.dp.ua
ftp CNAME srv2.komtek.dp.ua
Запись с ресурсом типа HINFO служит для хранения информации о хосте, в частности об аппаратной платформе и операционной системе компьютера.
Поле <Host> обозначает доменное имя хоста, <Hardware> - аппаратную платформу, <Software> - ОС хоста. Значения полей <Hardware> и <Software> стандартизированы, их следует брать из RFC 1700.
ПРИМЕР ЗАПИСИ HINFO
[<Host>] [<TTL>] [<Class>] HINFO <Hardware> <Software>
pc1 HINFO IBM-PC MSDOS
rs1 HINFO IBM-RS/6000 AIX
Так как не на всех хостах запущен сервер e-mail, то для отдельных хостов или всего домена запись с ресурсом типа MX позволяет определить почтовый шлюз - компьютер, куда будет направляться электронная почта, предназначенная для этих хостов. Поле <Name> обозначает домен или имя хоста, для которого устанавливается почтовый шлюз. <Host> - имя хоста почтового шлюза. <Reference> задает приоритет доставки, при этом ноль означает самый высокий приоритет.
В примере показано, что если почта предназначена для домена komtek.dp.ua, то она доставляется на машину unix1.komtek.dp.ua. Если же почта предназначена для любого компьютера домена, имя которого оканчивается на -dos, то она направляется на unix2.komtek.dp.ua.
ПРИМЕР ЗАПИСИ MX
[<Name>] [<TTL>] [<Class>] MX <Preference> <Host>
komtek.dp.ua. MX 10 unix1.komtek.dp.ua.
*-dos.komtek.dp.ua. MX 10 unix2.komtek.dp.ua.
Таким образом, письмо, отправленное по адресу:
1. alex@komtek.dp.ua, переадресуется alex@unix1.komtek.dp.ua;
2. vad@pc-dos.komtek.dp.ua, переадресуется vad@unix2.komtek.dp.ua;
3. dba@host1.komtek.dp.ua, попадет к dba@host1.komtek.dp.ua.
Если администратор определяет несколько записей MX, то для указания порядка опроса почтовых шлюзов используется число (в примере - 10) первым опрашивается шлюз с меньшим числом.
Прежде чем рассматривать записи с ресурсом типа PTR, следует остановиться на поиске доменного имени хоста по его IP-адресу (так называемое обратное преобразование).
Структура имен в доменной системе построена так, что, продвигаясь вдоль иерархического дерева DNS, за счет последовательного обращения к серверам имен IP-адрес хоста можно найти по его имени (прямое преобразование). А вот доменное имя хоста по его IP-адресу в такой системе найти довольно трудно.
Для того чтобы облегчить эту задачу, в пределах общей доменной структуры был создан вспомогательный домен. Он имеет специальное название IN-ADDR.ARPA. Внутри этого домена существуют поддомены для каждой IP-сети. Имена этих поддоменов основаны на сетевых адресах, причем байты (октеты) IP-адресов представлены в обратном порядке.
Например, сеть cso.uiuc.edu имеет сетевой адрес 128.174 (вернее, 128.174.0.0, это IP-сеть класса B). Внутри этой сети имеется хост vmd.cso.uiuc.edu с IP-адресом 128.174.5.98. Тогда для всей сети вспомогательный домен будет 174.128.in-addr.arpa. Имя хоста в этом домене будет 98.5.174.128.in-addr.arpa.
Ресурсы с записью типа PTR служат для отображения этих специальных доменных имен в обычные. Поле <Special-name> обозначает специальное доменное имя (в домене IN-ADDR.ARPA), а поле <Name> - официальное доменное имя хоста.
ПРИМЕР ЗАПИСИ PTR ДЛЯ ХОСТА
[<Special-name>] [<TTL>] [<Class>] PTR <Name>
98.5.174.128.in-addr.arpa. PTR vmd.cso.uiuc.edu.
51.0.0.10.in-addr.arpa. PTR sri-nic.arpa.
Вспомогательный домен IN-ADDR.ARPA используется также для указания шлюза (маршрутизатора) для сетей. Шлюз представляет собой хост, соединяющий несколько IP-сетей. Для него существуют обычные записи PTR хоста, но, кроме того, имеются специальные записи PTR, представляющие IP-сети целиком. Эти записи включают только первые 1, 2 или 3 байта (октета) IP-адреса сети в зависимости от класса IP-сети (A, B или C).
Допустим, имеется шлюз gw.komtek.dp.ua, объединяющий сети класса A, B и C и имеющий соответствующие IP-адреса: 12.2.0.7, 129.14.1.3 и 194.140.13.2. Ниже представлены записи A и PTR для данного шлюза.
ПРИМЕР ЗАПИСЕЙ PTR И A ДЛЯ ШЛЮЗА
;Записи A gw.komtek.dp.ua. A 192.168.1.7 A 192.168.2.3 A 194.140.13.2 ; Записи PTR для шлюза 7.1.168.192.in-addr.arpa. PTR gw.komtek.dp.ua. 3.2.168.192.in-addr.arpa. PTR gw.komtek.dp.ua. 2.13.140.194.in-addr.arpa. PTR gw.komtek.dp.ua. ; Записи PTR для сетей 1.1.168.192.in-addr.arpa. PTR gw.komtek.dp.ua. 2.168.192.in-addr.arpa. PTR gw.komtek.dp.ua. 13.140.194.in-addr.arpa. PTR gw.komtek.dp.ua.
Как уже отмечалось, стандартом de facto в описании состава файлов DNS и порядка их загрузки на сервере имен является спецификация BIND. Она поддерживается во всех Unix-системах, в NetWare (программные продукты Novell NFS Services, FTP Services, NetWare/IP) и ряде других систем.
Согласно данной спецификации существует файл загрузки базы DNS. В Unix-системах обычно это файл /etc/named.boot, в NetWare - SYS:ETC\NAMED.CFG, который загру-жается при запуске сервиса DNS на сервере имен.
Основное назначение файла загрузки - указывать, где расположены файлы базы DNS, а также адреса серверов имен. При любом изменении как файла загрузки, так и файлов базы DNS сервис DNS необходимо перезапускать.
Файл загрузки базы DNS является текстовым и состоит из отдельных записей. Наиболее часто используются следующие записи:
1. directory <Path> Устанавливает каталог хранения файлов базы DNS, если не указаны абсолютные пути к файлам. Пример: directory /etc
2. domain <Domain> Определяет домен по умолчанию для данного сервера имен. Пример: domain komtek.dp.ua
3. primary <Domain> <FileName> Показывает, что сервер имен является первичным для домена <Domain> и что база домена хранится в файле <FileName>. Пример: primary komtek.dp.ua /usr/named.data
4. secondary <Domain> <IP-1> [<IP-2>...] <FileName> Указывает, что данный сервер имен является вторичным для домена <Domain>. Первичные серверы расположены по IP-адресам <IP-1>, <IP-2> и т. д. Данный вторичный сервер запрашивает по порядку первичные серверы и копирует полученную с первого ответившего первичного сервера информацию в файл <FileName>. Пример: secondary komtek.dp.ua 192.168.1.3 named.bak
5. cache <Domain> <FileName> Указывает, что данный сервер является кэш-сервером имен для домена <Domain>. Параметры кэш-сервера (прежде всего адреса и имена серверов имен корневого домена) считываются из файла <FileName>. Пример: cache . named.ca
6. Строка, начинающаяся с символа ";", считается комментарием. Кстати, для обозначения полного доменного имени в файле загрузки ставить точку в конце имени не обязательно: здесь все имена считаются полными.
Подводя итоги, рассмотрим пример настройки DNS на серверах имен типичной локальной сети TCP/IP. В примере принято, что локальная сеть подключена к Internet. В то же время показываются настройки, когда локальная сеть не имеет выхода в Internet. IP-адреса сетей и хостов, а также доменные имена вымышленные и приведены лишь для простоты понимания.
В реальной жизни, если сеть будет подключаться к Internet, необходимо получить официальные IP-адреса сетей и зарегистрированный домен. Их выдачей занимается специализированная организация в рамках Internet под названием InterNIC, при этом регистрация доменов происходит независимо от выдачи IP-адресов. Однако в России и Украине IP-адреса и домен можно получить с помощью своего Internet-провайдера. Доменное имя можно зарегистрировать через Internet-провайдера.
Если локальная сеть не имеет выхода в Internet, то IP-адреса и доменные имена можно выбрать по своему усмотрению. Если в дальнейшем возникнет потребность подключения к Internet, то перестроить DNS не составит труда.
Рассматриваемая локальная сеть состоит из двух IP-сетей класса C: 194.170.12.0 и 194.170.13.0. Допустим, эти сети образуют один домен komtek.dp.ua.
IP-сети объединяют шлюз (маршрутизатор) gw с адресами: 194.170.12.1 и 194.170.13.4. Подключение к Internet также происходит через данный шлюз.
В домене имеется первичный сервер имен srv1 (194.170.12.2) и вторичный сервер имен srv2 (194.170.13.3), а также ряд хостов: host1, host2, host3.
Хост mail (194.170.13.2) является почтовым шлюзом для всего домена, к тому же у него есть псевдоним host4.
Ниже представлены состав и содержимое базы DNS для первичного сервера имен srv1.komtek.dp.ua и для вторичного сервера srv2.komtek.dp.ua.
СОСТАВ И СОДЕРЖИМОЕ БАЗЫ DNS НА ПЕРВИЧНОМ СЕРВЕРЕ SRV1
; /etc/named.boot directory /etc domain komtek.dp.ua primary komtek.dp.ua named.data primary 12.170.194.in-addr.arpa named.rev1 primary 13.170.194.in-addr.arpa named.rev2 primary 0.0.127.in-addr.arpa named.local cache . named.ca ; /etc/named.data @ IN SOA srv1.komtek.dp.ua. root.mail.komtek.dp.ua. ( 970308 3600 600 3600000 86400 ) NS srv1.komtek.dp.ua. localhost A 127.0.0.1 gw A 194.170.12.1 A 194.170.13.4 HINFO IBM-RS/6000 AIX srv1 A 194.170.12.2 HINFO IBM-RS/6000 AIX host1 A 194.170.12.3 HINFO IBM-PC MSDOS host2 A 194.170.12.4 HINFO IBM-PC MSDOS host3 A 194.170.13.1 HINFO IBM-PC MSDOS mail A 194.170.13.2 HINFO IBM-PC UNIX host4 CNAME mail.komtek.dp.ua. srv2 A 194.170.13.3 HINFO IBM-PC UNIX komtek.dp.ua. MX 10 mail *.komtek.dp.ua. MX 0 mail.komtek.dp.ua. ; /etc/named.rev1 @ IN SOA srv1.komtek.dp.ua. root.mail.komtek.dp.ua. ( 960218 3600 600 3600000 86400 ) NS srv1.komtek.dp.ua. 1 PTR gw.komtek.dp.ua. 12.170.194.in-addr.arpa. PTR gw.komtek.dp.ua. 2 PTR srv1.komtek.dp.ua. 3 PTR host1.komtek.dp.ua. 4 PTR host2.komtek.dp.ua. ; /etc/named.rev2 @ IN SOA srv1. komtek.dp.ua.. root.mail. komtek.dp.ua. ( 970205 3600 600 3600000 86400 ) NS srv1.komtek.dp.ua. 1 PTR host3.komtek.dp.ua. 2 PTR mail.komtek.dp.ua. 3 PTR srv2.komtek.dp.ua. 4 PTR gw.komtek.dp.ua. 13.170.194.in-addr.arpa. PTR gw.komtek.dp.ua. ; /etc/named.local @ IN SOA srv1.komtek.dp.ua. root.mail.komtek.dp.ua. ( 960124 3600 600 3600000 86400 ) NS srv1.komtek.dp.ua. 1 PTR localhost ; /etc/named.ca . 999999 IN NS sri-nic.arpa. NS brl-aos.arpa. sri-nic.arpa. 999999 A 10.0.0.51 999999 A 26.0.0.73 brl-aos.arpa. 999999 A 192.5.25.82 999999 A 128.20.1.2
СОСТАВ И СОДЕРЖИМОЕ БАЗЫ DNS НА ВТОРИЧНОМ СЕРВЕРЕ SRV
; /etc/named.boot directory /etc domain komtek.dp.ua secondary komtek.dp.ua 194.170.12.2 named.data.bak secondary 12.170.194.in-addr.arpa 194.170.12.2 named.rev1.bak secondary 13.170.194.in-addr.arpa 194.170.12.2 named.rev2.bak primary 0.0.127.in-addr.arpa named.local ; выход в Internet cache . named.ca ; /etc/named.local @ IN SOA srv2.komtek.dp.ua. root.mail.komtek.dp.ua. ( 960124 3600 600 3600000 86400 ) NS srv2.komtek.dp.ua. 1 PTR localhost ; /etc/named.ca . 999999 IN NS sri-nic.arpa. NS brl-aos.arpa. sri-nic.arpa. 999999 A 10.0.0.51 999999 A 26.0.0.73 brl-aos.arpa. 999999 A 192.5.25.82 999999 A 128.20.1.2
Как для первичного, так и для вторичного сервера имен, в случае если локальная сеть не имеет выхода в Internet, следует убрать строку cache в файле /etc/named.boot и удалить файл /etc/named.ca.
Об именах и адресах серверов имен корневого домена, перечисленных в файле /etc/named.ca, необходимо справиться у Internet-провайдера. Кроме того, Internet-провайдер должен внести данные о серверах имен srv1.komtek.dp.ua и srv2.komtek.dp.ua в свою базу DNS, чтобы обеспечить доступ из Internet к машинам домена komtek.dp.ua.
Вспомогательный домен 0.0.127.in-addr.arpa, а также хост localhost (127.0.0.1) в каждой из зон необходимы для создания локальной "петли" TCP/IP.
Обратите внимание, что порядок записей в файлах базы DNS в общем случае значения не имеет, за исключением того, что запись SOA должна стоять первой в зоне управления.