Настройка DNS сервера bind / named как master / slave.

13th Сентябрь 2010 | Метки: , , , , ,
Опубликовал: Andrey [rtty] Shidakov

BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) — открытая и наиболее распространённая реализация DNS-сервера, обеспечивающая выполнение преобразования DNS-имени в IP-адрес и наоборот.

Итак, мы имеем сервер под управлением FreeBSD 8.1.

Нужно реализовать:

— Кеширующий локальный DNS сервер

— Поддержку локальной собственной зоны, к примеру .local

— Master сервер зоны nixadm.ru

— Slave (на другой машине) сервер зоны nixadm.ru

Конфигурационные файлы named распологаются в /etc/namedb. Основной конфигурационный файл named.conf:

acl trusted {                # Кто может делать запросы к днс серверу
    127.0.0.1/8;
    10.0.0.0/8;
    172.16.0.0/12;
    192.168.0.0/16;
    193.203.60.182;
};
 
options {
    directory "/etc/namedb/working";
    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;
        192.168.0.1;
    };
 
    forwarders {              # для уменьшения трафика, указываем локальные днс сервера
        193.203.60.1;         # откуда форвардить имена, если нет в локальных зонах
        213.135.128.2;
        78.132.128.2;
        91 .211.28.10;
    };
 
    allow-query {
        trusted;
    };
};
 
zone "s0.local" {              #Локальная зона s0.local
    type master;
    file "/etc/namedb/master/s0.local";  #файлик описан ниже
};
 
zone "nixadm.ru" {             # master nixadm.ru
    type master;
    file "/etc/namedb/master/nixadm.ru";
    notify yes;                # оповещает slave сервера об изменении зоны
    allow-transfer {           # разрешить передавть файл зоны на slave сервера
        78.132.139.126;        # адреса slave серверов
        193.203.60.182;
    };
    allow-query { any; };
};
 
zone "kdmal.pp.ru" {           # так выглядит настройка slave зоны kdmal.pp.ru
    type slave;
    file "/etc/namedb/slave/kdmal.pp.ru";
    masters { 78.132.139.126; }; # master сервер зоны
    allow-query { any; };
};
 
zone "s25.local" {             # Forward локальной зоны с другого днс сервера
    type forward;
    forwarders { 192.168.130.1; };
};

Описание master зоны nixadm.ru /etc/namedb/master/nixadm.ru

$ORIGIN .
$TTL 3600       ; 1 hour
nixadm.ru            IN SOA  nixadm.ru. root.nixadm.ru. (
                                20100629   ; serial
; При внесении изменений в файл, необходимо увеличить serial на 1
                                86400      ; refresh (1 day)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.nixadm.ru.
                        NS      ns2.nixadm.ru.
                        A       78.132.137.20
$ORIGIN nixadm.ru.
$TTL 3600       ; 1 hour
ns1                     A       78.132.139.126 ; адрес slave сервера
ns2                     A       78.132.137.20  ; адрес master сервера
www                     A       78.132.137.20

Вот файлик с описанием локальной зоны: /etc/namedb/master/s0.local:

$ORIGIN .
$TTL 3600       ; 1 hour
s0.local               IN SOA  s0.local. root.s0.local. (
                                20100628   ; serial
                                86400      ; refresh (1 day)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns.s0.local.
$ORIGIN s0.local.
$TTL 3600       ; 1 hour
pc                      A       192.168.1.5
ns                      A       192.168.1.1
macbook                 A       192.168.1.3
switch                  A       192.168.1.2

В фаерволе необходимо открыть 53 порт для протоколов tcp и udp. У меня указан локальный IP где слушать порт: 192.168.0.1 и фаервол делает редирект:

rdr on $if inet proto { tcp, udp } to $ip port 53 tag T_DOMOLINK -> 192.168.0.1

Для чего это сделано? Потомучто соединение с провайдером поднимается по PPPOE, и могут быть проблеммы, если bind запустится при неустановленном PPPOE. Поэтому для таких типов подключений лучше сделать редирект в ФВ.

Пока комментариев нет.
Вы должны авторизоваться для отправки комментария.