Страница 1 из 1

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

Добавлено: 2009-01-21 1:30:20
mediamag
Вопрос..рационально и правильно ли поднять на шлюзе кеширующий днс сервачёк...???

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

Добавлено: 2009-01-21 9:00:30
Adekamer
рационально

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

Добавлено: 2009-01-21 10:39:57
mediamag
спасибо

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

Добавлено: 2009-01-22 0:31:55
mediamag
Поставил 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"


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

Добавлено: 2009-01-22 11:43:07
terminus
У вас случайно старый 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"

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

Добавлено: 2009-01-22 14:23:24
mediamag
сделал тоже самое что и вы с машины где стоит 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 пашет нормально?

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

Добавлено: 2009-01-22 14:55:52
mediamag
и если не сложно обьясните что такое forward dns если его включать то зачем он нужен, будет ли так лучше и на какой днс его форвардить...

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

Добавлено: 2009-01-22 19:06:56
terminus
Ну походу что-то у вас запустилось, может даже 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

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

Добавлено: 2009-01-23 0:49:59
mediamag
в поле я должен что вписать? какой домен? мой? и еще вопрос в поле

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

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

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

Добавлено: 2009-01-23 12:06:41
terminus
В поле 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 самому проводить разрешения имен. Это быстрее и надежнее (если скорость подключения позволяет, опять же).

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

Добавлено: 2009-01-23 12:51:29
mediamag
скорость 4-5 мбит сек, безлимит...а вообще спасибо огромное за очень содержательные ответы

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

Добавлено: 2009-01-23 12:55:36
terminus
Пожалуйста, мне не жалко.

---

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

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

А то растекаемся мыслей по форуму... :smile:

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

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

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

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

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

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

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

Добавлено: 2009-08-09 11:42:12
opt1k
знаю точно что можно форвардить когда известно имя домена, так:
forward-zone:
name: "."
forward-addr 1.2.3.4
forward-zone:
name: ".localdomain"
forward-addr 192.168.1.1

типа того

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

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

Добавлено: 2009-08-09 12:55:19
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

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

Добавлено: 2009-08-09 20:05:31
kharkov_max
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, если не смог отработать сам?

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

Добавлено: 2009-08-10 11:15:09
terminus
стандартным способом (через опции конфигурации) такой штуки не сделать...
но есть совсем уж фантастический вариант - написать плагин на питоне который бы обеспечивал эту фишку (unbound позволяет цеплять к себе питоновые модули).

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

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

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

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

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

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

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