Кеширующий DNS сервер Unbound+шлюз в инет

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-21 1:30:20

Вопрос..рационально и правильно ли поднять на шлюзе кеширующий днс сервачёк...???

Хостинговая компания 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/

Аватара пользователя
Adekamer
пингвин
Сообщения: 694
Зарегистрирован: 2007-10-09 18:36:48
Откуда: 127.0.0.1
Контактная информация:

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение Adekamer » 2009-01-21 9:00:30

рационально


mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-22 0:31:55

Поставил unbound на шлюз..делал все как в статье http://www.lissyara.su/?id=1705 В процессах появилось 4 процесса унбоунда (как и писалось в статье) делаю

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

ps auxw | grep unbound
unbound    852  0.0  0.4  8840  4548  ??  Ss    7:56PM   0:00.19 /usr/local/sbin/unbound
unbound    874  0.0  0.4  8840  4560  ??  S     7:56PM   0:00.17 /usr/local/sbin/unbound
unbound    877  0.0  0.4  8840  4624  ??  S     7:56PM   0:00.18 /usr/local/sbin/unbound
unbound    879  0.0  0.4  8840  4640  ??  S     7:56PM   0:00.19 /usr/local/sbin/unbound
Делаю

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

netstat -an | grep *.53
grep: No match.
грабли какие то..не должно так быть если придерживатся статьи...копаю дальше..делаю с нета

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

nslookup xx.xx.xx.xx(мой айпи)
Server:  ns3.ukrtelecom.ua
Address:  195.5.46.10

Name:    ll-xx.xx.xx.xx.dp.sovam.net.ua
Address:  xx.xx.xx.xx

делаю nslookup с внутренние сети

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

can`t find server name for address 192.168.0.108(внутренняя сетевая шлюза)non existent domain
default server are not avaliable
default server: unknown
address: 192.168.0.108
я так понял не все получилось как надо..а хотелось заменить стандартный фришный днс named на кеширующий unbound...может чтото в конфиге пропустил?
вот конфиг unbound.conf

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

verbosity: 0
num-threads: 4
interface: 0.0.0.0
port: 53
outgoing-range: 256
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.0.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: ""

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"


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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-01-22 11:43:07

У вас случайно старый BIND не запущен параллельно на 53 UDP порту? BIND и Unbound не мешают друг другу?

На счет статьи - она уже чуть устарела. В ближайшее время я ее дополню. Конкретно в данный момент уже вышла версия unbound 1.2.0 в которой исчезла проблема с libevent (разработчики нашли race condition между потоков и исправили). Так что при сборке порта вы теперь уже могли спокойно выберать опции LIBEVENT и THREADS - это теперь не вызывает проблем при работе, и позволяет не форкать четыре независимых процесса, а использовать один с множеством потоков (экономия памяти выходит).

Кстати, не совсем понял как вы тестировали через nslookup. Надо ведь просто на той машине где запущен unbound открыть nslookup и поспрашивать что-нибудь через него:

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

[terminus@dns 10:39:31 ~]$ nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> forum.lissyara.su.
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
forum.lissyara.su       canonical name = hosting.lissyara.su.
Name:   hosting.lissyara.su
Address: 77.221.149.162
>

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

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

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

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-22 14:23:24

сделал тоже самое что и вы с машины где стоит unbound

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

> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> forum.lissyara.su
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
forum.lissyara.su       canonical name = hosting.lissyara.su.
Name:   hosting.lissyara.su
Address: 77.221.149.162
значит unbound пашет нормально?

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-22 14:55:52

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

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-01-22 19:06:56

Ну походу что-то у вас запустилось, может даже unbound.
Проверьте:

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

ps auxw | grep named
ps auxw | grep bind
Если ничего нет - значит работает unbound. Да и нормально netstat -an просмотрите (хотя, если был ответ, то на 53 порту точно что-то весит).
А лучше включите все-таки вывод в лог и проверьте как все работает наблюдая через

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

tail -f /usr/local/etc/unbound/unbound.log
Сразу все будет видно - работает или нет...
и если не сложно обьясните что такое forward dns если его включать то зачем он нужен, будет ли так лучше и на какой днс его форвардить...
Форвардин запросов - это когда ваш днс сервер, получив запрос от клиента, не сам начинает производить полный цикл разрешения запрашиваемого имени, а пересылает запрос на указанный днс сервер (чаще всего на сервер провайдера). Так делают в целях экономии трафика. Получив ответ от днса на который он пересылал запрос, ваш сервер сохранит его к себе в кеш и ответит уже клиенту. Чтобы такое включить у unbound надо добавить в конфиг (1.2.3.4 днс прова.):

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

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

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-23 0:49:59

в поле я должен что вписать? какой домен? мой? и еще вопрос в поле

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

 forward-addr
вписывать ближайший ко мне днс или лучше один из бесплатных днс например opendns.org???

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-01-23 12:06:41

В поле name оставляйте точку "." - как в примере. Это значит, что происходит форвардинг для всех имен с точки начинающихся (то есть полностью для всех). А если бы вместо точки там бы было вписано "mail.ru." то форвардинг бы происходил только при обращении к именам mail.ru соответвенно, а все остальные имена unbound разрешал бы сам...

Если надумали делать форвардинг, то вписывайте адреса днс серверов вашего провайдера. Вписывать можно сразу несколько адресов, типа:

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

forward-zone: 
name: "."
forward-addr 1.2.3.4
forward-addr 5.6.7.8
forward-addr 9.10.11.12
Вписывать нужно ближайшие к вам, и надежные сервера (как уже сказал - сервера провайдера очень подойдут).

И еще один момент. Я не успел внести его в статью. Поправете в конфигурации unbound эти установки:

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

infra-host-ttl: 900
infra-lame-ttl: 900
на это:

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

infra-host-ttl: 60
infra-lame-ttl: 60
Сейчас объясню. У одного товарища который так же как вы решился настраевать форвардинг, вылезли грабли. Была проблема, что, если пропадает связь с днс сервером провайдера (физически нет соединения) то такой неотвечающий сервер попадает во внутренний блеклист unbound'а. По умолчанию записи в этом листе имеют TTL 900 секунд (15мин). Это излишне параноидальная мера, которая приводила к ситуации что, типа, коннект пропал на минуту, а соединение с сервером провайдера востанавливалось только через 15 минут. В версии unbound 1.2.0 эту ситуацию попытались исправить - теперь "мертвые" сервера все же опрашиваются с надеждой, что они вернулись, но происходит это не часто. Установка infra-host-ttl и infra-lame-ttl в 60 сек решит эту возможную проблему.

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

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение mediamag » 2009-01-23 12:51:29

скорость 4-5 мбит сек, безлимит...а вообще спасибо огромное за очень содержательные ответы

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-01-23 12:55:36

Пожалуйста, мне не жалко.

---

Модераторы, будьте добры пожалуйста - слейте эту тему вместе с предыдущей про unbound, в одну . С этой вот:
http://forum.lissyara.su/viewtopic.php?t=9582

Да, и вот еще один кандидат на mergemaster
http://forum.lissyara.su/viewtopic.php?f=3&t=12709

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

Аватара пользователя
kharkov_max
капитан
Сообщения: 1810
Зарегистрирован: 2008-10-03 14:56:40

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение kharkov_max » 2009-08-09 8:54:48

Форвардин запросов - это когда ваш днс сервер, получив запрос от клиента, не сам начинает производить полный цикл разрешения запрашиваемого имени, а пересылает запрос на указанный днс сервер (чаще всего на сервер провайдера). Так делают в целях экономии трафика. Получив ответ от днса на который он пересылал запрос, ваш сервер сохранит его к себе в кеш и ответит уже клиенту. Чтобы такое включить у unbound надо добавить в конфиг (1.2.3.4 днс прова.):

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

forward-zone: 
name: "."
forward-addr 1.2.3.4
Подскажите пожалуйста.

Есть 2 провайдера и стоит unbound.
Мне хотелось бы сделать так, скажем все dns запросы Unbound начинает обрабатывать сам (интернет провайдера 1), а если он не находит нужной зоны то обращается к DNS серверу провайдера 2 (это домовые локальные сети).

Возможно ли так реализовать в конфиге ?

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение opt1k » 2009-08-09 11:42:12

знаю точно что можно форвардить когда известно имя домена, так:
forward-zone:
name: "."
forward-addr 1.2.3.4
forward-zone:
name: ".localdomain"
forward-addr 192.168.1.1

типа того

а вообще RTFM, man unbound.conf достаточно информативен.

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-08-09 12:55:19

kharkov_max писал(а): Подскажите пожалуйста.

Есть 2 провайдера и стоит unbound.
Мне хотелось бы сделать так, скажем все dns запросы Unbound начинает обрабатывать сам (интернет провайдера 1), а если он не находит нужной зоны то обращается к DNS серверу провайдера 2 (это домовые локальные сети).

Возможно ли так реализовать в конфиге ?
В случае, когда он не сможет сам разрешить имя через первого провайдер, он не станет автоматом переключаться на второго, а вернет клиенту результат (нет домена или нет ответа) - ведь негативный результат это тоже результат...
Если то имя которое вы хотите разрешать через второго провайдера не пересекается с уже имеющимся в интернете доменным именем (скажем provaider.local, но не provider.ru) то можно ведь просто жестко включить пересылку для данного имени на ДНС второго провайдера?

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

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

Аватара пользователя
kharkov_max
капитан
Сообщения: 1810
Зарегистрирован: 2008-10-03 14:56:40

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение kharkov_max » 2009-08-09 20:05:31

terminus писал(а):
kharkov_max писал(а): Подскажите пожалуйста.

Есть 2 провайдера и стоит unbound.
Мне хотелось бы сделать так, скажем все dns запросы Unbound начинает обрабатывать сам (интернет провайдера 1), а если он не находит нужной зоны то обращается к DNS серверу провайдера 2 (это домовые локальные сети).

Возможно ли так реализовать в конфиге ?
В случае, когда он не сможет сам разрешить имя через первого провайдер, он не станет автоматом переключаться на второго, а вернет клиенту результат (нет домена или нет ответа) - ведь негативный результат это тоже результат...
Если то имя которое вы хотите разрешать через второго провайдера не пересекается с уже имеющимся в интернете доменным именем (скажем provaider.local, но не provider.ru) то можно ведь просто жестко включить пересылку для данного имени на ДНС второго провайдера?

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

forward-zone: 
name: "provaider.local."
forward-addr 2.2.2.2
В принципе Вы правы, можно так делать ....
Но давайте рассмотрим следующий вариант.

С инетом все ясно, unbound лезет находит что нужно и отдает зону, но ....
Если эта зона ему не известна ... И Вы не знаете какие зоны могут быть у провайдера2.

Т.е. скажем mail.ru четко видно из инета, в локальной сети Вы записали зону my.domain (известная вам (уже) зона провайдера2), но там же завтра (у провайдера2) появилась зона my.superdomain.
По Вашим предположениям ее необходимо прописать у себя в unbound иначе не будет работать ...

Так вот ка можно сделать что б неизвестную зону unbound искал у провайдера2, если не смог отработать сам?

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-08-10 11:15:09

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

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение opt1k » 2009-08-10 11:54:51

Не уверен, но можно попробовать запустить второй unbound, повесить его на виртуальный интерфейс и настроить его на форвардинг на другой ДНС сервер. Клиентам в настройках прописать его как secondary dns.
Что скажешь, terminus?

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

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение terminus » 2009-08-10 12:03:22

Да наверно не поможет - клиент же будет всегда к первому обращаться, и только если тот не работает на второй идти. Ведь негативный ответ про то, что нет домена это нормальный ответ, и нет причин запрашивать второй сервер.

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

Аватара пользователя
kharkov_max
капитан
Сообщения: 1810
Зарегистрирован: 2008-10-03 14:56:40

Re: Кеширующий DNS сервер Unbound+шлюз в инет

Непрочитанное сообщение kharkov_max » 2009-08-10 14:26:54

Еще "вариант" - всегда использовать пересылку всех запросов только через второго провайдера, если тот разрешает так делать через тот днс на котором заводятся эти самые "левые" домены...
Если конфиг unbound этого не может, то похоже что это единственное решение.
Просто провайдер2 медленнее и не анлим (т.е. не хотелось бы через него весь DNS трафик гонять). Понятно что его будет мало, но все же ....