Linux: как настроить named в простейшей конфигурации (DNS forwarding) Печать
Добавил(а) microsin   

Описана настройка DNS сервера named в режиме forward only на примере Red Hat Linux 4.

1. Проверяем, установлены ли пакеты bind и bind-chroot:
[root@localhost etc]# rpm -q bind
пакет bind не установлен
[root@localhost etc]# rpm -q bind-chroot
пакет bind-chroot не установлен

2. Устанавливаем пакет bind (я предварительно переписал в папку /distrib/rpms с установочного DVD пакеты RPM - bind-9.2.4-16.EL4.i386.rpm, bind-chroot-9.2.4-16.EL4.i386.rpm, bind-devel-9.2.4-16.EL4.i386.rpm, bind-libs-9.2.4-16.EL4.i386.rpm, bind-utils-9.2.4-16.EL4.i386.rpm):
[root@localhost /]# rpm --install /distrib/rpms/bind-9.2.4-16.EL4.i386.rpm
[root@localhost /]# rpm --install /distrib/rpms/bind-chroot-9.2.4-16.EL4.i386.rpm

3. В каталоге /etc появится файл named.conf (а точнее, это ссылка на /var/named/chroot/etc/named.conf):
[root@localhost etc]# ls -l /etc/named.conf
lrwxrwxrwx  1 root root 32 Июн  7 14:37 /etc/named.conf -> /var/named/chroot/etc/named.conf
   Отредактируем этот файл, в итоге получим примерно следующее:
[root@localhost etc]# more /etc/named.conf
// Default named.conf generated by install of bind-9.2.4-16.EL4
options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";

        forward only;

        forwarders {
            80.252.130.254;
            213.234.192.8;
        };

};
include "/etc/rndc.key";
    Жирным здесь помечено добавленное в конфиг. В секции forwarders нужно прописать списки доступных внешних DNS, которые отвечают на запросы.
   
4. Протестируем полученную конфигурацию.
[root@localhost etc]# named -u named
[root@localhost etc]# ps ax | grep named
11496 ?        Ssl    0:00 named -u named
11546 pts/2    S+     0:00 grep named
[root@localhost etc]# nslookup
> server localhost
Default server: localhost
Address: 127.0.0.1#53
> yandex.ru
Server:         localhost
Address:        127.0.0.1#53
Non-authoritative answer:
Name:   yandex.ru
Address: 77.88.21.11
Name:   yandex.ru
Address: 87.250.251.11
Name:   yandex.ru
Address: 213.180.204.11
> exit

В лог будет писаться информация об успешном запуске:
[root@localhost etc]# tail /var/log/messages
   ..
Jun  7 16:20:54 localhost named[11496]: starting BIND 9.2.4 -u named
Jun  7 16:20:54 localhost named[11496]: using 1 CPU
Jun  7 16:20:54 localhost named[11496]: loading configuration from '/etc/named.conf'
Jun  7 16:20:54 localhost named[11496]: listening on IPv4 interface lo, 127.0.0.1#53
Jun  7 16:20:54 localhost named[11496]: listening on IPv4 interface eth0, a.b.11.111#53
Jun  7 16:20:54 localhost named[11496]: command channel listening on 127.0.0.1#953
Jun  7 16:20:54 localhost named[11496]: command channel listening on ::1#953
Jun  7 16:20:54 localhost named[11496]: running

Примечание. Демон named должен запускаться от имени пользователя named (используется опция -u). Если попытаться запусть named от имени root (просто вызвав named без опций), то демон сразу завершится с сообщением в логе
Jun  7 16:06:05 localhost named[11390]: couldn't open pid file '/var/run/named/named.pid': Permission denied
Jun  7 16:06:05 localhost named[11390]: exiting (due to early fatal error)

Лучший метод запуска - использование скрипта /etc/init.d/named:
[root@localhost init.d]# /etc/init.d/named start
Запускается named:                                         [  ОК  ]

5. Теперь настроим автозапуск. Добавим в файл /etc/rc.d/rc.local строчку /etc/init.d/named start:
[root@localhost rc.d]# more /etc/rc.d/rc.local
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/etc/init.d/named start

См. также FreeBSD: как настроить named в простейшей конфигурации (DNS forwarding).