Записи о ресурсах DNS
Файлы описания зон конкретизируют ресурсы DNS, составляющие данную зону. Так, например, в зонах прямого отображения основную массу записей составляют соответствия имен узлов их IP-адресам.
В файле конфигурации named.conf содержатся указатели на файлы описания зон. Эти указатели можно найти по ключевому слову zone. То есть имя зоны, заданное в файле named.conf, связано с файлом описания зоны директивой file.
Если в файле описания зоны требуется изменить текущее имя зоны (заданное в named.conf), то можно использовать директиву $ORIGIN (пример 26.2).
Пример 26.2. Директива $ORIGIN |
$ORIGIN class.edu.
В примере 26.2 текущего имени зоны установлено в class.edu.
Для обращения к текущему имени зоны в BIND используется специальный метасимвол @. То есть имя зоны, заданное в named.conf, либо заданное дирек- тивой $ORIGIN, может быть получено с помощью @.
Большинство записей в файлах описания зон является записями о ресурсах (resource record, RR). Эти записи составляют базу данных зоны и должны на- чинаться с первой позиции строки. Единственный символ, который применя- ется для установки комментариев — это точка с запятой (;). Части строк, на- ходящиеся правее этого символа, не интерпретируются сервером BIND.
Записи RR имеют пять полей: имя, время жизни, класс, тип и поле данных. Поле времени жизни часто опускают, используя TTL по умолчанию. Поле данных также может быть разделено на несколько подполей. В поле имени указывают наименование ресурса. Поле "класс" практически всегда имеет значение IN (Internet), а поле "тип" указывает тип записи о ресурсах.
Директива $TTL — это время жизни ресурсов в кэше по умолчанию (при-
мер 26.3).
Пример 26.3. Директива $TTL |
$TTL 1D
В данном случае указано время жизни TTL, равное суткам.
Файлы описания зон чаще всего содержат следующие типы записей о ре- сурсах:
r SOA (Start of Authority) — определяет зону полномочий сервера. После этой записи всегда следуют записи RR, описывающие зону, за которую данный сервер отвечает, как мастер-сервер;
r NS (Name Server) — для перечисления DNS-серверов данной зоны;
r A (Address) — устанавливают соответствие между именем хоста и его IP- адресом. Эти записи необходимы для обеспечения прямого разрешения имен (из имени в IP-адрес) и встречаются только в файлах зон прямого отображения;
r PTR (Pointer) — предназначены для установления обратного соответствия IP-адресов DNS-именам хостов. Эти записи участвуют в процедуре обрат- ного разрешения (из адреса в имя) и встречаются в файлах зон обратного отображения;
r CNAME (Canonical Name) — используются для установки псевдонимов имен хостов. Они позволяют задать для хоста несколько альтернативных имен;
r MX (Mail Exchanger) — определяют серверы электронной почты (SMTP-
агенты), обслуживающие данную зону или узел.
Далее представлен пример 26.4 описания зоны прямого соответствия для зо- ны localhost, т. е. приведено содержание файла db.localhost.
Пример 26.4. Зона прямого отображения для localhost |
$TTL 86400
@ IN SOA localhost. root.localhost. ( 2009122001 ; s/n
1W ; refresh
1D ; retry
2W ; expire
1H ; negative TTL
)
IN NS localhost. IN A 127.0.0.1
Запись SOA имеет несколько полей данных (они начинаются сразу после надписи SOA), которые могут быть записаны в одну строку, однако традици- онно они размещаются вертикально и экранируются круглыми скобками.
Поля данных SOA:
r имя мастер-сервера, обслуживающего данную зону. Для зоны localhost,
естественно, имя сервера тоже localhost;
r почтовый адрес администратора сервера, в котором вместо привычного символа @ — разделителя имени пользователя и доменной части использу- ется символ "точка", т. к. @ имеет особый смысл;
r последовательный номер (serial number, s/n), необходимый для подчи- ненных серверов. Они ориентируются по нему, не производились ли из- менения в зоне. Если да, то должен быть произведен трансфер зоны. Этот номер всегда растет;
r периодичность опроса подчиненных серверов мастер-сервером на предмет проверки, не изменился ли последовательный номер (refresh). То есть не надо ли произвести трансфер зоны. Может быть указан в секундах. В дан- ном примере: 1W — одна неделя;
r периодичность повторного опроса в случае неудачи (retry). Если мастер- сервер в момент очередной проверки оказался не доступен, то с заданной периодичностью проводятся повторные попытки проверки;
r время устаревания данных зоны на подчиненных серверах (expire). Если мастер-сервер так и не ответил за указанное время, то по прошествии его информация о зоне на подчиненном сервере стирается;
r время жизни записей о неудачах разрешения имен (negative TTL).
Далее приведена запись NS, в первом поле которой необходимо указать имя зоны. Эта запись задает имя сервера имен для данной зоны. Их может быть несколько (обычно не более десяти), в таком случае в файле описания зоны указывают сра- зу несколько записей типа NS — по одной для каждого сервера имен.
В примере 26.4 первое поле записи NS пустое. В таком случае BIND автома- тически подставляет значение первого поля предыдущей записи RR. В нашем случае предыдущая запись — это запись SOA. В ее первом поле указан символ
@, т. е. текущее имя зоны (в данном случае — localhost). Поэтому запись NS
здесь, фактически, выглядит так, как показано в примере 26.5.
Пример 26.5. Запись NS для зоны localhost |
localhost. IN NS localhost.
Обратите особое внимание на точки, завершающие имена. Если этих точек не будет, то BIND автоматически подставит к именам узлов имя текущего доме- на, что в данном случае приведет к ошибке.
Последняя запись в данном файле типа A устанавливает прямое соответствие имени узла его IP-адресу. В примере 26.6 показано, как выглядит запись A для localhost с учетом автоматической подстановки в первом поле.
Пример 26.6. Запись A для localhost |
localhost. IN A 127.0.0.1
То есть имени localhost соответствует адрес 127.0.0.1.
Далее приведен пример 26.7 зоны обратного отображения для адреса
127.0.0.1, т. е. распечатано содержимое файла db.127.0.0.1.
Пример 26.7. Зона обратного отображения для localhost |
$TTL 86400
@ IN SOA localhost. root.localhost. ( 2009122001 ; s/n
1W ; refresh
1D ; retry
2W ; expire
1H ; negative TTL
)
IN NS localhost.
1 IN PTR localhost.
В примере 26.7 новой является лишь запись типа PTR, задающая обратное соответствие. В ее первом поле находится последняя цифра IP-адреса, к ко- торой добавляется имя текущего домена. Здесь оно — 0.0.127.in-addr.arpa. То есть последняя запись выглядит так, как показано в примере 26.8.
Пример 26.8. Запись PTR для localhost |
1.0.0.127.in-addr.arpa. IN PTR localhost.
Рассмотрим теперь содержимое файла db.class.edu для зоны прямого соот- ветствия class.edu (пример 26.9).
Пример 26.9. Зона прямого отображения class.edu |
$TTL 86400
@ IN SOA ns1 root.ns1 ( 2009122001 ; s/n
1W ; refresh
8H ; retry
1D ; expire
1H ; negative TTL
)
IN NS ns1.class.edu.
IN NS ns.provider.net.
IN MX 10 relay.class.edu. ns1 IN A 192.168.2.253 relay IN A 192.168.2.254 murr IN A 192.168.2.252
www IN CNAME murr
$GENERATE 1-251 ws$ A 192.168.2.$
В этом примере указаны два сервера имен, обслуживающих данную зону. Мастер-сервер указан в записи SOA — ns1.class.edu. Подчиненный сервер принадлежит провайдеру, что является распространенной практикой.
Запись MX указывает на почтовый сервер, обслуживающий данную зону — relay.class.edu. Число 10 в этой записи указывает уровень приоритета серве- ра, который актуален при наличии нескольких почтовых серверов для зоны. Чем меньше число в данном случае, тем выше приоритет почтового сервера.
Записи типа A задают прямое отображение имен узлов на их IP-адреса. Для одного из узлов — murr.class.edu с помощью записи типа CNAME указан псевдоним www.
Директива $GENERATE исключительно удобна для массового сопоставления единообразных имен узлов их IP-адресам. Запись с этой директивой заменяет множество записей типа A. То же самое можно было сделать, 251 раз написав строки RR показанного в примере 26.10 вида.
Пример 26.10. Генерируемые директивой $GENERATE записи RR |
ws1 IN A 192.168.2.1 ws2 IN A 192.168.2.2 ws3 IN A 192.168.2.3
...
ws251 IN A 192.168.2.251
Пример 26.11 — это содержимое файла db.192.168.2 зоны обратного соответ- ствия для сети 192.168.2.0 (зона 2.168.192.in-addr.arpa).
Пример 26.11. Зона обратного отображения для class.edu |
$TTL 86400
@ IN SOA ns1.class.edu. root.ns1.class.edu. ( 2009122001 ; s/n
1W ; refresh
8H ; retry
1D ; expire
1H ; negative TTL
)
IN NS ns1.class.edu.
254 IN PTR relay.class.edu.
253 IN PTR ns1.class.edu.
252 IN PTR murr.class.edu.
$GENERATE 1-251 $ PTR ws$.class.edu.
Легко заметить, что в этом файле преобладают записи обратного отображе- ния типа PTR. Обратное отображение для множества названных единообразно узлов также осуществляется с помощью директивы $GENERATE.
Последний файл описания ресурсов, используемый в этом примере, — это файл указателей на корневые серверы db.root (пример 26.12).
Пример 26.12. Зона указателей на корневые серверы (фрагмент) |
; formerly NS.INTERNIC.NET
;
. | IN | NS | A.ROOT-SERVERS.NET. | |
A.ROOT-SERVERS.NET. | A | 198.41.0.4 | ||
; | ||||
; formerly NS1.ISI.EDU | ||||
; | ||||
. | NS | B.ROOT-SERVERS.NET. | ||
B.ROOT-SERVERS.NET. | A | 126.9.0.107 |
В этом файле указаны серверы имен корневого домена и их IP-адреса.
В заключение этого раздела следует отметить, что в состав BIND 9 включена удобная утилита для проверки файлов описания зон — named-checkzone. С ее помощью можно отыскивать синтаксические ошибки в описаниях зон.
Дата добавления: 2015-06-12; просмотров: 835;