Инструменты пользователя

Инструменты сайта


freebsd:bind9

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
freebsd:bind9 [2020/11/22 11:09]
alex
freebsd:bind9 [2022/01/08 15:27] (текущий)
alex
Строка 3: Строка 3:
  
  
-==== Ведение журналов,​ сбор статистики и отладка ==== 
  
-Утверждение **logging** позволяет задать произвольное число способов записи в журнал с помощью предложений **channel** и привязать различные категории сообщений к каналам с помощью предложений **category**. 
- 
-В предложении **channel** задается имя канала,​ способ записи (в файл с ограничением его размера (можно использовать масштабирующие коэффициенты K, M и G) и числа версий,​ syslog, stderr, null), фильтр (минимальный уровень серьезности сообщений для вывода через этот канал) и формат вывода (выводить ли в каждое сообщение имя категории,​ уровень серьезности и метку времени;​ по умолчанию - нет): 
- 
-  channel имя-канала { 
-       ( file имя-файла 
-           [ versions ( число | unlimited ) ] 
-           [ size максимальный-размер ] 
-         | syslog syslog_facility 
-         | stderr 
-         | null ); 
-       [ severity (critical | error | warning | notice | 
-                   info | debug [ уровень ] | dynamic ); ] 
-       [ print-category yes-или-no;​ ] 
-       [ print-severity yes-или-no;​ ] 
-       [ print-time yes-или-no;​ ] 
-     }; 
-Версии файла (file, file.0, file.1 и т.д.) перенумеровываются при каждом открытии (кстати,​ а когда он открывается?​),​ если максимальный размер файла не задан. Если задан и размер и число версий,​ то перенумеровывание при открытии происходит только при превышении этого размера. Если при записи в файл его максимальный размер будет превышен,​ то при указании числа версий происходит перенумерация файлов и открывается новый, если число версий не указано,​ то запись в файл просто прекращается. 
- 
-Режим отладки задается либо при запуске (ключ -d), либо командой trace программы rndc (выключается командой rndc notrace). Команда trace позволяет указать уровень отладки (чем больше уровень,​ тем более подробная отладочная информация выдается,​ уровень 3 достаточно болтлив). При указании фильтра (severity) можно указать определенный уровень отладки (debug [ уровень ]) для включения отладочной печати данного уровня (и ниже) независимо от уровня отладки сервера (лишь бы ее включили) или указать ключевое слово dynamic для отладочной печати уровня,​ совпадающего с уровнем отладки сервера. 
- 
-В предложении **category** задается имя категории и список ранее определенных каналов,​ через которые будут выводиться сообщения данной категории:​ 
- 
-  category имя-категории { 
-       ​имя-канала ; [ имя-канала ; ... ] 
-     }; 
-Определены следующие категории:​ 
- 
-  * default (определяет каналы для тех категорий,​ каналы для которых не определены явно; queries при этом не включается) 
-  * general (неотсортированные в другие категории сообщения) 
-  * database (хранение зон и кеш) 
-  * security (при уровне отладки 3 - разрешения и запрещения,​ наличие подписей) 
-  * config (разбор файла настройки) 
-  * resolver (выполнение рекурсивных запросов клиентов,​ обращение к другим серверам,​ объем выдачи зависит от уровня отладки) 
-  * xfer-in 
-  * xfer-out 
-  * notify 
-  * client (обработка клиентских запросов и посылка ответов,​ уровень отладки 3) 
-  * unmatched (отсутствует класс или view) 
-  * network 
-  * update 
-  * queries (включается командой rndc querylog; явная привязка этой категории к каналам также включает трассировку - severity info) 
-  * dispatch (передача запросов между модулями bind) 
-  * dnssec 
-  * lame-servers (severity info) 
-  * delegation-only (ответы NXDOMAIN в результате действия опции delegation-only) 
-Переопределять каналы (в т.ч. встроенные) нельзя,​ но можно привязать категории к новым каналам. Сообщения об ошибках синтаксиса файла настройки и о запуске сервера записываются как будто утверждение logging отсутствует (так что syslog:​daemon тоже надо просматривать регулярно). По умолчанию принимается следующая настройка записи в журнал:​ 
- 
-  logging { 
-    channel default_syslog { 
-      syslog daemon; 
-      severity info; 
-    }; 
-    channel default_debug { 
-      file "​named.run";​ 
-      severity dynamic; 
-    }; 
-    channel default_stderr { 
-      stderr; 
-      severity info; 
-    }; 
-    channel null { 
-     null; 
-    }; 
-    category default { default_syslog;​ default_debug;​ }; 
-    category unmatched { null; }; 
-  }; 
-Количество статистической информации,​ собираемой BIND 9 сильно уменьшилось о сравнению с предыдущими версиями. Накопленная статистика добавляется командой rndc stats к файлу named.stats в рабочей директории (options, directory), очередной раздел обрамляется строками "​Statistics Dump" с указанием времени в формате UNIX: 
- 
-  * success - число запросов,​ не вызвавших ошибок или возврата клиенту ссылки 
-  * referral - число запросов,​ на которые сервер вернул клиенту ссылки 
-  * nxrrset - несуществующих записей запрошенного типа для доменного имени 
-  * nxdomain - несуществующих доменных имен 
-  * recursion - число запросов,​ потребовавших рекурсивной обработки 
-  * failure - число ошибок,​ кроме nxrrset и nxdomain 
-Общее число запросов к серверу равно success + referral + nxrrset + nxdomain + failure. Статистика может собираться отдельно по зонам и видам, в этом случае имена зоны и вида (опускается для вида default) приводятся в конце каждой строки. 
- 
-Запуск сервера 
- 
-Рекомендуется создать специальную группу named и пользователя named для запуска сервера. Перед запуском необходимо отредактировать /​etc/​named.conf,​ файлы зон и установить соответствующие права доступа к ним и прочим файлам,​ имеющим отношение к серверу (простой пример). Если необходимо управление сервером с помощью программы rndc, то необходимо также отредактировать /​etc/​rndc.conf. Ключи запуска:​ 
- 
-  * -c имя-файла-настройки (полное имя файла) 
-  * -d уровень-отладки 
-  * -f (не уходить в фоновый режим при запуске) 
-  * -g (не уходить в фоновый режим при запуске,​ вся отладочная печать на stderr) 
-  * -p номер-обслуживаемого-порта 
-  * -u идентификатор-пользователя (сменить эффективный идентификатор пользователя с root на указанный как можно скорее после запуска) 
  
  
Строка 403: Строка 315:
 Чтобы принять 2 вида зоны slave сервер должен иметь 2 адреса,​ на которые будут передаваться различные виды. Чтобы принять 2 вида зоны slave сервер должен иметь 2 адреса,​ на которые будут передаваться различные виды.
  
 +=== Работа в chroot окружении ===
 Для работы в chroot окружении в **/​etc/​rc.conf** добавляю:​ Для работы в chroot окружении в **/​etc/​rc.conf** добавляю:​
  
Строка 585: Строка 498:
 **blackhole**:​ указывает список хостов,​ которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером. **blackhole**:​ указывает список хостов,​ которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером.
  
 +==== Ведение журналов,​ сбор статистики и отладка ====
  
-  ​* **named-checkzone** – проверяет синтаксис и целостность файлов зон. Такие же проверки выполняются каждый раз ​перед их загрузкой ​bind’ом. Но считаю полезным все-таки ​это делать перед их загрузкой сервером имен+Утверждение ​**logging** позволяет ​задать произвольное число способов записи в журнал с помощью предложений **channel** и привязать различные ​категории ​сообщений к каналам ​с помощью предложений **category**. 
-  * **named-compilezone** – выполняет ​более строгие проверки, чем named-checkzone, ​т.кв результате ее работы сформируется дамп актуальных зон, который в свою очередь ​будут использоваться named. + 
-  * **named-checkconf** – утилита проверки ​файла-конфигурации named.conf+В предложении **channel** задается имя канала, способ записи (в файл с ограничением его размера (можно использовать масштабирующие коэффициенты K, M и G) и числа версий, syslog, stderr, null), фильтр (минимальный уровень серьезности сообщений для вывода через этот ​канал) ​и формат вывода (выводить ли в каждое сообщение имя категории,​ уровень серьезности и метку ​времени; ​по умолчанию - нет): 
 + 
 +  channel имя-канала { 
 +       ( file имя-файла 
 +           [ versions ( число | unlimited ) ] 
 +           [ size максимальный-размер ] 
 +         | syslog syslog_facility 
 +         | stderr 
 +         | null ); 
 +       [ severity (critical | error | warning | notice | 
 +                   info | debug [ уровень ] | dynamic ); ] 
 +       [ print-category yes-или-no;​ ] 
 +       [ print-severity yes-или-no;​ ] 
 +       [ print-time yes-или-no;​ ] 
 +     }; 
 +Версии файла (file, file.0, file.1 и т.д.) перенумеровываются ​при ​каждом открытии (кстати,​ а когда он открывается?​),​ если максимальный размер файла не задан. Если задан и размер и число версий,​ то перенумеровывание при открытии происходит только при превышении этого размера. Если при записи в файл его максимальный размер будет превышен,​ то при указании числа версий происходит перенумерация файлов и открывается новый, если ​число версий не указано, ​то запись в файл просто прекращается. 
 + 
 +Режим отладки задается либо при ​запуске (ключ -d), либо командой trace программы rndc (выключается командой rndc notrace). Команда trace позволяет указать уровень отладки (чем больше уровень, ​тем более подробная отладочная информация выдается, уровень 3 достаточно болтлив). При указании фильтра (severity) можно указать ​определенный уровень отладки (debug [ уровень ]) для включения отладочной печати данного уровня (и ниже) независимо от уровня отладки сервера (лишь бы ее включили) или указать ​ключевое слово dynamic для отладочной печати уровня, совпадающего с уровнем отладки сервера
 + 
 +В предложении ​**category** задается имя категории и список ранее определенных каналов, через которые будут выводиться сообщения данной категории:​ 
 + 
 +  category имя-категории { 
 +       ​имя-канала ; [ имя-канала ; ... ] 
 +     }; 
 +Определены следующие категории: 
 + 
 +  * default (определяет каналы для тех категорий, каналы для которых не определены явно; queries при этом не включается) 
 +  * general (неотсортированные в другие ​категории сообщения) 
 +  * database (хранение зон и кеш) 
 +  * security (при уровне отладки 3 - разрешения и запрещенияналичие подписей) 
 +  * config (разбор файла настройки) 
 +  * resolver (выполнение ​рекурсивных запросов клиентов, обращение к другим серверам, объем выдачи зависит от уровня отладки
 +  * xfer-in 
 +  * xfer-out 
 +  * notify 
 +  * client (обработка клиентских запросов и посылка ответов, ​уровень отладки 3) 
 +  * unmatched (отсутствует класс или view) 
 +  * network 
 +  * update 
 +  * queries (включается ​командой rndc querylog; явная привязка этой ​категории к каналам также включает трассировку - severity info) 
 +  * dispatch (передача запросов между модулями bind) 
 +  * dnssec 
 +  * lame-servers (severity info) 
 +  * delegation-only (ответы NXDOMAIN в результате действия опции delegation-only) 
 +Переопределять каналы (в т.ч. встроенные) нельзяно можно привязать категории к новым каналам. Сообщения об ошибках синтаксиса файла настройки и о запуске сервера записываются как будто утверждение logging отсутствует (так что syslog:​daemon тоже надо просматривать регулярно). По умолчанию принимается следующая настройка записи в журнал:​ 
 + 
 +  logging { 
 +    channel default_syslog { 
 +      syslog daemon; 
 +      severity info; 
 +    }; 
 +    channel default_debug { 
 +      file "​named.run";​ 
 +      severity dynamic; 
 +    }; 
 +    channel default_stderr { 
 +      stderr; 
 +      severity info; 
 +    }; 
 +    channel null { 
 +     ​null;​ 
 +    }; 
 +    category default { default_syslog;​ default_debug;​ }; 
 +    category unmatched { null; }; 
 +  }; 
 +Количество статистической информации,​ собираемой BIND 9 сильно уменьшилось о сравнению с предыдущими версиями. Накопленная статистика добавляется командой rndc stats к файлу ​named.stats в рабочей директории (options, directory), очередной раздел обрамляется строками "​Statistics Dump" с указанием времени в формате UNIX: 
 + 
 +  * success - число запросов,​ не вызвавших ошибок или возврата клиенту ссылки 
 +  ​referral ​число запросов,​ на которые сервер вернул клиенту ссылки 
 +  ​nxrrset - несуществующих записей запрошенного типа для доменного ​имени 
 +  * nxdomain - несуществующих доменных имен 
 +  * recursion - число запросов, потребовавших ​рекурсивной обработки 
 +  * failure ​число ошибок, кроме nxrrset ​и nxdomain 
 +Общее число запросов к серверу равно success + referral + nxrrset + nxdomain + failure. Статистика может собираться отдельно по зонам и видам, в этом случае имена зоны и вида (опускается для вида default) приводятся в конце каждой строки.
  
 ==== Домен 4-го уровня ==== ==== Домен 4-го уровня ====
Строка 595: Строка 582:
  
 ==== Проверка ==== ==== Проверка ====
 +  * **named-checkzone** – проверяет синтаксис и целостность файлов зон. Такие же проверки выполняются каждый раз перед их загрузкой bind’ом. Но считаю полезным все-таки это делать перед их загрузкой сервером имен. 
 +  * **named-compilezone** – выполняет более строгие проверки,​ чем named-checkzone,​ т.к. в результате ее работы сформируется дамп актуальных зон, который в свою очередь будут использоваться named. 
 +  * **named-checkconf** – утилита проверки файла-конфигурации named.conf
 Проверяю конфигурационный файл на ошибки Проверяю конфигурационный файл на ошибки
  
   named-checkconf /​usr/​local/​etc/​namedb/​named.conf   named-checkconf /​usr/​local/​etc/​namedb/​named.conf
  
-Файл зоны ​можно проверить так+Проверяю файл зоны на ошибки
-команда Имя Зоны Путь к зоне+
   named-checkzone mgmt.klotik.ru /​usr/​local/​etc/​namedb/​master/​mgmt.klotik.ru   named-checkzone mgmt.klotik.ru /​usr/​local/​etc/​namedb/​master/​mgmt.klotik.ru
   zone mgmt.klotik.ru/​IN:​ loaded serial 2020021300   zone mgmt.klotik.ru/​IN:​ loaded serial 2020021300
Строка 607: Строка 595:
  
 ==== Запуск ==== ==== Запуск ====
 +
 +Рекомендуется создать специальную группу named и пользователя named для запуска сервера. Перед запуском необходимо отредактировать /​etc/​named.conf,​ файлы зон и установить соответствующие права доступа к ним и прочим файлам,​ имеющим отношение к серверу (простой пример). Если необходимо управление сервером с помощью программы rndc, то необходимо также отредактировать /​etc/​rndc.conf. Ключи запуска:​
 +
 +  * -c имя-файла-настройки (полное имя файла)
 +  * -d уровень-отладки
 +  * -f (не уходить в фоновый режим при запуске)
 +  * -g (не уходить в фоновый режим при запуске,​ вся отладочная печать на stderr)
 +  * -p номер-обслуживаемого-порта
 +  * -u идентификатор-пользователя (сменить эффективный идентификатор пользователя с root на указанный как можно скорее после запуска)
  
   /​usr/​local/​etc/​rc.d/​named start   /​usr/​local/​etc/​rc.d/​named start
Строка 684: Строка 681:
 Файл настройки rndc (/​etc/​rndc.conf) имеет такой же синтаксис,​ что и named.conf. Комментарии могут записываться в стиле C, C++ или sh. Файл настройки состоит из утверждений,​ завершающихся точкой с запятой. Утверждения содержат блок предложений,​ заключенный в фигурные скобки. Предложение в блоке также завершается точкой с запятой. Права на чтение этого файла должны быть только у того, кто имеет право запускать rndc. Предусматириваются следующие типы утверждений:​ Файл настройки rndc (/​etc/​rndc.conf) имеет такой же синтаксис,​ что и named.conf. Комментарии могут записываться в стиле C, C++ или sh. Файл настройки состоит из утверждений,​ завершающихся точкой с запятой. Утверждения содержат блок предложений,​ заключенный в фигурные скобки. Предложение в блоке также завершается точкой с запятой. Права на чтение этого файла должны быть только у того, кто имеет право запускать rndc. Предусматириваются следующие типы утверждений:​
  
-options { +  ​options { 
-default-server имя-или-адрес-сервера;​ +  default-server имя-или-адрес-сервера;​ 
-default-key "​имя-ключа";​ +  default-key "​имя-ключа";​ 
-default-port номер-управляющего-порта;​ +  default-port номер-управляющего-порта;​ 
-+  
-server имя-или-адрес-сервера { // адрес в двойных кавычках +  server имя-или-адрес-сервера { // адрес в двойных кавычках 
-key "​имя-ключа";​ +  key "​имя-ключа";​ 
-port номер-управляющего-порта;​ +  port номер-управляющего-порта;​ 
-+  
-key "​имя-ключа"​ +  key "​имя-ключа"​ 
-algorithm hmac-md5; +  algorithm hmac-md5; 
-secret "​base-64-кодированный-ключ";​ +  secret "​base-64-кодированный-ключ";​ 
-+  
-Утилита rndc-confgen позволяет сгенерировать /​etc/​rndc.conf со случайным ключом (и закоментаренные предложения controls и key для /​etc/​named.conf). Следующими ключами можно модифицировать получаемый файл:+Утилита rndc-confgen позволяет сгенерировать /​etc/​rndc.conf со случайным ключом (и закомментированные предложения controls и key для /​etc/​named.conf). Следующими ключами можно модифицировать получаемый файл:
  
--b размер-ключа (по умолчанию - 128; от 1 до 512) +  * -b размер-ключа (по умолчанию - 128; от 1 до 512) 
--k имя-ключа (по умолчанию - rndc-key) +  ​* ​-k имя-ключа (по умолчанию - rndc-key) 
--p номер-управляющего-порта (по умолчанию - 953) +  ​* ​-p номер-управляющего-порта (по умолчанию - 953) 
--s имя-или-адрес-сервера (по умолчанию - 127.0.0.1)+  ​* ​-s имя-или-адрес-сервера (по умолчанию - 127.0.0.1)
 Утилита rndc позволяет менять параметры соединения с сервером с помощью ключей:​ Утилита rndc позволяет менять параметры соединения с сервером с помощью ключей:​
  
--c имя-файла-настройки +  * -c имя-файла-настройки 
--s имя-или-адрес-сервера +  ​* ​-s имя-или-адрес-сервера 
--p номер-управляющего-порта +  ​* ​-p номер-управляющего-порта 
--y имя-ключа +  ​* ​-y имя-ключа 
--V (трассировка исполнения для отладки)+  ​* ​-V (трассировка исполнения для отладки)
 Если запустить rndc без указания команды,​ то она выдаст список поддерживаемых команд:​ Если запустить rndc без указания команды,​ то она выдаст список поддерживаемых команд:​
  
Строка 791: Строка 788:
 https://​toster.ru/​q/​67146\\ https://​toster.ru/​q/​67146\\
 https://​miac.volmed.org.ru/​wiki/​index.php/​%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_(named9)\\ https://​miac.volmed.org.ru/​wiki/​index.php/​%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_(named9)\\
 +https://​freebsdguide.ru/​_14/​_7\\
 http://​freebsdguide.ru/​_14/​_8\\ http://​freebsdguide.ru/​_14/​_8\\
 http://​www.bog.pp.ru/​work/​bind.html http://​www.bog.pp.ru/​work/​bind.html
 +
  
  
freebsd/bind9.1606043356.txt.gz · Последние изменения: 2020/11/22 11:09 — alex