Главная > Linux > Настройка DNS (BIND)

Настройка DNS (BIND)


29 июля 2009. Разместил: dimon
Задача – поднять службу dns на CentOS 5.2.

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

Для настройки выполняем последовательность действий:

1. Устанавливаем DNS службу:

yum install bind

2. Генерим код rndc командой rndc-confgen
В результате получаем файл с кодом /etc/rndc.conf

3. Прописываем зоны
/var/named/localhost.rev :

$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.


/var/named/localhost.zone :

$TTL 86400
@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

IN NS @
IN A 127.0.0.1



4. Создаем файл /etc/named.conf (если днс установлен не в chroot - иначе все файлы ищем в "песочнице")

include "/etc/rndc.key"; // включаем в текущий файл ключ rndc

acl "lan" {
127.0.0.1;
192.168.0.0/24;
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndckey"; };
};

logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

options
{
directory "/var/named"; // the default
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
version "no camment";
memstatistics-file "data/named_mem_stats.txt";

forward only;
forwarders { 200.5.5.1; 200.5.5.254; };


allow-recursion {
lan;
};

allow-query {
lan;
};

};


view "localhost"
{
match-clients { lan; };
match-destinations { lan; };
recursion yes;

zone "localhost" IN {
type master;
file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "localhost.rev";
};


};

В секции forwarders нужно прописать списки доступных внешних DNS, которые отвечают на запросы (в примере - 200.5.5.1 и 200.5.5.254).

5. Создаем файл /etc/rndc.conf:

include "/etc/rndc.key";

options {
default-server 127.0.0.1;
default-key "rndckey";
};

server localhost {
key "rndckey";
};


6. Запускаем службу:
service named start
Если стартовал без ошибок – cool

7. Проверяем rndc status
[root@server]# rndc status
number of zones: 2
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running


Так зоны есть. Вторая проверка:

[root@server etc]# host ya.ru
ya.ru has address 213.180.204.8
ya.ru mail is handled by 10 mx2.yandex.ru.
ya.ru mail is handled by 10 mx3.yandex.ru.
ya.ru mail is handled by 10 mx1.yandex.ru.


Работает.

8. Настроим логи.
В файле /etc/named.conf исправляем раздел logging. Например так:

logging {
channel default_log {
file "/var/log/dns.log" versions 5 size 20m;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
channel more_log {
file "/var/log/dns_more.log" versions 5 size 10m;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
category default { default_log; };
category general { default_log; };
category config { default_log; };
category queries { default_log; };
category xfer-in { default_log; };
category xfer-out { default_log; };
category security { more_log; };
category resolver { more_log; };
category notify { more_log; };
category client { more_log; };
category unmatched { more_log; };
category default { more_log; };
category database { more_log; };
category update { more_log; };
};


Done

Вернуться назад