Готовится статья о DNS сервере Unbound

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-08-18 13:41:16

Хммм... Не должно бы быть ошибок по-идее.
А если так:

Код: Выделить всё

local-zone: "local.name." transparent
local-data: "server.local.name. 300 IN A 10.10.10.10"

Вы ведь вместо local.name. прописываете свои данные, правильно?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.


lexx77
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение lexx77 » 2009-08-18 14:06:23

Да писал свои данные. Только не в тот раздел конфига :)

buriburi
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-09-03 8:55:33

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение buriburi » 2009-09-04 16:33:07

Уважаемые ГУРУ :)
У меня опять вопрос к вам.
Согласно Вашему мануалу по настройке unbound нужно сделать следующее:
В файле /etc/fstab прописываем монтирование devfs:
devfs /usr/local/etc/unbound/dev devfs rw 0 0

Я так понимаю синтаксис такой:
Что значит первая колонка "devfs" ? ( тут же нужно указать устройство монтирования в формате /dev/ad0s** ??) Далее понятно, указываем точку монтирования, затем опции монтирования, DUMP, PASS.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-09-04 16:46:35

Код: Выделить всё

devfs   /usr/local/etc/unbound/dev   devfs   rw   0   0

так прописывается монтирование псевдо-файловой системы devfs. она "виртуальная" и никаких "файлов устройств" не имеет (она сама и есть то что эти устройства создает в каталоге /dev )
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

buriburi
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-09-03 8:55:33

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение buriburi » 2009-09-04 16:48:23

окей! Я понял. Спасибо.

buriburi
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-09-03 8:55:33

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение buriburi » 2009-09-11 17:14:44

Подскажите пожалуйста где искать проблему:
Установил на одном ПК NSD и Unbound согласно ваших мануалов. По отдельности запускаются и nslookup отрабатывают.
Unbound отрабатывает запросы клиентов на внешние интернет ресурсы, а NSD отвечает за внутреннюю зону clover.local и тоже работает окей!
При запущенном nsd запускаю unbound и вижу следующее:
[1252766592] unbound[2325:0] error: bind: address already in use
[1252766592] unbound[2325:0] fatal error: could not open ports
и наоборот при запущенном Unbound не стартует NSD.
Что значит в настройках NSD и Unbound строка ip-address: 0.0.0.0 (широковещательный адрес что ли??)
и нужно ли писать что то в в строку outgoing-interface: x.x.x.x если на одном ПК установлены NSD и Unbound

у меня две сетевые карты 10.78.2.26 и 10.78.3.26
Где нужно прописать параметр, устанавливающий соответствие ip адресов конкретному демону ( NSD и Unbound)?

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-09-11 17:21:48

у вас эти карты - одна "смотрит" в интернет, а вторая в локальную сеть?
Я так понимаю, что вам надо запускать NSD не интернетовской сетевухе(ip адресе), а Unbound на локальном.

Директива 0.0.0.0 указывет им запускаться на всез IP адресах которые есть в машине.

Директива outgoing-interface у unbound используется когда есть желание указать ему через какой-интерфейс он должен посылать запросы наружу (когда таких интерфейсов в компе много)
outgoing-interface: <ip address>
Interface to use to connect to the network. This interface is
used to send queries to authoritative servers and receive their
replies. Can be given multiple times to work on several inter-
faces. If none are given the default (all) is used. You can
specify the same interfaces in interface: and outgoing-inter-
face: lines, the interfaces are then used for both purposes.
Outgoing queries are sent via a random outgoing interface to
counter spoofing.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Mrakus
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Mrakus » 2009-10-18 14:11:07

Добрый день. Если тема еще открыта, хотел бы задать пару вопросиков по unbound dns.

Я описал секцию для домена xxx.ru вот так и она вроде бы работает.

Код: Выделить всё

local-zone: "xxx.ru." transparent
local-data: "xxx.ru. 86400 IN SOA ns1.host.ru. abc.mail.ru. 2009060101 28800 7200 604800 86400"
local-data: "xxx.ru. 86400 IN NS ns1.host.ru."
local-data: "xxx.ru. 86400 IN NS ns2.host.ru."
local-data: "xxx.ru. 86400 IN A  1.2.3.4"
local-data: "www.xxx.ru. 86400 IN A 1.2.3.4"


Вопрос первый:
Но не совсем понятно, допустим мне надо использовать дополнительный днс сервер, который бы обрабатывал запросы для поддомена "abc.xxx.ru" и висел бы на локальном интерфейсе 127.0.0.1:5353 .
Пытался прописать (до и после) описание зоны xxx.ru так:

Код: Выделить всё

forward-zone:
   name: "abc.xxx.ru"
   forward-addr:  127.0.0.1@5353


Но команда unbound-checkconf ругается. Говорит что не верно. Реально ли это сделать с помощью unbound?

Вопрос второй.
Я описал секцию для домена xxx.ru как указал выше.

На локальной машине делаю:

Код: Выделить всё

host  x.xxx.ru
Host x.xxx.ru not found: 2(SERVFAIL)

А если например сделать для всем известного домена sex.ru данную команду мы видим:

Код: Выделить всё

host  x.sex.ru
Host x.sex.ru not found: 3(NXDOMAIN)

Т.е. unbound выдает ошибку 2, а не 3. Может я как то неправильно настроил зону xxx.ru?

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-10-18 16:23:57

Mrakus писал(а):Реально ли это сделать с помощью unbound?



Вам 100% необходима именно такая схема? Просто можно ведь держать все данные сразу в кеше, если выставить тип для local-zone как direct.
direct - serves the zone data for any subdomain in the zone.

правда тогда разрешение имен в зоне xxx.ru. которых нет в кеше, работать уже не будет...

Если надо все же пересылать запросы на второй сервер живущий на этой же машине то можно попробовать сделать так:
Проследите чтобы в конфиге небыло директив

Код: Выделить всё

do-not-query-address: 127.0.0.1/8
do-not-query-address: ::1
do-not-query-localhost: yes


далее попробуйте:

Код: Выделить всё

local-zone: "xxx.ru." transparent
local-data: "xxx.ru. 86400 IN SOA ns1.host.ru. abc.mail.ru. 2009060101 28800 7200 604800 86400"
local-data: "xxx.ru. 86400 IN NS ns1.host.ru."
local-data: "xxx.ru. 86400 IN NS ns2.host.ru."
local-data: "xxx.ru. 86400 IN A  1.2.3.4"
local-data: "www.xxx.ru. 86400 IN A 1.2.3.4"

local-data: "abc.xxx.ru. 86400 IN NS dummy.host.ru."
local-data: "dummy.host.ru. 86400 IN A  127.0.0.2"


А на локальной машине пропишите для lo0 алиас 127.0.0.2/32 и запускайте второй DNS сервер на нем, но уже на стандартном 53 порте. Я не уверен, но по-идее это должно заработать...


Mrakus писал(а):Вопрос второй.
Т.е. unbound выдает ошибку 2, а не 3. Может я как то неправильно настроил зону xxx.ru?


Директива do-not-query-localhost влияет?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Mrakus
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Mrakus » 2009-10-18 17:32:37

А на локальной машине пропишите для lo0 алиас 127.0.0.2/32 и запускайте второй DNS сервер на нем, но уже на стандартном 53 порте. Я не уверен, но по-идее это должно заработать...


К сожалению не сработало, ведь мы просто прописали что на имя abc.xxx.ru возвращать IP 127.0.0.2, естественно когда мой ДНС клиент получает пакет с таким IP он его игнорирует и сам unbound никому ничего не пересылает, если я правильно понял.

Мне надо на уровне сервера тупо пересылать пакеты на указанный IP и порт :( А как это сделать...

Правда я попытался сделать обратную схему. Посадить мой второй "ДНС сервер" на внешний IP порт 53 и пересылать все ненужные пакеты на unbound, висящий на этом же IP, но 54 порте. А unbound почему то возвращает на такие пакеты пакеты типа:

Код: Выделить всё

DEBUG: 17.10.2009 16:20:48 Received 12 bytes from 1.2.3.4:54
DEBUG: 17.10.2009 16:20:48 Packet:[12] 78 3a 80 05 00 00 00 00 00 00 00 00

Как мне подсказали access denied, хотя в конфиге:

Код: Выделить всё

do-not-query-localhost: yes
access-control: 0.0.0.0/0 allow


Есть идеи? ;)

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-10-18 18:18:05

К сожалению не сработало, ведь мы просто прописали что на имя abc.xxx.ru возвращать IP 127.0.0.2, естественно когда мой ДНС клиент получает пакет с таким IP он его игнорирует и сам unbound никому ничего не пересылает, если я правильно понял.
Мне надо на уровне сервера тупо пересылать пакеты на указанный IP и порт А как это сделать...


Ну по-идее мы внесли в кеш запись о том, что зона abc.xxx.ru доступна через NS хост dummy.host.ru у которого в свою очередь адрес 127.0.0.2. Но вот почему это не срабатывает... :sorry:

У вас какая конкретно стоит задача?
Как я понял, xxx.ru это реальный интернетовский домен и вы хотите иметь возможность переназначать отдельные его хост-имена на свои ("www.xxx.ru. 86400 IN A 1.2.3.4"), но чтобы при этом другие его имена все так же нормально разрешались, а так же иметь возможность самому назначать имена в конкретном его поддомене на своем отдельном авторитарном сервере (к стати что за второй сервер вы используете - BIND, NSD)?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Mrakus
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Mrakus » 2009-10-19 17:06:26

terminus писал(а):Ну по-идее мы внесли в кеш запись о том, что зона abc.xxx.ru доступна через NS хост dummy.host.ru у которого в свою очередь адрес 127.0.0.2. Но вот почему это не срабатывает... :sorry:


Думаю не срабатывает, по тому что в интернете нет IP - 127.0.0.2, он есть только на локальных машинах ;-)

Mrakus писал(а):к стати что за второй сервер вы используете - BIND, NSD

"Второй" сервер, помимо unbound - это мой самописный сервер, но он написан полностью в соответствии с RFC:

Код: Выделить всё

 * http://www.ietf.org/rfc/rfc1035.txt
 * http://www.ietf.org/rfc/rfc2782.txt
 * http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt
 * http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt

Он может выполнять две задачи:
1. принимать пакеты и пересылать если они ему "ненужны" или если нужны обрабатывать их по-своему и отсылать ответ.
2. если ему пересылают нужные пакеты, он их обрабатывает и отсылает ответ.

Mrakus писал(а):У вас какая конкретно стоит задача?

В общем вы верно описали задачу:
Есть днс сервер, например unbound, он висит на внешнем IP порт 53 обрабатывать домен xxx.ru , http://www.xxx.ru , а вот если приходит запрос на адрес aaa.bbb.ccc.xxx.ru или abc.ccc.xxx.ru и т.д. тогда он должен пересылать данный запрос на "второй" сервер, который висит на локальном IP, например 127.0.0.2:53. Не знаю реально ли реализовать данную схему? :Search:
Или же можно поставить задачу по-другому... есть "мой" сервер, он висит на внешнем IP порт 53, и обрабатывает dns пакеты, если они ему нужны - "обрабатывает", если не нужны может пересылать на локальный IP, например 127.0.0.2:53, где висит unbound. Данную задачу я почти реализовал но unbound на данные корректные пакеты отвечает access denied непонятно почему. :(

Mrakus
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Mrakus » 2009-10-22 15:15:18

Все разобрался. Наша ошибка была в том чтоб посодить unbound на lo интерфейс. А он этого не любит.

terminus писал(а):127.0.0.2


Создал еще одну сеть допустим eth0:0 с IP 10.0.0.1 и посодил его туда. После этого вся схема заработала!

ЗЫ: Так и не понял как в unbound работает "Stub Zone" или "Forward Zone". Попробовал и то и се - работает как то криво, а может я просто не разобрался, а помочь некуму ;). Оказалось легче свою утитилку написать :oops:

wed
рядовой
Сообщения: 20
Зарегистрирован: 2007-10-26 8:26:08

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение wed » 2009-10-23 9:24:40

Настроил все по статье.
заменил

Код: Выделить всё

#local-zone: "mail.ru." transparent
#local-data: "www.mail.ru. 300 IN A 10.10.10.10"

Все работает. Но если попробовать воткнуть роутер то через него не работает.
то есть:
192.168.12.1(unbound)-> 192.168.12.4
dns 192.168.12.1
работает. если же
192.168.12.1(unbound)-> 192.168.12.4(router dlink dir-100)192.168.0.1->192.168.0.101
при dns 192.168.0.1 не работает, если dns 192.168.12.1 то работает.
Где искать проблему?

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2009-10-24 19:23:25

в настройках dlink, наверное... :pardon:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

wed
рядовой
Сообщения: 20
Зарегистрирован: 2007-10-26 8:26:08

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение wed » 2009-10-24 22:50:31

Если вместо unbound использовать named то все нормально. через длинк все пингуется

wishmaster
проходил мимо
Сообщения: 2
Зарегистрирован: 2010-04-17 3:28:40

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение wishmaster » 2010-04-17 3:58:29

Всем привет!

В контексте новости о внедрении DNSSEC на корневых серверах, решил сменить исправно работающий djbdns, который выполняет роль быстрого резольвера на unbound.
Данная статья избавила от кучи головной боли. Все поставилось заработало почти "из коробки". Но в процессе тестирования работы выяснился один неприятный момент:
unbound криво работает при использовании round-robin балансировки.

Для понимания: Есть бинд, который держит зоны. Есть зона, в которой есть записи вроде:

Код: Выделить всё

$TTL    1h

@       IN      SOA     ns.network.lan. root.network.lan.  (
                                2010041606      ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
@       1D      IN      NS      ns.network.lan.
ns      1D      IN      A       10.10.2.2
vpn     1D      IN      A       10.10.0.1
vpn     1D      IN      A       10.10.0.2
vpn     1D      IN      A       10.10.0.3
vpn     1D      IN      A       10.10.0.4
vpn     1D      IN      A       10.10.0.5
vpn     1D      IN      A       10.10.0.6


Если использовать в качестве ДНС сам бинд, или djbdns, который эту зону на него(бинд) форвардит, то каждый запрос типа "ping vpn.network.lan" выдает разный IP, что есть правильно. А при использовании unbound, к сожалению, все иначе. Как только он резольвит IP, он заносит его в кеш и выдает до тех пор, пока TTL не иссякнет.

В гугле было найдено следующее:
http://www.mail-archive.com/unbound-use ... 00876.html
http://www.mail-archive.com/unbound-use ... 00531.html

Были испробованы разные варианты в конфиге unbound. И stub-zone, и forward-zone, и local-zone эффект нулевой.

Интересно, кто что думает на этот счет?
А также может, кто подскажет легковесный кеширующий днс для FreeBSD, который поддерживает DNSSEC? Бинд не предлагать, это самый крайний и нежелательный вариант.


P.S. djbdns во всем устраивает, если бы не отсутствие поддержки DNSSEC и нежелание г-на Бернтштейна ее туда внедрить.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2010-04-18 0:29:18

Да, это у него такая фича. Разработчик вон в одном из писем по вашей ссылке как раз написал, что они помещают в кеш оригинальный ответ и потом ничего с ним специально не делают - отдают клиентам как есть. Поэтому round-robin не работает. Только, когда сервер выкинет запись из кеша и получит ее от авторитарного заного, только тогда очередность может поменяться...

Я красивого решения не знаю. Из некрасивых решений - принудительно снизить максимальное время кеширования, но это неправильные вариант. Еще попробуйте включить опцию

Код: Выделить всё

prefetch:yes
хотя она вряд ли поможет так как совсем не для этого сделана...

:unknown:

Напишите в листы feature request - может обратят внимание и прикрутят.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

wishmaster
проходил мимо
Сообщения: 2
Зарегистрирован: 2010-04-17 3:28:40

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение wishmaster » 2010-04-18 4:15:53

Да, не поможет, это я уже пробовал.
Идеально было бы, если б он сделал опцию для зоны, по аналогии с "stub-prime: "no"", например, "stub-cache: "no|yes"", это позволит указать для всей зоны глобальный параметр - не кешировать, и пусть unbound тупо форвардит реквесты и ответы.

Попробую написать в maillist. Глядишь и сподобится.. :-)) В остальном - отличный, легко настраиваемый ДНС, без извратов.. :-))


Ce$$
проходил мимо

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Ce$$ » 2010-05-16 14:23:24

Нашёл ответ в maillist, можно TTL в bind поставить в 0. Спасибо.

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Dwolfix » 2010-06-08 8:33:19

Статейка дельная получилась. Использую на сервере Power DNS в качестве авторитетного, держит зоны для внешки. Кроме этого, юзал Powerdns-recursor, но он по невыясненной причине иногда отказывался обслуживать клиентские запросы, помогал только recursor restart. Установил Unbound за 15 минут по этой статье. Все работает без сбоев уже 2 недели. Спасибо за науку! )))
Бороться за знания, терзать препятствия, аки волк!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение terminus » 2010-06-08 10:56:53

Мониторинг используете? Сколько у вас через него запросов проходит, интересно? :smile:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

Re: Готовится статья о DNS сервере Unbound

Непрочитанное сообщение Dwolfix » 2010-06-08 11:32:15

Пока не развернул, но хочу попробовать. Мониторить, собственно, немного придется - сервер обслуживает сетку из десятка офисных машин. Но для изучения и познания - пригодится )))
Бороться за знания, терзать препятствия, аки волк!


Вернуться в «Софт»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей