bind9

Привет, сегодня поднимем свой сервер имен, для того чтобы связать доменные имена с ip-адресами. Для этого нам понадобиться минимум один выделенный сервер с установленной FreeBSD.

Установка Bind9

Перед установкой не забудьте обновить порты.

# cd /usr/ports/dns/bind9
# make install clean
# rehash

Теперь добавим автозагрузку бинда в /etc/rc.conf

named_enable="YES"
named_uid="bind"
named_chrootdir=""
named_flags="-s"

И перезагрузим сервак

# reboot

Настройка Bind9

Откройте для редактирования файл named.conf

# ee /etc/namedb/named.conf

И вставьте следующие директивы:

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";

        // Изменяем название, ниже расскажу зачем
        version "adw0rd dns";

        // Добавляем локальные "ip-адреса dns-серверов" вашего провайдера
        // их можно посмотреть в /etc/resolv.conf (директива "nameserver") или через утилиту nslookup
        forwarders {
                82.146.59.250;
        };

}

Рестартим bind:

# /etc/rc.d/named restart

Утилита rndc

Перейдите в каталог named:

# cd /etc/namedb/

И посмотрите, есть ли у вас файл «rndc.key», если есть, то можете пропустить этот шаг, а если нет, то вам надо его сгененировать:

# rndc-confgen

И он выдаст примерно следующее:

# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "NrDcqVcbML1XI0ZLmRrmaQ==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};

Создайте файл «/etc/namedb/rndc.key» и вставьте туда эти данные:

key "rndc-key" {
        algorithm hmac-md5;
        secret "NrDcqVcbML1XI0ZLmRrmaQ==";
};

Теперь пришла очередь добавлять наш первый домен, который будет играть роль «мастер нс-сервера», для того, чтобы потом другие домена использовать именно его.

Поднимаем свой master-сервер (ns1)

Для начала необходимо добавить запись о домене в named.conf, добавляйте в конец файла:

zone "adw0rd.ru" {
        type master;
        file "master/adw0rd.ru";
};

Теперь, с помощью утилиты «make-localhost» создайте первый свой master-файл, далее можно будет просто копировать любой master-файл и изменять его для других доменов.

Иногда нет этого файла в стандартной поставке, можете его скачать тут.
Вот еще могут пригодится PROTO.localhost.rev и PROTO.localhost-v6.rev.

Запускаем make-localhost, но не забудьте установить для него права на запуск!

# cd /etc/namedb/
# chmod u+x make-localhost
# ./make-localhost

Теперь скопируем localhost.rev и создадим с помощью него свой master-файл:

# cd /etc/namedb/master/
# cp localhost.rev adw0rd.ru

И доведем до следующего вида:

$TTL    3600
$ORIGIN ru.

adw0rd                      IN SOA  ns1.adw0rd.ru. root.adw0rd.ru. (
                                2009082601   ; serial number
                                43200        ; refresh
                                3600         ; retry
                                604800       ; expire
                                3600       ) ; minimum TTL

$ORIGIN adw0rd.ru.

; первым будет наш ns1.adw0rd.ru
@                     NS       ns1

; второй будет бесплатный сервис ns2.trifle.net, о нем расскажу дальше
@                     NS       ns2.trifle.net.

@                       A       82.146.63.195
localhost               A       127.0.0.1

ns1                     A       82.146.63.195
ns2                     A       195.24.128.164

www                     A       82.146.63.195
ww                      CNAME   www

Незабываем про «serial number», его надо править при каждом изменении, например, если вы редактируете 26 августа 2009 года, то надо 2009082601, если вы в день много раз редактируете, то увеличивайте две крайние цифры в серийнике на единицу (2009082602, 2009082617 и т.д. до 99). А если редактируете 27 августа 2009, то 2009082701 и т.д.

Теперь, проверим правильность конфига при помощи утилиты named-checkconf, если все в порядке она ничего не ответит, иначе выведет лог ошибок.

# named-checkconf

После запустите «rndc reload»:

# rndc reload

Перезагружаем bind:

# /etc/rc.d/named restart

Поднимаем slave-сервер (ns2)

Для того чтобы использовать свои сервера доменных имен надо минимум два нс-сервера, поэтому надо создать и второй, однако где нам достать еще один сервак? Но это не обязательно, достаточно воспользоваться бесплатными сервисами, вот короткий список сервисов, предостовляющие подобные услуги:

Разберем пример на «ns2.trifle.net», заходим по адресу http://ns2.trifle.net, далее регистрируемся, и авторизовываемся.

Теперь, добавляем нашу домен «adw0rd.ru» и свяжем его с ip-адресом 82.146.63.195

ns2_trifle_net

Все, готово!

Проверяем работоспособность

Сначала узнаем, отдает ли нам ns1 данные по домену:

dig @ns1.adw0rd.ru adw0rd.ru

Если выдало примерно следующее:

; <<>> DiG 9.3.4-P1 <<>> @ns1.adw0rd.ru adw0rd.ru
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 3703
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;adw0rd.ru.                       IN      A

;; AUTHORITY SECTION:
ru.                     1814    IN      SOA     ns.ripn.net. hostmaster.ripn.net. 4015239 7200 900 2592000 3600

;; Query time: 10 msec
;; SERVER: 82.146.63.195#53(82.146.63.195)
;; WHEN: Wed Aug 26 12:15:12 2009
;; MSG SIZE  rcvd: 83

то все плохо, думайте над своим мастер-файлом, где то вы накосячили... либо не ребутнули неймед-сервак.

А если такое, то все в порядке:

; <<>> DiG 9.3.4-P1 <<>> @ns1.adw0rd.ru adw0rd.ru
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22582
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;adw0rd.ru.                     IN      A

;; ANSWER SECTION:
adw0rd.ru.              3600    IN      A       82.146.63.195

;; AUTHORITY SECTION:
adw0rd.ru.              3600    IN      NS      ns1.adw0rd.ru.
adw0rd.ru.              3600    IN      NS      ns2.trifle.net.

;; ADDITIONAL SECTION:
ns1.adw0rd.ru.         3600    IN      A       82.146.63.195
ns2.trifle.net.         166787  IN      A       195.24.128.164

;; Query time: 3 msec
;; SERVER: 82.146.63.195#53(82.146.63.195)
;; WHEN: Wed Aug 26 12:16:14 2009
;; MSG SIZE  rcvd: 129

Теперь вы можете вписать у регистратора — свои DNS сервера, примерно так:

ns1.adw0rd.ru 82.146.63.195
ns2.trifle.net

Адрес «82.146.63.195» необходим тут, для того чтобы домен делегировался корректно, так как сейчас ваш домен еще не связан... ;)

Для других доменов, например «blgo.ru» достаточно

ns1.adw0rd.ru
ns2.trifle.net

Как узнать версию программного обеспечения DNS сервера?

Помните, я в конфиге «named.conf» установил директиву «version» и сказал что позже объясню зачем... А нужно это для того, чтобы кулхацкеры не узнали версию бинда, потом они могут сделать очень забавные вещи, погуглите на эту тему и все узнаете.

Выполните команду

# dig @ns1.adw0rd.ru version.bind chaos txt

и вы увидите версию бинда...

P.S.

Ну вот вроде и все, задавайте вопросы, укажите на неописанные нюансы, чем смогу — тем помогу!


Комментарии (98) на запись «FreeBSD. DNS сервер своими руками при помощи Bind9»

» Трекбеки скрыты, показать их?
  1. Aios | 05.09.2009 в 00:03

    Расскажете что-нибудь про обратную зону?

    Ведь здесь ни слова...

  2. adw0rd | 05.09.2009 в 00:27

    Aios, а для чего? При обслуживании веб-сервера, нужно связывать только «имя»->«ip-адрес», в обратной зоне нет необходимости...

  3. Aios | 06.09.2009 в 23:34

    Странно сделал все и переделал все как у Вас Тютелька в тютельку ! а мне вот трифл рассказыват про негативный ответ AXFR И что...

    полез по документациям оказывается нужна еще и обратка типа Ip-адрес наоброт.ip-addr.arpa и тд и тп...

    allow.transfer И тд тоже работают =) на все направления как не извивался ничего не получается...

    вот и обращаюсь к вам =)

  4. adw0rd | 06.09.2009 в 23:49

    Aios, что у вас dig возвращает, на запросы по домену? Какая версия бинда, оси?

  5. Aios | 08.09.2009 в 10:33

    7.2 Realease...

    Dig возвращает то что у вас в случае когда нужно покопаться в мастер файле или перегрузить неймед-сервак

    bind9 9.5.0

  6. adw0rd | 08.09.2009 в 15:15

    Aios, сделайте

    dig ваш-домен

    и

    dig ваш-мастер-сервер ваш-домен

  7. Aios | 10.09.2009 в 23:28

    как поробую так и отпишусь извините за беспокойство и наглость я бы хотел попросить вас изменить мне Аватарку! а то интелект блога не очень веселую аватару подобрал

  8. adw0rd | 10.09.2009 в 23:36

    Aios, эти аватары загружаются из gravatar.com, залейте туда свою и она определиться по вашему e-mail и подгрузится здесь. Так работает на большинстве блогов на WordPress...

  9. Aios | 13.09.2009 в 19:45

    Я как всегда накосячил... Тот днс я настраивал не на Free а на Fedora Core 8 =)))

    Ну бывает...

    так вот суть проблемы в том что я щас на фри настраиваю

     7.0-RELEASE FreeBSD 7.0-RELEASE

    вот и как бы ваш файлик Make-localhost немного не правльно составлен так как и на федоре и на фри выдает одно и тоже...

    aios# ./make-localhost
    ./make-localhost: cannot open PROTO.localhost-v6.rev: No such file or directory
    ./make-localhost: cannot open PROTO.localhost.rev: No such file or directory

  10. adw0rd | 13.09.2009 в 20:00

    Aios, мой файлик взят из поставки вместе с bind9, и файлы PROTO.localhost.rev идут в комплекте. Я обновил статью, скачайте их тоже.

  11. Aios | 13.09.2009 в 20:06

    Уже лутше спасибо =))

    Последний вопросик...

    aios# dig @ns1.Домен.ru домен.ru

    ; <<>> DiG 9.4.2 <<>> @ns1.домен.ru домен.ru
    ; (1 server found)
    ;; global options:  printcmd
    ;; connection timed out; no servers could be reached

    дупля дать немогу...

  12. adw0rd | 13.09.2009 в 20:13

    У вас сервер бинда то поднялся хоть? Судя по ответу дига — нет.

    dig @ns1.Домен.ru

    если выдаст тоже самое, что выше — то мои предположения верны.

  13. Aios | 13.09.2009 в 20:36

    Блин Это наверно только у меня может быть настолько через 5 точку собрано...

    aios# dig @ns1.домен.ru                                                      
    dig: couldn't get address for 'ns1.домен.ru': not found

  14. adw0rd | 13.09.2009 в 20:42

    Aios, а вы создали мастер-файлик для домен.ru? Создали там сабдомен? Все написано в статье, также вы перезагружали днс-сервер? проверяли конфиг на ошибки? rndc есть? перегружали его?

  15. Aios | 13.09.2009 в 20:51

    Уважаемый adw0rd! Извините что так долго Вас напрягал... Трабла решилась сама собой правда с моей помощью =)

    Система ужасно нестандартная...

    Сервер© за ним Внутренний IP на сервере ДНС(bind9). И на внутреннем IP тоже Bind9

    на внутреннем для интерфейся прописан С только его внутренний интерфейс. На внутренний с внешнего Сервера С был пробит натом Внешний IP адрес... Но днсом то он ссылался на главный на котором собсно я и делал когда то домен.ru вот из-за чего было

    aios# dig @ns1.Домен.ru домен.ru

    ; <<>> DiG 9.4.2 <<>> @ns1.домен.ru домен.ru
    ; (1 server found)
    ;; global options:  printcmd
    ;; connection timed out; no servers could be reached

    После того как я убрал зону на C стало

    aios# dig @ns1.домен.ru                                                      
    dig: couldn't get address for 'ns1.домен.ru': not found

    в /etc/hosts прописал

    domen{TAB}{TAB}домен.ru

    внутренний IP{TAB}{TAB}ns1.Домен.ru

    Полет нормальный =) почти щас на регистратора поставил там видно будет... по крайней мере самая первая проблема с самого первого комментария уже решилась

    трифл добавил безо всяких

    так вот у вас там ошибочка в посте немного

    Теперь вы можете вписать у регистратора — свои DNS сервера, примерно так:
    ns1.adw0rd.ru 82.146.63.195
    ns1.trifle.net

    Адрес «82.146.63.195» необходим тут, для того чтобы домен делегировался корректно, так как сейчас ваш домен еще не связан... ;)

    не ns1.trifle.net, а ns2.trifle.net =)))

    Спс биг за пост =) Простите что отнимал у Вас время...

  16. adw0rd | 13.09.2009 в 20:57

    Aios, спасибо за опечатку в статье, поправлю :) Рад что у вас все решилось!

  17. Aios | 13.09.2009 в 21:20

    Еще раз спс у меня домен уже проделигировали! за 20 минут! я в шоке =)))

  18. Aios | 13.09.2009 в 22:41

    и все же мне нужна ваша помощь...

    блин я поспешил чуть с «Порадоваться надо»...

    Домен делегирован, а вот резолвить его никто не хочет...

    state:      REGISTERED, DELEGATED

    Обидно... может вы что то посоветуете?

  19. Aios | 14.09.2009 в 13:09

    Все еще раз извините что мягко говоря «з@ср@л» вам топик =)

    ПОЛЕТ ИДЕАЛЬНЫЙ!

    Всем буду вас советовать...

  20. adw0rd | 14.09.2009 в 15:18

    Спасибо :)

  21. madman | 15.09.2009 в 13:55

    У меня не BIND 9.4.3-P2 на FreeBSD 7.2 при запуске ругается, что рабочая директория не пригодна для записи.

    при этом named запускается от имени bind, а скрипт /etc/rc.d/named изменяет права на рабочую директорию на UID=0 GID=0.

    Само собой named работает не коректно или воще не работает.

    Что с тим делать?

  22. adw0rd | 15.09.2009 в 14:04

    1. Что у вас в rc.conf по поводу bind?

    2. Как вы вручную запускаете named?

  23. madman | 15.09.2009 в 14:16

    1. named_enable="YES" и все

    2. named стартует при запуске и даже слушает порт, но вот резолвить не хочет. После шаманства над named перегружаю named.reload

  24. adw0rd | 15.09.2009 в 14:30

    1. В rc.conf добавьте

    named_uid="bind"
    named_chrootdir=""
    named_flags="-s"

    2. Я имел ввиду какой командой вы его запускаете?

  25. madman | 15.09.2009 в 15:05

    1. Спасибо. Попробую.

    2. хз. вручную не запускал

  26. adw0rd | 15.09.2009 в 15:49

    madman, почитайте мою статью сначала, вы явно ее не читали или просто не следуете ей...

  27. Aios | 15.09.2009 в 21:43

    madman, Странно =) у меня все работает =) только только перебил =)

  28. madman | 17.09.2009 в 13:09

    Сделал все как написано в статье. Но named все равно работает не коректно — зоны не читает. В лог пишет

    max open files (2599) is smaller than max sockets (4096)

    что с этим делать?

  29. adw0rd | 17.09.2009 в 13:41

    А это точно его лог?

  30. madman | 17.09.2009 в 15:56

    adw0rd, точно его, потому шо я логи named направил в отдельный файл.

    И сторка выглядит как

    named[XXX]:max open files (2599) is smaller than max sockets (4096)

  31. adw0rd | 17.09.2009 в 16:04

    madman, что теперь в rc.conf у вас кстати, покажите

  32. madman | 17.09.2009 в 18:26

    Точно следовал статье

    named_enable="YES"

    named_uid="bind"

    named_chrootdir="«

    named_flags=»-s"

  33. madman | 17.09.2009 в 18:27

    чёто глюкнуло, ну в общем у меня точно тоже, что написано в начале статьи

  34. Aios | 18.09.2009 в 15:16

    madman, можешь написать в аську попробую удаленно настроить =)

  35. madman | 21.09.2009 в 12:57

    Aios, уже разобрался. все теперя работает.

  36. etweet | 22.10.2009 в 11:45

    в этом примере настройки сервера какое имя сервера?

  37. adw0rd | 22.10.2009 в 11:47

    etweet, «adw0rd.ru»

  38. etweet | 22.10.2009 в 12:28

    у вас в примере так IN SOA ns1.adw0rd.ru. root.adw0rd.ru.

    1) ns1 — это что ?

  39. adw0rd | 22.10.2009 в 13:54

    Это сабдомен, на котором висит ns-сервер (мастер)

  40. etweet | 22.10.2009 в 14:36

    Извините за ламерские вопросы просто я новичек в этом!

    можете помочь ns2.trifle.net не может скачать зону с мастер сервера имя сервера relay домен например (domen.ru) всем косяк?

    $TTL 3600

    @ IN SOA ns1.domen.ru. root.domen.ru. (

    2009102201 ; Serial

    3600 ; Refresh

    900 ; Retry

    3600000 ; Expire

    3600 ) ; Minimum

    @ IN NS ns1.domen.ru.

    @ IN NS ns2.trifle.net.

    @ IN MX 10 domen.ru.

    @ IN A my ip

    ns1 IN A my ip

    ns2 IN A 195.24.128.164

  41. adw0rd | 23.10.2009 в 12:49

    dig что возвращает, если к домену обратиться?

  42. webgrs | 23.10.2009 в 14:59

    Добрый день, а возможно ли реализовать нс2 на этом же сервере где нс1. Понимаю, что нужно иметь 2-а ip разных под-сетей. Дело в том, что «провайдер» в дата центре при размещении своего сервера даёт 2-а ip разных подсетей. Я думаю это не спроста =). Так вот возможно ли реализовать нс1 и нс2 на одном железе? Конечно тогда теряется смысл нс2, но как было подмечено в статье =) а где взять еще один сервер?

    спасибо ^_^

  43. adw0rd | 23.10.2009 в 15:37

    webgrs, ну как вы сами понимаете, то теряется смысл, однако это конечно можно сделать.

    а где взять еще один сервер?

    ns2.trifle.net не подходит? другие подобные сервисы?

  44. webgrs | 24.10.2009 в 15:44

    А если веб сервер на машине с нс1? то также смысл нс2 не ясен, так как если грохнется нс1, то наверняка и сам сайт ляжет вместе с сервером.

  45. adw0rd | 24.10.2009 в 19:25

    Если грохнется только нс1 (имеется ввиду только сам нс-сервер), то тогда вебсервер будет работать, ибо нс2 спасет. А если весь сервак грохнется, то какая разница где у вас нс1, всеравно работать веб не будет...

  46. etweet | 26.10.2009 в 10:41

    в данной статье у сервера имя NS1 ?

  47. adw0rd | 26.10.2009 в 10:44

    Имя сервера adw0rd.ru!

    Имя NS-сервера — ns1.adw0rd.ru

  48. etweet | 26.10.2009 в 10:50

    у меня ситуация такая имя сервера получается relay.domen.ru но когда пишешь в браузере www.domen.ru ничего не происходит, получаю доступ только по адресу relay.domen.ru

    как сделать чтоб сайт отображался по адресу www.domen.ru

  49. adw0rd | 26.10.2009 в 10:59

    покажите конфиг вашего домена на master-нс

  50. etweet | 26.10.2009 в 11:06

    // $FreeBSD: src/etc/namedb/named.conf,v 1.26.2.2.4.1 2009/04/15 03:14:26 kensmith Exp $

    //

    // Refer to the named.conf (5) and named (8) man pages, and the documentation

    // in /usr/share/doc/bind9 for more details.

    //

    // If you are going to set up an authoritative server, make sure you

    // understand the hairy details of how DNS works. Even with

    // simple mistakes, you can break connectivity for affected parties,

    // or cause huge amounts of useless Internet traffic.

    key «rndc-key» {

    algorithm hmac-md5;

    secret «BYSzvbwt6grksw16bMIfrw==»;

    };

    controls {

    inet 127.0.0.1 port 953

    allow { 127.0.0.1; } keys { «rndc-key»; };

    };

    acl «trusted»

    {

    192.168.0.0/24;

    127.0.0.1;

    195.24.128.164;

    192.168.200.20;

    85.119.72.2;

    };

    options {

    // Relative to the chroot directory, if any

    directory «/etc/namedb»;

    pid-file «/var/run/named/pid»;

    dump-file «/var/dump/named_dump.db»;

    statistics-file «/var/stats/named.stats»;

    allow-transfer { trusted; };

    allow-query { any; };

    allow-recursion { any; };

    // If named is being used only as a local resolver, this is a safe default.

    // For named to be accessible to the network, comment this option, specify

    // the proper IP address, or delete this option.

    listen-on { 127.0.0.1; 192.168.200.10; };

    // If you have IPv6 enabled on this system, uncomment this option for

    // use as a local resolver. To give access to the network, specify

    // an IPv6 address, or the keyword «any».

    // listen-on-v6 { ::1; };

    // These zones are already covered by the empty zones listed below.

    // If you remove the related empty zones below, comment these lines out.

    disable-empty-zone «255.255.255.255.IN-ADDR.ARPA»;

    disable-empty-zone «0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA»;

    disable-empty-zone «1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA»;

    // In addition to the «forwarders» clause, you can force your name

    // server to never initiate queries of its own, but always ask its

    // forwarders only, by enabling the following line:

    //

    // forward only;

    // If you've got a DNS server around at your upstream provider, enter

    // its IP address here, and enable the line below. This will make you

    // benefit from its cache, thus reduce overall DNS traffic in the Internet.

    /*

    forwarders {

    127.0.0.1;

    };

    };

    zone «.» { type hint; file «named.root»; };

    #zone «localhost» { type master; file «master/localhost-forward.db»; };

    #zone «127.in-addr.arpa» { type master; file «master/localhost-reverse.db»; };

    zone «255.in-addr.arpa» { type master; file «master/empty.db»; };

    // RFC 1912-style zone for IPv6 localhost address

    zone «0.ip6.arpa» { type master; file «master/localhost-reverse.db»; };

    // «This» Network (RFCs 1912 and 3330)

    zone «0.in-addr.arpa» { type master; file «master/empty.db»; };

    // Private Use Networks (RFC 1918)

    zone «10.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «16.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «17.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «18.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «19.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «20.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «21.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «22.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «23.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «24.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «25.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «26.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «27.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «28.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «29.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «30.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «31.172.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «168.192.in-addr.arpa» { type master; file «master/empty.db»; };

    // Link-local/APIPA (RFCs 3330 and 3927)

    zone «254.169.in-addr.arpa» { type master; file «master/empty.db»; };

    // TEST-NET for Documentation (RFC 3330)

    zone «2.0.192.in-addr.arpa» { type master; file «master/empty.db»; };

    // Router Benchmark Testing (RFC 3330)

    zone «18.198.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «19.198.in-addr.arpa» { type master; file «master/empty.db»; };

    // IANA Reserved — Old Class E Space

    zone «240.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «241.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «242.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «243.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «244.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «245.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «246.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «247.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «248.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «249.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «250.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «251.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «252.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «253.in-addr.arpa» { type master; file «master/empty.db»; };

    zone «254.in-addr.arpa» { type master; file «master/empty.db»; };

    // IPv6 Unassigned Addresses (RFC 4291)

    zone «1.ip6.arpa» { type master; file «master/empty.db»; };

    zone «3.ip6.arpa» { type master; file «master/empty.db»; };

    zone «4.ip6.arpa» { type master; file «master/empty.db»; };

    zone «5.ip6.arpa» { type master; file «master/empty.db»; };

    zone «6.ip6.arpa» { type master; file «master/empty.db»; };

    zone «7.ip6.arpa» { type master; file «master/empty.db»; };

    zone «8.ip6.arpa» { type master; file «master/empty.db»; };

    zone «9.ip6.arpa» { type master; file «master/empty.db»; };

    zone «a.ip6.arpa» { type master; file «master/empty.db»; };

    zone «b.ip6.arpa» { type master; file «master/empty.db»; };

    zone «c.ip6.arpa» { type master; file «master/empty.db»; };

    zone «d.ip6.arpa» { type master; file «master/empty.db»; };

    zone «e.ip6.arpa» { type master; file «master/empty.db»; };

    zone «0.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «1.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «2.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «3.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «4.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «5.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «6.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «7.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «8.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «9.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «a.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «b.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «0.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «1.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «2.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «3.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «4.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «5.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «6.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «7.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    // IPv6 ULA (RFC 4193)

    zone «c.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «d.f.ip6.arpa» { type master; file «master/empty.db»; };

    // IPv6 Link Local (RFC 4291)

    zone «8.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «9.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «a.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «b.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    // IPv6 Deprecated Site-Local Addresses (RFC 3879)

    zone «c.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «d.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «e.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    zone «f.e.f.ip6.arpa» { type master; file «master/empty.db»; };

    // IP6.INT is Deprecated (RFC 4159)

    zone «ip6.int» { type master; file «master/empty.db»; };

    /* An example dynamic zone

    key «exampleorgkey» {

    algorithm hmac-md5;

    secret «sf87HJqjkqh8ac87a02lla==»;

    };

    zone «example.org» {

    type master;

    allow-update {

    key «exampleorgkey»;

    };

    file «dynamic/example.org»;

    };

    */

    /* Example of a slave reverse zone

    zone «1.168.192.in-addr.arpa» {

    type slave;

    file «slave/1.168.192.in-addr.arpa»;

    masters {

    192.168.1.1;

    };

    };

    */

    zone «localhost» {

    type master;

    file «localhost.zone»;

    };

    zone «0.0.127.IN-ADDR.ARPA» {

    type master;

    file «master/localhost.rev»;

    };

    zone «domain.ru» {

    type master;

    file «master/domain.ru»;

    allow-transfer { trusted;};

    };

  51. adw0rd | 26.10.2009 в 12:54

    etweet, я не об этом конфиге, я о конфиге самого домена! (master/domain.ru)

  52. etweet | 26.10.2009 в 13:53

    $TTL 3600

    @ IN SOA relay.domen.ru. root.relay.domen.ru. (

    2009102601 ; Serial

    3600 ; Refresh

    900 ; Retry

    3600000 ; Expire

    3600 ) ; Minimum

    $ORIGIN domen.ru.

    @ NS domen.ru.

    @ NS ns2.trifle.net.

    @ A my ip

    localhost A 127.0.0.1

    ns1 A my ip

    ns2 A 195.24.128.164

    www A my ip

    ww CNAME www

  53. etweet | 26.10.2009 в 14:02

    $TTL 3600

    @ IN SOA relay.domain.ru. root.relay.domain.ru. (

    2009102601 ; Serial

    3600 ; Refresh

    900 ; Retry

    3600000 ; Expire

    3600 ) ; Minimum

    $ORIGIN domain.ru.

    @ NS domain.ru.

    @ NS ns2.trifle.net.

    @ A ip

    localhost A 127.0.0.1

    ns1 A ip

    ns2 A 195.24.128.164

    www A ip

    ww CNAME www

    у меня один сервер и один внешний ip нужно настроить dns и почту

    имя сервера relay.domail.ru был бы очень признателен если вы мне написали бы более подробно my icq 200527177

  54. adw0rd | 26.10.2009 в 14:39

    Не обязательно указывать домен полность, используйте короткую запись для ns1.domain.ru

    $ORIGIN domain.ru.
    @ NS ns1
    @ NS ns2.trifle.net.
    @ A ip
    localhost A 127.0.0.1
    ns1 A ip
    ns2 A 195.24.128.164
    www A ip
    ww CNAME www

    Оформляйте конфиги и код в теги <code>, и у меня нет icq

  55. adw0rd | 26.10.2009 в 14:43

    1. После настройки перезагружаете named?

    2. Что говорит dig?

    dig @ns1.domain.ru domain.ru

  56. etweet | 26.10.2009 в 14:47

    relay# dig @ns1.bbl-russia.ru bbl-russia.ru

    ; <> DiG 9.4.3-P2 <> @ns1.bbl-russia.ru bbl-russia.ru

    ; (1 server found)

    ;; global options: printcmd

    ;; connection timed out; no servers could be reached

  57. etweet | 26.10.2009 в 14:59

    тогда я не могу получить доступ к web странице www.domen.ru

    а вот по адресу ns1.domen.ru доступ есть.

    Как сделать чтоб работал адрес www.domen.ru

  58. adw0rd | 26.10.2009 в 15:02

    Named-сервер у вас вообще поднят?

    netstat -an | grep 53

    И еще, почему вы forwarders не указали? Что у вас в /etc/resolv.conf

  59. adw0rd | 26.10.2009 в 15:08

    тогда я не могу получить доступ к web странице www.domen.ru

    а вот по адресу ns1.domen.ru доступ есть.

    bbl-russia.ru и ns1.bbl-russia.ru — не пингуются, я не знаю как это у вас есть доступ к ns1

  60. etweet | 26.10.2009 в 15:39

    читал уже много статей везде пишут по разному

    можешь сказать вот для поддержки своего домена сколько зон должно быть включено и какие

    Спасибо!

  61. klovic | 17.11.2009 в 10:41

    Сорри за дурной вопрос — это в каком месте вписать

    Теперь вы можете вписать у регистратора — свои DNS сервера, примерно так:

    ns1.adw0rd.ru 82.146.63.195

    ns2.trifle.net

  62. klovic | 17.11.2009 в 10:45

    Большое спасибо за статью — сразу заработало — вот только про регистратора не понял

  63. adw0rd | 17.11.2009 в 10:54

    klovic, это надо прописать в разделе DNS/NS адреса, у регистратора доменных имен :)

  64. klovic | 17.11.2009 в 11:05

    т.е на сайте www.trifle.net

  65. adw0rd | 17.11.2009 в 11:26

    klovic, нет, это то место, где у вас зарегистрирован домен, например R01, RU-CENTER и т.д.

  66. klovic | 17.11.2009 в 11:39

    т.е у провайдера

  67. klovic | 17.11.2009 в 12:09

    спасибо за статью

  68. adw0rd | 17.11.2009 в 13:10

    klovic, провайдер слишком общее название, а правильное название для того кто уполномочен регистрировать домена — Регистратор доменных имен (Регистратор)

  69. klovic | 08.12.2009 в 13:20

    Да я согласен — только в договоре шеф подписался — что они ему дают и сопровождают домен второго уровня — вот до сих пор никак не могу поднять бинда — все какие-то ошибки — которых я не вижу но про которые мне сообщают. Делал как было написано в этой статье — только вместо бесплатного DNS их два сервера — подскажи в файле named.conf listen надо что бы там были 127.0.0.1, 192..., и внешний адрес

  70. klovic | 08.12.2009 в 13:32

    Вот такая штука получается и как видишь внизу адрес внутренний а не внешний —

    ns# dig @ns.zao-uralavto.ru zao-uralavto.ru

    ; <> DiG 9.6.1-P1 <> @ns.zao-uralavto.ru zao-uralavto.ru

    ; (1 server found)

    ;; global options: +cmd

    ;; Got answer:

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21807

    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

    ;; QUESTION SECTION:

    ;zao-uralavto.ru. IN A

    ;; ANSWER SECTION:

    zao-uralavto.ru. 3600 IN A 77.247.213.186

    ;; AUTHORITY SECTION:

    zao-uralavto.ru. 3600 IN NS ns1.ural-net.ru.

    zao-uralavto.ru. 3600 IN NS ns.zao-uralavto.ru.

    zao-uralavto.ru. 3600 IN NS ns2.ural-net.ru.

    ;; ADDITIONAL SECTION:

    ns.zao-uralavto.ru. 3600 IN A 77.247.213.186

    ns1.ural-net.ru. 38396 IN A 77.247.209.2

    ns2.ural-net.ru. 38396 IN A 77.247.208.70

    ;; Query time: 0 msec

    ;; SERVER: 192.168.1.50#53 (192.168.1.50)

    ;; WHEN: Tue Dec 8 15:27:55 2009

    ;; MSG SIZE rcvd: 159

  71. adw0rd | 08.12.2009 в 14:35

    klovic, вы прописали нс-ы у регистратора?

  72. klovic | 08.12.2009 в 15:51

    если б мне знать — я общаюсь с провайдером — видимо нужно требовать у шефа делать изменения к договору т.к. я не вижу что там делается — а мне говорят ошибка у тебя

  73. adw0rd | 08.12.2009 в 22:09

    А какая ошибка то говорят?

  74. dez | 11.12.2009 в 22:32

    [root@gw /etc/namedb]# chmod u+x make-localhost
    [root@gw /etc/namedb]# ./make-localhost
    -bash: ./make-localhost: cannot execute binary file

    что не так?

  75. dez | 11.12.2009 в 22:46

    Решил этот вопрос)) перекачиванием фала заново)

  76. Alexander | 24.01.2010 в 12:48

    Спасибо, adw0rd, за статью которая помогла разобраться в настройке bind, правда под линухом.

    Только вот встретился с проблемкой, которую благополучно решил просидев за ней всю ночь. Проблема след. толка:

    Настроил как советовал автор статьи, и доходя до момента

    dig @ns1.domain.ru domain.ru
    у меня сервер отказывался отвечать, в статусе запроса гордо стоял REFUSED

    Оказывается я не усмотрел один момент. у меня сервер раздает интернет на компьютеры в локальную сеть, разумеется без такого велосипеда как dnsmasq было не обойтись. он то и не давал запуститься named, это можно было увидеть в логах syslog-ng (блокировал порт 53)

    PS: логи очень(!!!) помогают в разборе ошибок, жалею о потраченном в пустую времени. автору спасибо

  77. adw0rd | 24.01.2010 в 13:26

    Пожалуйста :)

  78. Илья | 02.02.2010 в 18:22

    Здравствуйте adw0rd!

    Статья замечательная, очень много интересных нюансов.

    Я пытаюсь адаптировать ее под свои нужды (ubuntu 9.10 + bind)

    Столкнулся с такой проблемой:

    rndc и bind9 запускаются без ошибок, а :~# dig @ns1.tmnz.ru tmnz.ru дает следующий результат:

    ; <> DiG 9.6.1-P2 <> @ns1.tmnz.ru tmnz.ru

    ; (1 server found)

    ;; global options: +cmd

    ;; Got answer:

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22903

    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

    ;; QUESTION SECTION:

    ;tmnz.ru. IN A

    ;; ANSWER SECTION:

    tmnz.ru. 0 IN A 192.168.1.1

    ;; Query time: 2 msec

    ;; SERVER: 92.255.174.131#53 (92.255.174.131)

    ;; WHEN: Tue Feb 2 19:34:26 2010

    ;; MSG SIZE rcvd: 41

    Файл настройки зоны:

    $TTL 3600

    $ORIGIN ru.

    tmnz IN SOA ns1.tmnz.ru. root.tmnz.ru. (

    2010020201 ; Serial

    43200 ; Refresh

    3600 ; Retry

    604800 ; Expire

    3600 ) ; Minimum TTL

    $ORIGIN tmnz.ru.

    @ NS ns1

    @ NS ns2.trifle.net.

    @ A 92.255.174.131

    localhost A 127.0.0.1

    ns1 A 92.255.174.131

    ns2 A 195.24.128.164

    www A 92.255.174.131

    ww CNAME www

    Примечание: эта машина во внутренней сети с адресом 192.168.1.11 и именем tmnz на которой установлен веб-сервер домена второго уровня (tmnz.ru), эта машина имеет выход в инет через шлюз роутера с адресом 192.168.1.1 и внешним реальным адресом 92.255.174.131, который необходимо сделать ns1-адресом домена tmnz.ru

    Если сможете мне помочь, буду очень благодарен! (Можно не безвозмездно)! :)

  79. adw0rd | 02.02.2010 в 18:54

    dig @ns1.tmnz.ru tmnz.ru дает следующий результат

    У вас покачто не доступен домен, поэтому надо юзать так:

    dig @92.255.174.131 tmnz.ru

    Когда (дата) вы прописали NSы домену tmnz.ru? Он прошел делегирование?

  80. Илья | 02.02.2010 в 19:17

    dig @92.255.174.131 tmnz.ru

    Та же история что и с

    dig @ns1.tmnz.ru tmnz.ru

     — привел ответ выше.

    NSы для tmnz.ru я прописал (в панели регистратора):

    ns1.tmnz.ru (92.255.174.131)

    ns2.trifle.net

    Около 8 часов назад

    С учетом того что я написал в примечании я все правильно делаю?

    ;; ANSWER SECTION:

    tmnz.ru. 0 IN A 192.168.1.1

    смущает /\

  81. Илья | 02.02.2010 в 19:41

    www.intodns.com — очень хороший сервис для проверки ДНС!

  82. adw0rd | 03.02.2010 в 12:35

    www.intodns.com — очень хороший сервис для проверки ДНС!

    спасибо, добавил в adw0rd.ru/services/

  83. adw0rd | 03.02.2010 в 12:53

    # dig @92.255.174.131 tmnz.ru

    ; <<>> DiG 9.6.1-P2 <<>> @92.255.174.131 tmnz.ru
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46592
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; WARNING: recursion requested but not available

    ;; QUESTION SECTION:
    ;tmnz.ru.           IN  A

    ;; ANSWER SECTION:
    tmnz.ru.        3600    IN  A   92.255.174.131

    ;; AUTHORITY SECTION:
    tmnz.ru.        3600    IN  NS  ns2.trifle.net.
    tmnz.ru.        3600    IN  NS  ns1.tmnz.ru.

    ;; ADDITIONAL SECTION:
    ns1.tmnz.ru.        3600    IN  A   92.255.174.131

    ;; Query time: 107 msec
    ;; SERVER: 92.255.174.131#53(92.255.174.131)
    ;; WHEN: Wed Feb  3 12:51:28 2010
    ;; MSG SIZE  rcvd: 103





    # dig @ns1.tmnz.ru tmnz.ru
    dig: couldn't get address for 'ns1.tmnz.ru': not found

    У меня ваш сервер нормально отвечает

  84. Илья | 03.02.2010 в 14:02

    В логе при запуске BIND возникает ошибка:

    Feb  3 15:42:09 tmnz named[7869]: command channel listening on 127.0.0.1#953
    Feb  3 15:42:09 tmnz named[7869]: command channel listening on ::1#953
    Feb  3 15:42:09 tmnz named[7869]: the working directory is not writable       <b><--- ВОТ ЭТО</b>
    Feb  3 15:42:09 tmnz named[7869]: zone tmnz.ru/IN: loaded serial 2920333826
    Feb  3 15:42:09 tmnz named[7869]: running
    Feb  3 15:42:09 tmnz named[7869]: zone tmnz.ru/IN: sending notifies (serial 2920333826)

    Это вообще ошибка? Если Да, то о какой директории речь?

    Проверил все права, вроде все правильно...

  85. Илья | 03.02.2010 в 14:08

    Ну и еще один вопрос. ;)

    Как сделать ns2 на том же IP?

    Что нужно добавить (поменять) в файл зоны?

    Спасибо!

  86. Илья | 03.02.2010 в 14:31

    И еще вопрос ;)

    Как правильно вносить MX записи?

    Делаю так:

    mail        MX  10  tmnz.ru.

    проверяю:

    # host -t mx tmnz.ru.
    tmnz.ru has no MX record

    Что я не так делаю?

  87. adw0rd | 03.02.2010 в 15:34

    Что я не так делаю?

    serial поменяли? rndc зарелодили? named ребутнули? что говорит named-checkconf?
  88. adw0rd | 03.02.2010 в 15:37

    Как сделать ns2 на том же IP?

    все аналогично первому, но думаю вы понимаете что не хорошо вешать все нски на один сервак?
  89. Илья | 03.02.2010 в 15:46

    serial поменяли? rndc зарелодили? named ребутнули? что говорит named-checkconf?

    Поменял, зарелодил, ребутнул. named-checkconf молчит, никаких ошибок:

    :~# rndc reload
    server reload successful
    :~# /etc/init.d/bind9 restart
     * Stopping domain name service... bind9                                 [ OK ]
     * Starting domain name service... bind9                                 [ OK ]
    :~# named-checkconf
    :~#

  90. Илья | 03.02.2010 в 15:55

    Если один НС так:

    $TTL    3600
    $ORIGIN ru.

    tmnz    IN  SOA ns1.tmnz.ru. root.tmnz.ru.  (
                    2010020307  ; Serial
                    43200       ; Refresh
                    3600        ; Retry
                    604800      ; Expire
                    3600 )      ; Minimum TTL
    $ORIGIN tmnz.ru.

    @       NS  ns1
    @       NS  ns2.trifle.net.

    @       A   92.255.174.131
    localhost   A   127.0.0.1

    ns1     A   92.255.174.131
    ns2     A   195.24.128.164

    www     CNAME   tmnz.ru.
    mail        MX  10  tmnz.ru.

    то оба НС будет так:

    $TTL    3600
    $ORIGIN ru.

    tmnz    IN  SOA ns1.tmnz.ru. ns2.tmnz.ru. root.tmnz.ru.  (
                    2010020301  ; Serial
                    43200       ; Refresh
                    3600        ; Retry
                    604800      ; Expire
                    3600 )      ; Minimum TTL
    $ORIGIN tmnz.ru.

    @       NS  ns1
    @       NS  ns2

    @       A   92.255.174.131
    localhost   A   127.0.0.1

    ns1     A   92.255.174.131
    ns2     A   92.255.174.131

    www     CNAME   tmnz.ru.
    mail        MX  10  tmnz.ru.

    Или я ошибаюсь?

    Достал наверно уже своими глупыми вопросами? :)

  91. adw0rd | 03.02.2010 в 16:34

    Ну с виду все хорошо, пробуйте :)

  92. Илья | 03.02.2010 в 16:50

    Уже попробовал, все летает! :)

    Попробовал прикрепить на эти НСы (ns1.tmnz.ru и ns2.tmnz.ru) еще один домен,все прекрасно работает!

    Осталась только проблема с MX, описывал выше. Есть какие нибудь мысли?

  93. adw0rd | 03.02.2010 в 20:13

    Вам надо нечто вида:

    mail 345600 IN MX 10 @

  94. Илья | 03.02.2010 в 20:48

    adw0rd, спасибо огромное за поддержку! Победил я его! :)

    Если кто будет читать и кому надо MX, надо вот так:

    @       IN  MX  10  mail

    mail        IN  A   XX.XX.XX.XX / ваш IP

    Закончилась эпопея...

    А теперь плавно перейду на почтовик Postfix, у тебя случайно нет статейки по этому поводу?

  95. adw0rd | 03.02.2010 в 22:58

    Есть, но она еще не дописана... может на днях допишу, потерпите? :)

    Только она у меня называется «FreeBSD. Поднимаем свой почтовый сервер на базе Dovecot, Exim, Postfixadmin, Roundcube, Clamav и SpamAssassin». Я не юзаю Postfix

  96. Ramzess | 11.02.2010 в 11:26

    И перезагрузим сервак

    # reboot

    Использование reboot крайне не рекомендуется во FreeBSD. При ребуте происходит «жесткое» завершение работы, не выполняются shutdown-скрипты, могут некорректно отмонтироваться файловые системы. Лучше всего, использовать shutdown -r now

  97. adw0rd | 12.02.2010 в 03:22

    Спасибо, буду иметь ввиду

  98. Pandora | 25.08.2010 в 08:14

    allow-recursion { any; };

    ужас ^_^

Оставить комментарий