Вводные данные. Имеем VDS с минимально установленным Debian с ip 192.168.0.15 и домен mydomail.com.
Требуется поднять DNS. Приступим.
Установим bind
apt-get install bind9 dnsutils
Все конфигурационные файлы лежат в /etc/bind/
Главный конфигурационный файл /etc/bind/named.conf в котором подключены
«/etc/bind/named.conf.options» — настройка forwarders, listen-on и т.д.
«/etc/bind/named.conf.local» — описание зон,
«/etc/bind/named.conf.default-zones» — описание стандартных зон,
«/etc/bind/db.*» — файлы с зонами.
Отредактируем named.conf.options
nano /etc/bind/named.conf.options
Приводим к виду
options { directory "/var/cache/bind"; forwarders { 8.8.8.8; 8.8.4.4; }; listen-on { 192.168.0.15; 127.0.0.1; }; auth-nxdomain no; };
directory
указывает на расположение в дереве каталогов временных файлов сервера.
forwarders
— на какие серверы пересылать запрос, если наш сервер сам не в состоянии определить имя или IP-адрес запроса клиентов
listen-on
— указывает на каких интерфейсах вести прослушивание 53 порта.
Проверим прослушивается ли 53 порт
Перезапускаем bind
/etc/init.d/bind9 restart
netstat -an | grep 53 tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 192.168.0.15:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 127.0.0.1:59337 TIME_WAIT tcp6 0 0 ::1:953 :::* LISTEN tcp6 0 0 :::53 :::* LISTEN udp 0 0 192.168.0.15:53 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:* udp6 0 0 :::53 :::* udp6 0 0 :::53380 :::*
Нужные нам интерфейсы слушают 53 порт. Идём дальше.
Зоны для прямого и обратного преобразований
В основном конфигурационном файле сервера named.conf.local указываем имена файлов, в которых опишем зоны для прямого и обратного преобразований.
nano /etc/bind/named.conf.local
Приводим к виду:
zone "mydomain.com" { type master; file "/etc/bind/db.mydomain.com"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.reverse.zone"; };
Зона прямого просмотра
Создаем файл для зоны прямого просмотра.
nano /etc/bind/db.localdomain.net
Добавим в файл следующее
$TTL 300 $ORIGIN mydomain.com. @ IN SOA mydomain.com. admin.mydomain.com. ( 2016082201 ; Serial 1d ; Refresh 1h ; Retry 1w ; Expire 2h ; Negative Cache TTL ) @ IN NS mydomain.com. @ IN NS ns1.yodns.tk. @ IN A 192.168.0.15
$ORIGIN — оригинальное имя зоны
mydomain.com. — Наш DNS-сервер (точка в конце обязательна ).
admin.mydomain.com. — email администратора сервера, где вместо символа @ используется точка.
Serial — серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2015020301 .
Refresh — период времени с которым вторичный сервер днс обращается к основному.
Retry — период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire — максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL — время актуальности данных в кэше запросов.
Далее идут записи имён хостов с ip-адресами или псевдонимами.
ns1.yodns.tk. — вместо этой записи можете указать NS вашего регистратора либо Free DNS сервиса.
В конце этого файла нужно обязательно оставить пустую строку!
Зона обратного просмотра
Создаем файл для зоны прямого просмотра.
nano /etc/bind/db.reverse.zone
Добавим в файл следующее
0.168.192.in-addr.arpa. 10800 IN SOA mydomain.com. admin.mydomain.com. ( 2016082201 ; Serial 1d ; Refresh 1h ; Retry 1w ; Expire 2h ; Negative Cache TTL ) NS mydomain.com. 15 PTR mydomain.com.
Пропишем в resolv.conf адрес нашего DNS сервера:
nano /etc/resolv.conf
domain mydomain.com search mydomain.com nameserver 192.168.7.15
Перезапустим BIND
/etc/init.d/bind9 restart
Проверка
Проверим файлы зон на наличие ошибок командой:
named-checkconf -z
Если ошибок нет, обновим информацию о зонах:
rndc reload
Проверка прямой зоны
nslookup mydomain.com
Server: 192.168.0.15 Address: 192.168.0.15#53 Name: mydomain.com Address: 192.168.0.15
Проверка обратной зоны
nslookup 192.168.0.15
Server: 192.168.0.15 Address: 192.168.0.15#53 15.0.168.192.in-addr.arpa name = mydomain.com.