Файл зоны
Файл зоны — это обычный текстовый файл, который может быть изменен при помощи любого текстового редактора. Ниже приведен пример файла зоны сразу после ее создания.
;
; Database file test.fio.ru.dns for test.fio.ru zone.
; Zone version: 1;
@ IN SOA mcio-08kwa653t4.fio.ru. admin.fio.ru. (
1 ; serial number
900 ; refresh
600 ; retry
86400 ; expire
3600 ) ; minimum TTL;
; Zone NS records
;
@ NS mcio-08kwa653t4.fio.ru.
;
; Zone records
;
Файл зоны состоит из множества записей, причем одна запись обычно занимает одну строку. Строки, начинающиеся с точки с запятой, являются комментариями и не анализируются DNS-сервером.
Любой файл зоны должен содержать как минимум следующее:
- одну запись Start Of Authority (SOA), содержащую параметры зоны;
- не менее одной записи Name Server (NS), содержащей адреса DNS-серверов, ответственных за хранение и обслуживание зоны;
- не менее одной записи Host (A), содержащей информацию о соответствии имени DNS-сервера, указанного в каждой записи NS, его IP-адресу.
Записи зон
При создании и изменении зоны вы чаще всего будете использовать следующие типы записей:
Тип записи | Назначение записи |
Start Of Authority (SOA) | Описывает зону и ее параметры. В файле зоны встречается однократно и не требует редактирования вручную |
Name Server (NS) | Описывает один DNS-сервер |
Host (A) | Описывает соответствие имени хоста его IP-адресу. Используется часто |
Canonical Name (CNAME) | Описывает альтернативное имя для уже существующего хоста |
Mail Exchanger (MX) | Описывает почтовый хост, обрабатывающий электронную почту домена |
Pointer (PTR) | Описывает соответствие IP-адреса имени хоста. Используется в зонах обратного просмотра |
Service Location (SRV) | Описывает сервисы, предоставляемые хостами |
Для создания и изменения записей зон можно использовать как инструменты с графическим интерфейсом, так и редактировать файл зоны вручную в любом текстовом редакторе.
Внимание!
После внесения изменений в файл зоны в текстовом редакторе перезапустите службу DNS-сервера, чтобы загрузить новый файл зоны в память.
Общий синтаксис записей зон
Любая DNS-запись имеет следующий вид:
владелец [класс] [TTL] тип данные
Описание полей DNS-записи приведено в таблице.
Поле | Описание |
владелец | Относительное или полное имя записи. Если значение этого поля совпадает с именем зоны, то вы можете использовать символ @ вместо полного имени зоны |
класс | Определяет класс, к которому принадлежит запись. Например, IN указывает, что запись принадлежит к классу записей Интернет-ресурсов. Это единственный класс записей, поддерживаемых DNS-сервером, входящим в состав Windows 2000. В связи с этим в любой записи поле класса может быть опущено, хотя стандарт DNS требует обязательного указания класса записи |
TTL | Определяет время жизни конкретной записи в кэше других DNS-серверов. Является необязательным для большинства типов записей. Если поле TTL у записи опущено, то берется соответствующее значение из параметров зоны (запись SOA). Для того, чтобы предотвратить кэширование записи указывайте значение 0 в качестве TTL |
тип | Обязательное поле, содержащее один из стандартных текстовых идентификаторов, определяющих тип записи |
данные | Обязательное поле, содержащее данные переменной длины. Формат данных определяется типом записи |
Поля записи разделяются любым количеством пробелов или символов табуляции.
Служебные записи (SOA и NS)
Каждый файл зоны должен содержать запись SOA, которая описывает зону, параметры ее синхронизации и параметры устаревания ее записей. Кроме того, зона должна содержать не менее одной записи NS, описывающей DNS-сервер [в нотации DNS они называются серверами имен (name server)], обслуживающий зону. Если серверов два или более, то один из них является основным, а все остальные — дополнительными. Все изменения в зоне производятся на основном сервере, после чего дополнительные самостоятельно получают ее измененную копию.
Большинство организаций, регистрирующих доменные имена, требуют наличия не менее двух обслуживающих зону DNS-серверов. Кроме того, для надежности эти серверы должны быть расположены в разных IP-сетях класса C.
Синтаксис записи NS
Название | Name Server |
Определена в | RFC 1035 |
Описание | Запись, указывающая один из серверов, обслуживающих зону. В виде NS-записей указываются все сервера (основной и дополнительные). Тот сервер, который указан в SOA-записи, считается основным, все остальные — дополнительными. |
Синтаксис | владелец [класс] [TTL] NS хост |
Параметры | Полное DNS-имя сервера, который должен быть определен в DNS. Допускается определение серверов в той же зоне, которую они обслуживают. |
Пример | @ NS mcio-08kwa653t4.fio.ru @ NS host1.test.fio.ru |
Синтаксис SOA-записи
Название | Start Of Authority |
Определена в | RFC 1035 |
Описание | Запись, описывающая зону ответственности. |
Синтаксис | владелец класс SOA первичный_сервер ответственный (редакция обновление повтор устаревание TTL) |
Параметры | Первичный сервер — полное имя сервера, содержащего основную копию зоны.Ответственный — почтовый адрес лица, ответственного за управление зоной. Символ @ в почтовом адресе заменяется на точку.Редакция — число, указывающее порядковый номер редакции зоны. При внесении любых изменений вручную необходимо увеличивать это число, т. к. дополнительные DNS-серверы определяют необходимость копирования зоны именно по этому параметру. При изменении зоны через Консоль управления это число увеличивается автоматически.Обновление — интервал в секундах, в течение которого дополнительные DNS-серверы ожидают, прежде чем отправить запрос об изменении зоны. По истечении этого интервала дополнительный DNS-сервер запрашивает запись SOA с основного, проверяет в ней поле Редакция и определяет необходимость загрузки файла зоны. По умолчанию — 900 секунд (15 минут).Повтор — интервал в секундах, в течение которого дополнительные DNS-серверы ожидают, прежде чем произвести повторную попытку обновления зоны с основного сервера в случае неудачи предыдущей попытки. По умолчанию — 600 секунд (10 минут).Устаревание — интервал в секундах, по истечении которого информация зоны считается устаревшей. Этот параметр используется дополнительными серверами, которые перестают отвечать на запросы после того, как пройдет указанное количество времени с момента последнего успешного обновления. По умолчанию — 86 400 секунд (24 часа).TTL — минимальное время жизни записей зоны, для которых не указано индивидуальное значение. Используется для указания другим DNS-серверам и DNS-клиентам, в течение какого периода времени они могут кэшировать записи зоны. По умолчанию — 3 600 секунд (1 час). |
Пример | @ IN SOA mcio-08kwa653t4.fio.ru. admin.fio.ru. ( 1 900 600 86400 3600) |
Пример служебных записей зоны:
; Database file test.fio.ru.dns for test.fio.ru zone.
; Zone version: 2541744385
;
@ IN SOA ns1.test.fio.ru. admin.fio.ru. (
2541744385 ; serial number
10800 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; minimum TTL
;
; Zone NS records
;
@ NS ns1.test.fio.ru.
@ NS ns2.test.fio.ru.
@ NS ns2.fio.ru.
;
; Zone records
;
ns1 A 195.34.17.1
ns2 A 213.128.193.119
Записи хостов (A и PTR)
Для установления соответствия между именем хоста и его IP-адресом используется запись A, для обратного соответствия — запись PTR. Для одного и того же IP-адреса допустимо использование нескольких имен хостов, однако для одного IP-адреса рекомендуется использовать только одну запись PTR. Записи A используются в зонах прямого просмотра, PTR — в зонах обратного просмотра.
Синтаксис записи A
Название | Host Address |
Определена в | RFC 1035 |
Описание | Запись, устанавливающая соответствие имени определенному IP-адресу. |
Синтаксис | владелец [класс] [TTL] A IP_адрес |
Параметры | IP-адрес хоста. |
Пример | host1 IN A 192.168.0.1 |
Синтаксис AAAA-записи
Название | IPv6 Host Address |
Определена в | RFC 1886 |
Описание | Запись, устанавливающая соответствие имени определенному IP-адресу версии 6. |
Синтаксис | владелец [класс] [TTL] AААА IP_адрес_v6 |
Параметры | IP-адрес версии 6 хоста. |
Пример | host2 IN AAAA 4321:0:1:2:3:4:567:89ab |
Синтаксис PTR-записи
Название | Pointer |
Определена в | RFC 1035 |
Описание | Запись, устанавливающая соответствие IP-адреса доменному имени. Используется в зонах обратного просмотра |
Синтаксис | владелец [класс] [TTL] PTR имя |
Параметры | Полное DNS-имя хоста, соответствующего указанному IP-адресу. |
Пример | 1.0.168.192.in-addr.arpa PTR host1.test.fio.ru |
Записи A и PTR могут быть добавлены в зону следующим образом:
- можно вручную создать необходимые записи (A и PTR) для компьютеров со статическими IP-адресами;
- компьютеры, работающие под управлением Windows 2000 и использующие динамические IP-адреса, самостоятельно добавляют или изменяют необходимые записи (A и PTR) в зоне;
- для компьютеров, работающих под управлением более ранних версий Windows и использующих динамические IP-адреса, добавление или изменение необходимых записей (A и PTR) осуществляется DHCP-сервером из состава Windows 2000 Server.
Примечание
Записи A и PTR не требуются для всех компьютеров. Они необходимы только для компьютеров, предоставляющих свои ресурсы в совместное использование. Тем не менее при использовании домена Active Directory Windows 2000 создает запись A для каждого компьютера в домене.
Записи альтернативных имен (CNAME)
Записи альтернативных имен позволяют использовать два или более имен для одного хоста. Использование альтернативных имен отличается от использования нескольких записей A для одного IP-адреса.
Синтаксис CNAME-записи
Название | Canonical Name |
Определена в | RFC 1035 |
Описание | Указывает, что владелец записи является альтернативным именем, для DNS-имени, указываемого как параметр. |
Синтаксис | владелец [класс] [TTL] CNAME имя |
Параметры | Полное или относительное DNS-имя хоста. |
Пример | alias CNAME host1.test.fio.ru alias2 CNAME host2 |
Альтернативные имена используются для:
- изменения имени хоста, определенного при помощи записи A;
- задания привычных имен для хостов, предоставляющих определенные сервисы;
- распределения нагрузки между серверами, предоставляющими один и тот же сервис.
При изменении имени хоста, которое использовалось для обращения по сети, придерживайтесь следующей последовательности.
- cоздайте запись A с новым именем, указывающую на IP-адрес хоста;
- cоздайте запись CNAME со старым именем, указывающую на новое имя хоста;
- удалить запись A хоста со старым именем.
Придерживаясь этой практики, вы позволите обращаться к хосту и по старому, и по новому имени, а когда надобность в старом имени отпадет, достаточно удалить запись CNAME.
Использование записей CNAME для задания привычных имен хостов позволяет осуществлять прозрачное перемещение сервисов с одного хоста на другой, балансировку нагрузки между хостами, прозрачно для пользователей изменять IP-адреса хостов, предоставляющих сервисы.
Рассмотрим это на примере.
Изначально в сети существовал хост, предоставляющий Web- и FTP-сервисы. Соответствующие записи зоны имели следующий вид:
host-a IN A 10.0.0.20
www IN CNAME host-a
ftp IN CNAME host-a
Со временем было принято решение переместить FTP-сервер на отдельный хост. За счет использования записей CNAME это было сделано прозрачно для пользователей:
host-a IN A 10.0.0.20
host-b IN A 10.0.0.21
www IN CNAME host-a
ftp IN CNAME host-b
Со временем нагрузка на Web-сервер возросла, и было принято решение установить дополнительный Web-сервер, разделяя нагрузку между ними, что было сделано прозрачно для пользователей за счет записей CNAME:
host-a IN A 10.0.0.20
host-b IN A 10.0.0.21
host-c IN A 10.0.0.22
www IN CNAME host-a
www IN CNAME host-c
ftp IN CNAME host-b
Внимание!
Относитесь внимательно к удалению записей CNAME, которые ссылаются на уже несуществующие записи хостов. DNS-сервер не отслеживает взаимосвязи между записями, поэтому попытки разрешения записей CNAME, ссылающихся на несуществующие хосты, могут повысить нагрузку на DNS-сервер.
Записи почтовых хостов (MX)
Записи почтовых хостов домена используются почтовыми серверами и программами для определения хоста, на который должна быть отправлена почта. При этом почтовый сервер пытается найти запись MX в домене, имя которого получается отсечением от почтового адреса имени пользователя и символа @. Например, при отправке почты на адрес user1@fio.ru, поиск записи MX будет проводиться в домене fio.ru. Записи почтовых хостов указывают серверы, которые занимаются обработкой входящей почты для соответствующего домена. При наличии нескольких записей MX почтовый сервер пытается сначала использовать запись с наименьшим приоритетом.
Синтаксис записи MX
Название | Mail eXchanger |
Определена в | RFC 1035 |
Описание | Запись, указывающая на сервер, осуществляющий обработку и доставку входящей почты. |
Синтаксис | владелец [класс] [TTL] MX приоритет хост |
Параметры | Приоритет — число от 0 до 65535, определяющее приоритет сервера при наличии в зоне нескольких MX записей с одним именем. Обработка начинается с сервера с наименьшим приоритетом.Хост — полное или относительное имя хоста почтового сервера, который должен быть определен в DNS. |
Пример | test.fio.ru MX 10 host1.test.fio.ru @ MX 20 host1.test.fio.ru |
Рассмотрим пример:
@ IN MX 10 mailserver1
@ IN MX 20 mailserver2
Здесь будет сначала использован сервер mailserver1, а при невозможности отправить почту через него — mailserver2. Если и второй сервер будет недоступен, автору сообщения будет отправлено уведомление о невозможности доставки почты.
Записи сервисов (SRV)
Записи сервисов — это новая возможность, не так давно используемая в DNS. Однако в Windows 2000 они используются очень активно, в основном для обеспечения работы Active Directory. Вся информация о доменах AD, контроллерах доменов, серверах глобального каталога и прочих сервисах, необходимых для ее функционирования, хранится в DNS в виде записей SRV.
Синтаксис записи SRV
Название | Service locator |
Определена в | RFC 2052 |
Описание | Запись, определяющая сервера, предоставляющие определенные сервисы. |
Синтаксис | сервис.протокол.имя [класс] [TTL] SRV приоритет вес порт хост |
Параметры | Сервис — символьное имя сервиса. Имена для стандартных сервисов (_telnet, _smtp и т. п.) определены в RFC 1700.Протокол — символьное имя протокола. Обычно используются _tcp и _udp, хотя может быть использован любой протокол, определенный в RFC 1700 .Имя — доменное имя, которое будет использовано для поиска информации о сервисах.Приоритет — число от 0 до 65535, определяющее приоритет сервера, указываемого в поле хост , при использовании нескольких записей SRV с одинаковым именем.Вес — число от 1 до 65535, которое в дополнение к приоритету используется для балансировки нагрузки между несколькими серверами. Значение этого поля учитывается при использовании нескольких записей SRV с одинаковыми приоритетами. Если балансировка нагрузки не используется, в качестве веса указывается 0.Порт — число от 0 до 65535, определяющее номер порта сервера, через который предоставляется указанный сервис. Соответствие портов стандартным сервисам определено в RFC 1700 , хотя можно использовать другие невостребованные номера портов.Хост — полное или относительное имя хоста сервера, который предоставляет указанный сервис. Хост должен быть определен в DNS. Вместо имени хоста может быть указана точка, значит указанный сервис не предоставляется в соответствующем домене |
Пример | _ldap._tcp.ms-dcs SRV 0 0 389 host1.test.fio.ru_ldap._tcp.ms-dcs SRV 10 0 389 host1.test.fio.ru |
Так как все необходимые записи SRV создаются системой автоматически, вряд ли вам понадобится добавлять или настраивать их вручную. Для работы Active Directory используются динамически обновляемые зоны, все обновления в которые система вносит самостоятельно. Если ваша зона обслуживается сервером, не поддерживающим DDNS (допустим, старые версии DNS-серверов для платформы UNIX), можно добавить все необходимые записи SRV в зону из файла %systemroot%system32Confignetlogon.dns. Он обновляется каждый раз при внесении изменений в конфигурацию AD.