DNS (named) не работает с форфардерами

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

DNS (named) не работает с форфардерами

Сообщение vodnick »

Грохнулся сервер с Win2003 c DNS. Решил создать зоны заново на SUSE10.3
Вот что получилось. named.conf:

Код:

options { directory "/var/lib/named"; dump-file "/var/log/named_dump.db"; statistics-file "/var/log/named.stats"; forwarders { $IntranetDNS; $ProvDNS; }; #forward first; listen-on-v6 { any; }; #query-source address * port 53; #transfer-source * port 53; #notify-source * port 53; #allow-query { 127.0.0.1; }; notify no; # include "/etc/named.d/forwarders.conf"; }; include "/etc/named.d/ddns.key"; acl localnet { 192.168.15.0/24; 127.0.0.1; }; zone "." in { type hint; file "root.hint"; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; # Include the meta include file generated by createNamedConfInclude. This # includes all files as configured in NAMED_CONF_INCLUDE_FILES from # /etc/sysconfig/named # include "/etc/named.conf.include"; zone "SMB.local" in { allow-transfer { localnet; }; allow-query { localnet; }; file "master/SMB.local"; type master; }; logging { category default { log_syslog; }; channel log_syslog { syslog; }; }; zone "15.168.192.in-addr.arpa" in { allow-transfer { localnet; }; allow-query { localnet; }; file "master/15.168.192.in-addr.arpa"; type master; };

Сейчас описание траблы. Есть intranet DNS-сервер, который умеет форвардить запросы на DNS прова.
Обычно запросы идут на него, т.к. интранет относительно большой и прописывать хосты врукопашную реально офигеешь (вытащить зону на свой сервер не удалось). Но intranet иногда отваливается , и чтобы Инет работал, нужно пользоваться DNS прова напрямую. Что в общем я и сделал прописав forwarders { $IntranetDNS; $ProvDNS};.
Грабли. Если прописать только один $IntranetDNS, все работает, все резолвится. Как только добавляю $ProvDNS, все, приплыли: server can't find server.intra: NXDOMAIN. А Интернет адреса резолвит нормально. Че за шляпа вообще? В resolv.conf только одна запись: nameserver 127.0.0.1
Порыл Инет, ничего не нашел. Вырубил avahi - не помогло.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

vodnick писал(а): ↑
08.01.2010 12:37
Грабли. Если прописать только один $IntranetDNS, все работает, все резолвится. Как только добавляю $ProvDNS, все, приплыли: server can't find server.intra: NXDOMAIN. А Интернет адреса резолвит нормально. Че за шляпа вообще? В resolv.conf только одна запись: nameserver 127.0.0.1
Порыл Инет, ничего не нашел. Вырубил avahi - не помогло.

А он Вам на некорректный синтаксис, случайно, не ругается?
После $ProvDNS символ ; просится.

И вообще - в SuSE идеологически верно использовать параметры NETCONFIG_DNS_STATIC_SEARCHLIST, NETCONFIG_DNS_STATIC_SERVERS, NETCONFIG_DNS_FORWARDER в файле /etc/sysconfig/network/config о чём чистым английским языком написано в файлике /etc/named.d/forwarders.conf
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

DSS писал(а): ↑
08.01.2010 15:31
vodnick писал(а): ↑
08.01.2010 12:37
Грабли. Если прописать только один $IntranetDNS, все работает, все резолвится. Как только добавляю $ProvDNS, все, приплыли: server can't find server.intra: NXDOMAIN. А Интернет адреса резолвит нормально. Че за шляпа вообще? В resolv.conf только одна запись: nameserver 127.0.0.1
Порыл Инет, ничего не нашел. Вырубил avahi - не помогло.

А он Вам на некорректный синтаксис, случайно, не ругается?
После $ProvDNS символ ; просится.

сорри, тут просто опечатка. Поправил.

DSS писал(а): ↑
08.01.2010 15:31
И вообще - в SuSE идеологически верно использовать параметры NETCONFIG_DNS_STATIC_SEARCHLIST, NETCONFIG_DNS_STATIC_SERVERS, NETCONFIG_DNS_FORWARDER в файле /etc/sysconfig/network/config о чём чистым английским языком написано в файлике /etc/named.d/forwarders.conf

Хм. Файл /etc/named.d/forwarders.conf почти чистый. (на SUSE 10.3, и на SUSE11.0). Содержит только forwarders { $IntranetDNS; $ProvDNS; };
В /etc/sysconfig/network/config нет таких параметров, где можно почитать?

Наткнулся тут на топик, что мол подобные траблы бывают у того, кто любит зоны .local - пересоздал зоны без .local - не помогло.
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Сверился с файлом примера в поставляемой доке - вроде все должно работать - а не пашет.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

vodnick писал(а): ↑
08.01.2010 16:45
Хм. Файл /etc/named.d/forwarders.conf почти чистый. (на SUSE 10.3, и на SUSE11.0). Содержит только forwarders { $IntranetDNS; $ProvDNS; };
В /etc/sysconfig/network/config нет таких параметров, где можно почитать?

В forwarders.conf всё верно. Именно так и должно быть. И там же в комментариях написано предостережение про ручную правку конфига и какие параметры смотреть в /etc/sysconfig/network/config
man 8 netconfig
http://www.novell.com/communities/node/678...in-search-lists
(не про Вашу проблему, но даёт понимание, где можно выковырять информацию)

По Вашей проблеме могу только посоветовать tcpdump -i <внешний_интерфейс> | grep 53 для просмотра, куда и в каком порядке бегут запросы.
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Ковырял я еще день /etc/sysconfig/network/config - безрезультатно, походу, руки подвели. Или английский.
Ковыряться дальше нет времени, оставил как есть, но тема открыта. В любом случае спасибо.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

vodnick писал(а): ↑
10.01.2010 10:39
Ковырял я еще день /etc/sysconfig/network/config - безрезультатно, походу, руки подвели. Или английский.
Ковыряться дальше нет времени, оставил как есть, но тема открыта. В любом случае спасибо.

Повторюсь: посмотрите tcpdump'ом что происходит.
Может у Вас просто порядок запросов неправильный. Например, сперва бежит на $ProvDNS.
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Я совсем запутался. Вот что происходит если пытаться резолвить имя непосредственно на сервере (Air)
при forwarders { $IntranetDNS; }; :
10.0.0.2 - DNS интранета

Код:

15:28:49.045131 IP Air.43522 > 10.0.0.2.domain: 31922+% [1au] A? server.intra. (40) 15:28:49.045135 IP Air.6172 > 10.0.0.2.domain: 12339+ [1au] NS? . (28) 15:28:49.046467 IP Air.28439 > 10.0.0.2.domain: 62144+% [1au] PTR? 2.0.0.10.in-addr.arpa. (53) 15:28:49.543846 IP Air.21969 > i.root-servers.net.domain: 57012% [1au] A? server.intra. (40) 15:28:49.545009 IP Air.57500 > i.root-servers.net.domain: 55506 [1au] NS? . (28) 15:28:49.549008 IP Air.53091 > i.root-servers.net.domain: 59967% [1au] PTR? 2.0.0.10.in-addr.arpa. (53) 15:28:50.049343 IP Air.ctdhercules > 192.203.230.10.domain: 49670% [1au] A? server.intra (40) 15:28:50.049443 IP Air.20504 > 192.203.230.10.domain: 53537 [1au] NS? . (28) 15:28:50.049520 IP Air.35438 > 192.203.230.10.domain: 7666% [1au] PTR? 2.0.0.10.in-addr.arpa. (53) 15:28:50.551849 IP Air.32165 > 128.63.2.53.domain: 10895% [1au] A? server.intra (40) 15:28:50.551947 IP Air.18260 > 128.63.2.53.domain: 40754 [1au] NS? . (28) 15:28:50.552025 IP Air.47640 > 128.63.2.53.domain: 23943% [1au] PTR? 2.0.0.10

ну и дальше длииииный список - мой DNS корневым серверам полез зачем то, хотя интранет- имя резолвится .
Почему он так себя ведет?
А вот что происходит если пытаться резолвить при forwarders { $IntranetDNS; $ProvDNS; }; :

Код:

15:47:35.991653 IP Air.15570 > 10.0.0.2.domain: 729+% [1au] A? server.intra. (42) 15:47:35.991852 IP Air.19877 > 10.0.0.2.domain: 53575+ [1au] NS? . (28) 15:47:35.992676 IP Air.18714 > 10.0.0.2.domain: 19981+% [1au] PTR? 2.0.0.10.in-addr.arpa. (53) 15:47:36.491850 IP Air.64975 > dns.prov.domain: 27334+% [1au] A? server.intra. (42) 15:47:36.495440 IP Air.19905 > dns.prov.domain: 18459+ [1au] NS? . (28) 15:47:36.495521 IP Air.46530 > dns.prov.domain: 2933+% [1au] PTR? 2.0.0.10.in-addr.arpa. (53) 15:47:36.511087 IP dns.prov.domain > Air.46530: 2933 NXDomain 0/1/1 (116) 15:47:36.512332 IP dns.prov.domain > Air.19905: 18459 13/0/18 NS H.ROOT-SERVERS.NET.,[|domain] 15:47:36.527808 IP dns.prov.domain > Air.64975: 27334 NXDomain 0/1/1 (117)

Имя не резолвится. Я чего не понял - почему мой DNS ответа от 10.0.0.2 не ждет? мож где задержку вставить?
Если "внешние" адреса резолвить - все работает как часы.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

vodnick писал(а): ↑
10.01.2010 16:04
Почему он так себя ведет?

А это хороший вопрос :)
Я так понимаю, что под server.intra Вы подразумеваете имя какого-то интранет-сервера.
Тогда сделайте на своём сервере так:

user@host

$ nslookup > server 10.0.0.2 > lserver 10.0.0.2 > server.intra
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Да, если напрямую обращаться к $IntranetDNS, то ответ приходит нормально. Проблемы точно у меня.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

Вообще всё очень интересно.
Непохоже, что адрес server.intra Вы получаете от 10.0.0.2

И вот это ещё интересно:
15:47:36.495521 IP Air.46530 > dns.prov.domain: 2933+% [1au] PTR? 2.0.0.10.in-addr.arpa. (53)
Почему на адрес DNS провайдера летит запрос PTR о 10.0.0.2 - не должно быть такого.
Если это типовое разрешение имени DNS-сервера, то и адрес должен быть того сервера, с которого запрашивается информация. Т.е. во втором случае быть IP DNS провайдера, а не 10.0.0.2.
Посмотрите /etc/nsswitch.conf и /etc/hosts
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

DSS писал(а): ↑
11.01.2010 14:54
Вообще всё очень интересно.
Непохоже, что адрес server.intra Вы получаете от 10.0.0.2

Больше мне его получить неоткуда. Ответ приходит именно от 10.0.0.2, видно по tcpdump, что ответ приходит вместе с долблениями корневых DNS-серверов.

DSS писал(а): ↑
11.01.2010 14:54
И вот это ещё интересно:
15:47:36.495521 IP Air.46530 > dns.prov.domain: 2933+% [1au] PTR? 2.0.0.10.in-addr.arpa. (53)
Почему на адрес DNS провайдера летит запрос PTR о 10.0.0.2 - не должно быть такого.
Если это типовое разрешение имени DNS-сервера, то и адрес должен быть того сервера, с которого запрашивается информация. Т.е. во втором случае быть IP DNS провайдера, а не 10.0.0.2.
Посмотрите /etc/nsswitch.conf и /etc/hosts

Я полностью согласен.
Сегодня обнаружил еще косяк - DNS периодически падает. Ну то есть статус у него "running"
а на запросы клиентов отвечает NX domain или вообще молчит, "server failed". Перестартую - опять работает. В логах чисто. Запарило. Обновил пакеты из Updates . Непомогло.
nsswitch:

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

passwd: compat
group:  compat

hosts:      files mdns4_minimal [NOTFOUND=return] dns
networks:    files dns

services:    files
protocols:    files
rpc:        files
ethers:        files
netmasks:    files
netgroup:    files nis
publickey:    files

bootparams:    files
automount:    files nis
aliases:    files

mdns4_minimal [NOTFOUND=return] убрал нафиг от греха.
/etc/hosts:

Код:

127.0.0.1 localhost # special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback fe00::0 ipv6-localnet ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts 127.0.0.2 Air.Lindom Air 192.168.15.105 Air Air

здесь все путем вроде как.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

Ещё в /etc/host.conf рекомендуется добавить mdns off
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Я понял, что что-то главное не догоняю - сейчас поднял DNS на ASP Linux. Точно такая же фигня.
Один форвардер - все работает. Два форвардера - интранет не резолвится. Что бы это значило?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: DNS (named) не работает с форфардерами

Сообщение KiWi »

vodnick писал(а): ↑
12.01.2010 09:32
Я понял, что что-то главное не догоняю - сейчас поднял DNS на ASP Linux. Точно такая же фигня.
Один форвардер - все работает. Два форвардера - интранет не резолвится. Что бы это значило?

Потому что нужно создавать зону и уже в ней прописывать форвардинг на внутренний сервер. Ибо никто не обещал, что форвардиться запросы будут в том порядке, в котором они прописаны, а тем более -- последовательно, а не одновременно.
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Пробовал и в зоне прописывать - не работает.
Поднял DNS-прокси на шлюзе и запросы зафорвардил на него. Пока вроде работает, тьфу-тьфу. Постучал по голове.
Подозрения два - либо мой NAT мудрит, либо все-таки DNS интранета крив.
Спасибо сказали:
Аватара пользователя
vodnick
Сообщения: 70
ОС: Ubuntu

Re: DNS (named) не работает с форфардерами

Сообщение vodnick »

Кажется, что KiWi как ни печально, прав. BIND не понимает порядок форвардеров. Я не уверен, явно это в доке не указано (обратное, впрочем, тоже). Буду мириться и использовать один форвардер.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

vodnick писал(а): ↑
13.01.2010 09:14
Кажется, что KiWi как ни печально, прав. BIND не понимает порядок форвардеров. Я не уверен, явно это в доке не указано (обратное, впрочем, тоже). Буду мириться и использовать один форвардер.

Документация говорит: "There may be one or more forwarders, and they are queried in turn until the list is exhausted or an answer is found".
Т.е. даже если DNS провайдера запрашивается РАНЬШЕ, чем DNS интранета, всё равно DNS интранета должен быть опрошен.
Порядок выбора в changelog'е BIND9 описан так: "1367. [func] Use response times to select forwarders".

Если весь интранет принадлежит одному домену, то можно сделать создать зону intranet.domain с типом stub или forward.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: DNS (named) не работает с форфардерами

Сообщение Ленивая Бестолочь »

DSS писал(а): ↑
13.01.2010 15:33
until the list is exhausted or an answer is found

ответ "host not found" - это тоже answer.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
DSS
Сообщения: 390

Re: DNS (named) не работает с форфардерами

Сообщение DSS »

Ленивая Бестолочь писал(а): ↑
13.01.2010 15:36
ответ "host not found" - это тоже answer.

Логично.
Но ведь в списке присутствуют другие адреса. Почему ответ от одного из серверов считается окончательным? Ведь в списке есть другие?
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: DNS (named) не работает с форфардерами

Сообщение Ленивая Бестолочь »

DSS писал(а): ↑
14.01.2010 13:08
Но ведь в списке присутствуют другие адреса. Почему ответ от одного из серверов считается окончательным? Ведь в списке есть другие?

ммм, вы предлагаете бинду устраивать тендер между серверами на тему - чей ответ правильней? :-D
потому, что "host not found" - это правильный ответ днс, который несет в себе совершенно осмысленную информацию о том, что такого хоста нету.
если была бы ошибка о том, что сервер не может дать ответ или днс сервер был бы не доступен, тогда следовало бы спросить следующий днс, а так - нам сказали, нет хоста. всё, это факт, его нет.
вообще на самом деле мне кажется, что такой ситуации идеалогически быть не должно. когда у одного днса хост в зоне есть, а у другого в той же зоне его нет (за исключением погрешностей, связанной с обновлением).

надо ещё раз темку прочитать, освежить как этого тут добились :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: