Настройка сервера имен (DNS-сервер) на сервере без ISPmanager

Материал из wiki.p3.ru

Иногда для каких-либо проектов необходимо обеспечить работу серверов имен на своем VDS используя минимальный вариант операционной системы. В этой статье рассказано как настроить эту конфигурацию. При установке использовались шаблоны ПО на VDS с шаблонами -minimal.

Для работы серверов имен требуется два IP-адреса (это требование регистраторов доменов) и, следовательно, необходимо заказать второй адрес в биллинге для вашего сервера. Заказ выполняется в разделе Виртуальные серверы кнопка IP-адреса.

Настройка DNS в системе Debian 6.0

В шаблоне debian-6.0-i386-minimal его следует установить пакет bind

# apt-get install bind9

Отредактируйте файл /etc/bind/named.conf добавив в него описание вашей зоны (предположим, что домен называется example.com)

zone "example.com" {
       type master;
       file "/etc/bind/example.com";
};

Отредактируйте файл /etc/bind/example.com добавив в него строки

$TTL    3600
@  IN      SOA     ns1.example.com. root.example.com. (2012000001 10800 3600 604800 86400) 
@  IN      NS      ns1
@  IN      NS      ns2
ns1     IN      A       10.10.10.10
ns2     IN      A       192.168.1.1
@       IN      A       10.10.10.10
www     IN      A       10.10.10.10

После чего можно перечитать конфигурацию DNS-сервера

# rndc reload

После приведенной настройки можно указывать сервера имен ns1.example.com/10.10.10.10 и ns2.example.com/192.168.1.1 у регистратора. В биллинге BILLmanager следует указывать записи через символ /, у регистраторов может быть меню Child Nameservers где указывается данное соответствие

Настройка DNS в системе Ubuntu 10.04

Пакет bind9 уже установлен в шаблоне ubuntu-10.04-i386-minimal, его необходимо запустить и добавить в автозапуск

# /etc/init.d/bind9 start
# update-rc.d bind9 start 15 2 3 4 5 .  stop 70 0 1 6 .

Дальнейшая настройка выполняется точно также как в случае настройки на Debian 6.0

Настройка DNS в системе CentOS 6.0

DNS сервер уже предустановлен в шаблоне ПО centos-6-i386-minimal. Его следует настроить и запустить.

Отредактируйте /etc/named.conf и удалите или закоментируйте символами // строки

listen-on port 53 { 127.0.0.1; };
allow-query     { localhost; };

Следующий шаг (создание и настройка использование rndc.key) можно пропустить если не будете пользоваться командой rndc - в таком случае перезапускайте DNS-сервер командой /etc/init.d/named restart

Создайте ключ /etc/rndc.key командой

# rndc-confgen -a

Добавьте в /etc/named.conf

key "rndc-key" {
     algorithm hmac-md5;
     secret "sUUony71pdPDHSZjNrkDFQ==";
};
controls {
      inet 127.0.0.1 port 953
      allow { 127.0.0.1; } keys { "rndc-key"; };
};

Строку secret

secret "sUUony71pdPDHSZjNrkDFQ==";

следует брать из файла /etc/rndc.key


Запустите named и добавьте его в автозапуск

/etc/init.d/named start
# chkconfig named --level 2345 on


Настройка зоны производится аналогично настройке на Debian / Ubuntu со следующими отличиями:

Файл конфигурации DNS-сервера /etc/named.conf

Зоны расположены в каталоге /var/named/


Настройка DNS в системе FreeBSD 8.2/9.0

Настройка DNS на дисковом шаблоне FreeBSD-8-minimal и FreeBSD-9-minimal производится аналогично настройке на Debian со следующими отличиями:

Системный DNS-сервер запускается добавлением файла в /etc/rc.conf

named_enable="YES"
named_chrootdir=""

И далее запускается командой

# /etc/rc.d/named start

Файлы конфигурации named - /etc/namedb/named.conf

Файлы зон располагаются как правило в каталоге /etc/namedb/master/


Настройка DNS в Windows 2008

Зайдите в Server manager - Roles и добавьте там (Add roles) DNS-сервер.

Далее в Start - Administrative Tools - DNS Manager - Forward Lookup Zones добавьте зону и в мастере создания зоны выберите Primary zone - Do not allow dynamic updates

После чего в том же приложении настраивается зона - создаются записи NS (вначале добавляется в форме IP-адрес, затем запись) и создаются записи типа A ns1 и ns2 на соответствующие IP-адреса

Проверка работоспособности DNS-сервера

Проверить работоспособность полученной конфигурации можно используя команду dig. Во FreeBSD эта команда входит в базовую систему, в Debian/Ubuntu устанавливается через apt-get пакет dnsutils

# apt-get install dnsutils

В CentOS Linux установка dig производится через менеджер пакетов yum - пакет bind-utils

# yum install bind-utils


# dig @10.10.10.10 example.com
; <<>> DiG 9.7.3 <<>> @10.10.10.10 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60489
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available 
;; QUESTION SECTION:
;example.com.                   IN      A
;; ANSWER SECTION:
example.com.            3600    IN      A       10.10.10.10
;; AUTHORITY SECTION:
example.com.            3600    IN      NS      ns2.example.com.
example.com.            3600    IN      NS      ns1.example.com. 
;; ADDITIONAL SECTION:
ns1.example.com.        3600    IN      A       10.10.10.10
ns2.example.com.        3600    IN      A       192.168.1.1
;; Query time: 2 msec
;; SERVER: 10.10.10.10#53(10.10.10.10)
;; WHEN: Sat May 19 16:08:05 2012
;; MSG SIZE  rcvd: 113

Данной утилитой проверяется ответ сервера, то что ему известно про существование зоны и записи в ней.