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

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

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

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

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

Непрочитанное сообщение terminus » 2008-07-05 21:33:07

Установка и настройка DNS сервера Unbound

DNS сервер Unbound


В предыдущей заметке мною был описан процесс установки авторитарного DNS сервера NSD. В этой статье хочу описать установку и настройку кеширующего DNS сервера Unbound. Установка проводилась на FreeBSD 7.0 RELEASE. Мотив написания обоих заметок — попытка отказаться от необходимости использования гламурного BIND, и поиск новых решений на смену устаревающих.

В случае с обслуживанием рекурсивных клиентских запросов, в качестве альтернативы BIND'у можно рассматривать тот же самый djbdns (dnscache) со всеми его традиционными плюсами, и минусами. Но, как ни крути — это есть то самое устаревающее решение. Поэтому захотел расширить свои знания освоив Unbound.

Как я уже упомянул — Unbound это кеширующий DNS который обслуживает исключительно рекурсивные запросы. Во время работы сервера, кеш целиком распологается в памяти, а его размер ограничен указанным объемом. Unbound поддерживает расширения DNSSEC и может работать как "validator", но на рассмотрении этой функциональности я не останавливался — слишком уж объемная тема которая для меня пока не актуальна... Ну и в качестве плюсов по сравнению с BIND надо отметить все те же скромные размеры и скорость работы. Более детальный список фич и возможностей пакета, можно прочесть после установки в файле /usr/local/share/doc/unbound/FEATURES.


Установка

На момент написания статьи, в портах была доступна недавно вышедшая версия 1.0. На всякий случай упомяну процедуру обновления портов. Для версий FreeBSD начиная с 6.2, это удобно делать через portsnap:

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

# portsnap fetch
# portsnap extract

После обновления портов, ставим Unbound традиционным методом:

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

# cd /usr/ports/dns/unbound
# make install clean

При первой установке, порт предлагал выбрать только одну опцию конфигурации.

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

     Options for unbound 1.0.0_1
[ ] LIBEVENT  is useful when using many (10000) outgoing ports
Я ее выбрал. Это приводит к установке дополнительного порта libevent-1.3e и линковке с ним Unbound в процессе компиляции. Более детально ознакомиться с тем, что такое libevent можно на официальном сайте проекта http://www.monkey.org/~provos/libevent/ Там же есть красивые графики с результатами «до» и «после». Результат с «после» мне понравился — тем более, что абсолютно за бесплатно...

На машине Pentium 4 2,53GHz сборка порта заняла три-четыре минуты.

Файлы установленные портом:

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

/usr/local/man/man1/unbound-host.1.gz
/usr/local/man/man3/libunbound.3.gz
/usr/local/man/man5/unbound.conf.5.gz
/usr/local/man/man8/unbound.8.gz
/usr/local/man/man8/unbound-checkconf.8.gz
/usr/local/etc/unbound/unbound.conf.sample
/usr/local/include/unbound.h
/usr/local/lib/libunbound.so.0
/usr/local/lib/libunbound.so
/usr/local/lib/libunbound.la
/usr/local/lib/libunbound.a
/usr/local/sbin/unbound
/usr/local/sbin/unbound-checkconf
/usr/local/sbin/unbound-host
/usr/local/share/doc/unbound/CREDITS
/usr/local/share/doc/unbound/Changelog
/usr/local/share/doc/unbound/FEATURES
/usr/local/share/doc/unbound/LICENSE
/usr/local/share/doc/unbound/README
/usr/local/share/doc/unbound/README.svn
/usr/local/share/doc/unbound/README.tests
/usr/local/share/doc/unbound/TODO
/usr/local/share/doc/unbound/plan
/usr/local/share/doc/unbound/requirements.txt
/usr/local/etc/rc.d/unbound

Управление запуском/перезапуском/остановкой будет вестись через стандартный rc.d скрипт установленный портом. Для проверки правильности unbound.conf удобно применять unbound-checkconf. Все просто.

В процессе установки порта, в систему добавляется новый пользователь из-под которого будет работать демон unbound:

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

unbound:*:59:1:unbound dns resolver:/nonexistent:/usr/sbin/nologin

Настройка

Традиционно подразумевается необходимость внимательного прочтения man unbound.conf и осознания прочитанного в свете личных требований. Опций много. Я выбирал и помещал в свой конфиг те, которые считал нужными себе, и оставлял с настройками по-умолчанию несущественные. В комментариях придется описать некоторые наиболее интересные.

Unbound позволяет запускать себя в chroot окружении. Я решил использовать эту возможность чтобы не замарачиваться с настройкой jail.

Для обеспечения полноценной работы в chroot, придется сделать один дополнительный маневр. Дело в том, что unbound необходим доступ к /dev/urandom. Я посчитал, что правильным решением будет ограниченное монтирование devfs в подкаталог ./dev в каталоге unbound.

В директории /usr/local/etc/unbound создаем новую поддиректорию ./dev:

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

drwxr-xr-x	3	unbound	wheel	512	5 июл 17:54 .
drwxr-xr-x	37	root	wheel	1536	3 июл 20:53 ..
dr-xr-xr-x	4	root	wheel	512	5 июл 20:00 dev
В файле /etc/devfs.rules прописываем новый devfs releset:

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

[unbound_ruleset=20]
add hide
add path null unhide
add path zero unhide
add path crypto unhide
add path random unhide
add path urandom unhide
В файле /etc/fstab прописываем монтирование devfs:

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

devfs	/usr/local/etc/unbound/dev	devfs	rw	0	0
В файле /etc/rc.conf прописываем применение созданного devfs releset к точке монтирования, а так же сразу заодно разрешаем запуск демона:

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

devfs_set_rulesets="/usr/local/etc/unbound/dev=unbound_ruleset"
unbound_enable="YES"
В результате всех этих танцев с бубном, после каждой перезагрузки компа будим иметь в ./dev:

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

[root@dns /usr/local/etc/unbound/dev]# ls -la
total 0
crw-rw-rw-	1 root	wheel	0,  13	5 июл 20:22 null
crw-rw-rw-	1 root	wheel	0,  19	5 июл 20:00 random
lrwxr-xr-x	1 root	wheel	6	5 июл 17:00 urandom -> random
crw-rw-rw-	1 root	wheel	0,  14	5 июл 17:00 zero
Стоит перезапустить FreeBSD и проверить, что devfs красиво подмонтировалась в /usr/local/etc/unbound/dev со всеми ограничениями как положено.


Далее продолжаем настройку unbound

Переходим в /usr/local/etc/unbound и скачиваем туда свежий hint-файл named.cache с информацией о адресах корневых серверов:

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

# cd /usr/local/etc/unbound
# fetch ftp://FTP.INTERNIC.NET/domain/named.cache
На работающем сервере каталог /usr/local/etc/unbound будет выглядеть так:

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

[root@dns /usr/local/etc/unbound]# ls -la
total 13
drwxr-xr-x	3	unbound	wheel	512	5 июл 17:54 .
drwxr-xr-x	37	root	wheel	1536	3 июл 20:53 ..
dr-xr-xr-x	4	root	wheel	512	5 июл 20:00 dev
-rw-r--r--	1	root	wheel	2879	4 фев 10:00 named.cache
-rw-r--r--	1	root	wheel	1419	5 июл 17:54 unbound.conf
-rw-r--r--	1	unbound	wheel	5	5 июл 17:54 unbound.pid

Конфиг unbound.conf:

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

server:
        verbosity: 0
        num-threads: 8
        interface: 0.0.0.0
        port: 53
        outgoing-range: 256
        outgoing-port-permit: 32768-65000
        msg-cache-size: 16m
        msg-cache-slabs: 4
        num-queries-per-thread: 1024
        rrset-cache-size: 32m
        rrset-cache-slabs: 4
        cache-max-ttl: 86400
        infra-host-ttl: 900
        infra-lame-ttl: 900
        infra-cache-slabs: 4
        infra-cache-numhosts: 10000
        infra-cache-lame-size: 10k
        do-ip4: yes
        do-ip6: no
        do-udp: yes
        do-tcp: yes
        do-daemonize: yes

        access-control: 0.0.0.0/0 refuse
        access-control: 192.168.1.0/24 allow
        access-control: 127.0.0.0/8 allow
        access-control: ::0/0 refuse
        access-control: ::1 allow
        access-control: ::ffff:127.0.0.1 allow

        chroot: "/usr/local/etc/unbound"
        username: "unbound"
        directory: "/usr/local/etc/unbound"
        #logfile: "/usr/local/etc/unbound/unbound.log"
        logfile: ""
        use-syslog: no
        pidfile: "/usr/local/etc/unbound/unbound.pid"
        root-hints: "/usr/local/etc/unbound/named.cache"

        identity: "DNS"
        version: "1.0"
        hide-identity: yes
        hide-version: yes
        harden-glue: yes
        do-not-query-address: 127.0.0.1/8
        do-not-query-address: ::1
        do-not-query-localhost: yes
        module-config: "iterator"

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

#stub-zone:
#       name: "times.lv."
#       stub-addr: 193.108.185.34
#       forward-host:

#forward-zone:
#       name: "rus.delfi.lv."
#       stub-addr:
#       forward-host: ns.nic.lv.
В общем-то на этом все. Запускаем unbound-checkconf и, если нет сообщений об ошибках, то можно командовать команду:

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

# /usr/local/etc/rc.d/unbound start
И сервер заведется.

После этого стоит проверить, что все запустилось:

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

# ps auxw | grep unbound
unbound     4018  0,0  0,8 34152  8488  ??  Is   17:36     0:00,03 /usr/local/sbin/unbound

#netstat -an | grep *.53
tcp4	0      0  *.53                   *.*                    LISTEN
udp4	0      0  *.53                   *.*
А так же поспрашивать с помошью nslookup наш новый ресольвер и убедиться, что все в порядке.

Если в будущем понадобиться менять какие-либо параметры в unbound.conf то, для того чтобы сервер перечитал свой конфиг, достаточно выполнения традиционного:

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

/usr/local/etc/rc.d/unbound reload
Комментарии

Опции unbound.conf:

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

outgoing-range: 256 
outgoing-port-permit: 32768-65000
- Эти две опции указывают на то, сколько различных случайных портов может использовать каждый thread при проведении запросов, и на то из какого диапазона можно брать эти порты. Каждый новый запрос к авторитарным DNS серверам отправляется со своего порта — это сделано для секюрности.
Стоит учитывать, что сокет = открытый файл. На максимальное количество файлов которые может открыть процесс, влияют настройки из /etc/login.conf. По-умолчанию для пользователя default уже установлено openfiles=unlimited.

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

msg-cache-size: 16m
msg-cache-slabs: 4
rrset-cache-size: 32m
rrset-cache-slabs: 4
cache-max-ttl: 86400
- Эти опции указывают на то, каким будет размер кеша принимаемых запросов и, собственно, кеша DNS записей. cache-max-ttl указывает на максимальный срок жизни записей в кеше даже не смотря на их оригинальный TTL.

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

num-queries-per-thread: 1024
- Указывает сколько клиентских запросов может обработать один поток. При превышении, лишние запросы будут дропаться.

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

access-control: 192.168.1.0/24 allow
- Кому разрешено посылать рекурсивные запросы (пользоваться кешем)

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

logfile: ""
use-syslog: no
- Полное отключение любого логирования. Мне не нужно. Если надо — можно включить и установить уровень verbosity от 1 до 4. В отличии от NSD, Unbound пишет в свои логи очень много разной статистики. При вербозности 4, вывод в лог по насыщенности практически напоминает tcpdump.

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

module-config: "iterator"
- Устанавливает режим работы как исключительно DNS кеша. Еще один вариант этой настройки "validator iterator". В таком случае появляется возможность использовать DNSSEC расширения.

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

local-zone:
- Возможность «засорить» кеш своими данными приоритет которых будет выше чем у данных оригинальной зоны. Параметр устанавливаемый после имени local-zone указывает на режим как надо отвечать на данные которые предварительно не были указаны. Варианты:

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

deny - serves local data (if any), else, drops queries.
efuse - serves local data (if any), else, replies with error.
static - serves local data, else, nxdomain or nodata answer.
transparent - serves local data, else, resolves normally .
direct - serves the zone data for any subdomain in the zone.
nodefault - can be used to normally resolve AS112 zones.

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

stub-zone:
- Перенаправление всех запросов к этой зоне на указанный авторитарный сервер. Запросы отсылаются как итерационные.

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

forward-zone:
- Перенаправление всех запросов к этой зоне на указанный кеширующий сервер. Запросы отсылаются как рекурсивные. Это способ форвардинга запросов. Если указать здесь:

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

forward-zone: 
name: "."
stub-addr: 192.168.2.1
То все запросы направляемые на наш сервер, будут перенаправляться на 192.168.2.1 который уже будет проводить всю рекурсию и возвращать ответ.

---

Комментируйте пожалуйста. Писал уставший - мог забыть или накасячить что-нибудь... :sorry: :pardon:

Разместил готовую статью здесь: http://www.lissyara.su/?id=1705
Последний раз редактировалось terminus 2008-07-06 21:56:47, всего редактировалось 4 раза.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-07-05 21:50:58

изврат....
бинд - наше всё =)
======
но - альтернативы нужны.
Убей их всех! Бог потом рассортирует...

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

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

Непрочитанное сообщение terminus » 2008-07-05 23:11:35

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

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

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

Непрочитанное сообщение terminus » 2008-07-09 10:51:26

http://www.opennet.ru/opennews/art.shtml?num=16872
http://securosis.com/2008/07/08/dan-kam ... -released/
http://www.kb.cert.org/vuls/id/800113
http://unbound.net/pipermail/unbound-us ... hread.html

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-07-09 12:14:37

ушло.
=======
а реклама - последние несколько месяцев хостинга не окупает =)))
Убей их всех! Бог потом рассортирует...

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

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

Непрочитанное сообщение Feodor » 2008-07-09 16:27:18

Кто-нибудь уже успел сравнить производительность Unbound vs. Bind? Помню в соревновании Bind vs. PowerDNS recursor победил первый.

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

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

Непрочитанное сообщение terminus » 2008-07-09 17:07:05

Все хвалят :smile:
Честно говоря - не нашел описаний каких-либо масштабных тестов. Тут например тест еще beta unbound:
https://www.se/internetdagarna/2007/56- ... etLabs.pdf
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение Pomka » 2008-07-15 14:42:39

А есть ли возможность настроить связку на одной машине и NSD и Unbound? Откуда Unbound берет информацию о ДНС серверах?

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

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

Непрочитанное сообщение terminus » 2008-07-15 15:03:12

NSD и Unbound можно запустить на одной машине при условии, что они будут работать на разный IP адресах, или на одном IP, но на разных TCP/UDP портах.

Директивы:
Для NSD ip-address: 1.2.3.4
Для Unbound interface: 1.2.3.5

Информацию о корневых ДНС серверах Unbound берет из root-hints: "/usr/local/etc/unbound/named.cache" как в статье написано. В случае, если у вас на одном сервере будет и NSD и Unbound, то:

1) Если зона запущенная на NSD выставленна в интернет и нормально делегирована, то Unbound, проведя полную цепочку запросов, в конце концов попадет на IP NSD и корректно обратиться к зоне.

2) Если зона запущенная на NSD НЕ выставленна в интернет и НЕ делегирована с корневых серверов, то чтобы Unbound мог корректно к ней обращаться надо воспользоваться директивой stub-zone:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение seacat23 » 2008-07-22 14:08:45

Пробовал я его на NetBSD. Пол дня работал, потом перестал резолвить половину доменов.
Правда тогда была только 1.0.0 версия, может 1.0.1 лутше?

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

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

Непрочитанное сообщение terminus » 2008-07-22 21:11:56

Судя по changelog'у в 1.0.1 ничего радикально нового не случилось - все багфиксы малозначительные.

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

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

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

Непрочитанное сообщение seacat23 » 2008-07-23 11:14:48

Поднял седня на FreeBSD xx.yyy.ru 7.0-STABLE FreeBSD 7.0-STABLE #0: Mon Jul 21 15:12:02 MSD 2008
Работает минут 5 и падает.
[1216799607] unbound[1833:0] notice: Start of unbound 1.0.1.
[1216799607] unbound[1833:0] warning: did not exit gracefully last time (1712)
Segmentation fault

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

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

Непрочитанное сообщение terminus » 2008-07-23 12:50:43

У меня он работает на двух машинах с 6.2 RELEASE и 7.0 RELEASE - никаких проблем - запустил и забыл. Не падает ни на одной и все корректно ресолвит... Когда ставили на FreeBSD, настраевали по статье?

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

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

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

Непрочитанное сообщение seacat23 » 2008-07-24 10:25:54

Ставил по ссылке. Память рабочая, проверял её.

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

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

Непрочитанное сообщение terminus » 2008-07-24 14:23:04

Есть такое предупреждение. В портах сейчас 1.3e У меня установлена 1.3e

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

Known issues

If libevent is older (before 1.3c), unbound will exit instead of reload
on sighup. On a restart 'did not exit gracefully last time' warning is 
printed. Perform ./configure --with-libevent=no or update libevent, rerun 
configure and recompile unbound to make sighup work correctly.
It is strongly suggested to use the latest version of libevent (1.4 or more)
on Solaris, because of fixes in the solaris event port code in libevent.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение seacat23 » 2008-07-25 9:15:19

Да без libevent живёт. Но сыпятся вот такие месаги.
error: accept failed: Resource temporarily unavailable

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

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

Непрочитанное сообщение terminus » 2008-07-25 10:17:13

Тут человек жалуется на похожую проблему, только у него салярка...
http://www.unbound.net/pipermail/unboun ... 00136.html

Попробуйте увеличить число файловых дискрипторов разрешенныйх процессу:

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

# sysctl kern.maxfilesperproc=20000

# ee /etc/sysctl.conf
sysctl kern.maxfilesperproc=20000
Если это не поможет, то я уже не знаю в чем косяк. Если поможет, то внесу описание этого воркарауда в статью...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение seacat23 » 2008-07-25 12:01:19

хм, даже на NetBSD 3.1.1 стал держаться. Вот статистика за 5мин.

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

[1216976067] unbound[4259:0] info: server stats for thread 0: 25475 queries, 13867 answers from cache, 11608 recursions
[1216976067] unbound[4259:1] info: server stats for thread 1: 25578 queries, 14121 answers from cache, 11457 recursions
[1216976067] unbound[4259:2] info: server stats for thread 2: 24888 queries, 13736 answers from cache, 11152 recursions
[1216976067] unbound[4259:3] info: server stats for thread 3: 26165 queries, 14340 answers from cache, 11825 recursions

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

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

Непрочитанное сообщение terminus » 2008-07-25 12:33:13

То есть увеличение kern.maxfilesperproc помогло?

А можно глянуть какие у вас в конфиге выставлены параметры для:

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

num-threads:
outgoing-range:
num-queries-per-thread:
outgoing-num-tcp:
incoming-num-tcp:
Конфиг в статье рассчитан на что-то средне-малое, и многое там выставлено по умолчанию или по минимуму.
Как я понимаю, у вас какие-то "провайдерские" объемы запросов через Unbound идут?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение seacat23 » 2008-07-25 13:32:34

Я щас гоняю на NetBSD 3.1.1, увеличение до kern.maxfiles = 4096 помогло.
Вот с такими параметрами щас тестирую.

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

num-threads: 4 
outgoing-range: 256
outgoing-port-permit: 32768-65000
outgoing-num-tcp: 20
incoming-num-tcp: 20

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

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

Непрочитанное сообщение seacat23 » 2008-07-25 13:37:06

мда не выдержал увалился.

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

[1216977830] unbound[4259:1] error: find_delegation: addrs out of memory
[1216977830] unbound[4259:1] error: out of memory adding targets
[1216977830] unbound[4259:1] error: out of memory adding targets
[1216977830] unbound[4259:1] error: out of memory adding targets
[1216977830] unbound[4259:1] error: malloc failure: allocating incoming dns_msg
[1216977830] unbound[4259:1] error: mesh_state_attachment: out of memory
[1216977830] unbound[4259:2] error: set_lame: malloc failure
[1216977830] unbound[4259:2] error: mark host lame: out of memory
[1216977830] unbound[4259:3] error: set_lame: malloc failure
[1216977830] unbound[4259:3] error: mark host lame: out of memory
[1216977830] unbound[4259:2] error: set_lame: malloc failure
[1216977830] unbound[4259:2] error: mark host lame: out of memory
[1216977830] unbound[4259:2] error: set_lame: malloc failure
[1216977830] unbound[4259:2] error: mark host lame: out of memory
[1216977830] unbound[4259:2] error: set_lame: malloc failure
[1216977830] unbound[4259:2] error: mark host lame: out of memory
[1216977830] unbound[4259:2] error: set_lame: malloc failure
[1216977830] unbound[4259:2] error: mark host lame: out of memory
[1216977830] unbound[4259:3] error: set_lame: malloc failure
[1216977830] unbound[4259:3] error: mark host lame: out of memory
[1216977830] unbound[4259:1] error: set_lame: malloc failure
[1216977830] unbound[4259:1] error: mark host lame: out of memory
[1216977830] unbound[4259:3] error: set_lame: malloc failure
[1216977830] unbound[4259:3] error: mark host lame: out of memory
[1216977830] unbound[4259:3] error: set_lame: malloc failure
[1216977830] unbound[4259:3] error: mark host lame: out of memory
[1216977831] unbound[4259:2] error: set_lame: malloc failure
[1216977831] unbound[4259:2] error: mark host lame: out of memory
[1216977831] unbound[4259:3] error: find_delegation: addrs out of memory
[1216977831] unbound[4259:3] error: mesh_state_attachment: out of memory
[1216977831] unbound[4259:1] error: find_delegation: addrs out of memory
[1216977831] unbound[4259:1] error: out of memory adding targets
[1216977831] unbound[4259:1] error: out of memory adding targets
[1216977831] unbound[4259:1] error: out of memory adding targets
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: malloc failure: allocating incoming dns_msg
[1216977831] unbound[4259:1] error: mesh_state_attachment: out of memory
[1216977831] unbound[4259:3] error: find_delegation: addrs out of memory
[1216977831] unbound[4259:3] error: out of memory adding targets
[1216977831] unbound[4259:3] error: out of memory adding targets
[1216977831] unbound[4259:3] error: out of memory adding targets
[1216977831] unbound[4259:3] error: malloc failure: allocating incoming dns_msg
[1216977831] unbound[4259:3] error: mesh_state_attachment: out of memory
[1216977831] unbound[4259:0] error: store_msg: malloc failed
[1216977831] unbound[4259:2] error: set_lame: malloc failure
[1216977831] unbound[4259:2] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:2] error: store_msg: malloc failed
[1216977831] unbound[4259:1] error: store_msg: malloc failed
[1216977831] unbound[4259:0] error: find_delegation: addrs out of memory
[1216977831] unbound[4259:0] error: out of memory adding targets
[1216977831] unbound[4259:0] error: out of memory adding targets
[1216977831] unbound[4259:0] error: out of memory adding targets
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:0] error: malloc failure: allocating incoming dns_msg
[1216977831] unbound[4259:0] error: mesh_state_attachment: out of memory
[1216977831] unbound[4259:2] error: set_lame: malloc failure
[1216977831] unbound[4259:2] error: mark host lame: out of memory
[1216977831] unbound[4259:0] error: store_msg: malloc failed
[1216977831] unbound[4259:2] error: store_msg: malloc failed
[1216977831] unbound[4259:3] error: store_msg: malloc failed
[1216977831] unbound[4259:3] error: store_msg: malloc failed
[1216977831] unbound[4259:2] error: set_lame: malloc failure
[1216977831] unbound[4259:2] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:0] error: store_msg: malloc failed
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:2] error: set_lame: malloc failure
[1216977831] unbound[4259:2] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977831] unbound[4259:1] error: set_lame: malloc failure
[1216977831] unbound[4259:1] error: mark host lame: out of memory
[1216977832] unbound[4259:2] error: set_lame: malloc failure
[1216977832] unbound[4259:2] error: mark host lame: out of memory
[1216977832] unbound[4259:2] error: set_lame: malloc failure
[1216977832] unbound[4259:2] error: mark host lame: out of memory
[1216977832] unbound[4259:3] error: find_delegation: addrs out of memory
[1216977832] unbound[4259:3] error: mesh_state_attachment: out of memory
[1216977832] unbound[4259:3] error: find_delegation: addrs out of memory
[1216977832] unbound[4259:3] error: out of memory adding targets
[1216977832] unbound[4259:3] error: out of memory adding targets
[1216977832] unbound[4259:3] error: out of memory adding targets
[1216977833] unbound[4259:1] error: set_lame: malloc failure
[1216977833] unbound[4259:1] error: mark host lame: out of memory
[1216977833] unbound[4259:1] error: set_lame: malloc failure
[1216977833] unbound[4259:1] error: mark host lame: out of memory
[1216977833] unbound[4259:1] error: set_lame: malloc failure
[1216977833] unbound[4259:1] error: mark host lame: out of memory
[1216977833] unbound[4259:1] error: set_lame: malloc failure
[1216977833] unbound[4259:1] error: mark host lame: out of memory
[1216977833] unbound[4259:3] error: malloc failure: allocating incoming dns_msg
[1216977833] unbound[4259:3] error: mesh_state_attachment: out of memory
[1216977833] unbound[4259:0] error: find_delegation: addrs out of memory
[1216977833] unbound[4259:0] error: out of memory adding targets
[1216977833] unbound[4259:0] error: out of memory adding targets
[1216977833] unbound[4259:0] error: out of memory adding targets
[1216977833] unbound[4259:2] error: store_msg: malloc failed
[1216977833] unbound[4259:0] error: malloc failure: allocating incoming dns_msg
[1216977833] unbound[4259:0] error: mesh_state_attachment: out of memory
[1216977833] unbound[4259:3] error: find_delegation: addrs out of memory
[1216977833] unbound[4259:3] error: out of memory adding targets
[1216977833] unbound[4259:3] error: out of memory adding targets
[1216977833] unbound[4259:3] error: out of memory adding targets
[1216977833] unbound[4259:3] error: out of memory adding targets
[1216977833] unbound[4259:3] error: store_msg: malloc failed
[1216977840] unbound[4259:0] error: find_delegation: addrs out of memory
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: find_delegation: addrs out of memory
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:0] error: out of memory adding targets
[1216977840] unbound[4259:1] error: find_delegation: addrs out of memory
[1216977840] unbound[4259:1] error: out of memory adding targets
[1216977840] unbound[4259:1] error: out of memory adding targets
[1216977840] unbound[4259:1] error: out of memory adding targets
[1216977840] unbound[4259:3] error: store_msg: malloc failed
[1216977840] unbound[4259:3] error: store_msg: malloc failed
[1216977840] unbound[4259:0] fatal error: prealloc: out of memory

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

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

Непрочитанное сообщение terminus » 2008-07-25 14:05:36

Что же у вас в:

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

msg-buffer-size:
msg-cache-size:
msg-cache-slabs:
rrset-cache-size:
rrset-cache-slabs:
И сколько физически памяти/swap на самом сервере?
Он не должен валиться, когда заканчивается rrset-cache-size, а просто перезаписывать его... Тут он кажется просто не может получить память у системы :st: :-o
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

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

Непрочитанное сообщение seacat23 » 2008-07-25 14:10:02

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

msg-buffer-size: 65552
msg-cache-size: 64m
msg-cache-slabs: 4
rrset-cache-size: 128m
rrset-cache-slabs: 4

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

Memory: 1503M Act, 768M Inact, 8060K Wired, 22M Exec, 1430M File, 427M Free
Swap: 1028M Total, 55M Used, 973M Free


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-07-25 14:18:42

чем снимал?
вернее - как?
Убей их всех! Бог потом рассортирует...