«DNS и BIND»
4. Установка BIND
Проверка имени узла
Если DNS-сервер имеет версию 4.9.4 или более позднюю (как в большинстве случаев), следует обратить пристальное внимание на имена узлов. Начиная с версии 4.9.4 BIND проверяет имена узлов на соответствие документу RFC 952. Несоответствие имени узла этому документу считается синтаксической ошибкой.
Прежде чем начать паниковать, следует осознать, что проверка применяется только к именам, которые считаются именами узлов. Вспомните, что RR-запись содержит поле имени и поле данных. Например:
<имя> <класс> <тип> <данные>
toystory IN A 192.249.249.3
Имена узлов встречаются в поле имени адресных (A) записей и MX-записей (которые рассмотрены в главе 5 «DNS и электронная почта»). Имена узлов также встречаются в поле данных записей типа SOA и NS. CNAME-записи не подчиняются правилам именования узлов, поскольку могут указывать на имена, не являющиеся именами узлов.
Рассмотрим правила именования узлов. Имена узлов могут содержать буквы и цифры в каждой из меток. Следующие имена узлов являются допустимыми:
ID4 IN A 192.249.249.10
postmanring2x IN A 192.249.249.11
Дефис внутри метки разрешен:
fx-gateway IN A 192.249.249.12
Недопустимо использование подчеркивания в именах узлов.
Имена, не являющиеся именами узлов, могут состоять из любых отображаемых ASCII-символов.
Если в поле данных RR-записи необходимо указать адрес электронной почты (как в SOA-записях), первая метка, которая не является именем узла, может содержать любые отображаемые символы, но все остальные метки должны соответствовать описанному синтаксису имен узлов. Так, почтовый адрес имеет следующий вид:
Почтовый адрес key_grip@movie.edu можно без проблем использовать в SOA-записи несмотря на подчеркивание. Не забывайте, что в почтовых адресах символ « @ » следует заменять символом « . » :
movie.edu. IN SOA toystory.movie.edu. key_grip.movie.edu. (
1 ; Порядковый номер
3h ; Обновление через 3 часа
1h ; Повторение попытки через 1 час
1w ; Устаревание через 1 неделю
1h ) ; Отрицательное TTL в 1 час
Этот вторичный этап проверки может привести к большим проблемам в случае обновления более старой либеральной версии BIND до новой консервативной, особенно в тех случаях, когда администраторами было стандартизировано использование подчеркиваний в именах узлов. Если необходимо отложить смену имен (вы ведь не забудете все же их поменять?), можно ограничиться выдачей простых предупреждающих сообщений вместо ошибок либо просто игнорированием неправильных имен. Следующий оператор в файле настройки превращает ошибки в предупреждающие сообщения:
options {
check-names master warn;
};
Предупреждающие сообщения заносятся в log-файл посредством syslog, инструмента, который мы затронем чуть позже. Следующий оператор в файле настройки позволяет полностью проигнорировать ошибки проверки имен:
options {
check-names master ignore;
};
Если неправильные имена принадлежат зоне, для которой ваш сервер является вторичным (и над которой у вас нет контроля), добавьте аналогичный оператор с ключевым словом slave вместо primary:
options {
check-names slave ignore;
};
А для имен, получаемых в качестве ответов на запросы, можно указать:
options {
check-names response ignore;
};
Установки BIND по умолчанию таковы:
options {
check-names master fail;
check-names slave warn;
check-names response ignore;
};
Проверку имен можно настраивать и отдельно для каждой зоны. И если значение для конкретной зоны указано, оно имеет более высокий приоритет, чем значение, определенное оператором options:
zone "movie.edu" in {
type master;
file "db.movie.edu";
check-names fail;
};
Строка options содержит три поля (check-names master fail), тогда как строка проверки для зоны только два (check-names fail). Это происходит потому, что строка оператора zone уже определяет контекст (зону, указанную этим оператором).
Добавить комментарий