FreeBSD. DNS сервер своими руками при помощи 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" и вставьте туда эти данные:rndc-confgen -a
Теперь пришла очередь добавлять наш первый домен, который будет играть роль "мастер нс-сервера", для того, чтобы потом другие домена использовать именно его.key "rndc-key" { algorithm hmac-md5; secret "NrDcqVcbML1XI0ZLmRrmaQ=="; };
Поднимаем свой master-сервер (ns1)
Для начала необходимо добавить запись о домене в named.conf, добавляйте в конец файла:Теперь, с помощью утилиты "make-localhost" создайте первый свой master-файл, далее можно будет просто копировать любой master-файл и изменять его для других доменов.zone "adw0rd.ru" { type master; file "master/adw0rd.ru"; };
Иногда нет этого файла в стандартной поставке, можете его скачать тут.
Вот еще могут пригодится 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", заходим по адресу
Теперь, добавляем нашу домен "adw0rd.ru" и свяжем его с ip-адресом 82.146.63.195
Все, готово!
Проверяем работоспособность
Сначала узнаем, отдает ли нам 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, сделайте
икак поробую так и отпишусь извините за беспокойство и наглость я бы хотел попросить вас изменить мне Аватарку! а то интелект блога не очень веселую аватару подобрал
Aios, эти аватары загружаются из http://gravatar.com/, залейте туда свою и она определиться по вашему e-mail и подгрузится здесь. Так работает на большинстве блогов на Wordpress...
Я как всегда накосячил... Тот днс я настраивал не на Free а на Fedora Core 8 =)))
Ну бывает...
так вот суть проблемы в том что я щас на фри настраиваю
вот и как бы ваш файлик Make-localhost немного не правльно составлен так как и на федоре и на фри выдает одно и тоже...
Aios, мой файлик взят из поставки вместе с bind9, и файлы PROTO.localhost.rev идут в комплекте. Я обновил статью, скачайте их тоже.
Уже лутше спасибо =))
Последний вопросик...
дупля дать немогу...
У вас сервер бинда то поднялся хоть? Судя по ответу дига - нет.
если выдаст тоже самое, что выше - то мои предположения верны.
Блин Это наверно только у меня может быть настолько через 5 точку собрано...
Aios, а вы создали мастер-файлик для домен.ru? Создали там сабдомен? Все написано в статье, также вы перезагружали днс-сервер? проверяли конфиг на ошибки? rndc есть? перегружали его?
Уважаемый adw0rd! Извините что так долго Вас напрягал... Трабла решилась сама собой правда с моей помощью =)
Система ужасно нестандартная...
Сервер(С) за ним Внутренний IP на сервере ДНС(bind9). И на внутреннем IP тоже Bind9
на внутреннем для интерфейся прописан С только его внутренний интерфейс. На внутренний с внешнего Сервера С был пробит натом Внешний IP адрес... Но днсом то он ссылался на главный на котором собсно я и делал когда то домен.ru вот из-за чего было
После того как я убрал зону на C стало
в /etc/hosts прописал
domen{TAB}{TAB}домен.ru
внутренний IP{TAB}{TAB}ns1.Домен.ru
Полет нормальный =) почти щас на регистратора поставил там видно будет... по крайней мере самая первая проблема с самого первого комментария уже решилась
трифл добавил безо всяких
так вот у вас там ошибочка в посте немного
не ns1.trifle.net, а ns2.trifle.net =)))
Спс биг за пост =) Простите что отнимал у Вас время...
Aios, спасибо за опечатку в статье, поправлю :) Рад что у вас все решилось!
Еще раз спс у меня домен уже проделигировали! за 20 минут! я в шоке =)))
и все же мне нужна ваша помощь...
блин я поспешил чуть с "Порадоваться надо"...
Домен делегирован, а вот резолвить его никто не хочет...
Обидно... может вы что то посоветуете?
Все еще раз извините что мягко говоря "з@ср@л" вам топик =)
ПОЛЕТ ИДЕАЛЬНЫЙ!
Всем буду вас советовать...
Спасибо :)
У меня не BIND 9.4.3-P2 на FreeBSD 7.2 при запуске ругается, что рабочая директория не пригодна для записи.
при этом named запускается от имени bind, а скрипт /etc/rc.d/named изменяет права на рабочую директорию на UID=0 GID=0.
Само собой named работает не коректно или воще не работает.
Что с тим делать?
Спасибо. Попробую.
хз. вручную не запускал
madman, почитайте мою статью сначала, вы явно ее не читали или просто не следуете ей...
madman, Странно =) у меня все работает =) только только перебил =)
Сделал все как написано в статье. Но named все равно работает не коректно - зоны не читает. В лог пишет
что с этим делать?
А это точно его лог?
adw0rd, точно его, потому шо я логи named направил в отдельный файл.
И сторка выглядит как
madman, что теперь в rc.conf у вас кстати, покажите
Точно следовал статье
чёто глюкнуло, ну в общем у меня точно тоже, что написано в начале статьи
madman, можешь написать в аську попробую удаленно настроить =)
Aios, уже разобрался. все теперя работает.
в этом примере настройки сервера какое имя сервера?
etweet, "adw0rd.ru"
у вас в примере так 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";
// 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
Оформляйте конфиги и код в теги <code>, и у меня нет icq
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-сервер у вас вообще поднят?
И еще, почему вы forwarders не указали? Что у вас в /etc/resolv.conf
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, вы прописали нс-ы у регистратора?
если б мне знать - я общаюсь с провайдером - видимо нужно требовать у шефа делать изменения к договору т.к. я не вижу что там делается - а мне говорят ошибка у тебя
А какая ошибка то говорят?
что не так?
Решил этот вопрос)) перекачиванием фала заново)
Спасибо, adw0rd, за статью которая помогла разобраться в настройке bind, правда под линухом.
у меня сервер отказывался отвечать, в статусе запроса гордо стоял 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
Если сможете мне помочь, буду очень благодарен! (Можно не безвозмездно)! :)
У вас покачто не доступен домен, поэтому надо юзать так:
Когда (дата) вы прописали NSы домену 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/ - очень хороший сервис для проверки ДНС!
спасибо, добавил в http://adw0rd.ru/services/
У меня ваш сервер нормально отвечает
В логе при запуске BIND возникает ошибка:
Это вообще ошибка? Если Да, то о какой директории речь?
Проверил все права, вроде все правильно...
Ну и еще один вопрос. ;)
Как сделать ns2 на том же IP?
Что нужно добавить (поменять) в файл зоны?
Спасибо!
И еще вопрос ;)
Как правильно вносить MX записи?
Делаю так:
проверяю:
Что я не так делаю?
Поменял, зарелодил, ребутнул. named-checkconf молчит, никаких ошибок:
Если один НС так:
то оба НС будет так:
Или я ошибаюсь?
Достал наверно уже своими глупыми вопросами? :)
Ну с виду все хорошо, пробуйте :)
Уже попробовал, все летает! :)
Попробовал прикрепить на эти НСы (ns1.tmnz.ru и ns2.tmnz.ru) еще один домен,все прекрасно работает!
Осталась только проблема с MX, описывал выше. Есть какие нибудь мысли?
Вам надо нечто вида:
adw0rd, спасибо огромное за поддержку! Победил я его! :)
Если кто будет читать и кому надо MX, надо вот так:
Закончилась эпопея...
А теперь плавно перейду на почтовик Postfix, у тебя случайно нет статейки по этому поводу?
Есть, но она еще не дописана... может на днях допишу, потерпите? :)
Только она у меня называется "FreeBSD. Поднимаем свой почтовый сервер на базе Dovecot, Exim, Postfixadmin, Roundcube, Clamav и SpamAssassin". Я не юзаю Postfix
Использование reboot крайне не рекомендуется во FreeBSD. При ребуте происходит "жесткое" завершение работы, не выполняются shutdown-скрипты, могут некорректно отмонтироваться файловые системы. Лучше всего, использовать shutdown -r now
Спасибо, буду иметь ввиду
ужас ^_^
Огромное спасибо за статью, поднимаю днс сервер для нужд хостинга, правда на Ubuntu, но разница я так понимаю не большая.
У меня возник вопрос, как в вашем конфиге сервера будут обмениваться зонами?
Разве не нужно указать в allow-transfer { ns2.trifle.net; };
adw0rd, и еще один вопрос, если я покупаю домен mydomen.ru по вашему конфигу настрою ns1.mydomen.ru проделегирую его,
то смогу ли я потом по адресу mydomen.ru попасть на свой сервер так же как я сейчас попадаю по localhost или 95.161.XX.XX
Или надо делать виртуал хост и создавать новую зону?
Тьфу ты забыл самое главное... если вас не затруднит взгляните, правильно ли я сделал файлы /etc/hosts
и соответственно /etc/hostname
правильно, но они вообще не обязательны (ns1.mydomen.ru mydomen.ru mydomen)
Спасибо за статью! Оказывается не такой страшный этот bind как его малюют, только вот не рекомендуется делать так:
получается мы запускаем bind вне песочницы и открываем кулхацкерам брешь в системе безопасности. Еще вы не написали ничего про обратную зону. Если ее нет, то могут быть проблемы с отправкой почты. В случае с FirstVDS обратная зона создается в VDSManager'е в пункте IP-addresses, домен надо указывать с точкой в конце: 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
либо так:
Еще в /var/log/messages при запуске бинда вываливаются ошибки, хотя все пашет:
Правильно ли я понимаю, что если мне нужно что бы обрабатывались все поддомены необходимо добавить в master/domain.ru сл.
если что это необходимо для того, что бы избежать длинных списков типа:
mario, да, а потом обрабатывать nginx'ом
спасибо :)
Дело в том, что скрипт инициализации подгружает сам rndc.key, но думаю не помешает указать инклудом
Здраствуйте. Сделал все как у вас написано, но сайт так и не могу запустить, без бинда на хосте работает как только запускаю бинд, не заводиться.
Помогите пожалуста где у меня не точности.
/etc/hosts :
/etc/resolv.conf
/etc/rc.conf
/etc/namedb/named.conf
/etc/namedb/master/db.gipernet.eu
/var/log/messages
gipernet# dig @ns1.gipernet.eu gipernet.eu
gipernet# dig @ns1.gipernet.eu
Помогите пожалуйста решить проблему.
Спасибо за статью сделал, в точности как было описано все за работало.
Ну проблема в том что если делаю :
то все плохо, думайте над своим мастер-файлом, где то вы накосячили... либо не ребутнули неймед-сервак. Named перезапускал.
Лог файл :
Еще как сделать чтоб заходили на интернет страничку не только с www.domen.ru , а наберали domen.ru и поподали на страничку.
Проблемы еще вот такие :
http://www.intodns.com/gipernet.eu
у вас вообще хост не доступен, когда заработает, то потестю
дайте знать
Я его завел посмотрите пожалуйста, что не так .
Если чего надо пишите прешлю.
Ты супер. Неделю еб..сь с днсом. Спасибо большое за помощь.
Добрый вечер! Вопрос:
наряду с ns1, ns2 указывается сабдомен root. Для чего? Каким образом он участвует в DNS?
Спасибо.
Ммм... попробую переформулировать свой вопрос :) Имеется в виду эта строчка в конфиге, у каждого она разная:
С указанием доменов ns1 (и-или ns2) все понятно. А вот последним в этом списке идет либо root., либо admin. Как у кого. Что означает этот адрес? На какой параметр конфигурации ОС или DNS он должен ссылаться?
Вот. :)
Застряла на
после ./make-localhost говорит
./make-localhost: Command not found. Помогайте, пожалуйста
В статье написано где этот файл взять, читайте внимательно
Я конечно же сразу нашла где его взять. Ошибка, наверное заключалась в том, что я создавала файл на локальном компьютере и через ftp копировала его на сервер. После того как вставила содержимое make-localhost через ee редактор прямо на сервере, файл стал запускаться. Видимо до того он не воспринимался как исполняемый.
2 Paul: root это не сабдомен, это мыло админа, вместо собаки используется точка. Потом когда запустите почтарь надо будет прописать этот алиас, либо создать такой ящик.
dig ns1.domain.ru выдает
Но,dig ns1.domain.ru domain.ru выдает что все ок
Это нормально?
Нормально, просто надо подождать когда кеши сбросятся у провайдеров.
У меня уже доступно:
В тексте домены левые,у мой же реальный домен почему-то выдает при gid ns1.icebax.ru
Примерно такой-же выдает и для ns2.icebax.ru (2 ip)
Но,если 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 Буду очень благодарен за ответ! Спасибо!
Замените
на
и
на
Пасиб Большое Человеческое за статью!
столько мучилась с днс-ником, и тут - все по тексту и работает!
УРА!
Так как я только начал заниматься днс-ом...прошу сильно не "посылать" куда-то... -:)
Прошу помощи в настройке обратной зоны, для связки 95.167.6.35 и доменных имён vzarinske.ru mail.vzarinske.ru.
Это для работы почтовика требуется.
Вот какой файл сейчас у меня:
Но когда делаю запрос:
Вот последняя строка меня и "убивает".!
Привет! Поднимал bind по твоей статье.Всё получилось и работало где то с год до сегодняшнего дня. Сегодня вдруг не с того не с сего bind перестал отвечать на внешние запросы. Хотя если из консоли запустить dig, то сервер отвечает корректно, а вот на запросы из вне не отвечает. Хотя порты 53 открыты (udp и tcp). Сначала грешил на файрволл (у меня pf), отключал его, такая же петрушка (все порты открыты, на внутринние запросы отвечает на внешние нет). В чем может быть косяк? Да не знаю уже в какую сторону копать.
Привет, покажи:
Разобрался. Злой провайдер поставил фильтр на 53 порт. Поэтому сервак и перестал отвечать на внешние запросы (((
Ясно)
Доброго вечера. настроил, внутри сети все работает, судя по tcpdump запросы принимает и отвечает bind, но вне пределов локалки ничего не работает, хотя пакеты бегают. Перепробовал кучу сторонних nslookup-ов, иногда проскакивают данные, 1 раз из 20. Подскажите куда копать. Спасибо)
Оставьте свой комментарий