Установка и настройка DNS сервера named (bind9)

Автор: Admin | 14.08.2013

Пример настройки master и slave DNS сервера на FreeBSD и Linux

Поднято три DNS сервера named, который входит в состав набора инструментов bind9.
master ns — на FreeBSD
slave ns — два штуки на Ubuntu

Хостим внешнюю зону notessysadmin.com
Как ставил уже не помню, но методы стандартные apt-get для Ubuntu и порты для FreeBSD

Master NS

Для новой зоны необходимо на master ns отредактировать файл /etc/namedb/named.conf, добавив туда строки вида:

zone "notessysadmin.com" {
        type master;
        file "master/notessysadmin.com";
        allow-transfer { x.x.x.x; y.y.y.y; };
        allow-query { any; };
        notify yes;
};

Где:

  • zone — название зоны
  • file — файл настройки зоны
  • type — тип зоны, в данном случае все зоны master
  • allow-transfer — от кого разрешено принимать запросы на передачу зоны. Тут указываются slave ns сервера.
  • allow-query — от кого разрешено принимать обычные запросы
  • notify yes — при изменении зоны все slave ns сервера должны об этом информироваться

Для редактирования самих зон надо править файл /etc/namedb/master/notessysadmin.com:

; SOA Record
$TTL    3600
;
@               IN      SOA     notessysadmin.com.   admin.notessysadmin.com.      (
                                2012080300      ; Serial
                                3600            ; Refresh [1h]
                                900             ; Retry [10m]
                                1209600         ; Expire [14d]
                                3600    )       ; Minimum TTL [1h]

; A Records
@         IN      A       x.x.x.x         ;IP адрес notessysadmin.com
ns        IN      A       x.x.x.x         ;IP адрес ns.notessysadmin.com
ns2       IN      A       x.x.x.x         ;IP адрес ns2.notessysadmin.com

; CNAME Records
cname1    IN      CNAME   notessysadmin.com.
cname2    IN      CNAME   notessysadmin.com.
www       IN      CNAME   @
ftp       IN      CNAME   @
; MX Records
@         MX      0       mx.notessysadmin.com.
@         MX      10      mx2.notessysadmin.com
; NS Records
@         IN      NS      ns.notessysadmin.com.
@         IN      NS      ns2.notessysadmin.com.

Точки в конце названий доменов должны быть обязательно.

Где:

  • Serial — Серийный номер. Каждый раз при изменении каких-либо данных его нужно обязательно менять. Когда меняется серийный номер, зона обновляется на всех серверах. Использвать следующий формат: ГГГГММДДнн (год, месяц, день, нн — порядковый номер изменения за день). Если второй раз за день вносятся измения, то указать «нн» равным 01, если третий — 02, и т.д.
  • Refresh — интервал, через который slave сервера должны обращаться к primary серверу и проверять обновление зоны.
  • Retry — если slave серверу не удалось обратится к primary серверу, через это время он должен повторить свой запрос.
  • Expiry — если в течении этого времени slave сервер так и не смог обновить зону с primary сервера, то slave должен прекратить обслуживать эту зону. RFC 1912 рекомендует значение 1209600 — 2419200 секунд (14-28 дней)
  • TTL — время кеширования отрицательных ответов (ответ «домен невозможно разрешить в IP адрес»)

A Records — address record или запись адреса связывает имя хоста с адресом IP.
CNAME — canonical name record или каноническая запись имени (псевдоним) используется для перенаправления на другое имя.
MX Records — mail exchange или почтовый обменник указывает сервер(ы) обмена почтой для данного домена.
NS Records — name server указывает на DNS-сервер(а) для данного домена.

После внесения любых изменений необходимо изменить Serial зоны на +1 и выполнить команду:

rndc reload notessysadmin.com

Тогда все slave сервера через час (Refresh=3600) обновят зону. Если надо прямо щас, то еще и:

rndc notify notessysadmin.com

Но в этом случае обновятся только сервера прописанные в allow-transfer на мастере. Обновление же остальных будет происходить согласно их настройкам.

Всем новым файлам назначать права 644 (rw-r--r--) и владельца bind:

FreeBSD:
chmod 644 -R /etc/namedb/master/
chown -R bind:bind /etc/namedb/master/
Linux:
chmod -R 644 /etc/bind/slave/
chown -R bind:bind /etc/bind/slave/

Slave NS

Slave ns развернуты на Линуксе (Ubuntu 12.04). Файл конфига: /etc/bind/named.conf.zones, чтобы он заработал надо в /etc/bind/named.conf добавить следующую строку:

include "/etc/bind/named.conf.zones";

Часть конфига на примере того же notessysadmin.com:

zone "notessysadmin.com" {
        type slave;
        file "/etc/bind/slave/notessysadmin.com";
        masters { x.x.x.x };
};

master — IPшник держателя мастер зоны

Вообще, если все настроено, то на slave серверах делать ни чего не надо.

Если создается новая зона, то необходимо прописать ее в конфигурационный файл /etc/bind/named.conf.zones, файл зоны создастся автоматически.
Возможные ошибки при создании файла новой зоны.
Фича named для раздачи различных IP адресов разным клиентам.

Очень подробное описание named
В дополнение

Все.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *