ДНС

Не ламерский ДНС

Термины

ДНС-сервер называется ламерским, если он числится у регистратора в качестве авторитативного сервера для зоны, но файла описания зоны не хостит.
Зоны на хостящих ее серверах могут быть primary или slave

Авторитативный ДНС-сервер - сервер, на которм официально хостится файл описания зоны, то есть:

  1. на данном сервере работает служба ДНС, которая хостит файл описания зоны (к сведению, хостинг ДНС не зависит от хостинга веб-страниц)
  2. в описании зоны у SOA имеется запись типа NS об этом сервере.
  3. данный сервер числится у регистратора в качестве авторитативного сервера для зоны.

SOA (Start Of Authority) - сервер, на которм хостится оригинал файла описания зоны (primary). Вручную изменения в файл описания зоны вносятся только на SOA.

Остальные авторитативные ДНС-сервера начинает хостить slave описание зоны только после того, как скачают это описание у срвера SOA.

При внесении изменеий в файл описания зоны необходимо увеличить серийный номер описания зоны - иначе сервера, хостящие вторичную зону, не будут скачивать файл зоны, считая, что имеющийся у них в данный момент файл описания ничем не хуже.

Вторичная зона (slave zone) - размещенный на не-SOA сервере дубликат находящегося на SOA описания зоны. Вторичная зона должна создаваться авторитативным (не SOA) сервером автоматически.

Основы создания серверов ДНС

Разумеется, чтобы сервер (не являющийся SOA и изначально не имеющий файла описания зоны) начал работать в качестве авторитативного, надо, чтобы:

  1. в конфигурационном файле named.conf этого сервера была сделана запись о том, что на этом сервере хостится вторичная зона;
  2. файл описания зоны должен появиться на этом сервере.
    1. для этого, в конфигурационном файле named.conf уазывается, что мастером, хостящим SOA зоны, является такой-то сервер (обычно пишется айпишник).

Поскольку в настройках named.conf сервера, хостящего вторчную зону, указан IP-адрес SOA зоны, то этот сервер автоматически начнет скачивание зоны с SOA после того, как:

  1. в файле описания зоны в SOA будет сделана запись (тип записи NS) о том, что сервер, который будет скачивать зону, является NS-сервером зоны (т.е. авторитативным)
  2. в конфигурационном файле named.conf сервера, хостящего SOA, будет указано, что новому NS-серверу зоны разрешено скачивание файла описания зоны.

Рекомендуется сверять список ДНС-серверов зоны у регистратора с файлом описния зоны на ДНС-сервере, и, при расхождении, подправлять.
Надо иметь ввиду, что сервер, держащий мастер-описание зоны (SOA), уведомляет об изменении зоны только те сервера, которые числятся NS-серверами в имеющемся у него описании зоны. При уведомлении SOA-сервером других (slave) NS-серверов об изменении описания зоны, им игнорируются имеющиеся у регистратора сведения о DNS-серверах зоны.

Чтиво на NIC.RU

Дополнительные уведомления об изменении зоны (also-notify)

Если об изменении зоны надо также уведомлять серверы, не являющиеся авторитативными, то в named.conf в секцию, определяющую зону “example.ru”, следует воткнуть строку 'also-notify { ip.addr.or.acl; ip.addr.or.acl; };'.
Пример:

zone "example.ru" IN {
        type master;
        file "../master/example.ru.master";
        allow-transfer { trusted-servers; };
        allow-query { friendly-servers; };
        also-notify { 195.253.54.22; 195.253.51.22; 91.217.20.1; 91.217.21.1; };
        };

В данном примере приведены адреса для уведомления secondary ДНС-серверов от nic.ru
Также можно отключить все уведомления (NOTIFY operations), указав 'notify no' в секции, определяющей зону.

Ставим ДНС-сервер

Краткую инструкцию можно почитать тут:block2-dns_dhcp.pdf
Когда завелось, то в течение недели рекомендую прочитать Книгу про DNS, немного переосмыслить…
Моему админу рекомендую ничего не менять, либо посмотреть мои заметки, раздел про ДНС - там готовый конфиг. Остальным его видеть не положено.

Памятка PTR

Запрос реверсной зоны выглядит так: dig -x 87.255.21.22 @127.0.0.1

DNSSEC

Named Logging

Работает с BIND 9.0 и выше.
Перевод статьи отсюда: http://www.zytrax.com/books/dns/ch7/logging.html

logging {
   [ channel channel_name {
     ( file path name
         [ versions ( number | unlimited ) ]
         [ size size_spec ]
       | syslog syslog_facility
       | stderr
       | null );
     [ severity (critical | error | warning | notice |
                 info | debug [ level ] | dynamic ); ]
     [ print-category yes | no; ]
     [ print-severity yes | no; ]
     [ print-time yes | no; ]
   }; ]
   [ category category_name {
     channel_name ; [ channel_name ; ... ]
   }; ]
   ...
};
  • Каналы мы можем называть произвольно, если название канала не задано изначально; а что в этот канал отдается, определяет переменная category.
  • Параметр size задает размер логов; без буквы - в байатх, буквы k|K, m|M, g|G (без пробела) дают, соответственно, кб, Мб, или Гб. Пример - 25k, 5M
  • Когда логируем в файл (указывается путь к файлу), параметр versions означает количество хранящихся логов (аналогично newsyslog). Может принимать значения “число” или “unlimited”.
  • ВАЖНО Если задать размер, но не определить кол-во версий, то BIND перестанет логировать как только размер файла лога достигнет заданного значения. Это м.б. полезно при дебаге.
  • Если указать кол-во версий, но не задать размер, лог будет ротироваться только при перезапуске BIND.
  • Параметр print-time определяет, логируется ли время события. По умолчанию - no.
  • Изначально заданы следующие названия каналов:
    • default_syslog - отдает все в сислог;
    • default_debug - LOL
    • default_stderr - обычно в stderr в консоль;
    • null - DELETEME - посылает в /dev/null
  • Категория выбирается из следующего списка:
category Описание
client Обработка клиентских запросов
config Парсинг и обработка конфигурационных файлов (т.е. оч. мало)
database Сообщения, относящиеся к к используемым в сервере базам для хранения зоны и данных кэша.
default Логируются все данные, которые эксклюзивно не отнесены в иным категориям, т.е. если это единственная заданная категория, оно будет писать имено туда сообщения всех категорий, указанных в данной таблице, за исключением тех. которые отключены по умолчанию.
delegation-onlyЛогирует запросы, которые вернули NXDOMAIN в результате установки зоны delegation-only или того же параметра в поле hint или stub.
dispatch Перенаправление входящих пакетов другим модулям для обработки.
dnssec Обработка протоколов DNSSEC и TSIG.
general Все, что не классифицируется как другая категория в данном списке, относится сюда.
lame-servers Ламерские ДНС-сервера. Обнаруженная BIND 9 ошибка в конфигурации делегирования доменов, сервера которых делают вид, что дают авторитативные ответы. Если объем таких сообщений велик, многие предпочитают посылать их в ноль-канал, то есть в категорию lame-servers {null;}; .
network Логируются все сетевые операции (у меня почему-то пока ничего).
notify Логируются все операции уведомления типа NOTIFY, например, об изменении описания зоны и его серийного номера.
queries Логируются все запросы. Настройка querylog может использоваться для изменения этого значения. Данное значение может генерировать основной объем данных очень быстро. Эта категория не включена по умолчанию, и следовательно категория default не логирует эту информацию.
resolver Разрешение имен, включая рекурсивные запросы, проводимые по запросам клиентов кэширующего сервера.
rpz Все операции, относящиеся к обработке Распознавания Политики Зоны (RPZ). Даже если RPZ отключено (используя параметр policy disabled в установках response-policy statement, операция отрабатывает, логируется и отбрасывается (хотя реальный ответ возвращается пользователю).
security Подтверждение и отказ от запросов (оч.мало)
unmatched No matching view clause or unrecognized class value. A one line summary is also logged to the client category. By default this category is sent to the null channel.
update Логирование всех динамических обновлений (DDNS).
update-security Подтверждение или отказ от запросов об обновлений, использующих DDNS
xfer-in Детали передачи зоны, получаемой сервером (когда у нас slave).
xfer-out Детали передачи зоны, передаваемой сервером (когда у нас master).

Остальное - смотри в оригинале книги http://www.zytrax.com/books/dns/ и в пдф-ке, указанной выше. Настроил и забыл, писать лень.

Также не мешает провериться со внешнего сервера. Например, http://www.dnsinspect.com/

Free DNS servers

В качестве халявного ДНС-сервера можно использовать

  • Xname Конфигуратор более родной, но может тупить с выгрузкой зоны.
  • FreeDNS on afraid.org Несколько кривой: это, все-таки, промо платной версии. Кроме того, BEWARE: любой может вставить произвольную субзону в зону, хостящуюся на afraid.org
unix/bind/named_logging.txt · Last modified: 2015/02/13 22:02 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5