воскресенье, 26 мая 2013 г.

Настройка DNS сервера BIND9 на Debian 7 Wheezy howto

Настройка Bind9 в Debian 7 Wheezy особо ничем не отличается от аналогичной установки в Debian 6 Squeeze (так же это должно работать на Ubuntu, CentOS и FreeBSD).

На этот раз создадим зону прямого просмотра для домена doomgate.local и зону обратного просмотра 8.16.172.in-addr.arpa на двух серверах ns1 (172.16.8.1) и ns2 (172.16.8.2) в домене doomgate.local.

В случае, если Вы хотите установить один сервер имён, то просто игнорируйте записи о ns2 и не создавайте slave сервер.

И так приступим. Установим на оба сервера пакет bind:
# aptitude install bind9 -y
Теперь на обоих серверах отредактируем файл /etc/bind/named.conf.options
# vim /etc/bind/named.conf.options
Приведём его к следующему виду:
acl mynetwork {172.16.8.0/24; 127.0.0.1; };

options {
    directory "/var/cache/bind";
    auth-nxdomain no;
    listen-on-v6 { none; };
    allow-query { mynetwork; };
};
Опция acl ограничивает адреса, которые могут запрашивать зоны с нашего сервера. В данном примере это разрешено подсети 172.16.8.0/24.

Настройка master-сервер ns1 (172.16.8.1).

Отредактировать файл /etc/bind/named.conf.local.
 # vim /etc/bind/named.conf.local
Добавляем в него файлы наших зон.
zone "doomgate.local" {
    type master;
    file "/etc/bind/db.doomgate.local";
};

zone "8.16.172.in-addr.arpa" {
    type master;
    file "/etc/bind/8.16.172.in-addr.arpa.zone";
};

Зона прямого просмотра

Создадим файл для зоны прямого просмотра.
# vim /etc/bind/db.doomgate.local
Со следующим содержимым:
$TTL 30
$ORIGIN doomgate.local.

@ IN SOA        ns1.doomgate.local. hostmaster.doomgate.local. (
                    2013052601 ; Serial
                    1d ; Refresh
                    1h ; Retry
                    1w ; Expire
                    2h ; Negative Cache TTL
)

@               IN      NS      ns1.doomgate.local.    ; Master-сервер
@               IN      NS      ns2.doomgate.local.    ; Slave-сервер
@               IN      A       172.16.8.10    ; Мой веб-сервер

ns1                     IN      A       172.16.8.1
ns2                     IN      A       172.16.8.2
webserver               IN      A       172.16.8.10
serverapp               IN      A       172.16.8.15
serversql               IN      A       172.16.8.15
avto-diagnostika        IN      CNAME   webserver
blog                    IN      CNAME   webserver
pma                     IN      CNAME   webserver
project-e1              IN      CNAME   webserver
Где:
$ORIGIN - оригинальное имя зоны
ns1.doomgate.local. и ns2.doomgate.local. - имена днс-серверов (обязательна точка в конце).
hostmaster.doomgate.local. - email администратора сервера, только вместо символа @ используется точка.
Serial - серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2013052601.
Refresh - период времени с которым вторичный сервер днс обращается к основному.
Retry - период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire - максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL - время актуальности данных в кэше запросов.

Далее идут записи имён хостов с ip-адресами или псевдонимами.

В конце этого файла нужно обязательно оставить пустую строку!

Зона обратного просмотра

Создадим файл для зоны обратного просмотра.
# vim /etc/bind/8.16.172.in-addr.arpa.zone
И запишем туда следующее:
$TTL 30
$ORIGIN 8.16.172.in-addr.arpa.

@ IN SOA        ns1.doomgate.local. hostmaster.doomgate.local. (
            2013052601 ; Serial
            1d ; Refresh
            1h ; Retry
            1w ; Expire
            2h ; Negative Cache TTL
)
            NS      ns1.doomgate.local.
            NS      ns2.doomgate.local.

1       PTR     ns1.doomgate.local.
2       PTR     ns2.doomgate.local.
10      PTR     webserver.doomgate.local.
15      PTR     serverapp.doomgate.local.
20      PTR     serversql.doomgate.local.
В этом файле должны быть только записи типа PTR, никаких IN тут быть не должно. И в конце этого файла так же должна быть пустая строка.

Проверим файлы зон на наличие ошибок командой:
# named-checkconf -z
Мы должны получить примерно вот такой вывод:
zone doomgate.local/IN: loaded serial 2013052601
zone 8.16.172.in-addr.arpa/IN: loaded serial 2013052601
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
Теперь, если никаких ошибок нет, обновим информацию о зонах:
# rndc reload
Если никаких ошибок нет, то продолжаем дальше, если же есть, то вероятнее всего Вы допустили ошибку где-то в конфигурационном файле.

Настройка slave-сервер ns2 (172.16.8.2).

Отредактировать файл /etc/bind/named.conf.local.
# vim /etc/bind/named.conf.local
Добавляем в него файлы наших зон.
zone "doomgate.local" {
        type slave;
        file "/etc/bind/db.doomgate.local";
        masters { 172.16.8.1; };
};

zone "8.16.172.in-addr.arpa" {
        type slave;
        file "/etc/bind/8.16.172.in-addr.arpa.zone";
        masters { 172.16.8.1; };
};
Теперь необходимо отредактировать resolv.conf на обоих серверах:
# vim /etc/resolv.conf
Приводим его в следующий вид:
domain doomgate.local
search doomgate.local
nameserver 172.16.8.1
nameserver 172.16.8.2

Тестирование

И наконец настало время проверить работу нашего днс-сервера!

Выполним несколько запросов.
Проверим зону прямого просмотра. Проверим её с сервера ns1:
# nslookup webserver.doomgate.local
Server:         172.16.8.1
Address:        172.16.8.1#53

Name:   webserver.doomgate.local
Address: 172.16.8.10
И зону обратного просмотра. Проверим её с сервера ns2:
# nslookup 172.16.8.20
Server:         172.16.8.2
Address:        172.16.8.2#53

10.8.16.172.in-addr.arpa        name = serversql.doomgate.local.
Если у Вас на обоих серверах получился схожий результат, то поздравляю, Вам удалось настроить bind!

4 комментария:

  1. ns1 и ns2 это hostname серверов? Как быть, если DNS, SQL, LNMP, Mail и др. расположены на одном сервере?

    Если DNS сервер один, нужны ли эти записи?
    1d ; Refresh
    1h ; Retry
    1w ; Expire
    2h ; Negative Cache TTL

    ОтветитьУдалить
  2. Да, ns1 и ns2 это hostname серверов.

    Если они расположены на одной машине, то можно указать только один сервер имён.

    Да, обязательно нужны, иначе "named-checkconf -z" покажет ошибку и зона не будет загружена.

    ОтветитьУдалить
  3. Как создать страницу в https://doomgate.local, которая висит на адресе https://192.168.1.10:9441 ?

    ОтветитьУдалить
    Ответы
    1. http://www.code-inside.com/prostaya-nastroyka-dns-servera-bind9-na-debian-7-wheezy/#.WLWnE2-LTIV

      Удалить