26 августа 2009 г. Bind DNS FreeBSD

FreeBSD. DNS сервер своими руками при помощи Bind9

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;
};
Для того чтобы сразу сохранить ключ в файл, не копируя его содерджимое, запустите с флагом
rndc-confgen -a
Создайте файл "/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.

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

Комментарии

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

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

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

Странно сделал все и переделал все как у Вас Тютелька в тютельку ! а мне вот трифл рассказыват про негативный ответ AXFR И что...
полез по документациям оказывается нужна еще и обратка типа Ip-адрес наоброт.ip-addr.arpa и тд и тп...
allow.transfer И тд тоже работают =) на все направления как не извивался ничего не получается...

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

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

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

Aios, сделайте

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

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

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

Я как всегда накосячил... Тот днс я настраивал не на 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

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

Уже лутше спасибо =))
Последний вопросик...

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

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

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

dig @ns1.Домен.ru

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

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

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

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

Уважаемый 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 =)))

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

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

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

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

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

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


state:      REGISTERED, DELEGATED

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

Все еще раз извините что мягко говоря "з@ср@л" вам топик =)
ПОЛЕТ ИДЕАЛЬНЫЙ!

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

У меня не BIND 9.4.3-P2 на FreeBSD 7.2 при запуске ругается, что рабочая директория не пригодна для записи.
при этом named запускается от имени bind, а скрипт /etc/rc.d/named изменяет права на рабочую директорию на UID=0 GID=0.

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

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

  1. Что у вас в rc.conf по поводу bind?
  2. Как вы вручную запускаете named?
  1. named_enable="YES" и все
  2. named стартует при запуске и даже слушает порт, но вот резолвить не хочет. После шаманства над named перегружаю named.reload
  1. В rc.conf добавьте

named_uid="bind"
named_chrootdir=""
named_flags="-s"
  1. Я имел ввиду какой командой вы его запускаете?
  1. Спасибо. Попробую.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

у вас в примере так IN SOA ns1.adw0rd.ru. root.adw0rd.ru.
1)ns1 -- это что ?

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

Извините за ламерские вопросы просто я новичек в этом!
можете помочь 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

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

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

спасибо ^_^

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

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

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

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

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

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

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

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

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

// $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;};

};

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

$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

$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

Не обязательно указывать домен полность, используйте короткую запись для 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

  1. После настройки перезагружаете named?
  2. Что говорит dig?
dig @ns1.domain.ru domain.ru

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

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

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

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

netstat -an | grep 53

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

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

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

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

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

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

ns1.adw0rd.ru 82.146.63.195
ns2.trifle.net

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

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

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

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

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

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

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

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

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

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

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

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

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


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

что не так?

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

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

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

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

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

Здравствуйте 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

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

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

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

dig @92.255.174.131 tmnz.ru

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

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

          смущает  /\

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

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

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


# 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

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

В логе при запуске 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)

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

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

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

Спасибо!

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

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

Делаю так:


mail        MX  10  tmnz.ru.

проверяю:


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

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

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

Как сделать ns2 на том же IP?
все аналогично первому, но думаю вы понимаете что не хорошо вешать все нски на один сервак?

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
:~# 

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


$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.

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

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

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

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

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

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

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

mail 345600 IN MX 10 @

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

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


@       IN  MX  10  mail

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

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

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

Есть, но она еще не дописана... может на днях допишу, потерпите? :)
Только она у меня называется "FreeBSD. Поднимаем свой почтовый сервер на базе Dovecot, Exim, Postfixadmin, Roundcube, Clamav и SpamAssassin". Я не юзаю Postfix

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

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

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

allow-recursion { any; };

ужас ^_^

Огромное спасибо за статью, поднимаю днс сервер для нужд хостинга, правда на Ubuntu, но разница я так понимаю не большая.

У меня возник вопрос, как в вашем конфиге сервера будут обмениваться зонами?
Разве не нужно указать в allow-transfer { ns2.trifle.net; };

adw0rd, и еще один вопрос, если я покупаю домен mydomen.ru по вашему конфигу настрою ns1.mydomen.ru проделегирую его,

то смогу ли я потом по адресу mydomen.ru попасть на свой сервер так же как я сейчас попадаю по localhost или 95.161.XX.XX

Или надо делать виртуал хост и создавать новую зону?

Тьфу ты забыл самое главное... если вас не затруднит взгляните, правильно ли я сделал файлы /etc/hosts

127.0.0.1<----->localhost
127.0.1.1<----->ns1.mydomen.ru mydomen.ru mydomen

и соответственно /etc/hostname

mydomen.org
Разве не нужно указать в allow-transfer { ns2.trifle.net; };
по моему опыту в этом нет необходимости
то смогу ли я потом по адресу mydomen.ru попасть на свой сервер так же как я сейчас попадаю по localhost или 95.161.XX.XX
сможете
правильно ли я сделал файлы /etc/hosts

правильно, но они вообще не обязательны (ns1.mydomen.ru mydomen.ru mydomen)

Спасибо за статью! Оказывается не такой страшный этот bind как его малюют, только вот не рекомендуется делать так:

named_chrootdir=""

получается мы запускаем bind вне песочницы и открываем кулхацкерам брешь в системе безопасности. Еще вы не написали ничего про обратную зону. Если ее нет, то могут быть проблемы с отправкой почты. В случае с FirstVDS обратная зона создается в VDSManager'е в пункте IP-addresses, домен надо указывать с точкой в конце: adw0rd.ru.
Проверить обратную зону на сервере можно набрав:

hostname adw0rd.ru

Про chrootdir приведите примеры реальных угроз безопасности, все понятно про песочницу, да на деле не встречал таких случаев... По поводу PTR, то я собирался о ней написать в заметке про почту, которую пишу с того момента, но собираюсь уже скоро опубликовать :) А по поводу hostname, то вы наверное имели ввиду команду host?

Привести примеры не могу, но сами разработчики bind'а не рекомендуют отключать песочницу. Правда на FirstVDS песочница не работает из-за ограничений VDS (невозможно смонтирвать devfs), поэтому приходится ее отключать...

Угу, имел ввиду host:)

А что по поводу почты рекомендуете? Sendmail я не осилил. Буду пытаться exim+dovecot+postfixadmin прикрутить, просто у меня около 100 доменов будет крутиться, и нужен интерфейс для быстрого создания ящиков. Можно взглянуть на черновик статьи? Могу помочь дописать;)

Мы тоже на FirstVDS сейчас. По поводу почты рекомендую exim+dovecot+postfixadmin+roundcube+spamassassin+clamav, о настройках которых и пишу :)

Рекомендую в качестве антиспама DNSBL+Greylisting у меня они практически не пропускают спам, максимум 1-2 спам письма в неделю;)

По поводу вышеупомянутой связки есть статья:
Установка почтового сервера Exim & Dovecot + Postfixadmin & Roundcube + Fetchmail & smtp_relay + SSL шифрование

Можно взять ее за основу, выкинув Fetchmail. Правда в новом dovecot пара ключей в конфиге поменялась, но в форуме они описаны в топике прикрепленном к статье.

Кстати заменил что rndc.key нигде не подключен в конфиге в статье

Можно либо так:
named.conf

key "rndc-key" {
        algorithm hmac-md5;
        secret "ogogogogogggggo";
};

controls {
         inet 127.0.0.1 port 953
         allow { 127.0.0.1; } keys { "rndc-key"; };
};

либо так:

include "/etc/namedb/rndc.key";

Еще в /var/log/messages при запуске бинда вываливаются ошибки, хотя все пашет:

Nov 21 17:28:19 1ns named[72121]: the working directory is not writable
Nov 21 17:28:19 1ns named[72121]: managed-keys-zone ./IN: loading from master file managed-keys.bind failed: file not found

Правильно ли я понимаю, что если мне нужно что бы обрабатывались все поддомены необходимо добавить в master/domain.ru сл.

* IN A <IP адрес сервера>

Правильно ли я понимаю, что если мне нужно что бы обрабатывались все поддомены необходимо добавить в master/domain.ru сл.
* IN A <IP адрес сервера>

если что это необходимо для того, что бы избежать длинных списков типа:


svn IN CNAME domain.ru.
trac IN CNAME domain.ru.
www IN CNAME domain.ru.
ww IN CNAME www

mario, да, а потом обрабатывать nginx'ом

спасибо :)

Кстати заменил что rndc.key нигде не подключен в конфиге в статье

Дело в том, что скрипт инициализации подгружает сам rndc.key, но думаю не помешает указать инклудом

Здраствуйте. Сделал все как у вас написано, но сайт так и не могу запустить, без бинда на хосте работает как только запускаю бинд, не заводиться.
Помогите пожалуста где у меня не точности.
/etc/hosts :


::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain
#192.168.1.9            onelans         onalans.lv
#94.101.227.101         gipernet        gipernet.eu

192.168.1.4             gipernet        gipernet.eu
#

/etc/resolv.conf


nameserver 94.101.227.101 // Мой IP
nameserver 94.101.227.254 //DNS провайдера
nameserver 94.101.226.1  // 2 DNS провайдера

/etc/rc.conf


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

/etc/namedb/named.conf


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.1.4; };
forwarders {94.101.227.254;94.101.226.1;};

};

zone "." { type hint; file "/etc/namedb/named.root"; };

zone "gipernet.eu" {
        type            master;
        file            "/etc/namedb/master/db.gipernet.eu";

};

/etc/namedb/master/db.gipernet.eu


$TTL 1d

@       IN SOA ns1.gipernet.eu. admin.gipernet.eu. (
                        2010121904      ; serial
                        1d              ; refresh
                        12h             ; retry
                        1w              ; expire
                        3h )            ; neg. cache ttl


        IN              NS              ns1.gipernet.eu.

        IN              NS              ns2.trifle.net.


@               IN      A               94.101.227.101
localhost       IN      A               127.0.0.1
ns1             IN      A               94.101.227.101
ns2             IN      A               195.24.128.164

www             IN      A               94.101.227.101
ww              IN      CNAME           www

/var/log/messages


Dec 21 13:39:36 gipernet named[948]: starting BIND 9.6.2-P2 -s -u bind
Dec 21 13:39:36 gipernet named[948]: built with '--prefix=/usr' '--infodir=/usr/share/info' '--mandir=/usr/share/man'\
'--enable-threads' '--disable-ipv6' '--enable-getifaddrs'\
'--disable-linux-caps' '--with-openssl=/usr' '--with-randomdev=/dev/random'\
'--without-idn' '--without-libxml2'
Dec 21 13:39:37 gipernet named[948]: command channel listening on 127.0.0.1#953
Dec 21 13:39:37 gipernet named[948]: command channel listening on ::1#953
Dec 21 13:39:37 gipernet named[948]: running

gipernet# dig @ns1.gipernet.eu gipernet.eu


; <> DiG 9.6.2-P2 <> @ns1.gipernet.eu gipernet.eu
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

gipernet# dig @ns1.gipernet.eu


; <> DiG 9.6.2-P2 <> @ns1.gipernet.eu
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63945
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       21204   IN      NS      e.root-servers.net.
.                       21204   IN      NS      f.root-servers.net.
.                       21204   IN      NS      g.root-servers.net.
.                       21204   IN      NS      h.root-servers.net.
.                       21204   IN      NS      i.root-servers.net.
.                       21204   IN      NS      j.root-servers.net.
.                       21204   IN      NS      k.root-servers.net.
.                       21204   IN      NS      l.root-servers.net.
.                       21204   IN      NS      m.root-servers.net.
.                       21204   IN      NS      a.root-servers.net.
.                       21204   IN      NS      b.root-servers.net.
.                       21204   IN      NS      c.root-servers.net.
.                       21204   IN      NS      d.root-servers.net.

;; ADDITIONAL SECTION:
e.root-servers.net.     36692   IN      A       192.203.230.10
f.root-servers.net.     555     IN      A       192.5.5.241
g.root-servers.net.     555     IN      A       192.112.36.4
h.root-servers.net.     36692   IN      A       128.63.2.53
i.root-servers.net.     36692   IN      A       192.36.148.17
j.root-servers.net.     36692   IN      A       192.58.128.30
k.root-servers.net.     36692   IN      A       193.0.14.129
l.root-servers.net.     9530    IN      A       199.7.83.42
m.root-servers.net.     9676    IN      A       202.12.27.33
a.root-servers.net.     8772    IN      A       198.41.0.4
b.root-servers.net.     36692   IN      A       192.228.79.201
c.root-servers.net.     555     IN      A       192.33.4.12
d.root-servers.net.     555     IN      A       128.8.10.90

;; Query time: 20 msec
;; SERVER: 94.101.227.101#53(94.101.227.101)
;; WHEN: Tue Dec 21 13:59:26 2010
;; MSG SIZE  rcvd: 449

Помогите пожалуйста решить проблему.

Спасибо за статью сделал, в точности как было описано все за работало.


gipernet# dig www.gipernet.eu

; <> DiG 9.6.2-P2 <> www.gipernet.eu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30999
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.gipernet.eu.               IN      A

;; ANSWER SECTION:
www.gipernet.eu.        3600    IN      A       94.101.227.101

;; AUTHORITY SECTION:
gipernet.eu.            3600    IN      NS      ns2.trifle.net.
gipernet.eu.            3600    IN      NS      ns1.gipernet.eu.

;; ADDITIONAL SECTION:
ns1.gipernet.eu.        3600    IN      A       94.101.227.101
ns2.trifle.net.         1596    IN      A       195.24.128.164

;; Query time: 1 msec
;; SERVER: 192.168.1.4#53(192.168.1.4)
;; WHEN: Tue Dec 21 16:30:39 2010
;; MSG SIZE  rcvd: 127

Ну проблема в том что если делаю :


gipernet# dig @ns1.gipernet.eu gipernet.eu

; <> DiG 9.6.2-P2 <> @ns1.gipernet.eu gipernet.eu
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14216
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gipernet.eu.                   IN      A

;; AUTHORITY SECTION:
gipernet.eu.            995     IN      SOA     nsa.bookmyname.com. hostmaster.bookmyname.com. 1292938472 43200 3600 604800 3600

;; Query time: 8 msec
;; SERVER: 94.101.227.101#53(94.101.227.101)
;; WHEN: Tue Dec 21 16:32:14 2010
;; MSG SIZE  rcvd: 94

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


$TTL 3600
$ORIGIN eu.
gipernet        IN SOA ns1.gipernet.eu. admin.gipernet.eu. (
                        2010122107      ; serial
                        43200           ; refresh
                        3600            ; retry
                        604800          ; expire (1 week)
                        3600 )  ; minimum TTL

$ORIGIN gipernet.eu.

@                       NS              ns1

@                       NS              ns2.trifle.net.

@                       A               94.101.227.101

localhost               A               127.0.0.1

ns1                     A               94.101.227.101

ns2                     A               195.24.128.164

www                     A               94.101.227.101

ww                      CNAME           www

Лог файл :


1 16:37:08 gipernet named[1525]: starting BIND 9.6.2-P2 -s -u bind
Dec 21 16:37:08 gipernet named[1525]: built with '--prefix=/usr' '--infodir=/usr/share/info' '--mandir=/usr/share/man'\
'--enable-threads' '--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps' '--with-openssl=/usr' '--with-randomdev=/dev/random'\
'--without-idn' '--without-libxml2'
Dec 21 16:37:08 gipernet named[1525]: command channel listening on 127.0.0.1#953
Dec 21 16:37:08 gipernet named[1525]: command channel listening on ::1#953
Dec 21 16:37:08 gipernet named[1525]: running

Еще как сделать чтоб заходили на интернет страничку не только с www.domen.ru , а наберали domen.ru и поподали на страничку.

Проблемы еще вот такие :
http://www.intodns.com/gipernet.eu

у вас вообще хост не доступен, когда заработает, то потестю
дайте знать

Я его завел посмотрите пожалуйста, что не так .
Если чего надо пишите прешлю.

Ты супер. Неделю еб..сь с днсом. Спасибо большое за помощь.

Добрый вечер! Вопрос:

наряду с ns1, ns2 указывается сабдомен root. Для чего? Каким образом он участвует в DNS?

Спасибо.

Ммм... попробую переформулировать свой вопрос :) Имеется в виду эта строчка в конфиге, у каждого она разная:

gipernet        IN SOA ns1.gipernet.eu. admin.gipernet.eu. (
adw0rd                      IN SOA  ns1.adw0rd.ru. root.adw0rd.ru. (
tmnz    IN  SOA ns1.tmnz.ru. root.tmnz.ru.  (

С указанием доменов ns1 (и-или ns2) все понятно. А вот последним в этом списке идет либо root., либо admin. Как у кого. Что означает этот адрес? На какой параметр конфигурации ОС или DNS он должен ссылаться?

Вот. :)

Анастасия 26 марта 2011 г. 20:22

Застряла на

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

после ./make-localhost говорит
./make-localhost: Command not found. Помогайте, пожалуйста

В статье написано где этот файл взять, читайте внимательно

Анастасия 27 марта 2011 г. 11:46

Я конечно же сразу нашла где его взять. Ошибка, наверное заключалась в том, что я создавала файл на локальном компьютере и через ftp копировала его на сервер. После того как вставила содержимое make-localhost через ee редактор прямо на сервере, файл стал запускаться. Видимо до того он не воспринимался как исполняемый.

2 Paul: root это не сабдомен, это мыло админа, вместо собаки используется точка. Потом когда запустите почтарь надо будет прописать этот алиас, либо создать такой ящик.

dig ns1.domain.ru выдает

; <<>> DiG 9.6.2-P2 <<>> ns1.domain.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 62450
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.domain.ru.                 IN      A

;; AUTHORITY SECTION:
domain.ru.              3600    IN      SOA     ns1.bz8.ru. dnsmaster.bz8.ru. 20     11032900 10800 1800 3600000 3600

;; Query time: 0 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Thu Mar 31 23:53:08 2011
;; MSG SIZE  rcvd: 85

Но,dig ns1.domain.ru domain.ru выдает что все ок

; <<>> DiG 9.6.2-P2 <<>> ns1.domain.ru domain.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 65528
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.domain.ru.                 IN      A

;; AUTHORITY SECTION:
domain.ru.              3600    IN      SOA     ns1.bz8.ru. dnsmaster.bz8.ru. 2011032900 10800 1800 3600000 3600

;; Query time: 94 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Thu Mar 31 23:51:51 2011
;; MSG SIZE  rcvd: 85

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40837
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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

;; ANSWER SECTION:
domain.ru.              3600    IN      A       188.130.180.20

;; Query time: 1 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Thu Mar 31 23:51:51 2011
;; MSG SIZE  rcvd: 43

Это нормально?

Нормально, просто надо подождать когда кеши сбросятся у провайдеров.
У меня уже доступно:

$ dig ns1.domain.ru

; <<>> DiG 9.7.1-P2 <<>> ns1.domain.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15628
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;ns1.domain.ru.         IN  A

;; ANSWER SECTION:
ns1.domain.ru.      86400   IN  CNAME   domain.ru.
domain.ru.      86385   IN  A   62.213.78.22

;; AUTHORITY SECTION:
domain.ru.      86385   IN  NS  ns.caravan.ru.
domain.ru.      86385   IN  NS  ns2.caravan.ru.

;; ADDITIONAL SECTION:
ns.caravan.ru.      75089   IN  A   217.23.128.1
ns2.caravan.ru.     75089   IN  A   217.23.146.1

;; Query time: 19 msec
;; SERVER: 192.168.10.100#53(192.168.10.100)
;; WHEN: Fri Apr  1 12:50:29 2011
;; MSG SIZE  rcvd: 136

В тексте домены левые,у мой же реальный домен почему-то выдает при gid ns1.icebax.ru

; <<>> DiG 9.6.2-P2 <<>> ns.icebax.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50412
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns.icebax.ru.                  IN      A

;; AUTHORITY SECTION:
icebax.ru.              3600    IN      SOA     ns1.bz8.ru. dnsmaster.bz8.ru. 2011032900 10800 1800 3600000 3600

;; Query time: 14 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Fri Apr  1 09:44:34 2011
;; MSG SIZE  rcvd: 84

Примерно такой-же выдает и для ns2.icebax.ru (2 ip)

Но,если ns1.icebax.ru icebax.ru

; <<>> DiG 9.6.2-P2 <<>> ns2.icebax.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 15589
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns2.icebax.ru.                 IN      A

;; AUTHORITY SECTION:
icebax.ru.              3600    IN      SOA     ns1.bz8.ru. dnsmaster.bz8.ru. 2011032900 10800 1800 3600000 3600

;; Query time: 27 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Fri Apr  1 09:46:01 2011
;; MSG SIZE  rcvd: 85

icebax# dig ns1.icebax.ru icebax.ru

; <<>> DiG 9.6.2-P2 <<>> ns1.icebax.ru icebax.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 32943
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.icebax.ru.                 IN      A

;; AUTHORITY SECTION:
icebax.ru.              3600    IN      SOA     ns1.bz8.ru. dnsmaster.bz8.ru. 2011032900 10800 1800 3600000 3600

;; Query time: 15 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Fri Apr  1 09:46:49 2011
;; MSG SIZE  rcvd: 85

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35201
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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

;; ANSWER SECTION:
icebax.ru.              3600    IN      A       188.130.180.20

;; Query time: 30 msec
;; SERVER: 188.120.247.2#53(188.120.247.2)
;; WHEN: Fri Apr  1 09:46:49 2011
;; MSG SIZE  rcvd: 43

ммм,странно. Но регистратор домены нормально присоединил к обоим нс'кам

dig ns1.icebax.ru icebax.ru
!=
dig @ns1.icebax.ru icebax.ru

firefly, ну надо ждать когда ваши провайдеры (локальные) обновят кеш днс

adw0rd Спасибо за статью! Ооочень полезная, пользовался этой инструкцией и всё прошло на "УРА!", все прекрасно заработало. Но остался один вопрос, никак не могу добавить ещё один домен. Создал зону в named.conf, создал файл с именем домена, но вот домен работать ни как не хочет. Хочу вас попросить посмотреть то, что я написал в файлах (ни где ни могу найти информацию как должен выглядеть файл мастер зоны для 2-го - n-го доменов).

файл named.conf (зону web-nalog.ru я дописал - это второй домен, который я хочу прикрепить)
zone "ip-otchet.ru" {
type master;
file "master/ip-otchet.ru";
};

zone "web-nalog.ru" {
type master;
file "master/web-nalog.ru";
};

файл /master/web-nalog.ru
$TTL 3600
$ORIGIN ru.

web-nalog.ru IN SOA ns1.ip-otchet.ru. root.ip-otchet.ru. (
2011050525
43200
3600
604800
3600 )
$ORIGIN web-nalog.ru.

web-nalog.ru. IN NS ns1.ip-otchet.ru
@ NS ns2.trifle.net.

@ A 178.74.103.96
localhost A 127.0.0.1
ns1.ip-otchet.ru. IN A 178.74.103.96
ns2.trifle.net. IN A 195.24.128.164
www A 178.74.103.96
ww CNAME www

что не так в файлах, ни как не могу понять как добавлять домены.
adw0rd Буду очень благодарен за ответ! Спасибо!

Замените


web-nalog.ru IN SOA ns1.ip-otchet.ru. root.ip-otchet.ru. ( 

на


web-nalog IN SOA ns1.ip-otchet.ru. root.ip-otchet.ru. ( 

и


web-nalog.ru. IN NS ns1.ip-otchet.ru
@ NS ns2.trifle.net.
@ A 178.74.103.96

на


@ NS ns1.ip-otchet.ru.
@ NS ns2.trifle.net.
@ A 178.74.103.96

Пасиб Большое Человеческое за статью!
столько мучилась с днс-ником, и тут - все по тексту и работает!
УРА!

Так как я только начал заниматься днс-ом...прошу сильно не "посылать" куда-то... -:)
Прошу помощи в настройке обратной зоны, для связки 95.167.6.35 и доменных имён vzarinske.ru mail.vzarinske.ru.
Это для работы почтовика требуется.
Вот какой файл сейчас у меня:

gate1# cat /etc/namedb/master/in.35.6.167.95.rev
;       From: @(#)localhost.rev 5.1 (Berkeley) 6/30/90
; $FreeBSD: src/etc/namedb/PROTO.localhost.rev,v 1.6 2000/01/10 15:31:40 peter Exp $
;
; This file is automatically edited by the `make-localhost' sсript in
; the /etc/namedb directory.
;

$TTL    38400

35.6.167.95.in-addr.arpa.       IN      SOA     gate1.  root.gate1.vzarinske.ru.  (
                            201209072       ; Serial
                            3600    ; Refresh
                            900     ; Retry
                            3600000 ; Expire
                            3600 )  ; Minimum
35                      IN      NS      gate1.
35                      IN      PTR     vzarinske.ru.
35                      IN      PTR     mail.vzarinske.ru.

Но когда делаю запрос:

gate1# nslookup -debug 95.167.6.35
Server:         10.11.11.1
Address:        10.11.11.1#53

------------
QUESTIONS:
    35.6.167.95.in-addr.arpa, type = PTR, class = IN
ANSWERS:
AUTHORITY RECORDS:
->  6.167.95.in-addr.arpa
    origin = ns1.rostelecom.ru
    mail addr = root.rt.ru
    serial = 2012032001
    refresh = 3600
    retry = 7200
    expire = 1209600
    minimum = 14400
    ttl = 3600
ADDITIONAL RECORDS:
------------
** server can't find 35.6.167.95.in-addr.arpa.: NXDOMAIN
Server:         10.11.11.1
Address:        10.11.11.1#53

------------
QUESTIONS:
    35.6.167.95.in-addr.arpa, type = PTR, class = IN
ANSWERS:
AUTHORITY RECORDS:
->  6.167.95.in-addr.arpa
    origin = ns1.rostelecom.ru
    mail addr = root.rt.ru
    serial = 2012032001
    refresh = 3600
    retry = 7200
    expire = 1209600
    minimum = 14400
    ttl = 3600
ADDITIONAL RECORDS:
------------
** server can't find 35.6.167.95.in-addr.arpa.: NXDOMAIN

Вот последняя строка меня и "убивает".!

Привет! Поднимал bind по твоей статье.Всё получилось и работало где то с год до сегодняшнего дня. Сегодня вдруг не с того не с сего bind перестал отвечать на внешние запросы. Хотя если из консоли запустить dig, то сервер отвечает корректно, а вот на запросы из вне не отвечает. Хотя порты 53 открыты (udp и tcp). Сначала грешил на файрволл (у меня pf), отключал его, такая же петрушка (все порты открыты, на внутринние запросы отвечает на внешние нет). В чем может быть косяк? Да не знаю уже в какую сторону копать.

Привет, покажи:

sudo netstat -an | grep 53

Разобрался. Злой провайдер поставил фильтр на 53 порт. Поэтому сервак и перестал отвечать на внешние запросы (((

Доброго вечера. настроил, внутри сети все работает, судя по tcpdump запросы принимает и отвечает bind, но вне пределов локалки ничего не работает, хотя пакеты бегают. Перепробовал кучу сторонних nslookup-ов, иногда проскакивают данные, 1 раз из 20. Подскажите куда копать. Спасибо)

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

Markdown