Настройка DNS сервера под управлением FreeBSD

Задача:

Настроить DNS сервер Bind под управлением ОС FreeBSD для обслуживания запросов клиентов внутренней сети и обслуживания прямой и обратной зон DNS с функцией их пересылки на вторичный DNS сервер. Тип всех зон на сервере — Master, то есть данный сервер предоставляет авторитетные ответы за все зоны.

Дано:

1. Внутренний IP адрес DNS сервера — 192.168.0.1/24
2. Внешний IP адрес DNS сервера — 10.10.10.1/24
3. IP адрес вторичного сервера — 10.10.10.2/24
4. Прямая DNS зона — test.dom
5. Обратная DNS зона — 10.10.10.in-addr.arpa

Решение:

1. В файле /etc/rc.conf прописываем запуск DNS сервера при старте системы

named_enable=”YES”

2. Приводим конфигурационный файл /etc/namedb/named.conf к следующему виду:

acl ACCESS { 127.0.0.1; 192.168.0.0/24; 10.10.10.0/24; };

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        listen-on { 127.0.0.1; 10.10.10.1; };
        allow-recursion { ACCESS; };
        allow-transfer { 10.10.10.2; };
        transfer-source 10.10.10.1;
        version "Bind DNS Server";
};

logging {
        category lame-servers { null; };
};

zone "." {
    type hint;
    file "named.root";
    };

zone "localhost" {
    type master;
    file "master/localhost";
    };

zone "0.0.127.in-addr.arpa" {
    type master;
    file "master/0.0.127.in-addr.arpa";
    };

zone "test.dom" {
    type master;
    file "master/test.dom";
    allow-query { any; };
    };

zone "10.10.10.in-addr.arpa" {
    type master;
    file "master/10.10.10.in-addr.arpa";
    allow-query { any; };
    };

Где:

acl — список доступа с именем ACCESS и описанием в нем сетей, которым разрешено использовать наш DNS сервер.
directory – Рабочая директория Bind
pid-file - Место размещения PID файла
dump-file – Место размещения DUMP файла
statistics-file – Место размещения файла статистики
listen-on – Указываем IP адреса интерфейсов, на которых Bind будет «слушать» запросы
allow-recursion – Указываем списки доступа, кому разрешены рекурсивные запросы к серверу
allow-transfer – Указываем IP адрес вторичного DNS сервера, которому будем пересылать наши зоны
transfer-source – Указываем IP интерфейса, через который будет разрешено проведение трансфера зон
version – Указываем свою версию DNS сервера
logging – Указываем ограничение журналирования
zone ».» - Зона, описывающая корневые DNS сервера, необходима для работы. Хранится в файле /etc/namedb/named.root
zone «localhost» — Прямая зона, описывающая локальный сервер, необходима для работы. Хранится в файле /etc/namedb/master/localhost
zone «0.0.127.in-addr.arpa» — Обратная зона, описывающая локальный сервер, необходима для работы. Хранится в файле /etc/namedb/master/0.0.127.in-addr.arpa
zone «test.dom» — Наша прямая зона. Хранится в файле /etc/namedb/master/test.dom Так как на нашем сервере хранится мастер копия зоны, при помощи allow-query, разрешаем всем ее опрос.
zone «10.10.10.in-addr.arpa» — наша обратная зона. Хранится в файле /etc/namedb/master/10.10.10.in-addr.arpa. Так как на нашем сервере хранится мастер копия зоны, при помощи allow-query, разрешаем всем ее опрос.

3. Настраиваем файлы зон

3.1. Зона ».» - оставляем по умолчанию

3.2. Зона «localhost». Конфигурационный файл /etc/namedb/master/localhost приводим к следующему виду:

$TTL    3600

@       IN      SOA     localhost. root.localhost. (
                        2009070601      ; Serial
                        3600            ; Refresh
                        600             ; Retry
                        2419200         ; Expire
                        86400 )         ; Minimum

        IN      NS      localhost.

        IN      A       127.0.0.1

3.3. Зона «0.0.127.in-addr.arpa». Конфигурационный файл /etc/namedb/master/0.0.127.in-addr.arpa приводим к следующему виду:

$TTL    3600

@       IN      SOA     localhost. root.localhost. (
                        2009070601      ; Serial
                        3600            ; Refresh
                        600             ; Retry
                        2419200         ; Expire
                        86400 )         ; Minimum

       IN      NS      localhost.

1      IN      PTR     localhost.

3.4. Зона «test.dom». Конфигурационный файл /etc/namedb/master/test.dom приводим к следующему виду:

$TTL    3600
@                       IN      SOA     ns1.test.dom. hostmaster.test.dom. (
                                2009082801      ; Serial
                                3600            ; Refresh
                                600             ; Retry
                                2419200         ; Expire
                                86400 )         ; Minimum

                        IN      NS      ns1.test.dom.
                        IN      NS      ns2.test.dom.

@                       IN      A       10.10.10.1

ns1                     IN      A       10.10.10.1
ns2                     IN      A       10.10.10.2

3.5. Зона «10.10.10.in-addr.arpa». Конфигурационный файл /etc/namedb/master/10.10.10.in-addr.arpa приводим к следующему виду:

$TTL    3600
@       IN      SOA     ns1.test.dom. hostmaster.test.dom. (
                        2009082801      ; Serial
                        3600            ; Refresh
                        600             ; Retry
                        2419200         ; Expire
                        86400 )         ; Minimum

        IN      NS      ns1.test.dom.
        IN      NS      ns2.test.dom.

1       IN      PTR     ns1.test.dom.
2       IN      PTR     ns2.test.dom.

Где, например, для зоны test.dom сверху вниз:

- Время, указывающее длительность в секундах, сколько запись должна быть сохранена в кеше.
- @ - имя зоны — заменяющий символ, IN – класс записи INTERNET — значение по умолчанию, SOA – описание глобальных переменных зоны, ns1.test.dom. - имя DNS сервера для этой зоны, hostmaster.test.dom. - почтовый адрес администратора DNS сервера для этой зоны. Вместо знака @, в качестве разделителя используется знак «.»
- Серийный номер изменения записи. Для перечитывания зоны вторичным сервером, при каждом изменении, необходимо последнюю цифру увеличивать на 1
- Время через которое вторичный DNS сервер попытается перечитать зону
- Время через, которое вторичный сервер будет пытаться перечитать зону если ему не удалось связаться с первичным DNS сервером в период указанный в Refresh
- Указывает через какое время данные зоны больше не авторитетны для этого сервера. Используется вторичными серверами.
- Устаревший атрибут, указывающий на время жизни сохранения данных зоны в кеше.
- Указание DNS основного DNS сервера для данной зоны
- Указание вторичного DNS сервера для данной зоны
- Описание узлов в данной зоне

4. Управляем DNS сервером при помощи следующих команд:

freebsd# /etc/rc.d/named start | stop | restart | status

Дополнительно:

Наиболее часто используемые типы записей в DNS:

A – запись на IP адрес узла в сети
NS — запись на DNS сервер
CNAME – запись на каноническое имя для узла
PTR – запись указатель на доменное имя, используется в обратных зонах
MX — запись для определения маршрутизации почты

Для проверки работоспособности можно использовать такие средства как dig или nslookup

Пример использования dig:

freebsd# dig @localhost test.dom ANY

Команда означает — вывести записи типа ANY в зоне test.dom, используя сервер localhost

; <<>> DiG 9.4.3-P2 <<>> @localhost test.dom ANY
; (2 servers found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35560
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;test.dom.                  IN      ANY

;; ANSWER SECTION:
test.dom.           3600    IN      A       10.10.10.1
test.dom.           3600    IN      SOA     ns1.test.dom. hostmaster.test.dom. 2009082801 3600 600 2419200 86400
test.dom.           3600    IN      NS      ns1.test.dom.
test.dom.           3600    IN      NS      ns2.test.dom.

;; ADDITIONAL SECTION:
ns1.test.dom.       3600    IN      A       10.10.10.1
ns2.test.dom.       54886   IN      A       10.10.10.2

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Aug 30 23:04:41 2009
;; MSG SIZE  rcvd: 330

Пример использования nslookup:

freebsd# nslookup
> test.dom
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   test.dom
Address: 10.10.10.1
>

На мой взгляд использование dig для диагностики более гибко, хотя те кто знает полностью как использовать nslookup, скажут то же самое про него. Также рекомендую замечательное пособие по настройке DNS http://www.zytrax.com/books/dns/

Начальная

 
manuals/freebsd/nastrojka_dns_servera_pod_upravleniem_freebsd.txt · Последние изменения: 16/10/2011 21:13 От Олег
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki