Сразу же проясню некоторые моменты.
Практически все русскояычные howto скопипщенные с официальной документации дают не рабочую конфигурацию. И если Вы пришли сюда из поисковика и вероятно Вы уже натыкались на одну и ту же пасту, где bind советуют советуют запускать в chroot окружении, а так же опускают вопрос настройки зоны обратного просмотра оставляя этот вопрос не решённым.
Bind очень чувствителен к ошибкам, и малейшие синтаксические ошибки не дадут загрузить файл зоны.
И так, приступим!
Я буду создавать зону прямого просмотра для doomgate.local и зону обратного просмотра 0.168.192.in-addr.arpa, всё это будет происходить на системе Debian Squeeze (так же это должно работать на Ubuntu, CentOS и FreeBSD). Сервер имеет имя dns и в домене должен представляться как dns.doomgate.local
Ставим bind
# aptitude install bind9Отредактируем /etc/bind/named.conf.options
# vim /etc/bind/named.conf.optionsПриведём его в следующий вид:
acl mynetwork {192.168.0.0/24; 127.0.0.1; };Опция acl ограничивает адреса, которые могут запрашивать зоны с нашего сервера. В данном примере это разрешено подсети 192.168.0.0/24.
options {
directory "/var/cache/bind";
auth-nxdomain no;
listen-on-v6 { none; };
allow-query { mynetwork; };
};
И сразу же отправляемся редактировать файл /etc/bind/named.conf.local.
# vim /etc/bind/named.conf.localДобавляем в него файлы наших зон.
zone "doomgate.local" {Зона прямого просмотра
type master;
file "/etc/bind/db.doomgate.local";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/0.168.192.in-addr.arpa.zone";
};
Создадим файл для зоны прямого просмотра.
# vim /etc/bind/db.doomgate.localСо следующим содержимым:
$TTL 30Где:
$ORIGIN doomgate.local.
@ IN SOA dns.doomgate.local. hostmaster.doomgate.local. (
2011100902 ;Serial
1d ;Refresh
1h ;Retry
1w ;Expire
2h ) ;Negative Cache TTL
;
@ IN NS dns.doomgate.local.
@ IN A 192.168.0.20
server IN A 192.168.0.2
serverkvm IN A 192.168.0.5
webserver IN A 192.168.0.10
dns IN A 192.168.0.20
avto-diagnostika IN CNAME webserver
pma IN CNAME webserver
project-e1 IN CNAME webserver
$ORIGIN - оригинальное имя зоны
dns.doomgate.local. - как я уже говорил имя днс-сервера (обязательна точка в конце).
hostmaster.doomgate.local. - email администратора сервера, только вместо символа @ используется точка.
Serial - серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2011100901.
Refresh - период времени с которым вторичный сервер днс обращается к основному.
Retry - период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire - максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL - время актуальности данных в кэше запросов.
Далее идут записи имён хостов с ip-адресами или псевдонимами.
В конце этого файла нужно обязательно оставить пустую строку!
Зона обратного просмотра
Создадим файл для зоны обратного просмотра.
# vim /etc/bind/0.168.192.in-addr.arpa.zoneИ запишем туда следующее:
$TTL 30В этом файле должны быть только записи типа PTR, никаких IN тут быть не должно. И в конце этого файла так же должна быть пустая строка.
$ORIGIN 0.168.192.in-addr.arpa.
@ IN SOA dns.doomgate.local. hostmaster.doomgate.local. (
2011100907 ;Serial
1d ;Refresh
1h ;Retry
1w ;Expire
2h) ;Negative Cache TTL
;
NS dns.doomgate.local.
2 PTR server.doomgate.local.
5 PTR serverkvm.doomgate.lcoal.
10 PTR webserver.doomgate.local.
20 PTR dns.doomgate.local.
Обновим информацию о зонах
# rndc reloadИ проверим файлы зон на наличие ошибок командой:
# named-checkconf -zМы должны получить примерно вот такой вывод:
zone doomgate.local/IN: loaded serial 2Если никаких ошибок нет, то продолжаем дальше, если же есть, то вероятнее всего Вы допустили ошибку где-то в конфигурационном файле.
zone 0.168.192.in-addr.arpa/IN: loaded serial 1
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
Теперь необходимо отредактировать resolv.conf для того, чтобы наш сервер брал настройки сам с себя.
# vim /etc/resolv.confПриводим его в следующий вид:
search doomgate.localИ наконец настало время проверить работу нашего днс-сервера!
domain doomgate.local
nameserver 127.0.0.1
Выполним несколько запросов.
Проверим зону прямого просмотра.
# nslookup webserver.doomgate.localИ зону обратного просмотра.
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: webserver.doomgate.local
Address: 192.168.0.10
# nslookup 192.168.0.2Если у Вас обе эти команды отработали с аналогичным результатом, то поздравляю, Вам удалось настроить bind!
Server: 127.0.0.1
Address: 127.0.0.1#53
2.0.168.192.in-addr.arpa name = server.doomgate.local.
1. bind9 - это не днс сервер.
ОтветитьУдалить2. домен local - неблагодарный. Советую сменить по известным обстоятельствам
3. что-то я форвардинга dns не наблюдаю? или твой сервак на гугл не должен пускать?
А я вот не делал обратных зон... Все-равно с внешним ip они не связаны (а провайдер - плохой и ему лень)
ОтветитьУдалить1. Berkeley Internet Name Daemon - открытая и наиболее распространённая реализация DNS-сервера.
ОтветитьУдалить2. Это чисто внутренний домен, я его сделал исходя из тех соображений, что doomgate.ru у меня уже есть и некоторые субдомены на нём уже заняты, а этот домен предназначается чисто для моей локалки.
3. Хожу куда угодно, никаких проблем.
4. Зону обратного просмотра сделал чисто для себя. Да и вообще хотел сделать как правильно.
Если есть какие конструктивные предложения, или альтернативные решения, пиши, я посмотрю, возможно даже у себя сделаю.
BIND (Berkeley Internet Name Domain) is an implementation of the DNS protocols and provides an openly redistributable reference implementation of the major components of the Domain Name System, including:
ОтветитьУдалитьDomain Name System server
Domain Name System resolver library
Tools for managing and verifying the proper operation of the DNS server
The BIND DNS Server, named, is used on the vast majority of name serving machines on the Internet
Ссылку на офф. сайт кинуть? ))
bind9.net
Там этот отрывок на главной странице написан. DNS-сервер - это named, а bind9 - это целый комплекс)
Домен local предлагаю переименовать, например, в my
ОтветитьУдалитьТак будет проще с локальными почтовиками (если такие вообще нужны)
3. может быть сейчас в дебиане при установке конфиги как-то правятся... у меня в gnu/linux надо было форвардинг еще дописать
4. это хорошо, а я ленив)
Вообще же говоря в Дебиане по-моему только конфиг named.conf называется, а сервис всё-таки называется bind. А вот во FreeBSD да, named.
ОтветитьУдалитьМне никогда не нравились зоны типа .my или или как у моего интернет-провайдера .nw. По одной простой причине - домен MY является официальным доменом Малайзии. И какие ещё изменения произойдут неизвестно. А вот домен .local явно никто не схватит.
Все остальные конфиги дефолтные. Пробовал развернуть bind на FreeBSD 8.2 с незначительной правкой конфигов всё так же прекрасно заработало.
А по-поводу почты, какие там могут быть подводные камни? Я не знаю как на счёт ближайшего, будущего, но вообще планирую развернуть почтарь.
KorG, а вообще же, как говорит Майкл Лукас в своей книге "FreeBSD - подробное руководство" - решать споры относительно программного обеспечения нужно с оружием в руках.
ОтветитьУдалитьКак тебе домен .night ?
ОтветитьУдалитьПочтари (на примере постфикса и ексима) отказываются работать в домене .local
Хотя в новых версиях эту "фишку" возможно убрали.
... а если нет оружия, то добудьте себе его в бою
-)
Да и спора-то тут нету никакого. Я, например, санось больше уважаю, нежели чем фрю. Решать чем пользоваться - тебе. Я лишь откомментировал для тех, кто возможно будет читать твои пост)
Можно и так конечно, но тогда уж проще завести всё это в поддомен home.doomgate.ru единственное, что длинновато его писать каждый раз.
ОтветитьУдалитьСпасибо за статью. Не хватает нескольких вещей:
ОтветитьУдалить- смена зоны $ORIGIN
- DDNS из DHCP
- настройки и записи для почтаря
Спасибули за статью. Всё просто и понятно объеснено.
ОтветитьУдалитьnslookup webserver.mysite.local
ОтветитьУдалитьServer: 127.0.0.1
Address: 127.0.0.1#53
** server can't find webserver.mysite.local: NXDOMAIN
nslookup 192.168.0.2
** server can't find 2.0.168.192.in-addr.arpa.: NXDOMAIN
Сергей, MX запись прописывается очень просто.
ОтветитьУдалитьВ Файле зоны прямого просмотра:
doomgate.local. IN MX 0 mail.doomgate.local.
Игорь, выполните:
named-checkconf -z
И посмотрите в логах, из-за чего не удалось загрузить зону.
К тому же нужно не забыть в /etc/bind/named.conf.options дать разрешение отвечать на запросы из своей сети:
acl mynetwork {192.168.0.0/24; 127.0.0.1; };
Подскажите, я настроил как вы описывали, всё нормально, все команды в терминале выдают то что написано в вашей статье, один вопрос, должна ли команда
ОтветитьУдалитьhost serverkvm
выдавать
host not found
?
Или это нормальное явление?
Я такое спрашиваю потому как смотрю сейчас курсы по линукс системам, и там сейчас описывается настройка DNS сервера, я попробовал на виртуальной машине сделать, ничего не вышло, пишет то же что host not found.
Если я сделаю например две виртуальные машины и на каждой настрою DNS то будет ли команда host выдавать мне ip-адрес машины? Или я чего не понимаю просто?