Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> программы —> named

Настройка своего сервера имён

Автор: lissyara.


    Возникла необходимость настроить named - провайдер требовал бабки за DNS-поддержку домена - немного, несколько центов в сутки, но тем не менее... Если есть свои серваки смотрящие в инет - то почему бы не настроить у себя DNS-сервер? Почитавши хандбук на эту тему, понял - ничё особо сложного.
   Итак, имеем следующий набор файлов:

/usr/home/lissyara/>cd /etc/namedb/
/etc/namedb/>ls -lah
total 22
drwxr-xr-x   2 root  wheel  512B Oct 20 16:08 .
drwxr-xr-x  16 root  wheel    2K Nov 24 15:27 ..
-rw-r--r--   1 root  wheel  427B Jan 21  2005 PROTO.localhost-v6.rev
-rw-r--r--   1 root  wheel  423B Jan 21  2005 PROTO.localhost.rev
-rw-r--r--   1 root  wheel  475B Oct 20 16:08 localhost-v6.rev
-rw-r--r--   1 root  wheel  471B Oct 20 16:08 localhost.rev
-rw-r--r--   1 root  wheel    1K Jan 21  2005 make-localhost
-rw-r--r--   1 root  wheel    3K Jan 21  2005 named.conf
-rw-r--r--   1 root  wheel    2K Jan 21  2005 named.root
/etc/namedb/>

Посмотрев их содержимое, немного подумав, решил - коммунисты не ищут лёгких путей - стал делать не по хандбуку, а так как считал нужным :). Мне надо было поддержку двух DNS-зон, после редактирования получились такие файлы:
Конфиг named - /etc/namedb/named.conf

// Настраиваем логи:
logging {
        channel syslog {
            syslog daemon;
            severity info;
            print-category yes;
            print-severity yes;
        };
        category xfer-in { syslog; };
        category xfer-out { syslog; };
        category config { syslog; };
        category default { null; };
};

// Собственно параметры сервера
options {
        // директория где будем копошиться
        directory       "/etc/namedb";
        // местонахождение pid
        pid-file        "/var/run/named.pid";
        // где хранить дамп
        dump-file       "/var/tmp/named_dump.db";
        // где хранить статистику
        statistics-file "/var/tmp/named.stats";
        // DNS-сервера нашего провайдера
        // если больше одного, то перечисляются так:
        // { 10.0.1.10; 10.10.11.1; }
        forwarders      { 10.0.1.10; };
        // строка выдаваемая в ответ на запро о версии
        // (Все почему-то хотят скрыть версии ПО
        // работающего на сервере)
        version         "this is my bind :)";
};
        // корневая зона
zone "." {
        type hint;
        file "named.root";
};
        // локалхост
zone "localhost" {
        // тип
        type master;
        // файл, где хранится
        file "master/localhost";
        // на какие сервера разрешено передавать
        allow-transfer { 127.0.0.1; };
        // откуда разрешены запросы
        allow-query { 127.0.0.1; };
};
        // обратная зона для локалхоста
zone "0.0.127.in-addr.arpa" {
        type master;
        file "master/localhost.rev";
        allow-transfer { 127.0.0.1; };
        allow-query { 127.0.0.1; };
};
        // зона auto-gid.ru
zone "auto-gid.ru" {
        // тип
        type master;
        // файло с зоной
        file "master/auto-gid.ru";
        // сервера на которые можно передавать зону -
        // в даном случае указаны сервера регистратора
        // - ник.ру
        allow-transfer { 194.226.96.8; };
};

zone "lissyara.su" {
        // тип
        type master;
        // файл зоны
        file "master/lissyara.su";
        // а я регистрировался на валуехост
        allow-transfer { 217.112.42.15; };
};

        // обратная зона для этого хоста
zone "9.200.80.in-addr.arpa" {
        type master;
        file "master/18.9.200.80.rev";
};

Зона локалхоста - /etc/namedb/master/localhost

$TTL    3600

@  IN      SOA     ametist.my-domain-name.com. root.ametist.my-domain-name.com. (
                   20051221        ; Serial
                   3600            ; Refresh
                   900             ; Retry
                   3600000         ; Expire
                   3600 )          ; Minimum
@  IN      NS      ns1.highway.ru.
@  IN      A       127.0.0.1

Обратная зона локалхоста - /etc/namedb/master/localhost.rev

$TTL    3600

@  IN      SOA     ametist.my-domain-name.com. root.ametist.my-domain-name.com.  (
                   20060204        ; Serial
                   3600            ; Refresh
                   900             ; Retry
                   3600000         ; Expire
                   3600 )          ; Minimum
@  IN      NS      ns1.highway.ru.
1  IN      PTR     localhost.

обратная зона для этой машины - /etc/namedb/master/18.9.200.80.rev

$TTL    3600

@  IN      SOA     ametist.my-domain-name.com. root.ametist.my-domain-name.com (
                   20060204        ; Serial
                   3600            ; Refresh
                   900             ; Retry
                   3600000         ; Expire
                   3600 )          ; Minimum
@  IN      NS      ns1.highway.ru.
18 IN      PTR     ametist.my-domain-name.com.

Одна из поддерживаемых зон - /etc/namedb/master/auto-gid.ru

$TTL    3600

@               IN      SOA     www.auto-gid.ru. root.www.auto-gid.ru.  (
                                20060204        ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
@               IN      NS      ametist.my-domain-name.com.
@               IN      NS      mail.my-domain-number-two.ru.
@               MX      10      mail.auto-gid.ru.
@               IN      A       195.190.159.122
www             IN      A       195.190.159.122
ftp             IN      A       195.190.159.122
mail            IN      A       195.190.159.122
test            IN      A       195.190.159.122

вторая поддерживаемая зона - /etc/namedb/master/lissyara.su

$TTL    3600

@               IN      SOA     www.lissyara.su. root.www.lissyara.su.  (
                                20060204        ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
@               IN      NS      ns1.valuehost.ru.
@               IN      NS      ns2.valuehost.ru.
@               IN      NS      ns3.valuehost.ru.
@               MX      10      mx.lissyara.su.
@               IN      A       213.234.195.210
www             IN      A       213.234.195.210
mx              IN      A       213.234.195.210
forum           IN      A       213.234.195.210
test            IN      A       213.234.195.210
81-195-212-154  IN      A       81.195.212.154

Вот пожалуй и всё. Не забываем в файрволле открыть 53 UDP и TCP порты - по ним будут идти запросы:
allow udp from any to me 53 in recv xl0
allow udp from me 53 to any out xmit xl0
allow udp from any 53 to me in recv xl0
allow udp from me to any 53 out xmit xl0
allow tcp from any to me 53 in recv xl0 setup

После чего добавляем такие строки в /etc/rc.conf и запускаем:
/etc/namedb/master/>echo '' >> /etc/rc.conf
/etc/namedb/master/>echo 'named_enable="YES"' >> /etc/rc.conf
/etc/namedb/master/>echo 'named_flags="-u bind"' >> /etc/rc.conf
/etc/namedb/master/>named -u -bind
/etc/namedb/master/>ps -ax | grep named
64567  ??  Is     0:00.06 named -u bind
27731  p0  S+     0:00.01 grep named
/etc/namedb/master/>

Затем пробуем:

C:\>nslookup ya.ru 80.200.9.18
Server:  ametist.derzhava.com
Address:  80.200.9.18

Non-authoritative answer:
Name:    ya.ru
Address:  213.180.204.8

C:\>

Работает. :) Если что-то невзлетает, то пробуйте с самой фряхи, с параметром -v, и сравнивайте с другими хостами - что не так...
/etc/namedb/master/>host -v auto-gid.ru
Trying null domain
rcode = 0 (Success), ancount=1
The following answer is not verified as authentic by the server:
auto-gid.ru     3600 IN A       195.190.159.122
For authoritative answers, see:
auto-gid.ru     3600 IN NS      ametist.my-domain-name.com
auto-gid.ru     3600 IN NS      mail.my-domain-number-two.ru
Additional information:
ametist.my-domain-name.com    3585 IN A       80.253.9.18
/etc/namedb/master/>

Вроде пашет :) Если нужен просто кэширующий DNS - то почитайте вышеуказанную статью в хандбуке. Там даже прощще.
Не забывайте при изменениях увеличивать serial зоны - иначе другие сервера не примут обновления...



размещено: 2006-02-05,
последнее обновление: 2006-02-05,
автор: lissyara


it@na.uy, 2006-07-18 в 11:46:18

Товарищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!

АФатар ЖЖОТ ;)
Сори за спам:) удалинах:)

тудаже...
если нада форвордить зону прова делаем так:
zone "zone.your.prov.rul" {
       type forward;
       forward only;
       forwarders {ip.your.prov.dns;};
};

hfnclkju, 2006-08-10 в 18:16:18

ругается на после того как задаю команду:
named.reload
rndc: neither /etc/namedb/rndc.conf nor /etc/namedb/rndc.key was found

RomC, 2006-09-11 в 21:51:18

2 hfnclkju

man rndc.conf

ну а если проще, запускаешь rndc-confgen и копируешь что тама напишет в файлик /etc/namedb/rndc.conf и в /etc/namedb/named.conf

eugene, 2006-12-05 в 9:56:51

А какая верисия named?

mak_v_, 2007-02-04 в 13:08:07

Хотелось бы увидеть конф неймеда с ключиком рндц и в джайле или песочнице

BasiL, 2007-02-22 в 10:00:56

обратная зона для этой машины - /etc/namedb/master/18.9.200.80.rev

В конце ящика забыл точку
root.ametist.my-domain-name.com.

Ckopnuo, 2007-07-13 в 14:33:37

>>/etc/namedb/master/>named -u -bind

Перед bind не нужен дефис, иначе ругается на отсутствте юзера!

LAA, 2007-07-27 в 13:05:22

В статье нет упоминаний об acl совсем, а при толстых ДНС-серверах это очень полезно и нужно. Потом добавлять, убирать или менять проще когда много зон.

Вот как это делается:

acl SECONDARY_NET_UA {
       195.149.112.1;
       193.201.116.2;
};

...

zone "laa.zp.ua" {
       type master;
       file "MASTER/laa.zp.ua";
       allow-update { none; };
       allow-transfer { SECONDARY_NET_UA ; };
};

KaMa-CyTpA, 2007-08-09 в 14:32:49

А если внутренняя сеть и не надо внешних зон?
Вот наваял я домен на самбе domain.ru - он по хуиз то пробивается - но мне всё равно - для "личного" пользования; во внутренней сети. Выход в инет через эту-же машину (SQUID)
И как мне быть?

Barsykoff, 2007-10-17 в 18:26:44

Создаешь 2 зоны: одну для domain.ru, другую - обратную для него же. Ну и еще конечно же localhost и localhost.rev. У меня так настроено, плюс стоит еще форвардинг на ДНС провайдера (на всякий случай).

aGGreSSor, 2008-02-01 в 22:07:59

В /etc/namedb/master/18.9.200.80.rev после
root.ametist.my-domain-name.com точку забыл
=> правильно работать не будет, проверь у себя

staskur, 2008-06-07 в 13:17:35

в принципе не критично... но желательно...

заходим в /etc/namedb
и говорим
fetch ftp://ftp.internic.net/domain/named.root

получим свежий named.root

KES, 2008-11-19 в 19:54:58

Ребята, в статье не описано как сделать вот такую вот фичу:
Нужно чтобы локалка работала вобще без доменов и работал разрешение инет имён. Пример:
nslookup server
nslookup user
nslookup ya.ru

Для того чтобы локалка работала без доменов делаю вот такую вот зону named.conf:
zone "." { type master; file "master/lan2"; };
cat master/lan2
$TTL    86400

@       IN      SOA     . root.kes.net.ua. (
   2008111705  ; Serial
   86400       ; Refresh (1 day)
   7200        ; Retry (2 hours)
   8640000     ; Expire (100 days)
   86400       ; Minimum (1 day)
   )

       IN      A       10.10.16.17
       IN      NS      ns1

ns1     IN      A       10.10.16.17
server  IN      A       10.10.16.17


А как сделать, чтобы работал резолвер для интернетовских имён не понятно ((

Morty, 2008-12-03 в 21:32:01

в /etc/rc.conf
->
named_pidfile="/var/run/named.pid"
иначе не работает

khiluck, 2008-12-18 в 20:00:28

В локалхосте указаны: ns1.highway.ru и ametist.my-domain-name.com
Откуда они взялись??? если речь идет только о двух доменах: lissyara.su, auto-gid.ru

Немогу въехать :(

Саша, 2009-02-19 в 16:06:48

Спасибо за статью и каменты, очень в некоторых случаях помогло ;)!!!

Саша, 2009-02-19 в 16:07:12

Просто выручило :)!

Саша, 2009-02-19 в 16:07:37

Респект :)!

Dushes, 2009-03-06 в 19:58:07

+1

cj_nik, 2009-08-26 в 17:34:14

По идее, запись которая следует за SOA - это имя первичного DNS сервера зоны.

acd, 2009-11-12 в 1:57:41

 Прошу прощения, но ссылки на форум с данной темы нет. Поэтому пишу свой вопрос сюда. Когда я поменял сетевую карту на маршрутизаторе на Intel Pro 1000 у меня перестал резолвить мой DNS запросы в мир. То есть, резолвы хостов в локальной сети он нормально отвечает, а кого-нить из Интернет - нет..
Если что, mailto: acd@ua.fm

AndreyK, 2009-12-24 в 16:36:56

При настройке named в jail, надо убрать везде 127.0.0.1 и localhost с заменой на ip jail`a.
В /etc/resolv.conf вставить тоже ip jail`a.
В /etc/rc.conf должно быть следующее
---------------------------------------
named_flags=\"-c /var/named/etc/namedb/named.conf \"
named_enable=\"YES\"
named_chrootdir=\"\"
named_chroot_autoupdate=\"NO\"
-------------------------------
Это связано с тем, что named не работает в jail в режиме chroot.
см.
1) http://lists.freebsd.org/pipermail/freebsd-jail/2009-February/000736.html
2) http://subnets.ru/blog/?p=38

Характерные ошибки:
1)reply from unexpected source: ХХХ.Х.Х.Х#53, expected Y.Y.Y.Y#53
2)$ rndc reload
rndc: connection to remote host closed
>This may indicate that the remote server is using an older version of
>the command protocol, this host is not authorized to connect,
>or the key is invalid.

Удачи.

Degarn, 2010-02-07 в 12:59:04

Дим, а как это ты обратную зону у себя прописал, ИП же провайдеру принадлежит, он его и должен обратить вроде?

Андрей, 2010-12-10 в 10:58:05

Вопрос, по теме. А если необходимо держать зону для сети с маской например /28 (т.е. не /24 как обычно в примерах рассматривают). То как это будет выглядеть?

KES, 2010-12-10 в 21:21:52

Думаю всё также само как в примерах, только вместо 24 будет 28

Андрей, 2010-12-11 в 5:30:46

Я имею в виду, что в примерах всегда фигурирует строка типа: zone "9.200.80.in-addr.arpa {......}". И как тут задать маску /28?

KES, 2010-12-11 в 9:54:23

88-95.N.E.T.in-addr.arpa

gd, 2011-09-07 в 19:02:25

dfgТоварищщи! fdgЭто поля для ввода комментариев к статье, а не дляdfg вопросов. Сdgюда пиdfgшите найденные баги, или dfgкакие-то фичи :)
Для вопросов dfgестьdfg форум!

alex, 2011-10-14 в 21:23:26

ns1.highway.ru. а это тут при чем?)



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0555 секунд
Из них PHP: 46%; SQL: 54%; Число SQL-запросов: 77 шт.
Исходный размер: 52087; Сжатая: 10868