FreeBSD 9.x — Настройка Master/Slave named (Bind9)
Хорошо когда чтолибо работает автоматически и так как хочется! Меньше рутины — больше времени для веселья!
Есть 2 сервера с FreeBSD, на них установлен Bind9 (во FreeBSD он зовется named) и задача — настроить на них Bind в режиме Master/Slave, для того чтобы любые изменения зон на Master автоматически транслировались на Slave. Согласитесь, негоже одни и те же настройки повторять на разных серверах, когда они могу синкаться автоматически 🙂
Bind Master host — 111.111.111.111
Bind Slave host — 99.99.99.99
Чтобы не повторяться с путями, переходим в директорию bind-а:
Не люблю когда все навалено в одну директорию скопом, поэтому для ключей я создал отдельную директорию:
Генерация ключа — простая штука, в help-е dnssec-keygen можете найти все типы поддерживаемых ключей, я выбрал HMAC-SHA512
Kmaster.key.+163+63477
root@master:/etc/namedb#
тут, -K keys — директория куда сохранится сгенереный ключ
-a HMAC-SHA512 — тип шифрования
-b 512 — размер
-n HOST — тип ключа, в данном случае на хост
-r /dev/urandom — место одкуда берем случайную последовательность символов
master.key — название ключа, может быть каким хотите, это особой роли не играет
Сам сгенеренный файл нам не нужен, нам нужен только ключ, чтобы его найти смотрим файлик .private, интересуют строка Key.
К примеру, у меня так:
Private-key-format: v1.3
Algorithm: 165 (HMAC_SHA512)
Key: P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==
Bits: AAA=
Created: 20141028083403
Publish: 20141028083403
Activate: 20141028083403
root@master:/etc/namedb#
Создаем файлик, куда поместим ключ нашего master сервера:
формат такой:
algorithm HMAC-SHA512;
secret "P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==";
};
Подключаем этот файл в конфиг named, для этого открываем главный конфиг named.conf
и добавляем строчку (куда добавлять — не имеет значения, я добавил непосредственно перед частью конфига с master зонами, чтоб было на виду):
Теперь создадим простенькую зону для проверки правильной работы сервиса, я использовал вот такую зону для тестов:
$TTL 604800 ; 1 hour default TTL
black13.org.ua. IN SOA ns1.black13.org.ua. admin.black13.org.ua. (
2014102801 ; Serial
8H ; Refresh
1H ; Retry
1W ; Expire
1D ) ; minimum, seconds
;
; DNS Servers
IN NS ns1.black13.org.ua.
IN NS ns2.black13.org.ua.
; MX Records
; IN MX 10 mx.black13.org.ua.
; IN MX 20 mail.example.org.
IN A 155.12.21.155
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 111.111.111.111
ns2 IN A 99.99.99.99
;mx IN A 88.88.88.88
;mail IN A 192.168.1.5
; Aliases
www IN CNAME black13.org.ua.
root@master:/etc/namedb#
Теперь те зоны которые хотим передавать на slave-сервер (я тренировался на тестовой black13.org.ua) нужно настроить вот так:
type master;
file "/etc/namedb/master/black13-org-ua.db";
notify yes;
allow-transfer { 99.99.99.99; key "master.key";};
allow-update { none; };
};
И чтоб применить изменения — перегружаем named (bind):
Stopping named.
Waiting for PIDS: 1835.
Starting named.
root@master:/etc/namedb#
С мастером все!
Настройка slave сервера тоже не сложная!
Сначала тоже самое … переходим в директорию /etc/namedb и создаем директорию keys:
root@slave:/etc/namedb# mkdir keys
Тектовым редактором создаем файл ключа:
Формат на Slave-сервере чуть другой чем на мастере, ключ такойже:
algorithm HMAC-SHA512;
secret "P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==";
};
server 111.111.111.111 {
keys { master.key; };
};
Теперь в главном конфиге named.conf нужно включить конфигурацию ключа:
и в этом же конфиге пример зоны:
type slave;
file "/etc/namedb/slave/black13-org-ua.db";
masters { 111.111.111.111; };
allow-notify { 111.111.111.111; };
};
Обратите внимание что на slave нужно размещать файлы зон в директории /etc/namedb/slave, иначе нарветесь на ошибку:
Все! Настройка закончена.
Перегружаем named (bind):
Stopping named.
Waiting for PIDS: 1743.
Starting named.
root@slave:/etc/namedb#
И вот он результат! Если вы все сделали верно, на slave-сервере в директории /etc/namedb/slave появится файлик black13-org-ua.db с вот таким содержимым:
$ORIGIN .
$TTL 604800 ; 1 week
black13.org.ua IN SOA ns1.black13.org.ua. admin.black13.org.ua. (
2014102801 ; serial
28800 ; refresh (8 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.black13.org.ua.
NS ns2.black13.org.ua.
A 155.12.21.155
$ORIGIN black13.org.ua.
localhost A 127.0.0.1
ns1 A 111.111.111.111
ns2 A 99.99.99.99
www CNAME black13.org.ua.
root@slave:/etc/namedb#
А теперь самое веселое … на мастере поменяйте чтолибо в файлике black13-org-ua.db (смените либо добавьте HOST A,CNAME,TXT или что угодно), увеличте на 1 параметр «serial» и перегрузите named. На slave это изменение применится автоматически без каких либо вмешательств со стороны админа 🙂
Хай щастить!
Комментов пока нет