LINUX.ORG.RU
ФорумAdmin

dnsmasq не перебирает весь список DNS серверов (DNS сервер)

 


0

1

весь конфиг:

domain=workstation
expand-hosts

#--min-cache-ttl=600
#min-cache-ttl=300

#===Common settings
interface=eth0
interface=eth1
resolv-file=/etc/resolv_for_dnsmasq
#log-dhcp
cache-size=1000

хотелось бы, чтобы при неудачном обращении к первому серверу из списка в файле /etc/resolv_for_dnsmasq
dnsmasq самостоятельно бы обращался к следующему и так до конца списка, а то сейчас он вылетает при первой же неудаче и возвращает «неизвестный хост»

при повторении запроса dnsmasq обращается к следующему DNS серверу и уже может вернуть правильный адрес по тому же самому запросу, что и в первый раз

Пожалуйста, подскажите, какой опцией его заставить перебирать весь файл /etc/resolv_for_dnsmasq всего на один входящий запрос?

неужели нет ничего более лучшего, чем добавить в
/etc/resolv.conf

3 одинаковых строчки:

nameserver 127.0.0.1
nameserver 127.0.0.1
nameserver 127.0.0.1

?

какой опцией регулируется повтор попыток DNS запросов в dnsmasq и перебор серверов из
resolv-file=/etc/resolv_for_dnsmasq
?

sanyock ★★ ()

хотелось бы, чтобы при неудачном обращении к первому серверу

Определись насчёт неудачного обращения. При возврате SERVFAIL или недоступности DNS - dnsmasq пойдет по списку серверов на последующие запросы. А вот если сервер вернет NXDOMAIN - тогда это будет считаться корректным ответом.

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Определись насчёт неудачного обращения. При возврате SERVFAIL или недоступности DNS - dnsmasq пойдет по списку серверов на последующие запросы. А вот если сервер вернет NXDOMAIN - тогда это будет считаться корректным ответом.

NXDOMAIN, потому что некоторые DNS сервера в локальной сети, у них интернета даже нет

мне надо, чтобы сначала dnsmasq, установленный на рабочей станции опрашивал DNS из локалки и если не найдет на них, то уже только потом спрашивал DNS сервер в интернет

если такое невозможно в dnsmasq, может быть существуют другие решения?

sanyock ★★ ()
Последнее исправление: sanyock (всего исправлений: 1)
Ответ на: комментарий от sanyock

если такое невозможно в dnsmasq, может быть существуют другие решения?

Вообще-то это наиболее корректное поведение

Belen ★★ ()
Ответ на: комментарий от sanyock

NXDOMAIN, потому что некоторые DNS сервера в локальной сети, у них интернета даже нет

Вариант редиректить на них только ЛОКАЛЬНЫЕ запросы, а не все - не?

У тебя что в локалке миллион разных доменов? Если нет - напиши конфиг вида

server=/yourdomain1/dns-в-локалке
server=/yourdomain2/dns-в-локалке

А остальные запросы шли в интернет

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

хорошее решение по доменам, возможно, так и сделаю

а можно в случае без домена задать прямо список имен, которые нужно разрешать на определенном DNS сервере?

sanyock ★★ ()
Ответ на: комментарий от sanyock

что значит без домена? ты в курсе про default domain name и его распространение через DHCP?

Ты указываешь какие домены(и их поддомены) разрешать через конкретные DNS-сервера.

Например, у тебя в сети есть домен foo.local и компьютер в этом домене bar.foo.local

Ты можешь сделать так:

server=/bar.foo.local/dns2
server=/foo.local/dns1

В результате, если кто-то будет искать компьютер bar.foo.local - его перекинет на dns2, а если что-то другое в зоне foo.local - на dns1

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Belen

Вообще-то это наиболее корректное поведение

полностью согласен, но хотелось бы найти DNS прокси, который бы мог играть по моим правилам и опрашивать весь список и даже не по разу и только если ни один DNS сервер не смог ответить, то тогда обломс

т.е. так Workstation->dnsmasq->неправильный_DNS_proxy->весь_список_пожалуйста

sanyock ★★ ()
Ответ на: комментарий от Pinkbyte

В результате, если кто-то будет искать компьютер bar.foo.local - его перекинет на dns2, а если что-то другое в зоне foo.local - на dns1

т.е. можно задавать FQDN для каждого хоста, отлично

sanyock ★★ ()
Ответ на: комментарий от sanyock

еще раз, «не смог ответить» = «SERVFAIL или отсутствие ответа». Ответ «домен не существует» - корректный. Нельзя заставить на корректный ответ вести себя несвойственно стандарту. Ну, точнее, ты конечно можешь пропатчить dnsmasq как тебе угодно, но если что-то начнет при этом у тебя в сети хреново работать, потому что ты это сделал без понимания всех возможных последствий - разгребать это придется тоже тебе.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от sanyock

Конечно. Грубо говоря отличие в хосте в домене второго уровня bar в зоне foo.local и в домене третьего уровня bar.foo.local только в том, что у последнего нет SOA записи. А выглядят они со стороны - одинаково.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

еще раз, «не смог ответить» = «SERVFAIL или отсутствие ответа». Ответ «домен не существует» - корректный. Нельзя заставить на корректный ответ вести себя несвойственно стандарту. Ну, точнее, ты конечно можешь пропатчить dnsmasq как тебе угодно, но если что-то начнет при этом у тебя в сети хреново работать, потому что ты это сделал без понимания всех возможных последствий - разгребать это придется тоже тебе.

только для рабочей станции, во всей сети обычные dnsmasq

sanyock ★★ ()

попробуй добавить all-servers в конфиг. сомневаюсь, что поможет, но вдруг :)

а так, патч написать очень легко, даже в коде сильно разбираться не нужно

Rost ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.