За все время работы не сталкивался с установкой DNS на сервер, а тут пришлось устанавливать Slave DNS на новом сервере клиента. Думаю, что порядок действий будет полезен, как админам так и web-разработчикам.
Установка Master DNS
Заходим на сервер (для примера Master DNS будет ставиться на сервер с IP 10.10.10.10, Slave DNS — IP 20.20.20.20)
В начале проверим что система имеет все последние обновления.
yum update -y
Если не указать "-y" ключ, то придется отвечать на все вопросы установщика, а с ним все ответы ставятся автоматически по умолчанию.
Установить bind и bind-utils.
yum install bind bind-utils -y
На примере моего домена «sibway.pro», для своего поменяйте все вхождения в примерах. Будем считать что master имеет IP 10.10.10.10, slave 20.20.20.20. Master и slave насколько я понимаю деление условное, так как и тот и другой сервер будет выполнять одни и те же функции, различие только в том что slave берет все данные с мастера.
Теперь отредактируем конфигурационный файл любым текстовым редактором, я использую vi так как он есть всегда в любой системе.
vi /etc/named.conf
При установке bind, файл конфигурации ставится автоматически и нам надо только его отредактировать.
options {
#listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { localhost; 20.20.20.20; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
#listen-on port 53 { 127.0.0.1; };
Комментируем строку, чтобы сервер мог слушать эфир со всех адресов и портов (наверное можно указать просто IP 10.10.10.10, но руки не дошли поэкспериментировать. Извне все равно все закрывает firewall).
allow-query { any; };
Позволяем запрашивать сервер с любого адреса.
allow-transfer { localhost; 20.20.20.20; };
Позволяем брать информацию о доменах slave серверам.
Добавляем доменную зону, в тот же конфигурационный файл прописываем.
zone "sibway.pro" IN {
type master;
file "sibway.pro.zone";
allow-update { none; };
};
Конфигурирование доменных зон
В файле конфигурации мы указали файл sibway.pro.zone как файл конфигурации доменой зоны sibway.pro.
Проще всего взять какой-либо существующий и отредактировать до нужной конфигурации. Файлы можно разместить в поддиректории.
vi /var/named/sibway.pro.zone
Вот простой пример того что необходимо прописать в доменной зоне.
$TTL 86400
@ IN SOA ns1.sibway.pro. root.sibway.pro. (
2014120801 ;Serial ВАЖНО !!! серийный номер должен меняться в большую строну при каждом изменении, иначе slave сервера не обновят данные
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; Указываем два name сервера
IN NS ns1.sibway.pro.
IN NS ns2.sibway.pro.
; Определяем IP адреса name серверов
ns1 IN A 10.10.10.10
ns2 IN A 20.20.20.20
; Define hostname -> IP нашего сервера для этого домена
@ IN A 213.133.100.77
www IN A 213.133.100.77
Делаем рестар name сервера
service named restart
Определяем чтобы name сервер стартовал при загрузки системы.
chkconfig named on
Теперь проверим как работает наш name сервер.
dig @10.10.10.10 sibway.pro
В ответе должен быть указан правильный IP запрошенного домена. Теперь сконфигурируем slave сервер.
Конфигурация slave name сервера
Конфигурирование slave name сервера проходит так же как и master за исключением двух моментов:
- При редактировании файла конфигурации named.conf надо указать какие доменные зоны slave
- Не надо добавлять доменные зоны, так как они обновятся с master сервера автоматически
В конфигурационном файле необходимо указать type slave и указать IP мастер сервера.
zone "sibway.pro" IN {
type slave;
masters { 10.10.10.10; };
file "sibway.pro.zone";
};
Не забываем стартовать сервер и включить его в автоматический старт при запуске системы.
service named start
chkconfig named on
Теперь у нас есть два сконфигуренных name сервера.
Осталось открыть порт в firewall
Отредактируем файл /etc/sysconfig/iptables:
# vi /etc/sysconfig/iptables
Добавим следующие правила для 53 порта.
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
Обновляем iptable
# /etc/init.d/iptables restart
Не забудьте обновить этот файл на обоих серверах.
Теперь у нас есть два работающих name сервера.
Автор: sibwaypro