Пример настройки 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
- тип зоны, в данном случае все зоны masterallow-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
В дополнение
Все.